Ubuntu 18.04에서 UFW를 사용하여 방화벽을 설정하는 방법

Ubuntu 18.04에서 UFW를 사용하여 방화벽을 설정하는 방법

2022-06-01 last update

9 minutes reading security iptables ubuntu firewall ufw
정확하게 배치된 방화벽은 전체 시스템 안전의 가장 중요한 부분 중의 하나이다.Ubuntu는 기본적으로 UFW(단순 방화벽)라는 방화벽 구성 도구를 제공합니다.UFW는 사용자의 우호적인 전단으로 iptables 방화벽 규칙을 관리하는 데 사용되는데 그 주요 목표는 iptables의 관리를 더욱 쉽거나 말 그대로 간단하게 하는 것이다.

선결 조건

본 강좌를 시작하기 전에sudo 권한이 있는 사용자 계정이나 루트 사용자를 사용하여 서버에 로그인해야 합니다.최선의 실천은 루트 사용자가 아닌 sudo 사용자로 관리 명령을 실행하는 것이다.Ubuntu 시스템에 sudo 사용자가 없으면 다음과 같은 방식으로 사용자를 만들 수 있습니다these instructions.
.

UFW 설치

기본적으로 Ubuntu 18.04에는 단순 방화벽이 설치되어 있어야 하지만 시스템에 설치되어 있지 않은 경우
sudo apt install ufw

UFW 상태 확인

를 입력하여 패키지를 설치할 수 있습니다. 설치가 완료되면 다음 명령을 사용하여 UFW의 상태를 확인할 수 있습니다.
sudo ufw status verbose
기본적으로 UFW를 비활성화합니다.이전에 UFW를 활성화한 적이 없는 경우 출력은 다음과 같습니다.
Status: inactive
UFW를 활성화한 경우 출력은 다음과 같습니다.

UFW 기본 정책

기본적으로 UFW는 모든 전송 연결을 막고 모든 출구 연결을 허용합니다.이것은 서버에 접근하려는 모든 사람이 연결할 수 없다는 것을 의미합니다. 이 포트를 열지 않으면 서버에서 실행되는 모든 응용 프로그램과 서비스가 외부 세계에 접근할 수 있습니다.기본 정책은 /etc/default/ufw 파일에 정의되어 있으며 sudo ufw default <policy> <chain> 명령을 사용하여 변경할 수 있습니다.방화벽 정책은 더욱 상세하고 사용자 정의 규칙을 구축하는 기초이다.대부분의 경우 초기 UFW 기본 정책은 좋은 출발점입니다.

응용 프로그램 프로필

패키지 apt 가 설치된 경우
명령은 /etc/ufw/applications.d 디렉토리에 응용 프로그램 구성 파일을 추가합니다.프로필 설명 서비스와 UFW 설정을 포함합니다.서버에서 사용할 수 있는 모든 응용 프로그램 구성 파일을 나열하려면 다음과 같이 입력하십시오.
sudo ufw app list
시스템에 설치된 패키지에 따라 다음과 같이 출력할 수 있습니다.
Available applications:
  Dovecot IMAP
  Dovecot POP3
  Dovecot Secure IMAP
  Dovecot Secure POP3
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH
  Postfix
  Postfix SMTPS
  Postfix Submission
특정 구성 파일과 규칙을 포함하는 더 많은 정보를 찾으려면다음 명령을 사용합니다.
sudo ufw app info 'Nginx Full'
Profile: Nginx Full
Title: Web Server (Nginx, HTTP + HTTPS)
Description: Small, but very powerful and efficient web server

Ports:
  80,443/tcp
Nginx Full 구성 파일에서 포트 열기 80443 위의 출력을 볼 수 있습니다.

SSH 연결 허용

UFW 방화벽을 사용하기 전에 SSH 연결을 전송할 수 있는 규칙을 추가해야 합니다.원격 위치에서 서버에 연결된 경우 거의 항상 그렇고 SSH 연결이 명시적으로 허용되기 전에 UFW 방화벽을 사용하면 Ubuntu 서버에 다시 연결할 수 없습니다.UFW 방화벽을 SSH 접속 허용으로 구성하려면
sudo ufw allow ssh
Rules updated
Rules updated (v6)
SSH 포트를 포트 22 대신 사용자 정의 포트로 변경하려면 포트를 열어야 합니다.예를 들어 ssh 수호 프로그램 탐지 포트 4422 를 사용하면 다음 명령을 사용하여 이 포트에 연결할 수 있습니다.
sudo ufw allow 4422/tcp

UFW 활성화

UFW 방화벽이 ssh 연결을 허용하도록 설정된 이상 (adsby Google = window.adsby google | | []) 를 입력하여 사용할 수 있습니다.푸시({});
sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
방화벽을 사용하면 기존 ssh 연결이 끊길 수 있다는 경고를 받습니다. y 를 입력하고 Enter 를 누르십시오.

다른 포트에 연결 허용

서버에서 실행되는 응용 프로그램과 사용자의 구체적인 수요에 따라 다른 포트에 대한 접근을 허용해야 합니다.다음은 가장 일반적인 서비스에 대한 전송 연결을 허용하는 방법에 대한 몇 가지 예시를 보여 드리겠습니다.

80-HTTP 포트 열기

다음 명령을 사용하여 HTTP 연결을 허용할 수 있습니다.
sudo ufw allow http
HTTP 대신 포트 번호 80
sudo ufw allow 80/tcp
을 사용할 수도 있고 응용 프로그램 프로필을 사용할 수도 있습니다."Nginx HTTP":
sudo ufw allow 'Nginx HTTP'

포트 443-HTTPS 열기

다음 명령을 통해 HTTP 연결을 허용할 수 있습니다.
sudo ufw allow https
프로필이 아닌 동일한 연결을 하려면 포트 번호를 사용할 수 있습니다. https:
sudo ufw allow 443/tcp
또는 실행할 경우 Tomcat 응용 프로그램 프로필 "Nginx HTTPS":
sudo ufw allow 'Nginx HTTPS'

포트 8080 열기


또는 포트443에서 연결을 전송할 수 있는 다른 모든 응용 프로그램 유형을 탐색합니다.
sudo ufw allow 8080/tcp

허용 포트 범위

단일 포트 UFW에 접근할 수 있는 것이 아니라 포트 범위에 접근할 수 있습니다.UFW의 포트 범위를 허용하려면 프로토콜8080 또는 tcp을 지정해야 합니다.예를 들어, udp7100 에서 7200 까지의 포트를 모두 허용하려면
sudo ufw allow 7100:7200/tcpsudo ufw allow 7100:7200/udp

특정 IP 주소 허용

를 실행하여 IP 주소가 64.63.62.61인 운영 컴퓨터에서 모든 포트에 액세스할 수 있도록 합니다.화이트리스트에 포함할 IP 주소 지정tcp
sudo ufw allow from 64.63.62.61

특정 포트의 특정 IP 주소 허용

IP 주소가 64.63.62.61인 작업 시스템에서 특정 포트에 액세스할 수 있도록 하려면 udp포트 번호를 사용하십시오.
sudo ufw allow from 64.63.62.61 to any port 22

서브넷 허용

IP 주소 서브넷에 연결할 수 있는 명령은 단일 IP 주소를 사용할 때와 같습니다.유일한 차이점은 네트워크 마스크를 지정해야 한다는 것이다.예를 들어, 192.168.1.1-192.168.1.254에서 포트 3360MySQL에 이르는 IP 주소에 액세스할 수 있도록 하려면
) 다음과 같은 명령을 사용할 수 있습니다.
sudo ufw allow from 192.168.1.0/24 to any port 3306

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

특정 포트에 액세스할 수 있습니다. 예를 들어 포트 3360 은 특정 네트워크 인터페이스 from 에만 액세스할 수 있습니다. 그리고 to any port 와 네트워크 인터페이스 이름을 지정해야 합니다.
sudo ufw allow in on eth2 to any port 3306

연결 거부

모든 전송 연결의 기본 정책은 eth2 으로 설정되어 있습니다. 변경하지 않으면,연결을 따로 켜지 않으면 UFW가 모든 연결을 차단합니다.포트 allow in ondeny 를 열었다면 서버가 80 네트워크의 공격을 받았을 것입니다.443로부터의 모든 연결을 거부하려면 다음과 같은 명령을 사용할 수 있습니다.
sudo ufw deny from 23.24.25.0/24
23.24.25.0/24로부터의 포트23.24.25.0/2480로부터의 접근만 거부하려면
sudo ufw deny from 23.24.25.0/24 to any port 80sudo ufw deny from 23.24.25.0/24 to any port 443
거부 규칙 작성과 허용 규칙 작성을 동일하게 하려면 443을(를) 23.24.25.0/24로 교체하십시오.

UFW 규칙 삭제

UFW 규칙을 삭제하는 데는 두 가지 방법이 있는데, 하나는 규칙에 따라 번호를 매기는 것이고, 다른 하나는 실제 규칙을 지정하는 것이다.규칙 번호에 따라 UFW 규칙을 삭제하는 것이 더 쉽습니다. 특히 UFW 초보자라면 더욱 쉽습니다.규칙 번호에 따라 규칙을 삭제하려면 먼저 삭제할 규칙 번호를 찾아야 합니다.
sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere
[ 3] 8080/tcp                   ALLOW IN    Anywhere
규칙 번호 3, 즉 포트 8080에 연결할 수 있는 규칙을 삭제하려면 다음 명령을 사용하십시오.
sudo ufw delete 3
두 번째 방법은 실제 규칙을 지정하여 규칙을 삭제하는 것입니다.예를 들어, 포트allow를 열기 위해 규칙을 추가한 경우 다음 명령을 사용하여 삭제할 수 있습니다.
sudo ufw delete allow 8069

UFW 비활성화

UFW를 중지하고 사용할 수 있는 모든 규칙을 비활성화하려면 다음을 입력하십시오.
sudo ufw disable

UFW 재설정

UFW를 재설정하면 UFW가 비활성화되고 모든 활성 규칙이 삭제됩니다.모든 변경 사항을 복원하고 다시 시작하려면 매우 유용합니다.UFW를 재설정하려면
sudo ufw enable

결론

Ubuntu 18.04 서버에 UFW 방화벽을 설치하고 구성하는 방법을 배웠습니다.시스템이 정상적으로 작동하는 데 필요한 모든 전송 연결을 허용하고 불필요한 연결을 제한해야 합니다.(adsbygoogle=window.adsbygoogle | |[]).푸시({});