웹사이트 검색

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


올바르게 작동하는 방화벽은 전체 Linux 시스템 보안에서 가장 중요한 부분입니다. 기본적으로 Debian 및 Ubuntu 배포판에는 UFW(복잡하지 않은 방화벽)라는 방화벽 구성 도구가 함께 제공됩니다. UbuntuDebian 배포판에서 방화벽을 관리합니다.

이 문서에서는 UbuntuDebian 배포판에 UFW 방화벽을 설치하고 설정하는 방법을 설명합니다.

전제 조건

이 문서를 시작하기 전에 sudo 사용자 또는 루트 계정으로 Ubuntu 또는 Debian 서버에 로그인했는지 확인하세요. sudo 사용자가 없으면 다음 지침에 따라 루트 사용자로 사용자를 생성할 수 있습니다.

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

Ubuntu 및 Debian에 UFW 방화벽 설치

Ubuntu 및 Debian에는 UFW(복잡하지 않은 방화벽)가 기본적으로 설치되어 있어야 하며, 그렇지 않은 경우 다음 명령을 사용하여 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 방화벽은 들어오는 모든 연결을 거부하고 서버에 대한 모든 아웃바운드 연결만 허용합니다. 즉, 포트를 특별히 열지 않는 한 누구도 서버에 액세스할 수 없지만 서버에서 실행 중인 모든 서비스나 애플리케이션은 외부 네트워크에 액세스할 수 있습니다.

기본 UFW 방화벽 정책은 /etc/default/ufw 파일에 있으며 다음 명령을 사용하여 변경할 수 있습니다.

sudo ufw default deny incoming
sudo ufw default allow outgoing

UFW 응용 프로그램 프로필

APT 패키지 관리자를 사용하여 소프트웨어 패키지를 설치할 때 서비스를 정의하고 UFW 설정을 유지하는 /etc/ufw/applications.d 디렉토리에 애플리케이션 프로필이 포함됩니다.

다음 명령을 사용하면 서버에서 사용 가능한 모든 애플리케이션 프로필을 나열할 수 있습니다.

sudo ufw app list

시스템의 소프트웨어 패키지 설치에 따라 출력은 다음과 유사하게 나타납니다.

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

특정 프로필 및 정의된 규칙에 대한 자세한 정보를 얻으려면 다음 명령을 사용할 수 있습니다.

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

UFW로 IPv6 활성화

서버가 IPv6으로 구성된 경우 UFWIPv6IPv4 지원으로 구성되어 있는지 확인하세요. 이를 확인하려면 선호하는 편집기를 사용하여 UFW 구성 파일을 엽니다.

sudo vi /etc/default/ufw

그런 다음 그림과 같이 구성 파일에서 “IPV6”"yes"로 설정되어 있는지 확인하세요.

IPV6=yes

저장하고 종료합니다. 그런 다음 다음 명령을 사용하여 방화벽을 다시 시작하십시오.

sudo ufw disable
sudo ufw enable

UFW에서 SSH 연결 허용

지금까지 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 주소 앞에부터 지정해야 합니다.

sudo ufw allow from 192.168.56.1

특정 포트에서 특정 IP 주소 허용

IP 주소가 192.168.56.1인 가정용 컴퓨터에서 특정 포트(예: 포트 22)에 대한 연결을 허용하려면 모든 포트<를 추가해야 합니다.과 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

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

특정 포트 22(SSH)에 대해 특정 네트워크 인터페이스 eth2에 대한 연결을 허용하려면 다음 명령을 실행합니다.

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를 활성화합니다.

그게 다야! UFW는 단일 ufw 명령으로 복잡한 규칙을 정의할 수 있는 사용자 친화적인 인터페이스를 갖춘 iptables의 뛰어난 프런트 엔드입니다.

이 ufw 기사에 대해 공유할 질문이나 생각이 있으면 아래 의견 양식을 사용하여 우리에게 연락하십시오.