[Ubuntu] 우분투 방화벽 UFW 설정

우분투 설치 후 기본 방화벽은 UFW(Uncomplicated Firewall)입니다. iptables의 방화벽 설정보다 간소하게 개발된 ufw는 IPv4 또는 IPv6 호스트 기반 방화벽을 사용자 친화적으로 사용할 수 있는 것이 우분투 방화벽의 사용 목적입니다.

Ⅰ. 기본 구문

✅ UFW 활성화 / 비활성화 / 상태 확인

🔲 활성화

ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

🔲 상태 확인

활성화 후에 상태 값을 확인합니다.

ufw status verbose

verbose 옵션 사용 시 기본 출력 외에 Default 값과 New profiles 값이 추가 정보로 확인됩니다.

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
Apache                     ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
Apache (v6)                ALLOW       Anywhere (v6)

# 이전에 활성화 한 규칙

🔲 비활성화

ufw disable
Firewall stopped and disabled on system startup

✅ 우분투 방화벽 UFW 기본 룰

UFW의 기본 룰은 들어오는 패킷은 전부 거부(deny)입니다. 나가는 패킷은 전부 허가(allow)입니다.

처음 활성화 후 들어오는 룰에 대해서는 전부 거부이기 때문에 처음 세팅한 서버에서 활성화를 진행했다면 기본으로 먼저 SSH 포트를 열어줘야 합니다. iptables 및 레드헷 계열의 FirewallD도 동일한 규칙을 따릅니다.

활성화 전에 먼저 들어오는 SSH 포트를 허용합니다.

sudo ufw allow ssh
# 또는 포트를 직접 명시할 경우
sudo ufw allow 22/tcp

이후에 활성화를 진행합니다.

ufw enable

✅ 허용 및 거부(특정 규칙)

🔲 허용

ufw allow <port>/<optional: protocol>
예 1) 포트 21 에서 들어오는 TCP와 UDP 패킷을 허용
ufw allow 53
예 2) 포트 53에서  들어오는 TCP 패킷을 허용
ufw allow 53/tcp
예 3) 포트 53에서  들어오는 UDP 패킷을 허용
ufw allow 53/udp

🔲 거부

deny <port>/<optional: protocol>

거부의 경우 allow 대신 deny를 입력해서 동일한 방법으로 진행합니다.

ufw deny 1
우분투 방화벽 명령어 ufw status

✅ 규칙 삭제

규칙의 삭제는 기존의 규칙 앞에 delete를 붙입니다. 거부 된 21번 포트를 삭제하는 겅우 아래와 같습니다.

ufw delete deny 21

✅ Services 명을 입력해서 설정

ufw allow <서비스 >

🔲 사용 예

SSH와 apache 추가. 443포트 함께 열때는 ‘Apache full’ 443포트만 추가 시 https

ufw allow ssh
ufw allow apache
ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
Apache                     ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
Apache (v6)                ALLOW       Anywhere (v6)

✅ 우분투 방화벽 엑세스 허용

특정 IP를 허용하는 룰입니다.

ufw allow from <ip address>

🔲 예) 111.222.22.1 IP를 허용

ufw allow from 111.222.22.1

🔲 111.222.22.1 등록된 IP 삭제

ufw delete deny from 111.222.22.1

🔲 서브넷 허용

ufw allow from 192.168.1.0/24

Ⅱ. 우분투 방화벽 고급 구문

✅ 특정 포트 및 IP 주소로 허용

ufw sudo ufw allow from <IP > to <목적> port <포트 >

🔲 TCP/UDP 프로토콜에 대해 21번 포트를 192.168.0.4 IP에서 허용

ufw allow from 192.168.0.4 to any port 21

✅ 특정 포트, IP 주소 및 프로토콜 허용

ufw allow from <> to <목적> port <포트 > proto <프로토콜 >

🔲 IP 주소 192.168.0.4를 21번 포트, TCP 액세스 허용

ufw allow from 192.168.0.4 to any port 21 proto tcp

✅ 엑세스 거부

새로운 엑세스 거부 및 기존 엑세스 거부는 allow를 deny로 변경해서 적용합니다.

ufw deny from 192.168.0.4 to any port 21 proto tcp

✅ 삭제

삭제는 적용된 규칙 그대로 입력하여 삭제를 진행합니다.

ufw status
Status: active

To                         Action      From
--                         ------      ----
Apache                     ALLOW       Anywhere
22/tcp                     ALLOW       Anywhere
21/tcp                     DENY        192.168.0.4
Apache (v6)                ALLOW       Anywhere (v6)
22/tcp (v6)                ALLOW       Anywhere (v6)

deny  from 192.168.0.4 to any port 21 proto tcp
Rule deleted
우분투 방화벽 ufw status(2)

🔲 번호로 삭제

명령어로 상태 값을 확인 후 delete 뒤에 해당하는 숫자를 입력합니다.

ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] Apache                     ALLOW IN    Anywhere
[ 2] 22/tcp                     ALLOW IN    Anywhere
[ 3] 873/tcp                    ALLOW IN    Anywhere
[ 4] Apache (v6)                ALLOW IN    Anywhere (v6)
[ 5] 22/tcp (v6)                ALLOW IN    Anywhere (v6)
[ 6] 873/tcp (v6)               ALLOW IN    Anywhere (v6)

ufw delete 6
Deleting:
 allow 873/tcp
Proceed with operation (y|n)? y
Rule deleted (v6)
root@ip-172-26-1-204:~# ufw delete 3
Deleting:
 allow 873/tcp
Proceed with operation (y|n)? y
Rule deleted

ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] Apache                     ALLOW IN    Anywhere
[ 2] 22/tcp                     ALLOW IN    Anywhere
[ 3] Apache (v6)                ALLOW IN    Anywhere (v6)
[ 4] 22/tcp (v6)                ALLOW IN    Anywhere (v6)

Similar Posts

  • 리눅스 커널(Kernel)이란? | 커널 버전

    리눅스 커널과 커널은 같은 뜻을 가지고 있습니다. 커널을 말할 때 리눅스 커널을 이야기 하는 것입니다. 핵심(&알맹이)이라는 뜻을 가진 커널(Kernel)은 내부 계층에 속하며, Shell 명령과 하드웨어를 연결해 주는 역할을 합니다. 목차Ⅰ. 기본 구문✅ UFW 활성화 / 비활성화 / 상태 확인✅ 우분투 방화벽 UFW 기본 룰✅ 허용 및 거부(특정 규칙)✅ 규칙 삭제✅ Services 명을 입력해서…

  • 리눅스 head 명령어 & tail 명령어

    리눅스 head 명령어는 파일의 처음 10줄을 보여주는 명령어이며, tail 명령어는 파일의 마지막 10줄을 보여주는 명령어입니다. 옵션 없이 사용할 경우 각각의 머리와 꼬리 부분을 보여주는 것을 알 수 있습니다. head와 tail 명령어는 보통 서버의 access_log를 볼 때 주로 많이 사용됩니다. 두 명령어의 사용법과 테스트 서버에서 access_log를 각각의 명령어를 통해 확인 해 보겠습니다. 목차Ⅰ. 기본…

  • 록키 리눅스(Rocky Linux)

    록키 리눅스(Rocky Linux)는  레드햇 엔터프라이즈 리눅스(RHEL) 운영 체제 소스 코드를 사용한 리눅스로 RHEL과 100% 버그 간 호환이 가능하도록 설계 되었습니다. OS가 커뮤니티에서 집중적으로 개발 중이며, 정기적인 업데이트와 뛰어난 안정성으로 2023년 최신 버전은 9.0입니다. 릴리스의 수명 주기는 10년입니다. 목차Ⅰ. 기본 구문✅ UFW 활성화 / 비활성화 / 상태 확인✅ 우분투 방화벽 UFW 기본 룰✅ 허용…

  • [Linux] userdel 명령어: 사용자 계정 삭제 명령어

    리눅스에서 useradd로 계정 생성 후 삭제가 필요한 경우 userdel 명령어를 사용합니다. 목차Ⅰ. 기본 구문✅ UFW 활성화 / 비활성화 / 상태 확인✅ 우분투 방화벽 UFW 기본 룰✅ 허용 및 거부(특정 규칙)✅ 규칙 삭제✅ Services 명을 입력해서 설정✅ 우분투 방화벽 엑세스 허용Ⅱ. 우분투 방화벽 고급 구문✅ 특정 포트 및 IP 주소로 허용✅ 특정 포트, IP…

  • 리눅스 tree 명령어

    tree 명령어는 디렉토리 안의 파일과 디렉토리를 나무 형태로 출력하는 명령어입니다. 디렉토리 구성을 파악하는데 유용하며, 하위 디렉토리와 파일이 어떤 구조로 정리되어 있는지 한눈에 확인 가능합니다. 문서화 및 시스템 분석 등에 활용됩니다. 목차Ⅰ. 기본 구문✅ UFW 활성화 / 비활성화 / 상태 확인✅ 우분투 방화벽 UFW 기본 룰✅ 허용 및 거부(특정 규칙)✅ 규칙 삭제✅ Services 명을…

  • 리눅스 디스크 마운트 | /etc/fstab으로 자동 마운트 설정

    리눅스에 추가 HDD 또는 SSD 등의 스토리지를 추가 후 사용하려면 먼저 포맷이 진행되어야 합니다. 리눅스 디스크 마운트 작업까지 진행해서 사용하기 전에 먼저 스토리지 포맷과 파일 시스템 구축을 진행하는 과정부터 진행 해 보겠습니다. 목차Ⅰ. 기본 구문✅ UFW 활성화 / 비활성화 / 상태 확인✅ 우분투 방화벽 UFW 기본 룰✅ 허용 및 거부(특정 규칙)✅ 규칙 삭제✅…

답글 남기기

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

Prove your humanity: 9   +   1   =