Linux 보안 기초: 서버를 안전하게 지키는 방법
Linux 서버의 기본 보안 설정 방법을 단계별로 알아봅니다. SSH 설정, 방화벽, 자동 업데이트 등 필수 보안 조치를 다룹니다.
Linux 서버를 운영한다면 보안은 선택이 아닌 필수입니다. 기본 설정만으로는 다양한 공격에 취약할 수 있으며, 몇 가지 핵심 설정만 변경해도 보안을 크게 강화할 수 있습니다.
SSH 보안 강화
비밀번호 대신 키 인증 사용
SSH 키 인증은 비밀번호 인증보다 훨씬 안전합니다.
# SSH 키 생성
ssh-keygen -t ed25519 -C "your_email@example.com"
# 서버에 공개키 복사
ssh-copy-id user@server
SSH 설정 변경
/etc/ssh/sshd_config에서 다음 설정을 변경합니다:
PasswordAuthentication no
PermitRootLogin no
Port 2222
MaxAuthTries 3
방화벽 설정 (UFW)
Ubuntu/Debian에서 UFW를 사용한 기본 방화벽 설정:
# UFW 활성화
sudo ufw enable
# SSH 허용 (포트 변경 시 해당 포트)
sudo ufw allow 2222/tcp
# HTTP/HTTPS 허용
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 상태 확인
sudo ufw status
자동 보안 업데이트
보안 패치를 자동으로 적용하도록 설정합니다:
# unattended-upgrades 설치
sudo apt install unattended-upgrades
# 활성화
sudo dpkg-reconfigure unattended-upgrades
Fail2Ban 설정
반복적인 로그인 시도를 차단합니다:
sudo apt install fail2ban
sudo systemctl enable fail2ban
기본 설정으로도 SSH 브루트포스 공격을 효과적으로 방어합니다.
로그 모니터링
정기적으로 보안 로그를 확인하세요:
# 인증 로그 확인
sudo tail -f /var/log/auth.log
# 실패한 로그인 시도
sudo grep "Failed password" /var/log/auth.log
결론
Linux 서버 보안은 한 번 설정하고 끝나는 것이 아닙니다. 정기적인 업데이트, 로그 모니터링, 설정 점검을 통해 지속적으로 보안을 유지해야 합니다. 위의 기본 설정들을 적용하면 대부분의 자동화된 공격을 효과적으로 방어할 수 있습니다.