리눅스 FirewallD 설치 및 데몬 설정

공정위 광고 문구 Ver 3.1
공정위 광고 문구 Ver 3.2(모바일 전용)

리눅스 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

  • Linux: 프로그램과 프로세스 및 스레드(3가지 용어 차이)

    리눅스 시스템에서 프로그램과 프로세스 스레드의 차이는 운영체제를 이해하는데 필요한 요소입니다. ✅ 프로그램(Program)이란? 사전적 의미의 프로그램은 컴퓨터에서 실행 가능한 명령어들의 모음을 의미하며, 특정 작업을 수행하기 위해 개발된 소프트웨어(및 소프트웨어의 형태)입니다. ◼ 종류 ✅ 프로세스(Process)란? 프로세스는 프로그램이 실행되어 돌아가고 있는 상태로서 실행 중인 프로그램을 의미합니다. 프로그램은 메모리에 적재되어 CPU에 의해 실행이 됩니다. 이때의 실행 상태를…

  • Claude MCP Linux 서버 연결: SSH 설정 방법

    MCP는 클로드를 내 리눅스 서버의 터미널·파일에 연결하는 통로입니다. Claude MCP Linux 서버 연결이 SSH 위에서 어떻게 성립하는지, 무엇이 오가고 무엇은 오가지 않는지 풀어 봅니다. Claude MCP란 Model Context Protocol의 약자로, 클로드가 외부 도구, 데이터베이스, API, 문서 저장소 등과 안전하게 연결되도록 앤트로픽(Anthropic)이 개발한 개방형 표준 통신 규격입니다. Claude MCP가 규약이라면, Claude MCP Server는 전달하는…

  • 리눅스 Logrotate 개념과 설정

    리눅스 Logrotate는 “로그를 회전하다.”라는 뜻에서 알 수 있듯이 로그와 Rotate(회전하다[동사])의 합성어입니다. 리눅스 설치 시 기본으로 설치되어 있습니다. 로테이션(Rotation)은 사람을 일정한 순서에 따라 교대하는 일, 야구 경기에서 선발 투수를 차례로 기용하는 일 등의 예에서 볼 수 있듯이 반복과 교대의 개념을 가지고 있습니다. 리눅스에서 로그로테이션(Logrotation) > 로그 회전이라는 명사로도 언급됩니다. Logrotate가 설치되어 있지 않다면 명령어를…

  • 리눅스 시스템 로그 정의 및 분류

    리눅스 시스템 로그는 시스템에서 발생하는 다양한 이벤트를 기록하며, 시스템의 상태를 모니터링하고 문제를 진단하는 데 중요한 역할을 합니다. 로그 파일은 시스템의 동작, 오류, 보안 관련 이벤트 등을 기록하고, 관리자는 이를 통해 시스템의 상태를 점검하며 성능을 모니터링할 수 있습니다. 이를 통해 시스템의 원활한 운영을 보장하고, 트러블슈팅 시 중요한 정보를 제공합니다. Ⅰ. 리눅스 시스템 로그의 정의…

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

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

  • Linux: crontab 설정

    윈도우 스케줄러와 비슷한 개념의 리눅스 crontab은 주기적으로 홈페이지 및 DB 데이터를 백업해야 하거나 특정 시간에 로그 파일 등을 삭제해서 서버 유지 관리가 필요한 경우에 사용되는 스케줄러입니다. 크론탭은 특정 시간에 주기적으로 작업이 자동으로 이루어지도록 설정하는 것을 의미합니다. 1. 크론탭 자주 사용되는 명령어 vi 명령어처럼 편집할 수 있는 명령어입니다. 직접 편집한 후에 콜론(:) 입력 후…

답글 남기기

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

Prove your humanity: 7   +   1   =