RHEL9 firewalld (firewall-cmd 명령어 정리)
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
삭제
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
예시 파일
<?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