[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

  • 리눅스 Rsync 명령어

    Rsync (Remote Sync) 는 네트워크를 통해 파일과 디렉터리를 효율적으로 동기화하는 백업 방식입니다. 전체 데이터를 매번 복사하는 대신 변경된 부분만 증분 방식으로 전송하여 빠르고 안정적인 동기화를 지원합니다. 또한 다양한 옵션을 통해 압축, 암호화, 권한 유지, 삭제 동기화 등 세밀한 제어가 가능하며, 백업과 서버 간 데이터 전송에 널리 사용됩니다. 특히 네트워크 대역폭을 절약하고, 재 전송…

  • [Linux] 다중 명령어 5가지(세미콜론, 파이프, 엠퍼센트..)

    리눅스의 Bash Shell에서 다중 명령어를 사용하는 목적은 하나의 라인에서 여러 명령을 실행할 수 있기 때문입니다. 종류는 ⓐ 세미콜론(;) ⓑ 파이프(|) ⓒ 더블 버티컬바(||) ⓓ 엠퍼센트(&) ⓔ 더블엠퍼센트(&&) 등이 있습니다. 목차Ⅰ. 기본 구문✅ UFW 활성화 / 비활성화 / 상태 확인✅ 우분투 방화벽 UFW 기본 룰✅ 허용 및 거부(특정 규칙)✅ 규칙 삭제✅ Services 명을 입력해서…

  • [Linux] lsof 명령어: 실행 중 파일 정보 출력

    lsof 명령어는 lisf open files의 약자로 리눅스 시스템에서 열려 있는 파일의 정보를 출력해 주는 명령어입니다. lsof 명령어는 파일을 포함하여 디렉터리, 네트워크 소켓, 파이프 등 프로세스가 사용 중인 다양한 리소스도 조회할 수 있습니다. 목차Ⅰ. 기본 구문✅ UFW 활성화 / 비활성화 / 상태 확인✅ 우분투 방화벽 UFW 기본 룰✅ 허용 및 거부(특정 규칙)✅ 규칙 삭제✅…

  • 리눅스 tar 명령어: 파일 압축, 해제

    리눅스 tar 명령어는 여러 개의 파일을 하나의 파일로 묶거나 해제할 때 사용하는 명령어로 웹사이트의 이전 등에 mysqldump와 같이 사용되는 경우가 많습니다. 테이프 아카이버(Tape Archiver)의 앞 글자를 따서 tar라는 이름으로 부르게 되었습니다. 목차Ⅰ. 기본 구문✅ UFW 활성화 / 비활성화 / 상태 확인✅ 우분투 방화벽 UFW 기본 룰✅ 허용 및 거부(특정 규칙)✅ 규칙 삭제✅ Services…

  • [Linux] access_log 분석[220.23.175.93]

    access_log 분석을 통해 웹 로그가 들어오는 것을 파악. 목차Ⅰ. 기본 구문✅ UFW 활성화 / 비활성화 / 상태 확인✅ 우분투 방화벽 UFW 기본 룰✅ 허용 및 거부(특정 규칙)✅ 규칙 삭제✅ Services 명을 입력해서 설정✅ 우분투 방화벽 엑세스 허용Ⅱ. 우분투 방화벽 고급 구문✅ 특정 포트 및 IP 주소로 허용✅ 특정 포트, IP 주소 및 프로토콜…

  • 리눅스 tee 명령어

    리눅스 tee 명령어는 배관시설에 비유해서 이름이 붙여진 명령어입니다. 파이프 모양과 똑같은 “T”에서 본따 tee 명령어이며 표준 출력으로 하나 이상의 다른 파일을 동시에 출력합니다. tee 명령어의 목적은 작업 진행 중 파이프라인(I)의 중간 내용을 알고 싶을 때 유용하게 사용할 수 있습니다. 목차Ⅰ. 기본 구문✅ UFW 활성화 / 비활성화 / 상태 확인✅ 우분투 방화벽 UFW 기본…

답글 남기기

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

Prove your humanity: 4   +   9   =