[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

  • 리눅스 트러블 슈팅(Trouble Shooting).INDEX

    리눅스 서버를 공부 할 때 트러블 슈팅(Trouble Shooting)이란 단어를 접하게 되는데 서버 엔지니어와 개발자가 서버를 운영하면서 듣게 되는 단어로 말 그대로 ‘문제 해결’을 뜻 한다. 리눅스에서 Trouble Shooting은 문제가 발생한 시점에서 시스템, 소프트웨어 및 하드웨어, 네트워크 등에서 문제를 진단하고 해결하는 과정이다. 목차Ⅰ. 기본 구문✅ UFW 활성화 / 비활성화 / 상태 확인✅ 우분투 방화벽…

  • bash: 셸 따옴표 및 셸 쌍따옴표

    bash 및 셸 프로그램에서 명령어를 치환하는데 ‘$’ 기호와 소괄호'()’를 사용하는 대신 따옴표 기호도 사용합니다. 치환은 수식의 어떤 부분에 그와 대등한 무언가로 바꿔 넣는 행위입니다. ‘셸 따옴표’와 ‘셸 쌍따옴표’의 기본 공통 사항은 확장을 제어하는데 활용된다는 것입니다. 여기에서 차이점은 셸 따옴표는 모든 확장을 제어하지만 셸 쌍따옴표는 3개의 기호를 제외하게 됩니다. 셸 쌍따옴표 제외 기호: $…

  • 리눅스 less 명령어 사용법

    리눅스 less 명령어는 텍스트 파일을 볼 때 사용하는 명령어입니다. less 명령어의 특징은 vi 명령어가 파일 실행 시 전체 파일을 읽어야 하고 txt 파일 크기가 클 경우 읽는데 시간이 걸립니다. 또한 vi 명령어는 파일 편집 명령어입니다. 목차Ⅰ. 기본 구문✅ UFW 활성화 / 비활성화 / 상태 확인✅ 우분투 방화벽 UFW 기본 룰✅ 허용 및 거부(특정…

  • 리눅스 uptime 명령어(서버 가동 시간&1,5,15 평균 로드 확인)

    리눅스 uptime 명령어는 시스템의 평균 부하율과 서버의 가동 시간을 확인하는 명령어입니다. 서버의 부팅 시간을 알고 싶을 때, 최근 15분 동안의 평균 로드를 통해 부하율을 알고 싶을 때 사용하는 명령어임을 알 수 있습니다. 목차Ⅰ. 기본 구문✅ UFW 활성화 / 비활성화 / 상태 확인✅ 우분투 방화벽 UFW 기본 룰✅ 허용 및 거부(특정 규칙)✅ 규칙 삭제✅…

  • 리눅스 백그라운드(Back Ground)&포그라운드(Fore Ground): 프로세스 제어하기

    리눅스의 프로세스는 백그라운드(Back Ground)와 포그라운드(Fore Ground) 두 가지의 모드로 작동됩니다. 리눅스 백그라운드 작업을 하는 이유는 일반적인 쉘 명령어를 실행했을 때 프로세스가 종료될 때까지 기다리면서 다른 작업을 하지 못하는 경우가 있기 때문입니다. 목차Ⅰ. 기본 구문✅ UFW 활성화 / 비활성화 / 상태 확인✅ 우분투 방화벽 UFW 기본 룰✅ 허용 및 거부(특정 규칙)✅ 규칙 삭제✅ Services…

  • 리눅스 cat 명령어

    리눅스에서 텍스트 파일을 출력하는 간단한 ‘cat 명령어’는 명령어 뒤에 파일명을 적어 표준 출력(Standard Output)을 할 수 있습니다. cat은 “연결시키다”, “연관시키다” 등의 뜻을 가지고 있는 영어단어 “concatenate”에서 유래되었습니다. 목차Ⅰ. 기본 구문✅ UFW 활성화 / 비활성화 / 상태 확인✅ 우분투 방화벽 UFW 기본 룰✅ 허용 및 거부(특정 규칙)✅ 규칙 삭제✅ Services 명을 입력해서 설정✅ 우분투…

답글 남기기

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

Prove your humanity: 2   +   1   =