이 가이드는 Rocky Linux 8.10 서버에서 계정 로그인 보안을 강화하기 위한 주요 설정 단계를 안내합니다. 비밀번호 정책, SSH 보안, 계정 잠금, sudo 권한 관리 등을 다룹니다.
1. 비밀번호 정책 설정
강력한 비밀번호 정책을 설정하여 계정 보안을 강화합니다.
1.1 비밀번호 복잡도 설정
/etc/security/pwquality.conf
파일을 편집하여 비밀번호 복잡도를 설정합니다.
sudo vi /etc/security/pwquality.conf
다음과 같이 설정을 추가 또는 수정합니다:
minlen = 12
dcredit = -1
ucredit = -1
lcredit = -1
ocredit = -1
설명:
minlen
: 최소 비밀번호 길이(12자)dcredit
: 숫자 최소 1개 포함ucredit
: 대문자 최소 1개 포함lcredit
: 소문자 최소 1개 포함ocredit
: 특수문자 최소 1개 포함
1.2 비밀번호 만료 정책
/etc/login.defs
파일을 편집하여 비밀번호 만료 정책을 설정합니다.
sudo vi /etc/login.defs
다음과 같이 설정합니다:
PASS_MAX_DAYS 90
PASS_MIN_DAYS 7
PASS_WARN_AGE 14
설명:
PASS_MAX_DAYS
: 비밀번호 최대 사용 기간(90일)PASS_MIN_DAYS
: 비밀번호 변경 최소 간격(7일)PASS_WARN_AGE
: 만료 전 경고 기간(14일)
기존 사용자의 비밀번호 정책을 업데이트하려면:
sudo chage -M 90 -m 7 -W 14 <username>
2. SSH 보안 설정
SSH를 통해 원격으로 로그인하는 경우, 보안을 강화하기 위해 다음 단계를 수행합니다.
2.1 루트 로그인 비활성화
/etc/ssh/sshd_config
파일을 편집하여 루트 로그인을 비활성화합니다.
sudo vi /etc/ssh/sshd_config
다음 줄을 찾아 수정하거나 추가합니다:
PermitRootLogin no
SSH 서비스를 재시작합니다:
sudo systemctl restart sshd
2.2 비밀번호 인증 비활성화 및 SSH 키 사용
비밀번호 대신 SSH 키를 사용하여 인증합니다.
- 클라이언트에서 SSH 키 쌍 생성:
ssh-keygen -t ed25519 -C "your_email@example.com"
- 공개 키를 서버의
~/.ssh/authorized_keys
에 복사:
ssh-copy-id username@server_ip
/etc/ssh/sshd_config
에서 비밀번호 인증 비활성화:
PasswordAuthentication no
- SSH 서비스 재시작:
sudo systemctl restart sshd
2.3 SSH 포트 변경
기본 포트(22)를 다른 포트로 변경하여 보안을 강화합니다.
sudo vi /etc/ssh/sshd_config
다음 줄을 수정하거나 추가합니다:
Port 2222
SELinux 포트 설정 업데이트:
sudo semanage port -a -t ssh_port_t -p tcp 2222
방화벽 설정 업데이트:
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
SSH 서비스 재시작:
sudo systemctl restart sshd
3. Fail2Ban 설치 및 설정
Fail2Ban을 설치하여 반복적인 실패한 로그인 시도를 차단합니다.
3.1 Fail2Ban 설치
sudo dnf install epel-release
sudo dnf install fail2ban
3.2 Fail2Ban 설정
/etc/fail2ban/jail.local
파일을 생성하여 사용자 정의 설정을 추가합니다.
sudo vi /etc/fail2ban/jail.local
다음 내용을 추가합니다:
[DEFAULT]
bantime = 30m
findtime = 5m
maxretry = 3
[sshd]
enabled = true
port = ssh,2222
filter = sshd
bantime = 30m
findtime = 5m
maxretry = 3
설명:
bantime
: 차단 지속 시간(30분)findtime
: 실패 시도 감지 시간 창(5분)maxretry
: 최대 실패 횟수(3회)
Fail2Ban 서비스 시작 및 활성화:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
4. sudo 권한 관리
루트 계정 대신 일반 사용자 계정에 sudo 권한을 부여하여 보안을 강화합니다.
4.1 사용자 생성 및 wheel 그룹 추가
sudo adduser -m username
sudo passwd username
sudo usermod -aG wheel username
설명: wheel
그룹의 사용자는 sudo 명령어를 사용할 수 있습니다.
4.2 sudo 명령 로깅 활성화
/etc/sudoers
파일을 편집하여 sudo 명령 로깅을 활성화합니다.
sudo visudo
다음 줄을 추가합니다:
Defaults logfile=/var/log/sudo/sudo.log
로그 디렉토리 생성:
sudo mkdir /var/log/sudo
sudo touch /var/log/sudo/sudo.log
sudo chmod 600 /var/log/sudo/sudo.log
5. 계정 잠금 정책 설정
로그인 실패 시 계정을 잠금하여 무차별 대입 공격을 방지합니다.
5.1 PAM 설정
/etc/security/faillock.conf
파일을 편집하여 계정 잠금 정책을 설정합니다.
sudo vi /etc/security/faillock.conf
다음과 같이 설정합니다:
deny = 3
fail_interval = 300
unlock_time = 600
설명:
deny
: 최대 실패 횟수(3회)fail_interval
: 실패 감지 시간 창(300초)unlock_time
: 계정 잠금 지속 시간(600초)
/etc/pam.d/system-auth
및 /etc/pam.d/password-auth
파일에 다음 줄을 추가합니다:
auth required pam_faillock.so preauth silent deny=3 unlock_time=600 fail_interval=300
auth required pam_faillock.so authfail deny=3 unlock_time=600 fail_interval=300
6. 추가 보안 권장 사항
- SELinux 유지: SELinux를
enforcing
모드로 유지하여 시스템 보안을 강화합니다. - 방화벽 설정:
firewalld
를 사용하여 불필요한 포트를 차단합니다. - 정기 업데이트:
sudo dnf update
를 주기적으로 실행하여 최신 보안 패치를 적용합니다. - 불필요한 계정 비활성화: 사용하지 않는 계정을 잠금 또는 삭제합니다.
결론
이 가이드에서는 Rocky Linux 8.10에서 계정 로그인 보안을 강화하기 위한 주요 단계를 다루었습니다. 비밀번호 정책, SSH 설정, Fail2Ban, sudo 권한 관리, 계정 잠금 정책을 통해 서버를 보다 안전하게 보호할 수 있습니다. 정기적인 모니터링과 업데이트를 통해 보안을 유지하세요.
'리눅스 리뷰 > Rocky Linux 8' 카테고리의 다른 글
Rocky Linux 8.10: OpenSSL 3.3.1, OpenSSH 9.8p1 RPM 제작 및 설치 가이드 (0) | 2025.05.28 |
---|---|
폐쇄망 환경에서 USB로 Rocky Linux 8.9를 8.10으로 업그레이드하는 방법 (0) | 2025.05.27 |
Rocky Linux 8.10: OpenSSL 및 OpenSSH 최신 버전 설치 가이드 (0) | 2025.04.20 |
Rocky Linux 8.10에서 9.x로의 주요 변경 사항 (0) | 2025.04.02 |
Rocky Linux 8.10 최소 모드에서 제한되는 주요 명령어 (0) | 2025.04.02 |