# 계정 관리(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 |
