서버 방화벽의 기본 zone인 public에 대해 많이 사용하는 명령어 위주로 기재합니다.
(Zone 단위로 관리도 가능하나 복잡해서 배제)
root 계정으로 실행합니다.
1. 방화벽 켜기/끄기
* Whitelist 기반으로서 켜자마자 추가적인 접속이 차단되므로 주의 필요 (현재 접속은 유지)
systemctl start firewalld
systemctl stop firewalld
2. 기존 설정내역 확인
firewall-cmd --list-all
3. 정책 추가
1) Source 제한 없이 허용 포트/서비스 추가 (택 1), 아래는 80 또는 http 추가 예시
firewall-cmd --zone=public --permanent --add-port=80/tcp
firewall-cmd --zone=public --permanent --add-service=http
여러 포트인 경우,
firewall-cmd --zone=public --permanent --add-port={3306,4567,4568,4444}/tcp
* 서비스 참조 /etc/services (필요 시 해당 파일에 추가 가능)
2) Source 제한하여 허용 포트/서비스 추가 (택 1), 아래는 80 또는 http 추가 예시
firewall-cmd --zone=public --permanent --add-rich-rule='rule family="ipv4" source address="Source IP" port port="80" protocol="tcp" accept'
firewall-cmd --zone=public --permanent --add-rich-rule='rule family="ipv4" source address="Source IP" service name="http" accept'
firewall-cmd --zone=public --permanent --add-rich-rule='rule family="ipv4" source address="Source CIDR" port port="80" protocol="tcp" accept'
firewall-cmd --zone=public --permanent --add-rich-rule='rule family="ipv4" source address="Source CIDR" service name="http" accept'
* CIDR 참조 https://www.ipaddressguide.com/cidr (IP 대역 변환)
3) 정책 제거는 --add-* 부분을 --remove-* 로 대체
firewall-cmd --zone=public --permanent --remove-port=...
firewall-cmd --zone=public --permanent --remove-rich-rule=...
4) Outbound 차단 (예전 방식으로 설정)
Outbound 는 firewall-cmd 기본 설정으로 안되어서 --direct 방식으로 설정 (아래는 특정 IP 에 대한 1521 포트 접근 차단)
firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 2 -d 1.1.1.1 -p tcp --dport=1521 -j DROP
firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 2 -d 2.2.2.2 -p tcp --dport=1521 -j DROP
firewall-cmd --direct --get-all-rules
* OUTPUT 다음 숫자(2)는 우선 순위 (0, 1 등도 지정 가능하나 앞 순위에 설정이 추가될 수 있어 2로 둚)
4. 반영 및 확인
firewall-cmd --reload
firewall-cmd --list-all
[예시] dhcpv6-client, ssh 서비스, tcp 80, tcp 443 포트의 접속이 허용되어 있음
public (active)
target: default
icmp-block-inversion: no
interfaces: ens192
sources:
services: dhcpv6-client ssh
ports: 80/tcp 443/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules: