데비안 12, 11, 10에 UFW를 설치하는 방법

UFW(Uncomplicate Firewall)는 Linux 시스템에서 방화벽 규칙을 관리하기 위한 간단한 도구입니다. 방화벽 구성 프로세스를 단순화하여 기존 iptables가 어렵다고 생각하는 신규 사용자에게 특히 유용합니다. UFW는 간단한 명령을 통해 방화벽 규칙을 만들고 관리하는 쉬운 방법을 제공하여 액세스 가능하고 효과적입니다.

UFW의 기술적 특징은 다음과 같습니다:

  • 사용의 용이성: 일반적인 방화벽 작업에 대한 명령이 단순화되었습니다.
  • 사전 구성된 프로필: 공통 서비스에 대한 프로필을 제공합니다.
  • 벌채 반출: 활동을 모니터링하기 위해 로그를 쉽게 구성할 수 있습니다.
  • IPv6 지원: IPv6를 완벽하게 지원합니다.
  • 확장 가능: 고급 설정을 위해 추가 규칙을 추가하여 확장할 수 있습니다.

새로운 사용자의 경우 UFW는 강력한 보안 기능을 제공하면서도 복잡성을 숨기기 때문에 iptables보다 더 나은 경우가 많습니다. 이를 통해 사용자는 iptables의 자세한 구문과 작동을 이해하지 않고도 방화벽 규칙을 빠르게 설정할 수 있으므로 오류 가능성이 줄어듭니다.

이 가이드는 데비안 12, 11, 10에서 UFW를 설치하고 구성하는 방법을 보여주며 방화벽을 효과적으로 관리하는 데 도움이 되는 기본 명령과 팁을 다룹니다.

APT 명령을 통해 UFW(복잡하지 않은 방화벽) 설치

Debian Linux와 명령 터미널을 처음 사용하는 경우 방화벽으로 시스템을 보호하는 방법을 배우는 것이 어려울 수 있습니다. 다행히 데비안 사용자는 UFW(Uncomplicated Firewall)를 쉽게 사용하여 시스템 보안을 관리할 수 있습니다.

UFW를 설치하기 전에 설치 중 충돌을 피하기 위해 시스템이 최신 상태인지 확인하는 것이 중요합니다. 다음 명령을 실행하여 시스템을 업데이트하십시오.

sudo apt update && sudo apt upgrade

Linux 커널이 업데이트된 경우 시스템을 재부팅해야 할 수도 있습니다.

시스템이 업데이트되면 다음 명령을 실행하여 UFW를 설치할 수 있습니다:

sudo apt install ufw

Ubuntu와 같은 다른 Debian 기반 배포판과 달리 UFW는 Debian에 기본적으로 설치되지 않습니다. 따라서 UFW를 수동으로 설치하는 것이 중요합니다.

UFW를 설치한 후 다음 명령을 실행하여 서비스를 활성화해야 합니다:

sudo systemctl enable ufw --now

이 명령은 부팅 시 UFW 서비스를 활성화하여 다시 시작한 후에도 시스템이 보호된 상태로 유지되도록 합니다.

마지막으로 UFW가 오류 없이 실행되고 있는지 확인하기 위해 UFW의 상태를 확인하는 것이 중요합니다. 다음 명령을 실행하여 UFW 서비스의 상태를 확인할 수 있습니다:

systemctl status ufw

위의 명령을 실행하면 UFW가 성공적으로 설치되었으며 올바르게 실행되는지 확인했습니다. 다음 단계에서는 UFW를 사용하여 시스템을 보호하는 방법을 살펴보겠습니다.

UFW 방화벽 활성화

이제 UFW가 설치되어 실행되고 있으므로 방화벽이 활성화됩니다. 기본적으로 UFW는 들어오는 모든 트래픽을 차단하고 모든 나가는 트래픽을 허용합니다. 방화벽을 활성화하면 무단 액세스를 차단하여 시스템을 계속 보호할 수 있습니다.

UFW를 활성화하려면 다음 명령을 실행하십시오:

sudo ufw enable

명령을 실행하면 방화벽이 활성화되어 시스템을 다시 시작할 때마다 자동으로 시작된다는 확인 메시지가 표시됩니다. 다음은 출력 예입니다.

Firewall is active and enabled on system startup

방화벽이 활성화되면 시스템으로 들어오는 모든 트래픽을 차단하여 무단 액세스로부터 사용자를 보호합니다. 그러나 이로 인해 필요한 서비스에 대한 액세스와 같은 일부 합법적인 트래픽이 차단될 수도 있다는 점은 주목할 가치가 있습니다.

UFW 상태 확인

UFW 방화벽을 활성화한 후에는 규칙이 활성화되어 있고 올바르게 구성되었는지 확인하는 것이 중요합니다. 다음 명령을 사용하여 방화벽 상태를 확인할 수 있습니다.

sudo ufw status verbose

이 명령을 실행하면 활성 규칙과 들어오고 나가는 트래픽에 대해 설정된 기본 정책을 포함하여 방화벽의 현재 상태가 표시됩니다.

방화벽 규칙을 더욱 간결하게 보려면 "번호 매기기" 옵션을 대신 사용할 수 있습니다. 이 옵션은 번호가 매겨진 순서로 방화벽 규칙을 표시하므로 규칙을 더 쉽게 식별하고 관리할 수 있습니다. 번호가 매겨진 순서대로 방화벽 규칙을 나열하려면 다음 명령을 사용하십시오.

sudo ufw status numbered

번호가 매겨진 출력에는 규칙이 보다 체계적으로 표시되므로 규칙을 더 쉽게 식별하고 관리할 수 있습니다. 규칙 번호를 사용하여 "삭제" 명령을 사용하여 특정 규칙을 수정하거나 삭제할 수 있습니다.

결론적으로 시스템을 무단 액세스로부터 보호하려면 방화벽 상태를 확인하는 것이 필수적입니다. 이 단계에 설명된 명령을 사용하면 UFW 방화벽의 상태를 빠르게 확인하고 잘못된 구성을 식별할 수 있습니다.

UFW 기본 정책 설정

UFW 방화벽의 기본 설정은 들어오는 모든 연결을 차단하고 모든 나가는 연결을 허용하는 것입니다. 이 구성은 승인되지 않은 사용자가 명시적인 허가 없이 시스템에 연결할 수 없도록 보장하므로 가장 안전합니다. 들어오는 연결을 허용하려면 IP 주소, 프로그램, 포트 또는 이러한 요소의 조합을 기반으로 트래픽을 허용하는 특정 규칙을 만들어야 합니다.

UFW 규칙을 수정하려면 터미널에 다음 명령을 입력하면 됩니다.

들어오는 모든 연결을 거부하려면:

sudo ufw default deny incoming

모든 나가는 연결을 허용하려면:

sudo ufw default allow outgoing

기본적으로 UFW는 이미 기본 규칙으로 활성화되어 있습니다. 그러나 특정 요구 사항에 맞게 이러한 규칙을 수정할 수 있습니다. 예를 들어, 나가는 연결을 모두 차단하고 특정 아웃바운드 연결만 허용하려는 경우 다음 명령을 사용하여 그에 따라 규칙을 조정할 수 있습니다.

나가는 모든 연결을 차단하려면:

sudo ufw default deny outgoing

기본 UFW 방화벽 정책을 찾아야 하는 경우 /etc/default/ufw 파일에서 찾을 수 있다는 점은 주목할 가치가 있습니다. 이 파일에는 들어오고 나가는 트래픽에 대한 기본 정책을 포함하여 UFW에 대한 구성 설정이 포함되어 있습니다. 이 파일의 설정을 수정하면 특정 보안 요구 사항에 맞게 방화벽 규칙을 사용자 정의할 수 있습니다.

추가 UFW 명령

다음 섹션에서는 UFW의 기본 측면 중 일부를 다룰 것입니다. 기본적으로 대부분의 데스크톱 사용자는 단순히 들어오는 연결을 차단하고 모든 나가는 트래픽을 허용함으로써 이점을 얻을 수 있으며 이는 대부분의 환경에 적합합니다. 그러나 UFW는 데스크탑과 서버에 유용한 추가 구성을 제공합니다. UFW로 할 수 있는 일의 몇 가지 예가 아래에 나와 있습니다.

UFW 응용 프로그램 프로필 보기

UFW를 통해 사용할 수 있는 응용 프로그램 프로필에 대해 더 자세히 알아보고 싶다면 다음 명령을 실행하여 해당 프로필을 볼 수 있습니다:

sudo ufw app list

그러면 사용 가능한 모든 애플리케이션 프로필 목록이 표시됩니다. 응용 프로그램 목록은 시스템에 설치한 소프트웨어에 따라 달라질 수 있다는 점을 기억하는 것이 중요합니다.

UFW 응용 프로그램 프로필의 유용한 기능 중 하나는 특정 프로필에 대한 추가 정보를 얻는 것입니다. 이렇게 하려면 다음 명령을 실행하십시오.

sudo ufw app info [application]

[application]을 자세히 알아보려는 이름으로 바꾸세요. 이 명령은 애플리케이션과 애플리케이션이 사용하는 포트에 대한 간략한 설명을 제공합니다. 이는 열린 포트를 조사하고 해당 포트가 속한 애플리케이션을 확인하려고 할 때 유용합니다.

UFW에서 IPv6 활성화

데비안 시스템이 IPv6로 구성되어 있으면 UFW가 IPv6 및 IPv4 트래픽을 지원하도록 구성되어 있는지 확인해야 합니다. 기본적으로 UFW는 두 버전의 IP에 대한 지원을 자동으로 활성화해야 합니다. 그러나 이를 확인하는 것이 좋습니다.

이렇게 하려면 다음 명령을 사용하여 기본 UFW 방화벽 파일을 엽니다.

sudo nano /etc/default/ufw

파일이 열리면 다음 줄을 찾으십시오.

IPV6=yes

값이 "no"로 설정된 경우 "yes"로 변경하고 를 눌러 파일을 저장합니다. CTRL+O 그런 다음 CTRL+X 나가기 위해서.

파일을 변경한 후 변경 사항을 적용하려면 UFW 방화벽 서비스를 다시 시작해야 합니다. 이렇게 하려면 다음 명령을 실행하십시오.

sudo systemctl restart ufw

그러면 새로운 구성으로 UFW 방화벽 서비스가 다시 시작되어 IPv6 트래픽 지원이 활성화됩니다.

UFW SSH 연결 허용

SSH(Secure Shell)는 Linux 서버에 원격으로 액세스하는 데 중요합니다. 그러나 기본적으로 UFW는 SSH 연결을 허용하지 않습니다. 특히 방화벽을 원격으로 활성화한 경우에는 방화벽이 잠겨 있을 수 있으므로 문제가 될 수 있습니다. SSH 연결을 허용하려면 다음 단계를 따라야 합니다.

먼저 다음 명령을 입력하여 SSH 애플리케이션 프로필을 활성화합니다.

sudo ufw allow ssh

기본 포트 22(예: 포트 3541)가 아닌 SSH 연결을 위한 사용자 정의 수신 대기 포트를 설정한 경우 다음을 입력하여 UFW 방화벽에서 포트를 열어야 합니다.

sudo ufw allow 3541/tcp

다음 명령을 사용하여 모든 SSH 연결을 차단하거나 포트를 변경하고 이전 연결을 차단할 수 있습니다.

다음 명령을 사용하여 모든 SSH 연결을 차단합니다(로컬 액세스가 가능한지 확인).

sudo ufw deny ssh/tcp

사용자 정의 SSH 포트를 변경하는 경우 새 포트를 열고 기존 포트를 닫습니다. 예:

sudo ufw deny 3541/tcp 

UFW 포트 활성화

UFW는 응용 프로그램이나 서비스의 특정 포트에 대한 액세스를 허용할 수 있습니다. 이 섹션에서는 웹 서버용 HTTP(포트 80) 및 HTTPS(포트 443) 포트를 여는 방법과 포트 범위를 허용하는 방법을 다룹니다.

HTTP 포트 80을 허용하려면 다음 명령 중 하나를 사용할 수 있습니다.

애플리케이션 프로필로 허용:

sudo ufw allow 'Nginx HTTP

서비스 이름으로 허용:

sudo ufw allow http

포트 번호로 허용:

sudo ufw allow 80/tcp

HTTPS 포트 443을 허용하려면 다음 명령 중 하나를 사용할 수 있습니다.

애플리케이션 프로필로 허용:

sudo ufw allow 'Nginx HTTPS'

서비스 이름으로 허용:

sudo ufw allow https

포트 번호로 허용:

sudo ufw allow 443/tcp

HTTP 및 HTTPS 포트를 모두 허용하려면 다음 명령을 사용할 수 있습니다.

sudo ufw allow 'Nginx Full'

UFW 허용 포트 범위

개별 포트와 포트 범위를 허용할 수 있습니다. 포트 범위를 열 때 포트 프로토콜을 식별해야 합니다.

TCP 및 UDP 프로토콜을 사용하여 포트 범위를 허용하려면 다음 명령을 사용하십시오.

sudo ufw allow 6500:6800/tcp
sudo ufw allow 6500:6800/udp

또는 다음 명령을 사용하여 한 번에 여러 포트를 허용할 수 있습니다.

sudo ufw allow 6500, 6501, 6505, 6509/tcp
sudo ufw allow 6500, 6501, 6505, 6509/udp

UFW에서 원격 연결 허용

UFW에서 원격 연결을 활성화하는 것은 네트워킹 목적에 매우 중요할 수 있으며 몇 가지 간단한 명령으로 빠르게 수행할 수 있습니다. 이 섹션에서는 UFW를 통해 시스템에 원격 연결을 허용하는 방법을 설명합니다.

UFW는 특정 IP 주소를 허용합니다

다음 명령을 사용하여 특정 IP 주소가 시스템에 연결되도록 허용할 수 있습니다. 이는 특정 시스템만 서버에 연결하도록 허용해야 하고 해당 시스템의 IP 주소를 지정할 수 있는 경우에 유용합니다.

sudo ufw allow from 192.168.55.131

UFW는 특정 포트에서 특정 IP 주소를 허용합니다.

다음 명령을 사용하여 IP가 시스템의 특정 포트에 연결되도록 허용할 수 있습니다. 예를 들어 IP가 시스템의 포트 3900에 연결되도록 허용해야 하는 경우 다음 명령을 사용할 수 있습니다.

sudo ufw allow from 192.168.55.131 to any port 3900

지정된 포트에 대한 서브넷 연결 허용

다음 명령을 사용하여 서브넷의 IP 범위에서 특정 포트로의 연결을 허용할 수 있습니다. 이는 특정 IP 범위의 연결을 허용해야 할 때 유용하며, 연결을 허용하도록 서브넷을 지정할 수 있습니다.

sudo ufw allow from 192.168.1.0/24 to any port 3900

이 명령은 192.168.1.1에서 192.168.1.254까지의 모든 IP 주소를 포트 3900에 연결합니다.

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

특정 네트워크 인터페이스에 대한 연결을 허용해야 하는 경우 다음 명령을 사용할 수 있습니다. 이는 여러 네트워크 인터페이스가 있고 특정 인터페이스에 대한 연결을 허용해야 할 때 유용합니다.

sudo ufw allow in on eth2 to any port 3900

이러한 명령을 사용하면 보안을 유지하면서 UFW를 통해 시스템에 대한 원격 연결을 쉽게 허용할 수 있습니다.

UFW에서 원격 연결 거부

특정 IP 주소에서 들어오는 의심스럽거나 원치 않는 트래픽을 발견한 경우 UFW를 사용하여 해당 주소로부터의 연결을 거부할 수 있습니다. UFW는 기본적으로 들어오는 모든 연결을 거부하지만 특정 IP 또는 IP 범위의 연결을 차단하는 규칙을 만들 수 있습니다.

예를 들어 단일 IP 주소의 연결을 차단하려면 다음 명령을 사용할 수 있습니다.

sudo ufw deny from 203.13.56.121

해커가 동일한 서브넷 내의 여러 IP 주소를 사용하여 시스템을 공격하는 경우 CIDR 표기법으로 IP 범위를 지정하여 전체 서브넷을 차단할 수 있습니다.

sudo ufw deny from 203.13.56.121/24

차단된 IP 또는 IP 범위에 대해 특정 포트에 대한 접근을 거부하는 규칙을 만들 수도 있습니다. 예를 들어 동일한 서브넷에서 포트 80 및 443으로의 연결을 차단하려면 다음 명령을 사용할 수 있습니다.

sudo ufw deny from 203.13.56.121/24 to any port 80
sudo ufw deny from 203.13.56.121/24 to any port 443

들어오는 연결을 차단하는 것이 효과적인 보안 조치일 수 있지만 완벽한 방법은 아니라는 점을 기억하는 것이 중요합니다. 해커는 여전히 IP 스푸핑과 같은 기술을 사용하여 실제 IP 주소를 위장할 수 있습니다. 따라서 IP 차단에만 의존하지 않고 여러 계층의 보안을 구현하는 것이 중요합니다.

UFW 규칙 삭제

불필요하거나 원치 않는 UFW 규칙을 삭제하는 것은 체계적이고 효율적인 방화벽을 유지하는 데 필수적입니다. 두 가지 방법으로 UFW 규칙을 삭제할 수 있습니다. 먼저, 해당 번호를 사용하여 UFW 규칙을 삭제하려면 다음 명령을 입력하여 규칙 번호를 나열해야 합니다:

sudo ufw status numbered

출력에는 번호가 매겨진 UFW 규칙 목록이 표시되어 삭제하려는 규칙을 식별할 수 있습니다. 제거하려는 규칙의 수를 결정한 후 다음 명령을 입력하십시오.

sudo ufw delete [rule number]

예를 들어 IP 주소 1.1.1.1에 대한 세 번째 규칙을 삭제한다고 가정해 보겠습니다. 이 경우 "sudo ufw status numbered" 명령을 실행하여 규칙 번호를 찾고 터미널에 다음 명령을 입력해야 합니다.

sudo ufw delete 3

더 이상 필요하지 않은 규칙을 삭제하면 방화벽의 보안과 효율성을 유지하는 데 도움이 됩니다.

UFW 로그 액세스 및 보기

UFW 방화벽은 모든 이벤트를 기록하며, 잠재적인 보안 위반을 식별하거나 네트워크 문제를 해결하려면 이러한 로그를 정기적으로 검토하는 것이 중요합니다. 기본적으로 UFW 로깅은 대부분의 데스크탑 시스템에 적합한 낮음으로 설정됩니다. 그러나 서버에서는 더 많은 세부 정보를 캡처하기 위해 더 높은 수준의 로깅이 필요할 수 있습니다.

UFW의 로깅 수준을 낮음, 중간, 높음으로 조정하거나 완전히 비활성화할 수 있습니다. UFW 로깅 수준을 낮게 설정하려면 다음 명령을 사용하십시오.

sudo ufw logging low

UFW 로깅을 중간으로 설정하려면:

sudo ufw logging medium

UFW 로깅을 높게 설정하려면:

sudo ufw logging high

마지막 옵션은 로깅을 완전히 비활성화하는 것입니다. 이에 만족하는지 확인하세요. 그러면 로그 확인이 필요하지 않습니다.

sudo ufw logging off

UFW 로그를 보려면 기본 위치인 /var/log/ufw.log에서 찾을 수 있습니다. tail 명령을 사용하면 실시간 로그를 보거나 지정된 수의 최근 로그 줄을 인쇄할 수 있습니다. 예를 들어 로그의 마지막 30줄을 보려면 다음 명령을 사용합니다.

sudo ufw tail /var/log/ufw.log -n 30

로그를 검토하면 시스템에 연결을 시도하는 IP 주소를 확인하고 의심스럽거나 승인되지 않은 활동을 식별하는 데 도움이 될 수 있습니다. 또한 로그를 검토하면 네트워크 트래픽 패턴을 이해하고, 네트워크 성능을 최적화하고, 발생할 수 있는 문제를 식별하는 데 도움이 될 수 있습니다.

UFW 규칙 테스트

UFW 방화벽 규칙을 적용하기 전에 테스트하여 의도한 대로 작동하는지 확인하는 것은 항상 좋은 생각입니다. “–dry-run” 플래그를 사용하면 실제로 적용하지 않고도 변경 사항을 확인할 수 있습니다. 이는 우발적인 변경을 방지하기 위해 매우 중요한 시스템에 유용한 옵션입니다.

"–dry-run" 플래그를 사용하려면 다음 명령을 입력하십시오.

sudo ufw --dry-run enable

"–dry-run" 플래그를 비활성화하려면 다음 명령을 사용하면 됩니다.

sudo ufw --dry-run disable

UFW 규칙 재설정

때로는 모든 들어오는 연결이 차단되고 나가는 연결이 허용되는 원래 상태로 방화벽을 재설정해야 할 수도 있습니다. 이는 "reset" 명령을 사용하여 수행할 수 있습니다.

sudo ufw reset

재설정을 확인하고 다음을 입력하십시오.

sudo ufw status

출력은 다음과 같아야 합니다.

Status: inactive 

재설정이 완료되면 방화벽이 비활성화되므로 방화벽을 다시 활성화하고 새 규칙을 추가해야 합니다. 재설정 명령은 모든 기존 규칙을 제거하고 올바르게 수행되지 않으면 잠재적으로 시스템을 취약하게 만들 수 있으므로 자제해서 사용해야 한다는 점에 유의하는 것이 중요합니다.

열려 있는 모든 포트를 찾는 방법(보안 검사)

시스템 보안은 최우선 사항이어야 하며 이를 보장하는 한 가지 방법은 정기적으로 열려 있는 포트를 확인하는 것입니다. UFW는 기본적으로 들어오는 모든 연결을 차단하지만 때로는 포트가 실수로 또는 정당한 이유로 열려 있을 수 있습니다. 이 경우 열려 있는 포트와 그 이유를 아는 것이 중요합니다.

열린 포트를 확인하는 한 가지 방법은 잘 알려져 있고 신뢰할 수 있는 네트워크 탐색 도구인 Nmap을 사용하는 것입니다. Nmap을 설치하려면 먼저 다음 명령을 입력하여 설치하세요.

sudo apt install nmap

다음으로 다음을 입력하여 시스템의 내부 IP 주소를 찾으세요.

hostname -I

예제 출력:

192.168.50.45

IP 주소를 사용하여 다음 명령을 실행합니다.

nmap 192.168.50.45

Nmap은 시스템을 스캔하고 열려 있는 모든 포트를 나열합니다. 확실하지 않은 열려 있는 포트를 발견하면 닫거나 차단하기 전에 조사하십시오. 서비스가 중단되거나 시스템이 잠길 수 있습니다.

이 튜토리얼의 정보를 기반으로 사용자 정의 UFW 규칙을 생성하여 열린 포트를 닫거나 제한할 수 있습니다. UFW는 기본적으로 들어오는 모든 연결을 차단하므로 변경 사항을 구현하기 전에 합법적인 트래픽을 차단하지 않도록 하십시오.

UFW 관리 APT 명령

UFW 방화벽 제거

UFW는 방화벽 규칙을 관리하고 데비안 시스템을 보호하는 데 유용한 도구입니다. 그러나 이를 비활성화하거나 제거해야 하는 상황이 있을 수 있습니다.

일시적으로 UFW를 비활성화하려면 다음 명령을 입력하면 됩니다:

sudo ufw disable

이렇게 하면 방화벽이 꺼지고 모든 트래픽이 시스템을 통과할 수 있습니다.

반면, 시스템에서 UFW를 완전히 제거해야 한다면 다음 명령을 사용하면 됩니다:

sudo apt remove ufw

그러나 시스템에서 UFW를 완전히 제거하면 시스템이 외부 공격에 취약해질 수 있다는 점에 유의하는 것이 중요합니다. 시스템 방화벽을 관리할 수 있는 확실한 대안이 없거나 IPTables 사용 방법을 이해하지 않는 한 UFW를 제거하는 것은 권장되지 않습니다.

따라서 UFW를 제거하기 전에 시스템 보안을 유지하고 무단 액세스를 방지할 수 있는 대체 솔루션이 있는지 확인하십시오.

결론

Joshua James

코멘트를 남겨주세요