웹사이트 검색

UFW 설치: 리눅스에서 기본 방화벽 설정 방법


UFW(간단한 방화벽)는 iptables를 위한 사용하기 쉬운 인터페이스를 제공하여 리눅스 방화벽 관리를 단순화합니다. 이 가이드는 Debian 기반 배포판에서 UFW 설치 및 구성 방법을 다루며, 기본 설정부터 데스크톱과 웹 서버를 위한 실용적인 방화벽 구성까지 포함합니다.

이 튜토리얼에서 배우게 될 내용:

  • Debian 기반 배포판에 UFW 설치하는 방법
  • 기본 방화벽 정책 설정 방법
  • 서비스, 포트, IP별로 트래픽 허용 및 차단하는 방법
  • UFW 애플리케이션 프로필 사용 방법
  • 데스크톱과 서버용 방화벽 규칙 설정 방법

기사 요약: sudo apt install ufw로 UFW를 설치한 후, 기본 정책을 설정하고 방화벽을 활성화합니다.

단계명령/동작
1. UFW 설치
sudo apt install ufw
2. 기본 정책 설정sudo ufw default deny incoming
sudo ufw default allow outgoing
3. SSH 접근 허용
sudo ufw allow ssh
4. 방화벽을 활성화합니다
sudo ufw enable

UFW 설치

UFW는 Debian 기반 배포판의 기본 저장소에서 사용할 수 있습니다. apt 패키지 관리자를 사용하여 설치하세요:

$ sudo apt install ufw

설치 후 UFW는 기본적으로 비활성화되어 있습니다. 이를 통해 방화벽을 활성화하기 전에 규칙을 구성할 수 있어 원격 시스템에서의 실수로 인한 접근 차단을 방지할 수 있습니다.

기본값 설정

iptables와 마찬가지로, 기본 동작을 설정하는 것부터 시작하는 것이 가장 좋습니다. 데스크톱에서는 일반적으로 들어오는 트래픽은 차단하고 나가는 연결은 허용하고자 합니다.

$ sudo ufw default deny incoming

트래픽을 허용하는 구문은 비슷합니다:

$ sudo ufw default allow outgoing

이 기본 설정은 시스템이 여전히 인터넷과 외부 서비스에 접근할 수 있는 동안 원하지 않는 수신 연결을 차단하도록 보장합니다.

기본 사용

이제 규칙을 설정하고 방화벽을 관리할 준비가 되었습니다. UFW 명령어는 읽기 쉽고 직관적으로 설계되어 있습니다.

시작과 정지

systemd를 사용하여 UFW를 제어할 수 있지만, UFW에는 더 쉬운 자체 제어 방법이 있습니다. UFW를 활성화하는 것부터 시작하세요:

$ sudo ufw enable

경고
SSH로 연결되어 있는 경우, UFW를 활성화하기 전에 SSH 트래픽을 허용해야 하며, 그렇지 않으면 시스템에 대한 접근 권한을 잃을 수 있습니다.

시작 시 UFW를 중지하고 비활성화하려면:

$ sudo ufw disable

UFW가 실행 중인지 확인하고 활성 규칙을 확인하세요:

$ sudo ufw status

규칙 번호를 포함한 보다 자세한 출력 정보는 다음과 같습니다:

$ sudo ufw status numbered

명령

서비스 이름을 사용하여 인바운드 HTTP 트래픽 허용:

$ sudo ufw allow http

SSH 연결 허용:

$ sudo ufw allow ssh

포트 번호를 사용하여 동일한 결과를 얻을 수 있습니다. 이 명령어는 포트 443에서 들어오는 HTTPS 트래픽을 허용합니다:

$ sudo ufw allow 443

특정 IP 주소나 네트워크 범위에서 오는 트래픽을 허용합니다. 이 예제는 로컬 네트워크에서 오는 모든 트래픽을 허용합니다:

$ sudo ufw allow from 192.168.1.0/24

포트 범위에 대해 프로토콜(TCP 또는 UDP)을 지정하세요:

$ sudo ufw allow 56881:56889/tcp

트래픽을 차단하려면 allow 대신 deny를 사용하세요:

$ sudo ufw deny from 192.168.1.110

외부 연결을 구체적으로 대상으로 하려면 out을 포함하세요:

$ sudo ufw allow out ssh

규칙을 삭제하려면 ufw status numbered 명령어에서 규칙 번호를 사용하세요:

$ sudo ufw delete 3

UFW 애플리케이션 프로필

UFW에는 일반적인 서비스에 대한 방화벽 규칙을 정의하는 애플리케이션 프로필이 포함되어 있습니다. 이러한 프로필은 잘 알려진 애플리케이션 이름 아래에 포트 및 프로토콜 설정을 묶어 구성 작업을 간소화합니다.

사용 가능한 애플리케이션 프로필 목록:

$ sudo ufw app list

특정 애플리케이션 프로필에 대한 세부 정보 보기:

$ sudo ufw app info OpenSSH

이것은 애플리케이션이 사용하는 포트와 프로토콜을 표시합니다. 방화벽에서 애플리케이션을 허용하려면:

$ sudo ufw allow OpenSSH

일반적인 애플리케이션 프로파일에는 OpenSSH, Apache, Apache Full, Nginx Full 등이 있으며, 설치된 소프트웨어에 따라 다를 수 있습니다. 애플리케이션 프로파일은 /etc/ufw/applications.d/에 저장되며, 자신만의 애플리케이션용 커스텀 프로파일을 만들 수도 있습니다.

데스크탑 설정하기

이 예제는 기본 데스크톱 방화벽 구성을 위한 출발점을 제공합니다. 필요에 따라 규칙을 조정하세요.

기본값을 설정하는 것부터 시작하세요:

$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing

웹 브라우징을 위해 HTTP 및 HTTPS 트래픽을 허용:

$ sudo ufw allow http
$ sudo ufw allow https

SSH 액세스 활성화:

$ sudo ufw allow ssh

시스템 시간 동기화를 위해 NTP 허용:

$ sudo ufw allow ntp

고정 IP를 사용하지 않는 경우, 포트 67과 68에서 DHCP를 허용하세요:

$ sudo ufw allow 67:68/udp

도메인 이름 해석을 위해 DNS 트래픽을 허용:

$ sudo ufw allow 53

Deluge와 같은 토렌트 클라이언트의 경우:

$ sudo ufw allow 56881:56889/tcp

Steam은 여러 포트를 필요로 합니다:

$ sudo ufw allow 27000:27036/udp
$ sudo ufw allow 27036:27037/tcp
$ sudo ufw allow 4380/udp

웹 서버 설정하기

웹 서버는 합법적인 트래픽이 방해받지 않으면서 공격 표면을 최소화하기 위해 더 제한적인 구성이 필요합니다.

서버의 경우 기본적으로 모든 트래픽을 차단하십시오. SSH 접속이 끊기는 것을 방지하려면 이러한 변경을 하기 전에 방화벽을 비활성화하십시오:

$ sudo ufw default deny incoming
$ sudo ufw default deny outgoing
$ sudo ufw default deny forward

수신 및 발신 웹 트래픽을 모두 활성화:

$ sudo ufw allow http
$ sudo ufw allow out http
$ sudo ufw allow https
$ sudo ufw allow out https

원격 관리를 위해 SSH 허용:

$ sudo ufw allow ssh
$ sudo ufw allow out ssh

시간 동기화를 위해 NTP 활성화:

$ sudo ufw allow ntp
$ sudo ufw allow out ntp

패키지 업데이트 및 도메인 해상을 위해 DNS 허용:

$ sudo ufw allow 53
$ sudo ufw allow out 53

결론

UFW는 Linux 시스템에서 방화벽 관리를 쉽게 할 수 있는 방법을 제공합니다. 단순함에도 불구하고 UFW는 iptables의 프런트엔드로 작동하기 때문에 강력한 보안을 제공하며 실제 환경에서도 사용 가능합니다. 이 가이드의 예제들은 일반적인 데스크톱 및 서버 구성을 다루지만, 특정 요구 사항과 네트워크 구성에 따라 규칙을 맞춤 설정하는 것이 좋습니다. 자세한 문서를 원하면 공식 UFW 매뉴얼 페이지를 참조하세요.

자주 묻는 질문

  1. UFW가 특정 연결을 차단하고 있는지 어떻게 확인하나요? 모든 활성 규칙과 정책을 확인하려면 sudo ufw status verbose를 사용하세요. 또한 차단된 연결 시도를 확인하려면 /var/log/ufw.log에서 UFW 로그를 확인할 수 있습니다. 로그가 활성화되어 있지 않다면 sudo ufw logging on으로 로그를 활성화하세요.
  2. UFW를 기본 상태로 재설정할 수 있나요? 예, sudo ufw reset를 실행하면 모든 규칙이 제거되고 방화벽이 비활성화됩니다. 이렇게 하면 UFW가 설치 직후의 초기 상태로 돌아가므로, 구성 설정을 잘못했거나 새로 시작하고 싶을 때 유용합니다.
  3. ufw allow와 ufw limit의 차이는 무엇인가요? allow 명령어는 모든 일치하는 트래픽을 허용하는 반면, limit 명령어는 무차별 대입 공격을 방지하기 위해 속도 제한을 추가합니다. 예를 들어, sudo ufw limit ssh는 SSH 연결을 허용하지만, 30초 내에 6회 이상의 연결을 시도하는 IP 주소를 차단합니다.
  4. UFW는 재부팅 후에도 유지되나요? 네, sudo ufw enable로 활성화하면 UFW는 부팅 시 자동으로 시작되며 저장된 규칙을 불러옵니다. 규칙은 /etc/ufw/에 저장되며 추가 설정 없이 재부팅 후에도 유지됩니다.