이번 포스팅에서는 UFW(Uncomplicated Firewall)에 대해 알아보겠습니다. UFW는 사용하기 간편한 방화벽 도구로, 복잡한 IP tables 명령어를 사용하지 않고도 리눅스 시스템에서 네트워크 접근을 효과적으로 관리할 수 있습니다.
우리는 Ubuntu 서버인 app01의 네트워크 접근을 제한해야 하는 상황을 가정해보겠습니다. 이 서버는 두 가지 주요 요구사항이 있습니다:
그 외에 서버 app01의 다른 모든 포트는 닫혀 있어야 하며, 모든 인바운드 접근을 차단해야 합니다.
UFW는 Ubuntu 시스템에 쉽게 설치할 수 있습니다. 다음 단계를 통해 UFW를 설치하고 설정합니다.
먼저, 패키지 목록을 업데이트하고 UFW를 설치합니다:
$ sudo apt update
$ sudo apt-get install ufw
설치가 완료되면 UFW를 활성화하기 전에 현재 상태를 확인합니다:
$ systemctl enable ufw
$ systemctl start ufw
Synchronizing state of ufw.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable ufw
$ sudo ufw status
Status: inactive
모든 인바운드 연결을 차단하고 아웃바운드 연결을 허용하는 기본 규칙을 설정합니다:
$ sudo ufw default deny incoming
Default outgoing policy changed to 'allow'
(be sure to update your rules accordingly)
$ sudo ufw default allow outgoing
Default incoming policy changed to 'deny'
(be sure to update your rules accordingly)
이제 요구사항에 맞게 규칙을 추가합니다:
$ sudo ufw allow from 172.16.238.5 to any port 22 proto tcp
Rules updated
$ sudo ufw allow from 172.16.238.5 to any port 80 proto tcp
Rules updated
$ sudo ufw allow from 172.16.100.0/28 to any port 80 proto tcp
Rules updated
포트 8080을 차단합니다:
$ sudo ufw deny 8080
Rules updated
모든 규칙을 추가한 후 방화벽을 활성화합니다:
$ sudo ufw enable
Rules updated
설정이 완료되면 현재 방화벽 규칙을 확인하여 올바르게 적용되었는지 점검합니다.
$ sudo ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW 172.16.238.5
80/tcp ALLOW 172.16.238.5
80/tcp ALLOW 172.16.100.0/28
8080 DENY Anywhere
8080 (v6) DENY Anywhere (v6)
특정 규칙을 삭제하려면 규칙 번호를 확인한 후 삭제합니다. 예를 들어, 8080 포트 거부 규칙을 삭제하려면:
$ sudo ufw delete deny 8080
Rule deleted
Rule deleted (v6)
$ sudo ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW 172.16.238.5
80/tcp ALLOW 172.16.238.5
80/tcp ALLOW 172.16.100.0/28
또는 규칙 번호를 사용하여 삭제할 수 있습니다:
$ sudo ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW 172.16.238.5
80/tcp ALLOW 172.16.238.5
80/tcp ALLOW 172.16.100.0/28
8080 DENY Anywhere
8080 (v6) DENY Anywhere (v6)
$ sudo ufw delete [number] # ex. 5
Deleting:
deny 8080
Proceed with operation (y|n)? y
Rule deleted (v6)
$ sudo ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW 172.16.238.5
80/tcp ALLOW 172.16.238.5
80/tcp ALLOW 172.16.100.0/28
8080 DENY Anywhere
UFW를 사용하면 간편하게 리눅스 서버의 네트워크 접근을 관리할 수 있습니다. 복잡한 IP tables 명령어를 사용하지 않고도 손쉽게 방화벽 규칙을 설정하고 관리할 수 있으며, 이를 통해 서버의 보안을 강화할 수 있습니다.