리눅스 서버 보안 설정 완벽 가이드: 해킹을 막는 필수 설정 10가지
왜 리눅스 서버 보안이 중요한가?
리눅스 서버는 강력한 성능과 유연성 덕분에 웹 서버, 데이터베이스 서버, 클라우드 인프라 등 다양한 환경에서 사용됩니다. 하지만 기본 설정 상태로 운영하면 해킹과 보안 위협에 취약합니다.
🔴 실제 사례:
✔ 2022년, 유명 클라우드 호스팅 업체의 리눅스 서버가 SSH 브루트포스(무차별 대입 공격)로 인해 루트 계정이 탈취됨
✔ 2023년, 오픈 포트 방치로 인해 DDoS 봇넷에 감염된 사례 발생
✅ 따라서 리눅스 서버를 안전하게 보호하는 기본적인 보안 설정이 필수적입니다.
🛡 리눅스 서버 보안 설정 10단계
1️⃣ SSH 보안 강화 (포트 변경 & 루트 로그인 차단)
SSH(22번 포트)는 해커들의 주요 공격 대상이므로 포트 변경 & 루트 로그인 차단이 필요합니다.
설정 방법:
sudo nano /etc/ssh/sshd_config
아래 내용을 수정:
Port 2222 # 기본 22번 포트를 2222번 등 다른 포트로 변경
PermitRootLogin no # 루트 계정으로 직접 SSH 접속 차단 MaxAuthTries 3 # 로그인 실패 횟수를 3번으로 제한
✅ 설정 적용:
sudo systemctl restart sshd
💡 추가 보안:
- fail2ban을 설정하면 SSH 로그인 시도 실패 시 자동 차단할 수 있음
sudo apt install fail2ban
2️⃣ 방화벽(Firewall) 설정 (UFW 또는 firewalld 사용)
불필요한 포트를 차단하면 해커의 침입 경로를 줄일 수 있음
UFW 사용 (Ubuntu, Debian 계열)
sudo apt install ufw
sudo ufw default deny incoming # 기본적으로 모든 수신 요청 차단
sudo ufw default allow outgoing # 모든 송신 요청 허용
sudo ufw allow 2222/tcp # SSH 포트 허용 (변경한 포트 기준)
sudo ufw allow 80/tcp # 웹 서버(HTTP) 허용
sudo ufw allow 443/tcp # HTTPS 허용
sudo ufw enable # 방화벽 활성화
firewalld 사용 (CentOS, RHEL 계열)
sudo systemctl start firewalld
sudo firewall-cmd --add-port=2222/tcp --permanent
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --reload
3️⃣ 불필요한 서비스 중지 및 제거
리눅스 서버에는 기본적으로 여러 서비스가 활성화되어 있으며, 불필요한 서비스는 보안 취약점을 유발할 수 있습니다.
실행 중인 서비스 확인:
sudo systemctl list-units --type=service
불필요한 서비스 중지 & 비활성화 예시
sudo systemctl stop cups # 프린터 관련 서비스 비활성화
sudo systemctl disable cups
4️⃣ 패키지 업데이트 자동화
보안 취약점을 방지하려면 최신 보안 패치를 자동 적용해야 합니다.
Ubuntu/Debian:
sudo apt update && sudo apt upgrade -y sudo apt install unattended-upgrades
CentOS/RHEL:
sudo yum update -y
✅ 자동 업데이트 설정 (Ubuntu 예시)
sudo dpkg-reconfigure --priority=low unattended-upgrades
5️⃣ SUDO 권한 관리 (루트 계정 최소화)
루트 계정을 직접 사용하지 않고, 일반 사용자 계정에 sudo 권한을 부여하는 것이 안전합니다.
새 사용자 생성 및 sudo 권한 부여
sudo adduser myadmin
sudo usermod -aG sudo myadmin
루트 계정 직접 로그인 차단
sudo nano /etc/ssh/sshd_config
PermitRootLogin no
sudo systemctl restart sshd
6️⃣ 로그 모니터링 및 침입 탐지 (IDS/IPS 사용)
서버에서 이상 행동을 감지하려면 IDS(Intrusion Detection System) 또는 IPS(Intrusion Prevention System)**을 활용해야 합니다.
Fail2Ban 설치 및 설정 (SSH 보호)
sudo apt install fail2ban
sudo systemctl enable fail2ban
로그 확인 (로그 모니터링 필수!)
sudo tail -f /var/log/auth.log # Ubuntu
sudo tail -f /var/log/secure # CentOS
7️⃣ SELinux 또는 AppArmor 활성화
시스템 보안을 강화하려면 SELinux(CentOS/RHEL) 또는 AppArmor(Ubuntu)를 활성화해야 합니다.
✅ SELinux 상태 확인 및 활성화
getenforce sudo setenforce 1 # 활성화
✅ AppArmor 활성화 (Ubuntu/Debian)
sudo systemctl enable apparmor
8️⃣ 데이터 암호화 (디스크 암호화 설정)
서버에 중요한 데이터를 저장한다면 암호화로 보호하는 것이 중요합니다.
✅ LUKS를 이용한 디스크 암호화 예시
sudo cryptsetup luksFormat /dev/sdb
sudo cryptsetup luksOpen /dev/sdb my_encrypted_disk
9️⃣ 2단계 인증(2FA) 적용 (Google Authenticator)
SSH 로그인 시 2FA를 적용하면 보안이 대폭 강화됩니다.
✅ Google Authenticator 설치
sudo apt install libpam-google-authenticator google-authenticator
✅ SSH 2FA 활성화
sudo nano /etc/pam.d/sshd
auth required pam_google_authenticator.so
🔟 정기적인 보안 점검 & 취약점 분석
서버 보안을 유지하려면 정기적인 보안 점검 및 취약점 분석이 필요합니다.
✅ Lynis 보안 점검 툴 설치 및 실행
sudo apt install lynis sudo lynis audit system
✅ chkrootkit로 루트킷 탐지
sudo apt install chkrootkit sudo chkrootkit
결론: 리눅스 서버 보안, 이렇게 지키세요!
✅ SSH 보안 강화 (포트 변경, 루트 로그인 차단, 2FA 적용)
✅ 방화벽 설정 (UFW 또는 firewalld 사용)
✅ 불필요한 서비스 제거 & 자동 업데이트 활성화
✅ 로그 모니터링 및 침입 탐지 시스템(IDS) 적용
✅ 디스크 암호화 및 SELinux/AppArmor 활성화
🚀 리눅스 서버 보안은 선택이 아닌 필수입니다! 위 설정을 적용하여 안전한 서버 환경을 구축하세요. 💪
📚 참고 자료
- Stallings, W. (2018). Linux Security Principles and Practices. Pearson.
- OWASP. (2023). Linux Security Best Practices.
- Red Hat. (2023). SELinux User Guide.
'IT > 보안' 카테고리의 다른 글
권한 상승(Privilege Escalation) 공격이란 무엇이며, 어떻게 방어할 수 있을까? (0) | 2025.03.20 |
---|---|
이메일 한 통에 회사 기밀이 털린다! APT 공격의 무서운 실체 (0) | 2025.03.20 |
DNS 스푸핑 vs ARP 스푸핑: 차이점과 방어 방법 완벽 정리 (0) | 2025.03.17 |
MITM 공격이란? 원인과 방어 방법 완벽 정리! (0) | 2025.03.17 |
VPN과 SSL/TLS의 차이점: 보안의 핵심 개념 완벽 정리! (1) | 2025.03.17 |
댓글