리눅스 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 데몬 시작✅…

  • 리눅스 심볼릭 링크(Symbolic Link)와 하드 링크(Hard Link)

    리눅스에서 사용하는 심볼릭 링크(Symbolic Link)는 윈도우에서 사용하는 “바로가기”와 같은 기능을 가지고 있습니다. 소프트 링크 or 심링크로도 불리며, 하나의 파일에 여러 이름으로 생성할 수 있습니다. 목차✅ 리눅스 FirewallD 설치하기✅ 리눅스 Firewalld 데몬 시작✅ firewalld zone 설정 확인✅ firewalld zone 설정하기1. 포트 설정2. IP 설정3. http, https 서비스 추가 및 해제✅ 심볼릭 링크 하드 링크…

  • [Linux] usermod 명령어

    usermod 명령어는 user modification(사용자 수정)의 약자로 이미 존재하는 사용자 계정의 속성을 변경할 때 사용됩니다. usermod는 사용자의 로그인 이름, UID (사용자 ID), 홈 디렉토리, 로그인 셸, 그룹 등의 속성을 변경할 수 있는 명령어입니다. 목차✅ 리눅스 FirewallD 설치하기✅ 리눅스 Firewalld 데몬 시작✅ firewalld zone 설정 확인✅ firewalld zone 설정하기1. 포트 설정2. IP 설정3. http, https 서비스…

  • Apache 시작, 중지, 재시작 명령어 | 서비스 상태 확인

    리눅스에서 Apache를 설치하고 레드헷 계열과 우분투에서의 시작, 중지, 재시작 명령어를 자주 사용하게 됩니다. Apache 시작, 중지, 재시작 등의 명령어는 다음과 같습니다. 목차✅ 리눅스 FirewallD 설치하기✅ 리눅스 Firewalld 데몬 시작✅ firewalld zone 설정 확인✅ firewalld zone 설정하기1. 포트 설정2. IP 설정3. http, https 서비스 추가 및 해제✅ Apache 시작 및 중지, 재시작: Red Hat…

  • 스왑 메모리(Swap Memory) 설정: 파티션&파일 2가지 방식 | swapon, mkswap 명령어

    리눅스 스왑 메모리(Swap Memory)는 실제 디스크 공간을 메모리처럼 사용하는 개념이기 때문에 물리 메모리인 RAM보다 처리 속도가 느리지만 물리 메모리가 가득 찬 경우를 대비해 디스크 공간에서 할당 된 스왑 메모리를 생성해서 관리할 수 있어 한정된 리소스를 효율적으로 사용할 수 있습니다. 목차✅ 리눅스 FirewallD 설치하기✅ 리눅스 Firewalld 데몬 시작✅ firewalld zone 설정 확인✅ firewalld zone…

  • RAID 구성 | RAID Level 0, 1, 4, 5, 6, 1+0, 0+1

    RAID(Redundant Array of Independent Disks 또는 Redundant Array of Inexpensive Disks)는 뜻 하는 내용처럼 여러 개의 디스크를 스토리지 하나처럼 운영하여 스토리지의 안정성을 확보하는 기술입니다. 저렴한(Independent) 디스크의 복수 배열의 뜻에서 독립적인 디스크의 복수 배열이란 뜻으로 많이 사용되고 있습니다. 이유는 단독으로 사용하기에 부족한 성능을 가진 디스크를 하나의 논리 디스크로 정렬해서 재활용하는데 목적이 있었기 때문입니다. 디스크…

답글 남기기

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

Prove your humanity: 2   +   1   =