2020년 6월 6일 토요일

[LINUX] ufw 기본 정책 셋업

리눅스에는 iptable이라는 좋은 방화벽 프로그램이 있으나(이건 단순히 방화벽이라기 보다는 흡사 프로토콜의 흐름 전체를 정의하는게 가능한 프로그램이라고 보는게 맞을 듯 하다) 이 프로그램은 단순히 포트를 막고 보안 정책을 정하는 용도로 사용하기에는 지나칠 정도로 거창한 프로그램이어(무겁다는 뜻은 아니다 옵션을 주는 방법이 지나치게 복잡해서 사용하기 어렵다는 뜻이다) 실제로 우분투 계열의 리눅스 사용자에게 애용 되고 있는 방화벽 정책 프로그램은 ufw 일 것이다.
 그러나 단순히 포트만 막고 여는 프로그램이지만 매번 사용하려고 하면 햇갈리는 부분이 있으니 이 노트에 정리해 두고자 한다.
 참고로 모든 명령어는 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

댓글 없음:

댓글 쓰기