웹사이트 검색

Ubuntu 20.04에서 UFW(복잡하지 않은 방화벽) 시작하기


이 페이지에서

  1. 전제 조건
  2. UFW 설치
  3. 기본 UFW 명령
  4. UFW 허용 및 거부 명령\n
  5. 고급 UFW 명령
  6. UFW 방화벽 규칙 삭제\n
  7. UFW 비활성화 및 재설정\n
  8. 결론

UFW 또는 복잡하지 않은 방화벽은 Ubuntu에서 iptables 기반 방화벽을 관리하는 애플리케이션입니다. UFW는 Ubuntu Linux용 기본 방화벽 구성 도구이며 사용자에게 친숙한 방화벽 구성 방법을 제공합니다. UFW 명령은 영어와 동일하므로 명령을 기억하기 쉽습니다. UFW 방화벽은 IPv4 및 IPv6을 지원합니다.

UFW는 GUI 응용 프로그램도 제공합니다. GNOME 데스크탑을 사용하는 경우 gufw를 설치하거나 KDE 데스크탑을 사용하는 경우 kcm-ufw를 설치할 수 있습니다.

전제 조건

  • Ubuntu 버전 15.04~21.04. 최신 Ubuntu 버전도 작동합니다.\n
  • 루트 권한\n

이 튜토리얼에서 다루는 내용은 무엇입니까?

  1. UFW 설치.
  2. 기본 UFW 명령 구문.
  3. UFW 허용 및 거부 명령.\n
  4. 고급 UFW 명령.
  5. UFW에서 규칙 삭제.
  6. UFW를 비활성화하고 재설정합니다.\n

UFW 설치

기본적으로 UFW는 우분투 20.04에 이미 설치되어 있어야 합니다. 다음 명령으로 이를 테스트할 수 있습니다.

which ufw

명령에 대한 경로를 반환하지 않으면 다음 apt 명령을 사용하여 UFW를 설치합니다.

sudo apt-get install ufw

다음 명령의 경우 sudo 또는 루트 권한을 사용하십시오. 다음 명령을 사용하여 루트 사용자가 될 수 있습니다.

sudo -s

그런 다음 다음 명령을 실행하여 UFW를 활성화합니다.

ufw enable

결과:

Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

기본 UFW 명령

\ufw enable\ 명령은 기본 규칙으로 UFW를 켭니다. 다음 명령을 실행하여 UFW가 실행 중인지 확인할 수 있습니다.

ufw status verbose

결과:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

UFW를 비활성화하거나 끄려면 다음을 사용할 수 있습니다.

ufw disable

결과:

Firewall stopped and disabled on system startup

UFW 허용 및 거부 명령

1. UFW 허용 명령

UFW는 전원을 켠 후 들어오는 모든 연결을 거부합니다. 따라서 시스템을 원격으로 관리하려는 경우 가장 먼저 해야 할 일은 서버에 대한 SSH 액세스를 허용하는 것입니다. "ufw allow sshport" 명령은 SSH를 통한 액세스를 허용하고 SSHPORT를 SSH 서비스의 포트로 바꿉니다. 기본 SSH 포트는 22입니다.

ufw allow 22

결과:

Rules updated
Rules updated (v6) #For IPv6

TCP에 대해서만 포트 22에서 들어오는 연결을 허용하려면 다음 예와 같이 "/tcp" 명령 끝에 추가하십시오.

ufw allow 22/tcp

액세스를 허용하려는 서비스가 기본 포트에서 수신하는 경우 포트 번호 대신 서비스 이름을 사용할 수 있습니다. 이렇게 하면 포트를 모를 수 있으므로 포트를 쉽게 열 수 있습니다. UFW는 /etc/services에서 올바른 포트 번호를 조회합니다.

이 명령은 기본 SSH 포트를 엽니다.

ufw allow ssh

이제 다음을 사용하여 규칙을 확인하십시오.

ufw status

2. UFW 거부 명령

"deny" 명령은 "allow" 명령과 유사하게 작동하며 방화벽에서 포트를 닫는 데 사용됩니다.

포트 옵션으로 거부:

ufw deny 80

결과:

Rule added
Rule added (v6)

서비스 이름이 있는 \거부\의 예. 이 예에서는 http port/80을 차단합니다.

ufw deny http

참고:

"/etc/services" 파일에서 모든 포트와 해당 서비스 이름을 볼 수 있습니다.

고급 UFW 명령

이제 UFW 명령 구문을 더 깊이 파고들고 부분 범위를 허용하는 방법(예: FTP 패시브 포트 및 하나의 IP 또는 서브넷에서만 액세스를 허용하는 방법)을 알아봅니다.

1. 포트 범위 허용

UFW에서 다양한 포트를 허용할 수 있습니다. FTP 또는 IRC와 같은 일부 서비스는 다양한 포트를 사용하여 클라이언트와 통신합니다.

이 예에서는 내 서버에서 ircd가 사용하는 포트 범위를 포트 6660~6670으로 허용합니다.

sudo ufw allow 6660:6670/tcp
sudo ufw allow 6660:6670/udp

이 명령은 TCP 및 UDP 프로토콜을 통해 포트 6660-6670에 대한 연결을 허용합니다.

2. 특정 IP 주소 허용

그리고 "from" 옵션을 추가하여 특정 IP를 추가하여 모든 서비스에 대한 액세스를 허용할 수 있습니다. 예를 들어 집이나 사무실에 고정 IP가 있고 거기에서 서버의 모든 서비스에 대한 액세스를 허용하려는 경우에 유용합니다. 아래 명령은 IP 192.168.1.106이 서버의 모든 포트에 액세스하도록 허용합니다.

ufw allow from 192.168.1.106

결과:

Rule added

3. 서브넷 허용

서브넷의 모든 IP 주소를 허용하려면 다음과 같이 UFW 명령에 IP 서브넷(IP 주소 범위)을 추가할 수 있습니다.

ufw allow from 192.168.1.1/24

결과:

WARN: Rule changed after normalization
Rule added

4. 특정 IP 주소에서 하나의 포트로 접근 허용

특정 IP에서만 한 포트에 대한 액세스를 허용하려면 위에서 배운 UFW 명령을 결합할 수 있습니다.

예를 들어 IP 192.168.1.106ssh 포트 22 tcp에 액세스할 수 있고 다른 IP는 해당 포트에서 거부됩니다. 다음 명령을 사용할 수 있습니다. :

ufw allow from 192.168.1.106 proto tcp to any port 22

결과:

Rule added

5. 특정 포트로 들어오는 모든 트래픽 허용

포트 80에서 모든 트래픽을 허용하려면 다음 명령을 사용할 수 있습니다.

ufw allow to any port 80

UFW 방화벽 규칙 삭제

이 섹션에서는 UFW에 저장된 규칙을 삭제하는 방법을 배웁니다. ufw 규칙을 삭제하려면 "delete" 명령을 사용할 수 있습니다. "ufw delete" 명령을 입력한 다음 삭제하려는 옵션 허용 또는 거부를 입력하십시오.

여기 예시들이 있습니다 :

서비스 이름이 있는 허용 SSH 규칙 삭제:

ufw delete allow ssh

결과:

Rule deleted
Rule deleted (v6)

이 명령은 "allow ssh" 규칙을 삭제합니다. 서버에서 자신을 잠그지 마십시오.

포트 80에서 "거부" 규칙을 삭제합니다.

ufw delete deny 80

결과:

Rule deleted
Rule deleted (v6)

복잡한 규칙이 있는 경우 규칙 ID로 규칙을 식별하고 삭제할 수 있는 간단한 방법이 있습니다. 다음 명령을 실행하여 해당 ID가 있는 모든 규칙 목록을 가져옵니다.

ufw status numbered

결과:

Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 22/tcp (v6)                ALLOW IN    Anywhere (v6)

이제 규칙 번호를 사용하여 IPv6용 SSH 규칙만 삭제합니다.

ufw delete 2

UFW 비활성화 및 재설정

규칙을 삭제하지 않고 UFW를 끄려면 "비활성화" 명령을 사용할 수 있습니다.

ufw disable

결과:

Firewall stopped and disabled on system startup

UFW를 완전히 끄고 모든 규칙을 삭제하려면 "재설정" 명령을 사용할 수 있습니다.

ufw reset

결과:

Resetting all rules to installed defaults. This may disrupt existing ssh
connections. Proceed with operation (y|n)? y
Backing up 'after6.rules' to '/etc/ufw/after6.rules.20150918_190351'
Backing up 'user.rules' to '/lib/ufw/user.rules.20150918_190351'
Backing up 'after.rules' to '/etc/ufw/after.rules.20150918_190351'
Backing up 'before.rules' to '/etc/ufw/before.rules.20150918_190351'
Backing up 'before6.rules' to '/etc/ufw/before6.rules.20150918_190351'
Backing up 'user6.rules' to '/lib/ufw/user6.rules.20150918_190351'

결론

UFW(복잡하지 않은 방화벽)는 Ubuntu의 기본 방화벽 구성 도구입니다. UFW 명령은 영어와 유사하므로 사용하고 기억하기 쉽습니다. 이 UFW 튜토리얼은 이 멋진 방화벽 도구를 시작하기 위한 가이드입니다. UFW에 대해 더 알고 싶다면 ufw-manpage로 이동할 수 있습니다.