그러나 단순히 포트만 막고 여는 프로그램이지만 매번 사용하려고 하면 햇갈리는 부분이 있으니 이 노트에 정리해 두고자 한다.
참고로 모든 명령어는 sudo 명령어 내지는 root계정하에 작동 시켜야 한다.
참조 사이트:
https://www.webservertalk.com/ubuntu-firewall-how-to-configure-ufw
https://www.letscloud.io/community/how-to-set-up-a-firewall-with-ufw-on-ubuntu-1804
기본적인 사용법
ufw allow (허용포트)
ufw deny (거부포트)
ufw delete (거부포트)
ufw disable : 방화벽 끄기
ufw reset : 방화벽 규칙 전체 초기화
이게 사실상 다다.
기본 정책
ufw default deny incoming
ufw default allow outgoing
이렇게 하면 외부에서 들어오려고 하는 시도는 거부하고 외부로 나가는 시도는 허가하게 된다.
그뒤 허용해 주려고 하는 포트를 위의 정책 허용 방법으로 추가해 주면 된다. 예를 들면
ufw allow 22 혹은 ufw allow ssh
위의 명령어는 ssh포트 22번을 열어주는 명령어이다. 그러나 기본 포트를 그대로 쓰지 말고 항상 다른 번호로 바꾸어 주는걸 권장한다.
막아줄 포트로 ftp포드(21번)을 권장한다.(환경에 따라 주의 필요)
열어줄 포트와 거부할 포트를 모두 정했으면 이제 ufw를 작동시켜줄 차례다
ufw enable
위의 명령어는 ufw를 활성화 시켜주겠다는 뜻이고 부팅 시에도 자동으로 활성화 시켜 주겠다는 뜻이기도 하다. 다 되었으면
ufw status 혹은 ufw status numbered
명령어를 내려 방화벽의 정책 상태를 검토해 보자.(후자는 정책 번호를 가르쳐 준다)
특별 명령
가끔 방화벽 명령을 내리다 보면 특별 네트워크 카드에 방화벽 정책 예외 명령을 내려야 할 경우가 있다.(예를들면 내부 전용 네트워크에 굳이 방화벽 정책을 내려줄 필요는 없을 것이다) 예전에는 이걸 할려면 iptable로 복잡한 명령어를 일일이 내려주어야 했으나 이젠 그럴 필요가 없다.
우선은 다음 명령어로 사용하고 있는 네트워크 카드의 이름부터 알아 보자
ip addr 혹은 ipconfig
양쪽다 개시 방법이나 내용은 다를수 있으나 기본적으로 지금 사용하고 있는 네트워크 카드의 이름을 보여줄 것이다.(예전에는 eth0,eth1 같은 간단한 형식이었는데 지금은 뭘 잘못 먹었는지 enp3s0 같은 이상한 이름을 쓴다.)
이렇게 이름을 알았다면 다음과 같은 방법으로 정책 예외를 내릴수 있다
ufw allow in on (네트워크 카드 이름) to any port (포트명)
이렇게 하면 특정 포트에 대해서만 가능하고
ufw allow in on (네트워크 카드 이름)
이렇게 하면 사실상 특정 네트워크 카드에 대해 방화벽 정책을 끄는게 가능하다.
추가 사항
이 기록을 작성한지 몇년 지나 생각해 보니 새 머신 생성할 때마다 내리는 기본 세팅을 기록해 본다.
ufw default deny incoming #입력 거부를 기본 정책으로 삼는다.
ufw default allow outgoing #출력은 모두 허용
ufw allow (ssh 포트) #허용할 ssh 포트
ufw allow in on (네트워크 카드 이름) #이건 옵션 사항인데, 내부 전용 네트워크 카드를 허가
or
ufw allow fron (ip) #허가할 특정 ip
ufw allow <app> #입출력을 허가할 그 외 포트
ufw enable
ufw enable
댓글 없음:
댓글 쓰기