리눅스 FirewallD 설치 및 데몬 설정

리눅스 FirewallD는 iptables의 체인과 정책이라는 규칙 대신 Zone과 Service를 대신 사용합니다. Firewalld를 사용하는 이유는 iptables의 규칙이 복잡하기 때문에 iptables 대신 사용할 수 있도록 하기 위함입니다.

  • 리눅스 Firewalld 특징
  • iptables는 재설정 시 기존 세션이 끊어지지만 Firewalld는 기존 세션을 유지하면서 업데이트가 가능합니다.
  • Zone과 Service를 사용

✅ 리눅스 FirewallD 설치하기

리눅스 서버에 설치 여부를 먼저 확인합니다.

rpm -qa | grep firewalld

설치되어 있지 않다면 아무 것도 나오지 않습니다.

# dnf: 록키 리눅스 | yum CentOS
dnf -y install firewalld
Last metadata expiration check: 0:37:56 ago on Sun Jan  7 12:34:52 2024.
Dependencies resolved.
==========================================================================================================================================================================================================
 Package                                                 Architecture                              Version                                             Repository                                    Size
==========================================================================================================================================================================================================
Installing:
 firewalld                                               noarch                                    1.2.5-2.el9_3                                       baseos                                       446 k
Installing dependencies:
 firewalld-filesystem                                    noarch                                    1.2.5-2.el9_3                                       baseos                                       8.2 k
 ipset                                                   x86_64                                    7.11-8.el9                                          baseos                                        42 k
 ipset-libs                                              x86_64                                    7.11-8.el9                                          baseos                                        69 k
 iptables-nft                                            x86_64                                    1.8.8-6.el9_1                                       baseos                                       185 k
 libnftnl                                                x86_64                                    1.2.2-1.el9                                         baseos                                        83 k
 nftables                                                x86_64                                    1:1.0.4-11.el9_3                                    baseos                                       398 k
 python3-firewall                                        noarch                                    1.2.5-2.el9_3                                       baseos                                       348 k
 python3-nftables                                        x86_64                                    1:1.0.4-11.el9_3                                    baseos                                        19 k
Installing weak dependencies:
 libcap-ng-python3                                       x86_64                                    0.8.2-7.el9                                         appstream                                     29 k

Transaction Summary
==========================================================================================================================================================================================================
Install  10 Packages

Total download size: 1.6 M

✅ 리눅스 Firewalld 데몬 시작

# firewalld 서비스를 시작
systemctl start firewalld
# firewalld 서비스 중지
systemctl stop firewalld
# firewalld 서비스 활성화(재부팅)
systemctl enable firewalld
# 설정 후 설정 즉시 로드
firewall-cmd --reload

### firewalld 방화벽 상태 확인 ###
systemctl status firewalld
## 상태 조회 중 메시지 확인 시 AllowZoneDrifting가 yes로 설정되어 있는 경우 나오는 메시지 
WARNING: AllowZoneDrifting is enabled. This is considered an insecure configur...t now.
vi /etc/firewalld/firewalld.conf
AllowZoneDrifting=yes
no로  두는 것이 좋다는.. 
systemctl firewalld restart 
AllowZoneDrifting 참조

✅ firewalld zone 설정 확인

  • firewalld 옵션
  • –permanent : 영구적으로 실행(default zone에 등록)
  • –add-service: 서비스 추가
  • –remove-service 서비스 삭제
# 기본 설정 ZONE 확인
~]# firewall-cmd --get-default-zone
publi
# 네트워크 인터페이스에서 사용하는 영역 확인
firewall-cmd --get-active-zones
public
  interfaces: eth0
# 특정 영역의 모든 구성 확인
firewall-cmd --zone=public --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
# 모든 영역의 모든 구성 확인
firewall-cmd --list-all-zones
 firewall-cmd --list-all-zones
block
  target: %%REJECT%%
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: 
  ports: 
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

dmz
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh
  ports: 
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

drop
  target: DROP
----- 이하 생략 -----

✅ firewalld zone 설정하기

1. 포트 설정

# 포트 허용하기: 임의 3391 포트 허용 및 거부 | permanent(영구적인)로 영구 설정
firewall-cmd --zone=public --add-port=3391/tcp
firewall-cmd --zone=public --add-port=3391/tcp --permanent 
 
firewall-cmd --zone=public --remove-port=3391/tcp --permanent
# 설정 후 설정 즉시 로드
firewall-cmd --reload
# 설정된 포트 보기
firewall-cmd --zone=public --list-ports

2. IP 설정

### IP대역에 대해 방화벽 해제하기
# 추가(접근 허용) 하기
firewall-cmd --permanent --add-source=192.168.0.0/24
# 제거하기
firewall-cmd --permanent --remove-source=192.168.0.0/24
## 특정 IP 접근 허용
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address=210.192.3.118 reject' 
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address==210.192.3.118 drop'   
# 설정된 방화벽 리스트 보기
firewall-cmd --zone=public --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 3391/tcp
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	rule family="ipv4" source address="192.168.0.0/24" port port="8000" protocol="tcp" accept

3. http, https 서비스 추가 및 해제

# 서비스 추가
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
# 서비스 해제
sudo firewall-cmd --permanent --remove-service=http
sudo firewall-cmd --permanent --remove-service=http

리눅스 FirewallD 설치 및 운영 방법에 대해 간단히 알아 봤습니다.

리눅스Linux(회색 배경의 나무 큐브)

Similar Posts

  • Varnish Cache란 무엇인가? | Varnish 설치 및 기본 설정하기

    Varnish Cache는 동적 웹사이트와 API에 적합한 HTTP 가속기입니다. 이는 스퀴드와 같은 클라이언트 사이드 캐시 역할을 하는 다른 웹 가속기와 달리 Nginx, 아파치와 같은 원본 서버 대신 HTTP 가속기로 설계 되었습니다. 또한, Varnish는 HTTP에 특화되어 있어 FTP, SMTP 및 다른 통신 프로토콜을 지원하는 프록시 서버와는 다릅니다. 목차✅ 리눅스 FirewallD 설치하기✅ 리눅스 Firewalld 데몬 시작✅…

  • Apache&Nginx에 Varnish Cache 설치 및 설정

    기존 Apache와 Nginx 조합의 서버에 Varnish Cache를 추가로 설치하고 적용 해 보도록 하겠습니다. Nginx에 Varnish Cache를 추가로 설정하는 작업이기 때문에 기존의 서버에 적용된 사항을 체크 해 보겠습니다. AlmaLinux release 9.4 버전에 Apache/2.4.57, nginx/1.28.0 , PHP 8.3.22를 사용하기 때문에, 설치는 varnish, collectd-varnish, varnish-modules 총 3개의 모듈 설치를 진행합니다. 목차✅ 리눅스 FirewallD 설치하기✅ 리눅스 Firewalld…

  • [Linux] 우분투 서버 설치 RAID 1 (24.04 ver.)

    Oracle VirtualBox에 우분투 서버 설치를 RAID 1 으로 진행해 보겠습니다. 설치 버전은 24.04 버전입니다. RAID 1은 콘솔이 아니라 설치 과정의 UI 환경에서 설정하겠습니다. 목차✅ 리눅스 FirewallD 설치하기✅ 리눅스 Firewalld 데몬 시작✅ firewalld zone 설정 확인✅ firewalld zone 설정하기1. 포트 설정2. IP 설정3. http, https 서비스 추가 및 해제 ✅ 가상머신 생성 우분투 24.04…

  • 리눅스 who, w 명령어 & user 명령어

    리눅스 who 명령어는 현재 서버에 로그인한 사용자 리스트를 보여주는 명령어입니다. w 명령어는 현재 시스템에 로그인한 사용자와 사용자의 작업 내용을 보여주는 명령어로 각각의 차이가 있습니다. 목차✅ 리눅스 FirewallD 설치하기✅ 리눅스 Firewalld 데몬 시작✅ firewalld zone 설정 확인✅ firewalld zone 설정하기1. 포트 설정2. IP 설정3. http, https 서비스 추가 및 해제✅ 리눅스 who 명령어 현재…

  • 리눅스 리다이렉션(Redirection)

    웹 상에서 리다이렉션(Redirection)은 웹 브라우저가 특정 URL을 요청했을 때, 미리 지정된 다른 URL로 재요청하게 하는 것을 말합니다. 재 연결의 사전적인 의미를 가진 Redirection은 리눅스에서 입력과 출력을 다루는 방식으로, 데이터를 파일로 보내거나 파일에서 읽어오는 작업을 수행할 수 있게 해줍니다. 리눅스 리다이렉션은은 키보드로 입력, 화면으로 출력을 하는 것이 아니라 파일로 출력하는 것을 의미합니다. 리다이렉션에는 표준…

  • 리눅스 파일 시스템(File System)과 스토리지

    리눅스 파일 시스템File System은 모든 파일 및 디렉토리를 큰 트리 구조 하나로 관리합니다. 리눅스는 Ext(Extended File System)를 사용합니다. OS는 파일 스토리지에 있는 파일을 효율적으로 관리하기 위해 파일 시스템을 구축하게 됩니다. 목차✅ 리눅스 FirewallD 설치하기✅ 리눅스 Firewalld 데몬 시작✅ firewalld zone 설정 확인✅ firewalld zone 설정하기1. 포트 설정2. IP 설정3. http, https 서비스 추가 및…

답글 남기기

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

Prove your humanity: 0   +   1   =