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

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

2022-05-17 last update

11 minutes reading iptables ufw ubuntu firewall security
방화벽은 전송과 전송의 네트워크 흐름을 감시하고 필터하는 도구다.그것은 하나의 안전 규칙을 정의함으로써 작동한다. 이 규칙들은 특정한 유량을 허용할지 말지를 결정한다.Ubuntu에는 UFW(단순 방화벽)라는 방화벽 구성 도구가 포함되어 있습니다.이것은 iptables 방화벽 규칙을 관리하는 데 사용되는 사용자 친선적인 전단입니다.방화벽을 관리하기 쉽거나 말 그대로 간단하게 하는 것이 주요 목표다.본고는 UFW 도구를 사용하여 Ubuntu 20.04에서 방화벽을 설정하고 관리하는 방법을 소개한다.정확하게 배치된 방화벽은 전체 시스템 안전의 가장 중요한 부분 중의 하나다.

선결 조건

루트 사용자 또는 sudo privileges 사용자만 가능
시스템 방화벽을 관리할 수 있습니다.최선의 실천은 sudo 사용자의 신분으로 관리 작업을 실행하는 것이다.

UFW 설치

UFW는 표준 Ubuntu 20.04 설치의 일부로서 시스템에 나타나야 합니다.어떤 이유로 패키지가 설치되어 있지 않은 경우
sudo apt updatesudo apt install ufw

UFW 상태 확인

기본적으로 UFW를 비활성화하여 패키지를 설치할 수 있습니다.다음 명령을 사용하여 UFW 서비스의 상태를 확인할 수 있습니다.
sudo ufw status verbose
출력은 방화벽 상태를 비활성으로 표시합니다.
Status: inactive
UFW가 활성화되면 출력은 다음과 같이 표시됩니다.

UFW 기본 정책

UFW 방화벽의 기본 동작은 모든 전송과 전송을 차단하고 모든 아웃바운드 트래픽을 허용하는 것입니다.이것은 포트를 특별히 열지 않으면 서버에 접근하려는 모든 사람이 연결할 수 없다는 것을 의미합니다.서버에서 실행되는 응용 프로그램과 서비스는 외부 세계에 접근할 수 있을 것이다.기본 정책은 /etc/default/ufw 파일에 정의되어 있으며 수동으로 파일을 수정하거나 sudo ufw default <policy> <chain> 명령을 사용하여 변경할 수 있습니다.방화벽 정책은 더욱 복잡하고 사용자 정의 규칙을 구축하는 기초이다.일반적으로 초기 UFW 기본 정책은 좋은 시작점입니다.

응용 프로그램 프로파일

응용 프로그램 프로필은 INI 형식의 텍스트 파일로 서비스를 설명하고 서비스의 방화벽 규칙을 포함하는 데 사용됩니다.패키지를 설치하는 동안 응용 프로그램 구성 파일은 /etc/ufw/applications.d 디렉토리에 생성됩니다.
sudo ufw app list
을 입력하여 서버에서 사용할 수 있는 모든 어플리케이션 구성 파일을 나열할 수 있습니다. 시스템에 설치된 패키지에 따라 출력은 다음과 같습니다.
Available applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH
은 특정 구성 파일과 규칙에 대한 자세한 내용을 찾습니다."Nginx Full"구성 파일에서 포트 80443을 표시하려면 다음 명령을 사용하십시오.
sudo ufw app info 'Nginx Full'
에서는 응용 프로그램에 대한 사용자 정의 프로필을 만들 수도 있습니다.Ubuntu5610에서 원격 방화벽으로 명시적으로 연결하려면 먼저 Ubuntu5610에 대한 SSH 연결을 설정해야 합니다.그렇지 않으면 기계에 더 이상 연결할 수 없습니다.SSH 연결을 허용하도록 UFW 방화벽을 구성하려면 다음 명령을 입력합니다. (adsbyGoogle=window.adsbyGoogle | | []추진({});
Profile: Nginx Full
Title: Web Server (Nginx, HTTP + HTTPS)
Description: Small, but very powerful and efficient web server

Ports:
  80,443/tcp
sudo ufw allow ssh
SSH가 non-standard port에서 실행 중인 경우
, 너는 그 포트를 열어야 한다.예를 들어 ssh 수호 프로세스 탐지 포트 7722에 대해 다음 명령을 입력하면 이 포트의 연결을 허용합니다:
Rules updated
Rules updated (v6)
현재 방화벽은 ssh 연결을 허용하도록 설정되어 있습니다.
sudo ufw allow 7722/tcp
sudo ufw enable
을 입력해서 사용할 수 있습니다. 방화벽을 사용하면 기존 ssh 연결을 중단할 수 있습니다. y을 입력하고 Enter을 누르면 됩니다.

UFW 사용

은 시스템에서 실행되는 애플리케이션에 따라 다른 포트를 열어야 할 수도 있습니다.포트를 여는 일반적인 구문은 다음과 같습니다. HTTP 연결을 허용하는 몇 가지 방법입니다.첫 번째 옵션은 서비스 이름을 사용하는 것입니다.UFW 검사 /etc/services 파일에 지정된 서비스의 포트와 프로토콜:
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
포트 번호와 프로토콜도 지정할 수 있습니다.
ufw allow port_number/protocol
프로토콜이 제공되지 않은 경우 UFW는 tcpudp으로 규칙을 만듭니다.다른 선택은 응용 프로그램 프로필을 사용하는 것이다.이 예에서 "Nginx HTTP":
sudo ufw allow http
UFW는 proto 키워드를 사용하여 프로토콜을 지정하는 또 다른 구문을 지원합니다.
sudo ufw allow 80/tcp

항구 범위

UFW는 포트 범위를 열 수도 있습니다.시작 포트와 끝 포트는 콜론(:)으로 구분되며, 프로토콜 tcp 또는 udp을 지정해야 합니다.예를 들어 71007200tcp에서 udp까지의 포트를 허용하려면 다음 명령을 실행할 수 있습니다.
sudo ufw allow 'Nginx HTTP'

특정 IP 주소 및 포트

은 소스 IP의 모든 포트에 연결할 수 있도록 하려면 from 키워드를 사용하고 소스 주소를 따라가세요.다음은 IP 주소를 화이트리스트에 올린 예입니다.
sudo ufw allow proto tcp to any port 80
에서 지정한 IP 주소만 특정 포트에 접근할 수 있도록 하려면 to any port 키워드를 사용하고 포트 번호를 따라가세요.예를 들어 IP 주소가 22인 기계 액세스 포트 64.63.62.61을 허용하려면
sudo ufw allow 7100:7200/tcpsudo ufw allow 7100:7200/udp

서브넷

을 입력하여 IP 주소 서브넷에 연결할 수 있는 문법은 하나의 IP 주소를 사용할 때와 같다.유일한 차이점은 네트워크 마스크를 지정해야 한다는 것이다.다음은 192.168.1.1에서 192.168.1.254까지 IP 주소를 액세스할 수 있는 예입니다.
): 3360 키워드와 네트워크 인터페이스 이름:
sudo ufw allow from 64.63.62.61

개항장

모든 수신 연결에 대한 기본 정책은 in on으로 설정하고 수신 연결을 변경하지 않으면 모든 수신 연결을 차단합니다.작성 거부 규칙은 작성 허용 규칙과 같다.deny 키워드가 아닌 deny을 사용하십시오.포트 allow80을 열었다고 가정하면 서버가 443 네트워크에서 공격을 받았습니다.23.24.25.0/24으로부터의 모든 연결을 거부하려면 다음 명령을 실행해야 합니다.
sudo ufw allow from 64.63.62.61 to any port 22
23.24.25.0/24에서 포트 80443에 대한 액세스만 거부하는 예입니다.
sudo ufw allow from 192.168.1.0/24 to any port 3306

연락 거부

은 두 가지 방법으로 규칙 번호와 실제 규칙에 따라 UFW 규칙을 삭제할 수 있습니다.규칙 번호에 따라 규칙을 삭제하는 것이 더 쉽습니다. 특히 UFW를 처음 접했을 때 더욱 쉽습니다.먼저 규칙 번호에 따라 규칙을 삭제하려면 삭제할 규칙 번호를 찾아야 한다.번호 규칙의 목록을 보려면 23.24.25.0/24 명령:
sudo ufw allow in on eth2 to any port 3306
sudo ufw deny from 23.24.25.0/24
규칙 번호 ufw status numbered 삭제, 즉 포트 3에 연결할 수 있는 규칙을 입력하십시오.
sudo ufw deny proto tcp from 23.24.25.0/24 to any port 80,443
두 번째 방법은 실제 규칙을 지정하여 규칙을 삭제하는 것입니다.예를 들어 포트 8080을 열려면
sudo ufw status numbered

UFW 규칙 삭제

을 사용해서 삭제할 수 있습니다. 어떤 이유로든 UFW를 중지하고 모든 규칙을 정지하려면 다음과 같이 사용하십시오: (adsbyGoogle=window.adsbyGoogle | | [].추진({});
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere
[ 3] 8080/tcp                   ALLOW IN    Anywhere
잠시 후 UTF를 다시 사용하고 모든 규칙을 활성화하려면
sudo ufw delete 3

UFW 비활성화

UFW를 재설정하면 UFW가 비활성화되고 활성화된 모든 규칙이 삭제됩니다.모든 변경 사항을 복구하고 다시 시작하려면 유용합니다.UFW를 재설정하려면 다음 명령을 입력합니다.
sudo ufw delete allow 8069

UFW 재설정

IP는 Linux 커널의 NAT(네트워크 주소 변환) 변형으로 위장하고 소스와 대상 IP 주소와 포트를 다시 써서 네트워크 트래픽을 변환합니다.IP 위장을 통해 전용 네트워크의 한 대 또는 여러 대의 기계가 인터넷 스위치를 충당하는 리눅스 기계를 사용하여 인터넷과 통신할 수 있습니다.UFW를 사용하여 IP 위장을 구성하려면 몇 가지 절차가 필요합니다.먼저 IP 전송을 설정해야 합니다.이를 위해 8069 파일을 엽니다:
sudo ufw disable
. 주석 /etc/ufw/sysctl.conf:/etc/ufw/sysctl 줄을 찾고 취소합니다.conf
sudo ufw enable
다음에 전달할 수 있도록 UFW를 구성해야 합니다.UFW 프로필 열기:
sudo ufw reset
에서 net.ipv4.ip_forward = 1 키를 찾았고 값을 DEFAULT_FORWARD_POLICY에서 DROP:/etc/default/UFW
sudo nano /etc/ufw/sysctl.conf
으로 변경했습니다. 현재 ACCEPT 표에서 POSTROUTING 체인에 기본 정책과 위장 규칙을 설정해야 합니다.이를 위해 nat 파일을 열고 노란색으로 돋보이는 줄을 추가하십시오. 아래와 같습니다:
net/ipv4/ip_forward=1
다음 줄을 추가합니다:/etc/ufw/before.규칙
sudo nano /etc/default/ufw
/etc/ufw/before.rules 줄의 eth0을 공공 네트워크 인터페이스의 이름과 일치하는 것으로 바꾸는 것을 잊지 마십시오. 완성된 후에 파일을 저장하고 닫습니다.마지막으로 UFW를 비활성화하고 다시 사용함으로써 UFW 규칙을 다시 불러옵니다:
DEFAULT_FORWARD_POLICY="ACCEPT"

IP 위장

Ubuntu 20.04 서버에 UFW 방화벽을 설치하고 설정하는 방법을 보여 드리겠습니다.시스템이 정상적으로 작동하는 데 필요한 모든 전송 연결을 허용하고 불필요한 연결을 제한해야 합니다.이 항목에 대한 자세한 내용은 MySQL을 참조하십시오.
.