우분투 UFW 방화벽 기초 설정 및 특정 포트 허용/차단 규칙 적용법

[우분투 24.04 LTS] UFW 방화벽 기초 설정 및 네트워크 포트 접근 제어

리눅스 서버 인프라 구축 시 외부의 악의적인 네트워크 침입을 방어하기 위한 시스템 방화벽(Firewall) 구성은 필수적이다. 우분투(Ubuntu)는 복잡한 라우팅 제어 도구인 iptables를 직관적으로 관리할 수 있도록 UFW(Uncomplicated Firewall)를 표준 시스템으로 제공한다.

본 문서는 우분투 24.04 LTS 환경에서 UFW를 활용하여 시스템 기본 보안 정책을 수립하고, 특정 포트 및 IP에 대한 접근 제어 규칙을 적용하는 실무 과정을 기술한다.

1. UFW 상태 점검 및 기본 통신 정책 수립

우분투 운영체제 설치 직후 UFW는 비활성화 상태로 대기한다. 방화벽 규칙을 적용하기 전, 시스템의 전반적인 트래픽 처리 방향(Default Policy)을 먼저 정의해야 한다.

최고 관리자 권한(sudo)을 사용하여 방화벽의 현재 가동 상태를 확인한다.

Bash

sudo ufw status

서버 보안의 표준 원칙에 따라, 인가되지 않은 외부 접속은 원천 차단(Deny)하고 서버 내부에서 외부로 나가는 통신은 전면 허용(Allow)하도록 기본 정책을 설정한다.

Bash

sudo ufw default deny incoming
sudo ufw default allow outgoing

2. 관리자 원격 접속(SSH) 포트 개방

주의: 기본 정책을 차단(deny incoming)으로 설정한 상태에서 방화벽을 즉시 활성화하면, 현재 연결된 SSH 원격 접속 세션까지 강제 종료되어 서버 제어권을 상실하게 된다. 따라서 방화벽 구동 전 반드시 관리자 접속 포트를 개방해야 한다.

시스템 기본 SSH 포트(22번) 또는 변경한 커스텀 포트(예: 20222번)에 대해 TCP 프로토콜 접근을 허용한다.

Bash

sudo ufw allow 20222/tcp

3. 서비스 포트 허용 및 차단 규칙 적용

SSH 포트 개방 후, 서버에서 호스팅할 실제 서비스(웹 서버, 데이터베이스 등)의 통신 포트 규칙을 추가한다. 네트워크 프로토콜(TCP/UDP)을 명시하여 특정 포트를 제어하는 표준 명령어는 다음과 같다.

웹 서비스 구동을 위한 HTTP(80) 및 HTTPS(443) 통신을 개방한다.

Bash

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

특정 포트에 대한 접근을 명시적으로 차단할 경우 deny 옵션을 사용한다.

Bash

sudo ufw deny 23/tcp

기존에 등록된 방화벽 규칙을 삭제하려면 명령어 구문 앞에 delete를 추가하여 실행한다.

Bash

sudo ufw delete allow 80/tcp

4. 특정 IP 주소 기반 접근 제어

모든 외부 접속자에게 시스템 포트를 개방하는 대신, 관리자의 고정 IP나 신뢰할 수 있는 사내 네트워크 대역만 접근하도록 통제하여 보안을 극대화할 수 있다.

특정 IP 주소 단위의 모든 접근을 전면 허용하는 명령어이다.

Bash

sudo ufw allow from 192.168.0.50

특정 IP 주소의 접근을 허용하되, 지정된 포트(예: 데이터베이스 3306 포트)로의 통신만 제한적으로 개방하는 복합 규칙이다.

Bash

sudo ufw allow from 192.168.0.50 to any port 3306 proto tcp

식별된 악성 IP의 접근을 네트워크 단에서 영구 차단하고자 할 경우 아래와 같이 설정한다.

Bash

sudo ufw deny from 123.123.123.123

5. 방화벽 활성화 및 규칙 시스템 반영

필요한 모든 포트 및 IP 기반의 접근 제어 규칙 등록이 완료되었다면, UFW 데몬을 시스템 백그라운드에 구동하여 방화벽을 정식 활성화한다.

Bash

sudo ufw enable

해당 명령어 실행 시 기존 SSH 연결이 끊어질 수 있다는 경고 프롬프트가 출력된다. 앞선 2단계에서 SSH 포트를 정상 등록했으므로 y를 입력하여 구동을 승인한다.

방화벽이 활성화된 후, 시스템에 등록된 규칙 목록과 상세 적용 상태를 최종 검증한다.

Bash

sudo ufw status verbose

추후 새로운 규칙을 추가하거나 기존 정책을 수정할 경우, 아래 명령어를 통해 방화벽을 재로드(Reload)하여 변경 사항을 시스템에 즉각 반영한다.

Bash

sudo ufw reload

마무리

UFW의 도입과 통신 정책 수립을 통해 비정상적인 포트 스캐닝 및 불법적인 외부 접근을 통제할 수 있는 시스템 방어망 구축이 완료되었다.

다만, 정상적으로 개방해 둔 포트(SSH, DB 등)를 겨냥하여 무작위로 비밀번호 대입을 시도하는 공격은 포트 기반 방화벽 규칙만으로 방어할 수 없다. 다음 포스팅에서는 이러한 인증 공격을 모니터링하고 악성 IP를 자동 차단하는 침입 차단 시스템인 [무차별 대입 공격(Brute-force) 방어를 위한 Fail2ban 설치 및 세팅] 절차를 다루겠다.

Similar Posts

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다