방화벽은 서버의 보안을 위한 여러가지 수단들 중 기본 중의 기본 입니다.

리눅스 시스템에는 iptables라는 네트워크 감시 및 관리 툴이 내장되어 있지만, 설정이 까다롭고 복잡합니다.

ufw는 간단하게 방화벽 설정을 하고, iptables에 설정을 넣어주는 데몬입니다.

그럼, ufw의 설치 및 설정 방법을 알아봅시다.

0. ufw 설치하기

$ sudo apt install -y ufw

ufw 설치가 완료 되면, 방화벽 규칙을 만들어 봅시다.

1. 기본설정: 모든 트래픽 차단

기본 설정으로, 서버로 들어오는 모든 트래픽을 차단해줍니다.

$ sudo ufw default deny

2. 특정 tcp포트 허가 (21,22,80,443)

ftp, ssh, http, https와 같은 잘 알려진 포트를 개방합니다.

$ sudo ufw allow 21/tcp && $ sudo ufw allow 22/tcp && sudo ufw allow 80/tcp && $ sudo ufw allow 443/tcp

3. ntpd를 위한 udp 123 포트 개방

자신이 npt 서버로 작동하고 있다면, udp 123 포트를 개방합니다.

$ sudo ufw allow 123/udp

4. 로그 활성화

$ sudo ufw logging on

기본 설정으로, 로그는 /var/log/ufw.log에 저장됩니다.

5. 방화벽 설정 활성화

<span style=”color:red;font-weight:bold”;>만약 ssh세션에서 작업 중이라면, 실제 사용중인 ssh 포트와 위에서 개방 설정한 ssh포트가 잘 맞는지 주의하세요.</span>

$ sudo ufw enable

ufw는 부팅 시 자동으로 실행 되도록 설정됩니다.

6. 상태 확인

ufw를 활성화 한 후, 방화벽 규칙이 잘 설정 되었는지 확인합니다.

$ sudo ufw status

7. 네트워크 블럭으로 규칙 설정

만약, 특정 네트워크 전체의 트래픽을 허용하고 싶을 때 사용합니다.

예를들어, 172.16.0.0/16 으로부터의 모든 트래픽을 허용하고 싶다면, 다음 명령어를 입력합니다.

$ sudo ufw allow from 172.16.0.0/16

8. 규칙 삭제

방화벽에 설정 된 규칙을 삭제하고 싶다면 다음 명령어를 입력합니다.

예를 들어, 방금 설정한 172.16.0.0/16 허용 규칙을 삭제한다면,

$ sudo ufw delete allow from 172.16.0.0/16

혹은, 더 간단하게

$ sudo ufw status

에서 표시되는 규칙의 줄 번호를 이용할 수 있습니다.

6번째 줄의 규칙을 삭제하고 싶다면

$ sudo ufw delete 6

9. 특정 ip 차단하기

가끔, 블로그를 공격하는 ip 등이 보입니다.

아래 명령어로 특정 ip를 ufw의 1번 줄에 추가합니다..

$ sudo ufw insert 1 deny from <ip> to any