작성자 PG의 글

우분투의 UFW는 방화벽을 쉽게 설정할 수 있게 하는 도구로 포트 및 IP, 어플리케이션에 대한 방화벽 설정을 할 수 있습니다.

UFW 상태 확인과 활성화, 비활성화 설정

# ufw status

기본적으로 우분투의 방화벽은 비활성화 상태이며 위 명령어로 ufw의 실행 상태 및 설정 룰을 확인할 수 있습니다.

# ufw enable
# ufw disable

위 명령어로 방화벽을 켜고 끌 수 있으며 중요한 점은 기본적으로 방화벽 룰이 모든 포트를 접근 금지(deny) 하기 때문에 서비스 포트를 접근 할 수 있게 먼저 룰을 설정한 다음 활성화 해야 ssh로 접속해 컨트롤 하는 경우 방화벽에 막히는 실수를 방지할 수 있습니다.

UFW 초기화

# ufw reset

방화벽을 이리저리 설정하다가 초기화 하고 싶은 경우에는 위 명령어로 간단하게 초기화 할 수 있습니다. 초기화시 UFW는 비활성화 상태로 되돌아갑니다.

UFW 기본 룰(rules)

# ufw show raw

기본적으로 UFW의 기본 룰은 들어오는(incoming) 모든 패킷은 거부, 나가는(outgoing) 모든 패킷은 허가 상태입니다. 기본 룰은 다음 명령어를 통해 확인할 수 있습니다.

# ufw default allow

만일 기본 룰을 모두 허용으로 변경한 다음 거부할 포트나 IP를 하나씩 막고 싶다면 위 명령어를 통해 모든 접근을 허용으로 변경할 수 있습니다. 하지만 효율적이지 못한 구성이므로 권장하지 않습니다.

# ufw default deny

만일 기본 룰을 모두 허용에서 다시 기본값인 모두 거부 상태로 변경 후 룰을 세팅하고 싶다면 위 명령어로 되돌릴 수 있습니다.

UFW 방화벽 설정

포트 기준

ufw allow <port>/<optional: protocol>
# ufw allow 22
# ufw allow 22/tcp
# ufw allow 53/udp

22번 포트에 대한 접근을 허용하고 싶은 경우 위와 같은 문법으로 설정합니다. 만일 tcp와 udp 프로토콜을 나눠 설정하고 싶다면 2-3번째 줄과 같이 뒤에 프로코톨까지 입력하면 되겠습니다.

# ufw allow 1000:2000
# ufw allow 1000:2000/tcp

포트 대역을 지정하고 싶다면 위와 같은 요령으로 설정합니다.

ufw deny <port>/<optional: protocol>

반대로 거부를 하고 싶은 경우 deny를 이용해 같은 요령으로 설정합니다.

IP 기준

ufw allow from <ip address> to <protocol> port <port number> proto <protocol name>
# ufw allow from 192.168.0.44

192.168.0.44에서 접근을 허용하겠다는 설정이며 해당 IP에 대한 모든 포트 접근이 개방됩니다.

# ufw allow from 192.168.0.33 to any port 80 proto tcp

해당 IP 접근에 대한 포트 및 프로토콜을 좀더 상세하게 지정하고 싶다면 위와 같은 요령으로 설정합니다.

# ufw deny from 192.168.0.33 to any port 80 proto tcp

만일 IP를 접근 거부하고 싶다면 위와 같이 설정합니다.

ufw allow to <ip address> from <protocol> port <port number> proto <protocol name>
# ufw deny to 192.168.0.33 from any port 53 proto udp

접근(incoming)이 아닌 나가는(outgoing) 데이터에 대한 룰을 설정하고 싶은 경우에는 들어올때와 반대로 위와 같은 문법으로 설정합니다.

서비스 기준

# cat /etc/services

서비스나 프로토콜의 이름을 기준으로 설정하기 위해서 위 명령어를 통해 이름을 확인합니다.

ufw allow <service name>
# ufw allow ssh

위와 같은 요령으로 서비스에 대한 방화벽 설정을 할 수 있습니다.

방화벽 순서 확인

# ufw status numbered

UFW를 포함한 모든 방화벽은 순차적으로 처리되기 때문에 설정된 순서가 중요합니다. 위 명령어로 방화벽이 설정된 순서를 확인할 수 있으며 방화벽을 추가할 때 원하는 순서에 추가할 수 있습니다.

# ufw insert 1 allow 22/tcp

위처럼 첫번째 룰로 추가할 수 있으며 기존의 첫번째 룰은 두번째로 밀려나게 됩니다.

룰 삭제

# ufw delete allow 22/tcp

추가했던 문법 앞에 delete 를 붙여넣어 룰을 삭제할 수 있습니다.

# ufw delete 1

좀더 쉽게 방화벽 룰을 삭제하기 위해서 앞서 확인했던 방화벽 순서를 활용해 위와 같이 삭제할 수 있습니다.

설정 저장 파일

사용자가 설정한 UFW 룰은 /etc/ufw/user.rules(ipv4)와 /etc/ufw/user6.rules(ipv6)에 저장됩니다.

ICMP(ping) 거부 설정

기본적으로 UFW는 핑에 대한 응답이 허용(Allow) 설정이 되어 있으며 원천적인 DDoS 공격으로 이용되는 만큼 응답하지 않게 거부 설정을 하는 것이 좋습니다.

# ok icmp codes for INPUT
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-input -p icmp --icmp-type source-quench -j ACCEPT
-A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT

/etc/ufw/before.rules 파일을 에디터로 열어 위 구문 앞에 #을 붙여 주석처리합니다.

ubuntu nic enable title
우분투 UFW 방화벽 설정 방법
우분투의 UFW는 방화벽을 쉽게 설정할 수 있게 하는 도구로 포트 및 IP, 어플리케이션에 대한 방화벽 설정을 할 수 있습니다. UFW…
win10 sound icon title
윈도우10 스피커 USB 헤드셋 전환 방법
윈도우10을 사용하면서 평소에 메인보드에 내장되어 있는 사운드카드에 스피커를 연결해 사용하다가 게임을 플레이 하면서 USB 헤드셋을 사용해야 할때 게임에서 사운드 장치를…
visualbasic60 title
윈도우10 vb6ko.dll 오류 해결 방법
THE LANGUAGE DLL ‘VB6KO.DLL’ COULD NOT BE FOUND 윈도우10에서 고전 게임이나 비주얼베이직 6.0으로 제작된 프로그램을 실행하는 경우 위와 같은 메시지와…
win10 remove defender context menu title
윈도우10 디펜더 트레이 아이콘 없애기
윈도우10에 기본으로 탑재된 백신 프로그램인 디펜더(Defender)는 별도의 백신 프로그램을 설치하지 않아도 중간 정도 가는 백신으로 필자도 별도의 백신 없이 사용하고…
win10 explorer mypc title
윈도우10 3D 개체 폴더 삭제 방법
윈도우10 Fall Creator (레드스톤3)에서 추가된 기능중 하나인 ‘그림판 3D’는 기존의 그림판에서 진화된 모던 앱 형태로 여러 브러쉬와 함께 3D 쉐이프…
How To Fix Windows 10 0x80070643 Update Error Title
윈도우10 0x80070643 업데이트 오류 해결 방법
윈도우10에서 업데이트를 하는 도중 0x80070643 메시지와 함께 업데이트가 되지 않는 경우가 있는데요. 이러한 문제는 .Net Framework 패키지가 손상된 경우, 또는 다운로드…