서버는 기업과 개인의 핵심 데이터를 저장하고 서비스의 기반을 제공하는 중요한 시스템입니다. 하지만 보안 설정이 미흡하면 해킹, 데이터 유출, 서비스 장애 같은 심각한 문제가 발생할 수 있습니다. 이번 글에서는 서버 보안을 강화하기 위해 반드시 적용해야 할 10가지 설정을 정리했습니다.
1. 최신 보안 업데이트 적용
서버 운영체제와 소프트웨어는 항상 최신 버전으로 유지해야 합니다. 보안 취약점은 해커의 주요 공격 경로이므로 정기적인 업데이트는 필수입니다.
sudo apt update && sudo apt upgrade -y
자동 업데이트 설정을 통해 관리 부담을 줄이는 것도 좋은 방법입니다.
2. 방화벽 설정
방화벽은 외부에서 서버로 접근할 수 있는 포트를 제한해 불필요한 연결을 차단합니다. Ubuntu에서는 UFW를 사용해 간단히 설정할 수 있습니다.
sudo ufw allow sshsudo ufw enable
웹 서버라면 HTTP(80)와 HTTPS(443)만 허용하고 나머지 포트는 차단하세요.
3. SSH 보안 강화
SSH는 서버 원격 접속에 사용되지만 공격 대상이 되기 쉽습니다. 기본 포트(22)를 변경하고 루트 계정 로그인은 비활성화하세요.
sudo nano /etc/ssh/sshd_config“
PermitRootLogin no로 설정하고, 강력한 비밀번호 대신 공개키 인증을 사용하세요.
4. Fail2Ban 설치
SSH 무차별 대입 공격을 막기 위해 Fail2Ban을 설치하세요. 이 툴은 비정상적인 로그인 시도를 감지해 IP를 자동으로 차단합니다.
sudo apt install fail2ban -y
5. SSL 인증서 적용
HTTPS는 데이터 전송을 암호화해 보안을 강화합니다. 무료 SSL 인증서인 Let’s Encrypt를 사용하면 손쉽게 HTTPS를 적용할 수 있습니다.
sudo apt install certbot python3-certbot-apache“
6. 불필요한 서비스 제거
서버에 설치된 서비스 중 사용하지 않는 것은 모두 제거하세요. 불필요한 서비스는 공격 표면을 넓히는 원인이 됩니다.
sudo systemctl disable 서비스명
7. 사용자 권한 관리
모든 작업을 루트 계정으로 수행하는 것은 위험합니다. 일반 사용자 계정을 생성하고 sudo 권한을 최소화하세요.
sudo adduser 사용자명
8. 로그 모니터링
서버 로그는 보안 이상 징후를 파악하는 중요한 자료입니다. /var/log 디렉토리를 주기적으로 확인하고, 자동 알림 시스템을 설정하세요.
9. 데이터 백업 전략
보안 사고가 발생하더라도 데이터 복구가 가능해야 합니다. 정기적인 백업과 원격 저장소 활용은 필수입니다. rsync와 cron을 이용해 자동화하면 효율적입니다.
10. 보안 스캐너 활용
서버 취약점을 점검하기 위해 보안 스캐너를 사용하세요. 대표적인 툴로는 OpenVAS, Nessus가 있습니다. 정기적인 점검으로 보안 상태를 유지하세요.
서버 보안은 한 번 설정하고 끝나는 작업이 아닙니다. 지속적인 점검과 업데이트가 필요하며, 위의 10가지 설정을 적용하면 해킹 위험을 크게 줄일 수 있습니다. 안정적인 서비스를 위해 보안 강화는 선택이 아닌 필수입니다.