리눅스 서버 보안 설정 정리

2026. 3. 12. 10:14·linux

# 계정 관리(Account Management)

# 기본(Default) 계정 삭제

리눅스 설치 시 사용되지 않는 여러 기본 계정이 생성된다.
사용하지 않는 계정은 공격자가 접근 경로로 악용할 수 있으므로 삭제하는 것이 좋다.

userdel lp
userdel uucp
userdel ftp
lp : 프린터 서비스 계정
uucp : 과거 통신 서비스 계정
ftp : FTP 서비스 계정

현재 사용하지 않는 서비스라면 삭제하여 보안 위험을 줄일 수 있다.


# 패스워드 정책 설정

사용자 계정의 보안을 강화하기 위해 비밀번호 정책을 설정한다.
해당 설정은 /etc/login.defs 파일에서 수정할 수 있다.

vi /etc/login.defs
PASS_MIN_LEN 8
PASS_MAX_DAYS 60
PASS_MIN_DAYS 1

설정 설명
PASS_MIN_LEN 비밀번호 최소 길이
PASS_MAX_DAYS 비밀번호 최대 사용 기간
PASS_MIN_DAYS 비밀번호 변경 후 최소 유지 기간
최소 8자리 이상 비밀번호 사용
60일마다 비밀번호 변경
하루 이내 재변경 방지

# 시스템 계정 로그인 제한

시스템 계정은 일반 사용자가 로그인할 필요가 없으므로 로그인 기능을 제한한다.
이를 위해 해당 계정의 shell을 /bin/false로 변경한다.

usermod -s /bin/false bin
usermod -s /bin/false daemon
usermod -s /bin/false adm
usermod -s /bin/false operator
usermod -s /bin/false games
usermod -s /bin/false gopher
usermod -s /bin/false nobody

이렇게 설정하면 해당 계정은 시스템에 로그인할 수 없게 된다.


# su 명령어 사용 제한

일반 사용자가 root 권한으로 전환하는 것을 제한하기 위해 su 명령어 사용을 특정 그룹으로 제한한다.

먼저 PAM 설정 파일을 수정한다.

vi /etc/pam.d/su
auth sufficient /lib/security/pam_rootok.so
auth required /lib/security/pam_wheel.so debug group=wheel

이 설정은 wheel 그룹에 속한 사용자만 su 명령을 사용할 수 있도록 제한한다.


# wheel 그룹 생성 및 사용자 추가

groupadd wheel
usermod -G wheel green

green 사용자만 root 권한 전환이 가능하게 된다.


# su 명령 권한 변경

chown root:wheel /bin/su
chmod 4750 /bin/su

이 설정을 통해 root 사용자와 wheel 그룹 사용자만 su 명령을 실행할 수 있다.


# 파일 시스템 보안

# UMASK 설정

UMASK는 파일이나 디렉토리가 생성될 때 기본 권한을 설정하는 값이다.

vi /etc/profile
umask 022

종류 권한
파일 644
디렉토리 755
이 설정을 적용하면  다른 사용자에게 쓰기 권한이 제한된다.

# SetUID / SetGID 권한 제거

SetUID 또는 SetGID 권한이 설정된 프로그램은 일반 사용자가 관리자 권한으로 실행할 수 있기 때문에 보안 위험이 될 수 있다.

불필요한 SetUID 권한을 제거한다.

chmod -s /sbin/unix_chkpwd
chmod -s /usr/bin/at
chmod -s /bin/traceroute
chmod -s /usr/bin/newgrp

# 네트워크 서비스 보안

# 서비스 Banner 설정

서버 접속 시 보안 경고 메시지를 표시하여 무단 접근을 방지할 수 있다.

/etc/issue
/etc/issue.net
/etc/motd
예시 메시지
Warning: Authorized users only.
All activities on this system are monitored.

로그인 전에 사용자에게 경고 메시지가 표시된다.


# FTP Banner 설정

FTP 서버 접속 시 안내 메시지를 설정할 수 있다.

vi /etc/vsftpd/vsftpd.conf
banner_file=/etc/welcome.msg
use_localtime=YES

그리고 /etc/welcome.msg 파일에 안내 문구를 작성한다.


# 세션 Timeout 설정

사용자가 로그인한 상태에서 일정 시간 동안 활동이 없을 경우 자동으로 로그아웃하도록 설정할 수 있다.

vi /etc/profile
TMOUT=300
export TMOUT

이 설정은 5분 동안 활동이 없을 경우 자동 로그아웃을 수행한다.


# 로그 관리

# su 사용 로그 기록

root 권한 전환 기록을 남기도록 설정한다.

vi /etc/login.defs
SULOG_FILE /var/log/sulog

그리고 syslog 설정 파일을 수정한다.

vi /etc/rsyslog.conf
auth.info /var/log/sulog

이 설정을 통해 su 명령 사용 기록을 확인할 수 있다.


# Apache 웹서버 보안 설정

Apache 설치 후 불필요한 디렉토리는 삭제하는 것이 좋다.

삭제 대상
cgi-bin
manual

# Apache 보안 설정

Apache 설정 파일을 수정한다.

vi httpd.conf
ServerTokens Prod
ServerSignature Off
Options Indexes 제거
설정 설명
ServerTokens Prod Apache 버전 정보 숨김
ServerSignature Off 에러 페이지 서버 정보 숨김
Options Indexes 제거 디렉토리 목록 표시 차단

# 기타 시스템 설정

# 불필요 서비스 중지

사용하지 않는 서비스는 공격 경로가 될 수 있으므로 중지한다.

service sshd stop
service sendmail stop

또는 setup 명령어에서 서비스 항목을 비활성화할 수 있다.

 

'linux' 카테고리의 다른 글

Scouter Tomcat9 연동(수정 중)  (0) 2025.12.24
[3-Tier] 로드밸런싱  (0) 2025.12.03
[3-Tier] Zabbix Agent 설치  (0) 2025.12.03
[3-Tier] MONITORING VM  (0) 2025.12.03
Nginx를 Tomcat 앞단에 두는 이유  (0) 2025.12.03
'linux' 카테고리의 다른 글
  • Scouter Tomcat9 연동(수정 중)
  • [3-Tier] 로드밸런싱
  • [3-Tier] Zabbix Agent 설치
  • [3-Tier] MONITORING VM
차하비
차하비
chadev 님의 블로그 입니다.
  • 차하비
    chadev
    차하비
  • 전체
    오늘
    어제
    • 분류 전체보기 (47)
      • kubernetes, k8s (3)
      • docker (3)
      • cloud (6)
      • linux (12)
      • spring (7)
      • java (11)
      • error (4)
      • 자격증 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    객체지향
    OOP
    URI
    Kubernetes
    monolithic
    url
    Join
    모놀리식
    Spring
    thread
    클래스
    restAPI
    KUBECTL
    k8s
    Java
    비트 연산
    HTTP
    docker
    진법
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
차하비
리눅스 서버 보안 설정 정리
상단으로

티스토리툴바