Ubuntu 및 Debian에 UFW 방화벽 설정하는 방법

A correctly functioning firewall is the most crucial part of the complete Linux system security. By default, Debian and Ubuntu distribution comes with a firewall configuration tool called UFW (Uncomplicated Firewall), is a most popular and easy-to-use command line tool for configuring and managing a firewall on Ubuntu and Debian distributions.

이 기사에서는 UFW 방화벽을 UbuntuDebian 배포판에 설치하고 설정하는 방법에 대해 설명하겠습니다.

전제 조건

이 기사를 시작하기 전에 sudo 사용자로 Ubuntu 또는 Debian 서버에 로그인했는지 또는 루트 계정으로 로그인했는지 확인하십시오. sudo 사용자가 없는 경우 다음 지침에 따라 루트 사용자로 만들 수 있습니다.

# adduser username
# usermod -aG sudo username 
# su - username
$ sudo whoami

Ubuntu 및 Debian에 UFW 방화벽 설치

UFW (간편한 방화벽)은 Ubuntu 및 Debian에 기본적으로 설치되어 있어야 합니다. 그렇지 않은 경우 다음 명령을 사용하여 APT 패키지 관리자를 통해 설치하십시오.

$ sudo apt install ufw

UFW 방화벽 확인

설치가 완료되면 다음을 입력하여 UFW 상태를 확인할 수 있습니다.

$ sudo ufw status verbose

첫 번째 설치시 UFW 방화벽은 기본적으로 비활성화되어 있으며 출력은 다음과 유사합니다.

Status: inactive

UFW 방화벽 활성화

다음 명령을 사용하여 UFW 방화벽을 활성화하거나 활성화할 수 있으며, 이 명령은 방화벽을 로드하고 부팅시 시작되도록 활성화합니다.

$ sudo ufw enable

UFW 방화벽 비활성화하려면 다음 명령을 사용하여 방화벽을 언로드하고 부팅시 시작되지 않도록 비활성화합니다.

$ sudo ufw disable 

UFW 기본 정책

기본적으로, UFW 방화벽은 모든 들어오는 연결을 거부하고, 서버로 的所有 外bound 연결을 허용한다. 这意味着, 除非 您 特定 port를 열고 있어야 하는 否则 没有人 可以 访问 您 的 服务器, 同时 运行 服务 或者 应用 您 的 服务器 可以 能够 访问 外部 网络。

The default UFW firewall policies are placed in the /etc/default/ufw file and can be altered using the following command.

$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing

UFW Application Profiles

When installing a software package using APT package manager, it will include an application profile in /etc/ufw/applications.d directory that defines the service and hold UFW settings.

You can list all available application profiles on your server using the following command.

$ sudo ufw app list

Depending upon software package installations on your system the output will look similar to the following:

Available applications:
  APACHE
  APACHE Full
  APACHE SECURE
  CUPS
  OpenSSH
  Postfix
  Postfix SMTPS
  Postfix Submission

If you want to get more information about a particular profile and defined rules you can use the following command.

$ sudo ufw app info 'Apache'
Profile: Apache
Title: Web Server 
Description: Apache V2 is the next generation f the omnipresent Apache web server.

Ports:
  80/tcp

Enable IPv6 with UFW

If your server is configured with IPv6, make sure that your UFW is configured with IPv6 and IPv4 support. To verify it, open the UFW configuration file using your favorite editor.

$ sudo vi /etc/default/ufw

Then make sure “IPV6” is set to "yes" in the configuration file as shown.

IPV6=yes

Save and quit. Then restart your firewall with the following commands:

$ sudo ufw disable
$ sudo ufw enable

Allow SSH Connections on UFW

지금까지 UFW 방화벽을 활성화한 경우 모든 들어오는 연결이 차단되며, 원격 위치에서 서버에 SSH로 연결되고 있으면 다시 연결할 수 없게 됩니다.

이를 방지하기 위해 다음 명령을 사용하여 서버에 SSH 연결을 활성화합니다.

$ sudo ufw allow ssh

사용자 정의 SSH 포트를 사용하는 경우 (예: 포트 2222) UFW 방화벽에서 해당 포트를 열어야 합니다.

$ sudo ufw allow 2222/tcp

모든 SSH 연결을 차단하려면 다음 명령을 입력하세요.

$ sudo ufw deny ssh/tcp
$ sudo ufw deny 2222/tcp  [If using custom SSH port]

UFW에서 특정 포트 활성화

특정 서비스로의 연결을 허용하기 위해 방화벽에서 특정 포트를 열 수도 있습니다. 예를 들어, 기본적으로 포트 80 (HTTP)와 443 (HTTPS)에서 수신 대기하는 웹 서버를 설정하려는 경우입니다.

아래는 Apache 서비스에 대한 수신 연결을 허용하는 몇 가지 예시입니다.

UFW에서 80번 포트(HTTP) 열기
$ sudo ufw allow http     [By service name]
$ sudo ufw allow 80/tcp   [By port number]
$ sudo ufw allow 'Apache' [By application profile]
UFW에서 443번 포트(HTTPS) 열기
$ sudo ufw allow https
$ sudo ufw allow 443/tcp
$ sudo ufw allow 'Apache Secure'

UFW에서 포트 범위 허용

일부 응용 프로그램을 일련의 포트(5000-5003)에서 실행하려는 경우, 다음 명령을 사용하여 이러한 포트를 모두 추가할 수 있습니다.

sudo ufw allow 5000:5003/tcp
sudo ufw allow 5000:5003/udp

특정 IP 주소 허용

특정 IP 주소 192.168.56.1에서 모든 포트로의 연결을 허용하려면 IP 주소 앞에 from을 지정해야 합니다.

$ sudo ufw allow from 192.168.56.1

특정 IP 주소에서 특정 포트로의 연결 허용

특정 포트(22 포트 예시)로부터 홈 머신의 IP 주소인 192.168.56.1으로 연결을 허용하려면, IP 주소 뒤에 임의의 포트포트 번호를 추가해야 합니다.

$ sudo ufw allow from 192.168.56.1 to any port 22

네트워크 서브넷을 특정 포트에 허용

192.168.1.1에서 192.168.1.254까지의 특정 IP 주소에 22 포트(SSH) 연결을 허용하려면 다음 명령을 실행하세요.

$ sudo ufw allow from 192.168.1.0/24 to any port 22

특정 네트워크 인터페이스에 연결 허용

특정 네트워크 인터페이스 eth222 포트(SSH) 연결을 허용하려면 다음 명령을 실행하세요.

$ sudo ufw allow in on eth2 to any port 22

UFW에서 연결 거부

기본적으로 모든 들어오는 연결은 차단되며, UFW에서 연결을 명시적으로 열지 않는 한 예외는 없습니다. 예를 들어, 포트 80443를 열었으며 웹 서버가 알 수 없는 네트워크 11.12.13.0/24로부터 공격을 받고 있다고 가정합니다.

이 특정 11.12.13.0/24 네트워크 범위에서 모든 연결을 차단하려면 다음 명령을 사용할 수 있습니다.

$ sudo ufw deny from 11.12.13.0/24

포트 80443에서 연결을 차단하려면 다음 명령을 사용할 수 있습니다.

$ sudo ufw deny from 11.12.13.0/24 to any port 80
$ sudo ufw deny from 11.12.13.0/24 to any port 443

UFW 규칙 삭제

UFW 규칙을 삭제하는 방법은 규칙 번호실제 규칙 두 가지가 있습니다.

규칙 번호를 사용하여 UFW 규칙을 삭제하려면 먼저 다음 명령을 사용하여 규칙을 번호로 나열해야 합니다.

$ sudo ufw status numbered
샘플 출력
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere

룰 번호 1을(를) 삭제하려면 다음 명령을 사용하세요.

$ sudo ufw delete 1

두 번째 방법은 실제 룰을 사용하여 룰을 삭제하는 것입니다. 예를 들어, 다음과 같이 프로토콜과 포트 번호를 지정하여 룰을 삭제할 수 있습니다.

$ sudo ufw delete allow 22/tcp

UFW 규칙 시뮬레이션

--dry-run 플래그를 사용하여 시스템 방화벽에 실제로 변경 사항을 적용하지 않고 UFW 명령을 실행할 수 있습니다. 이렇게 하면 변경 사항이 발생했을 것으로 예상되는 내용이 표시됩니다.

$ sudo ufw --dry-run enable

UFW 방화벽 초기화

어떤 이유에서든 방화벽 규칙을 모두 삭제하거나 초기화하려면 다음 명령을 입력하십시오. 이렇게 하면 모든 변경 사항이 취소되고 처음부터 다시 시작됩니다.

$ sudo ufw reset
$ sudo ufw status

UFW 고급 기능

UFW 방화벽은 iptables가 수행하는 모든 작업을 처리할 수 있습니다. 이는 단순한 iptables-restore 텍스트 파일인 서로 다른 규칙 파일 세트를 사용하여 수행할 수 있습니다.

UFW 방화벽의 조정 또는 추가적인 iptables 명령을 ufw 명령을 통해 허용하지 않으며, 다음 텍스트 파일을 수정하는 것만으로 가능합니다.

  • /etc/default/ufw: 미리 정의된 규칙이 있는 메인 구성 파일입니다.
  • /etc/ufw/before[6].rules: 이 파일에는 ufw 명령을 통해 추가하기 전에 규칙이 계산됩니다.
  • /etc/ufw/after[6].rules: 이 파일에는 ufw 명령을 통해 추가한 후에 규칙이 계산됩니다.
  • /etc/ufw/sysctl.conf: 이 파일은 커널 네트워크를 조정하는 데 사용됩니다.
  • /etc/ufw/ufw.conf: 이 파일은 부팅 시 ufw를 활성화합니다.

그게 다야! UFWiptables에 대한 훌륭한 프론트 엔드로, 단일 ufw 명령으로 복잡한 규칙을 정의하기 위한 사용자 친화적 인터페이스를 제공합니다.

이 ufw 문서에 대한 질문이나 생각이 있다면, 아래의 코멘트 양식을 사용하여 저희에게 연락해주세요.

Source:
https://www.tecmint.com/setup-ufw-firewall-on-ubuntu-and-debian/