방화벽(Firewall)은 미리 정의된 보안 규칙에 기반한, 들어오고 나가는 네트워크 트래픽을 모니터링하고 제어하는 네트워크 보안 시스템*이다.
일반적으로 신뢰할 수 있는 내부 네트워크, 신뢰할 수 없는 외부 네트워크(예: 인터넷) 간의 장벽을 구성한다.
외부로 부터 내부망을 보호하기 위한 네트워크 구성요소의 하나로 서로 다른 네트워크를 지나는 데이터를 허용하거나 거부하거나 검열, 수정하는 하드웨어나 소프트웨어 장치이다.
방화벽은 아래 도입의 필요성에 의해 도입되었다.
한계
대응 방안
UFW(Uncomplicated Firewall)은 데비안 계열 및 다양한 리눅스 환경에서 작동되어 사용하기 쉽게 설계된 넷필터 방화벽을 관리하는 프로그램이다.
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install ufw
UFW는 설치 후 기본적으로 비활성화 상태이다. 따라서 이를 활성화 시켜줘야 한다.
UFW 활성화
$ sudo ufw enable
UFW 비활성화
$ sudo ufw disable
UFW 상태 확인
$ sudo ufw status verbose
UFW에서 기본적으로 설정할 수 있는 룰은 다음과 같다.
기본 룰 확인
$ sudo ufw show raw
기본 룰 차단 (deny)
$ sudo ufw default deny
기본 룰 허용 (allow)
$ sudo ufw default allow
어떤 포트를 열어주고 어떤 IP를 차단하고 허용할지 설정해는 주는 과정이다.
만약 SSH의 기본 포트인 22번을 예시로 든다면,
SSH 포트(tcp/udp 모두)를 모든 사용자가 접속할 수 있도록 허용
$ sudo ufw allow 22
SSH 포트(tcp/udp 모두)를 아무도 접근할 수 없도록 설정
$ sudo ufw deny 22
SSH 포트를 IP 주소 123.456.789.0 사용자만 접속할 수 있도록 허용
$ sudo ufw allow from 123.456.789.0 to any port 22
만약 기본 정책이 allow라면 다른 IP에서는 22 포트에 접속이 가능하지만, 123.456.789.0 사용자는 22 포트에 접속 불가능
$ sudo ufw deny from 123.456.789.0 to any port 22
$ sudo ufw deny 22/tcp
가 설정이 되어있다고 가정하였을 때, UFW 룰 삭제
$ sudo ufw delete deny 22/tcp
특정 IP의 모든 포트 접근 자체를 거부할 수도 수락할 수도 있다.
특정 IP (1개)에 대해 모든 포트 허용
$ sudo ufw allow from 123.456.789.0
특정 IP 대역 ex) 123.456.789.0 ~ 123.456.789.255 까지 모두 다 포트 접근 허용
$ sudo ufw allow from 123.456.789.0/24
123.456.789.0dml 22번 포트 중 tcp 기능만 허용
$ sudo ufw allow from 123.456.789.0 to any port 22 proto tcp
/etc/services
에 지정되어 있는 서비스 명과 포트를 이용해 UFW를 설정할 수 있다.
서비스 명 보기
$ less /etc/services
서비스 명으로 허용
$ sudo ufw allow <service name>
ex) SSH 서비스 허용, 차단
$ sudo ufw allow ssh
$ sudo ufw deny ssh
$ sudo ufw logging on
$ sudo ufw logging off
UFW 룰들에 숫자를 붙여 볼 수 도 있다. 이를 이용해 룰에 수정이나 삭제, 추가도 가능하다.
UFW number 보기
$ sudo ufw status numbered
UFW numbered 수정
$ sudo ufw delete 1
$ sudo ufw insert 1 allow from 123.456.789.0
참고
https://ko.wikipedia.org/wiki/%EB%B0%A9%ED%99%94%EB%B2%BD_(%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%82%B9)
https://m.blog.naver.com/scw0531/221479042618
https://help.ubuntu.com/community/UFW