CS/OS

RHEL9 firewalld (firewall-cmd 명령어 정리)

EVEerNew 2025. 4. 14. 21:31
반응형

 

RHEL에서는 소프트웨어 형식의 Firewall인 Firewall Demon(firewalld)을 제공한다.

firewalld도 iptables처럼 동작하며, firewall-cmd라는 전용 명령어를 제공한다.

 

 

 

iptables disable 명령어

단, 중복되지 않도록 iptables를 아래 순서대로 정지한 후 사용해야 한다.

 

systemctl stop iptables

systemctl disable iptables  -> 부팅 시, 자동 실행 차단

systemctl mask iptables     -> 수동 실행까지 차단

 

 

 

firewalld 설치 확인

firewalld는 RHEL 7버전 이상부터는 기본 설치 되어 있다.

 

rpm –qa | grep firewalld

 

 

 

firewalld 명령어

시작

systemctl start/enable firewalld

 

상태 확인

systemctl status firewalld

 

 

규칙 확인

firewall-cmd --list-all

기본적으로 ssh와 dhcpv6-client 서비스는 허용되어 있다.

 

 

연관된 서비스 출력

firewall-cmd --get-services

 

해당 서비스가 firewalld에 감지되었다는 의미이므로, firewall 명령어로 간단히 활성화시킬 수 있다.

 

 

규칙 추가를 위한 재로딩

firewall-cmd --reload

 

 

 

Firewall zone 

zone 확인

firewall-cmd --get-zones

회사 내규에 따라 다르게 설정, 일반적으로는 public zone을 사용한다.

 

기본 이더넷 인터페이스가 public zone에 배치된 것이 확인된다.

 

 

특정 zone의 규칙 확인하기

firewall-cmd --zone=public --list-all

 

 

 

 

다른 서비스를 대상에 추가하기

http 포트를 열어 보기 위해 httpd를 실행시키자.

 

 

httpd 동작만으로는 포트가 차단되어 있어, 연결 되지 않는다.

 

 

 

아래 명령어로 http를 서비스에 추가하면, service list에서 확인된다.

firewall-cmd --add-service=http

 

 

http 접속도 성공적으로 이루워진다.

 

 

삭제

firewall-cmd --remove-service=http

 

 

 

영구 적용

firewall-cmd --reload를 적용하면 http가 service에서 사라진다.

 

이처럼 reload를 적용하면 영구추가가 되지 않은 서비스는 목록에서 사라진다.

 

firewall-cmd --add-service=http --permanent

firewall-cmd --remove-service=http --permanent

 

 

 

 

pre-defined 서비스 이외의 서비스 추가하기

해당 경로로 이동하면 각 서비스들의 방화벽 설정 파일을 확인할 수 있다.

 

이 목록들이 firewall-cmd --get-services 에서 확인했던 서비스 목록들이다.

이곳에 필요한 서비스의 xml 설정 파일을 만들어 주면 된다.

 

간단하게 ssh.xml 파일을 복사해서 생성해주자.

 

cp ssh.xml sap.xml

vi sap.xml

ssh.xml의 내용

 

 

예시 파일

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>SAP</short>  
  <description>3rd party service~</description>
  <port protocol="tcp" port="32"/>
</service>

tcp 프로토콜과 32번 포트를 허용하는 SAP 서비스를 만들었다.

 

 

이후 firewalld를 재시작해준다.

systemctl restart firewalld

 

이제 sap를 service로 추가시킬 수 있다.

firewall-cmd --add-service=sap

 

 

 

 

 

 

명령어로 적용하기

프로토콜과 포트 직접 설정

firewall-cmd --add-port=3233/tcp
firewall-cmd --remove-port=3233/tcp

 

 

 

특정 IP reject 하기

firewall-cmd --add-rich-rule='rule family="ipv4" source address="<대상 IP>" reject'

 

 

이러면 해당 서버에서는 트래픽이 거절된다.

 

 

 

icmp 트래픽 제한

firewall-add --add-icmp-block-inversion

 

 

icmp-block-inversion을 통해 모든 icmp 가 차단된다.

 

 

 

 

외부로의 트래픽 차단

요즘 업무망에서 많이 차단당하는 GPT를 주소를 확인해 보자.

 

해당 ip로 나가는 패킷을 아래의 명령어로 drop 할 수 있다.

firewall-cmd --direct --add-rule ipv4 filter OUTPUT -d 172.64.155.209 - j DROP

 

 

 

반응형