1. 서론
웹 서버를 운영하면서 가장 중요한 고려 사항 중 하나는 보안입니다. 서버가 해킹당하거나 악의적인 공격을 받으면 웹사이트가 다운되거나 데이터가 유출될 수 있습니다.
따라서, 이러한 위험을 최소화하기 위한 다양한 보안 설정이 필요합니다. 본 글에서는 우분투 서버의 보안을 강화하기 위해 필수적으로 설정해야 할 사항에 대해 알아봅니다.
2. SSH 포트 변경
기본적으로 SSH는 포트 22에서 실행됩니다. 많은 해커들이 이 기본 포트를 타겟으로 삼기 때문에, 포트를 변경함으로써 자동화된 공격을 피할 수 있습니다.
2.1 SSH 포트 변경 방법
SSH 포트를 변경하고자 할 때는 다음과 같이 진행합니다.
sudo nano /etc/ssh/sshd_config
위 명령어를 입력하면 SSH 설정 파일이 열리게 됩니다. 이 파일에서 Port 22
를 찾아 다른 포트 번호(예: 2222)로 변경합니다.
Port 2222
설정을 변경한 후, 파일을 저장하고 종료합니다. 그런 다음 SSH 서비스를 재시작합니다.
sudo systemctl restart sshd
이제 새로운 포트로 SSH에 접속할 수 있습니다. 예를 들어, 다음 명령어를 사용하여 SSH에 접속할 수 있습니다.
ssh username@server_ip -p 2222
3. 키 기반 인증 설정
키 기반 인증은 비밀번호보다 더 안전한 인증 방식으로, 개인키와 공개키 쌍을 사용하여 SSH 접근을 허용합니다. 비밀번호를 통해 인증하는 것보다 안전성 면에서 유리합니다.
3.1 SSH 키 생성
먼저 클라이언트 PC에서 SSH 키를 생성합니다. 아래 명령어를 실행하여 SSH 키를 생성합니다.
ssh-keygen -t rsa -b 4096
명령어를 실행하면 키 파일의 저장 경로와 비밀번호를 입력하라는 메시지가 나타납니다. 기본적으로 ~/.ssh/id_rsa
에 저장됩니다.
3.2 SSH 공개키를 서버에 복사
생성한 공개키를 우분투 서버로 복사합니다. 아래 명령어를 사용하여 공개키를 복사할 수 있습니다.
ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip -p 2222
이후 접속할 때 비밀번호 대신 SSH 키를 사용해 로그인이 가능합니다.
4. 방화벽 설정(UFW)
우분투에 내장된 방화벽인 UFW(Uncomplicated Firewall)를 사용하여 포트 접근을 제어할 수 있습니다. 이 방화벽을 활용해 SSH와 웹 서버 등 필요한 포트만 열어주는 것이 좋습니다.
4.1 UFW 설치 및 활성화
UFW는 기본적으로 설치되어 있지만, 설치 여부를 확인하고 활성화 과정은 다음과 같습니다.
sudo ufw enable
4.2 SSH 및 웹 포트 허용
앞서 변경한 SSH 포트를 허용하고, HTTP 및 HTTPS 포트를 허용합니다.
sudo ufw allow 2222/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
4.3 방화벽 상태 확인
방화벽 설정이 제대로 되었는지 확인하려면 다음 명령어를 사용합니다.
sudo ufw status
이를 통해 열린 포트와 차단된 포트를 확인할 수 있습니다.
5. Fail2ban 설치
Fail2ban은 서버에 대한 무차별 대입 공격을 방지하기 위해 IP를 차단하는 훌륭한 도구입니다. 공격이 감지되면 해당 IP를 방화벽에서 차단합니다.
5.1 Fail2ban 설치
다음 명령어를 사용하여 Fail2ban을 설치합니다.
sudo apt-get install fail2ban
5.2 Fail2ban 설정
설치가 완료되면 기본 설정 파일을 복사하여 사용자 정의 설정 파일을 생성합니다.
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
그 후, jail.local
파일을 열어 설정을 조정합니다.
sudo nano /etc/fail2ban/jail.local
예를 들어 SSH 보호를 위해 다음 설정을 추가합니다.
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 600
6. 정리 및 결론
위에서 설명한 방법들은 우분투 서버의 보안을 강화하는 데 매우 효과적입니다. SSH 포트 변경, 키 기반 인증 설정, UFW 및 Fail2ban과 같은 도구를 활용함으로써,
다양한 공격으로부터 서버를 보호할 수 있습니다. 이러한 보안 조치는 추가적인 도구와 설정과 함께 사용될 때 더욱 효과적입니다. 따라서, 지속적인 보안 점검과 업데이트가 필요합니다.