kjh00n의 기록저장소
★firewalld (공부해라) 본문
firewalld 기본 명령어
▪ systemctl status firewalld
▪ systemctl start firewalld
- firewall-cmd 방화벽 제어
▪ firewall-cmd --version
▪ firewall-cmd --list-all
▪ firewall-cmd --get-services (정의된 서비스 목록 확인)
▪ firewall-cmd --list-services (접근 허용된 서비스 확인)
services말고 다른 것도 가능
firewalld 설정
1. 특정 정책을 구성하여 원하는 데이터를 허용, 차단하는 방식 (iptables)
- 정책 생성 → 정책을 원하는 시점에 적용
- 복잡한 정책이나 세부적인 정책을 구성하기 쉽다.
- 관리자가 원하는 형태로 방화벽을 제어하기 쉽다.
- 정책을 이해해야 원하는 형태로 구성이 가능하다.
2. 특정한 명령어를 이용하여 방화벽에서 지원하는 서비스나 port 정보를 불러와 허용, 차단하는 방식 (firewalld)
- (관리자의 편의성을 증가한 방식)
- 명령어나 옵션을 이용하여 데이터를 허용, 차단이 가능
- 정책을 구성하는 방식X
- 설정 정보만 확인해도 데이터들의 허용, 차단이 파악이 가능
- 세부적인 조건, 복잡한 정책 구성은 부적합
- 일반 PC, end point 장비 구성하는 방화벽(host방화벽)으로 적합
- 네트워크 방화벽으로는 부적합
정책 직접 설정
정책 설정 명령어
▪ firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p icmp -s 192.168.50.1 -j DROP (정책 추가)
▪ firewall-cmd --permanent --direct --remove-rule ipv4 filter INPUT 0 -p icmp -s 192.168.50.1 -j DROP (정책 제거)
이 명령어는 firewalld를 사용하여 192.168.50.1 IP 주소에서 오는 ICMP(ping) 요청을 영구적으로 차단하는 방화벽 규칙을 추가하는 것입니다.
이 규칙은 firewalld의 직접 규칙 테이블에 추가되며, 우선순위 0으로 설정되어 가장 먼저 적용됩니다.
▪ filter (패킷을 수락하거나 거부하는 규칙을 정의하는 데 사용)
▪ INPUT (즉, 시스템으로 들어오는 패킷에 대한 규칙을 설정)
▪ -p (protocol)
▪ -s (출발지)
▪ -d (목적지)
▪ DROP (즉, 출발지 IP가 192.168.50.1인 ICMP 패킷이 시스템에 도달할 경우, 이 패킷을 무시하고 처리하지 않게 됩니다.)
설정한 정책 확인
▪ firewall-cmd --direct --get-all-rules
firewall services 설정
- 접근 허용할 서비스를 추가, 제거하는 명령어
▪ ★firewall-cmd --permanent --zone=public --add-service=telnet
▪ firewall-cmd --permanent --zone=public --remove-service=telnet
▪ permanent(영구적임,껐다 켜도 적용된다.) / zone(방화벽 설정하는 그룹) / (telnet외에도 가능)
재시작해야 적용된다.
활성화된 서비스 외에는 접속을 차단시킨다.
telnet을 깔아서 접속을 시도했었지만 허용 목록에 없어서 접속이 차단되었다.
firewalld를 restart해줘야 서비스목록에 추가,삭제가 된다.
- 존 생성
▪ firewall-cmd --get-default-zone (기본 존 확인)
▪ firewall-cmd --permanent --new-zone=test (새로운 존 생성) (생성만 한거지 활성화된 것이 아님)
▪ firewall-cmd --set-default-zone=test (생성한 존을 기본 존으로 지정)
▪ firewall-cmd --permanent --delete-zone=test (생성한 존 제거)
재시작해야 적용된다.
firewall port 설정
- Port 생성
▪ firewall-cmd --permanent --zone=public --add-port=50000/tcp (port번호 뒤에 protocol도 지정해줘야된다.)
▪ firewall-cmd --reload ← restart안해도 불러와진다.
- Port 제거
▪ firewall-cmd --permanent --zone=public --remove-port=50000/tcp
firewall source 설정 (출발지 IP 허용,차단)
- 허용 IP 주소 리스트 확인 (기본zone)
▪ firewall-cmd --list-sources
- 허용 IP 주소 리스트 확인 (특정zone)
▪ firewall-cmd --list-sources --zone=public
- 특정 허용ip 주소 추가 (10.10.10.1) (public zone)
▪ firewall-cmd --permanent --zone=public --add-source=10.10.10.1
- 특정 허용ip 주소대역 추가 (20.20.20.0/24) (public zone)
▪ firewall-cmd --permanent --zone=public --add-source=20.20.20.0/24
- 특정 허용주소, 대역삭제
▪ firewall-cmd --permanent --zone=public --remove-source=10.10.10.1
▪ firewall-cmd --permanent --zone=public --remove-source=20.20.20.0/24
- icmp-block-inversion => icmp 블록 반전 활성화
▪ firewalld에서 기본 icmp는 전부 허용이다.
▪ firewall-cmd --permanent --zone=public --add-icmp-block-inversion (허용→차단)
▪ firewall-cmd --permanent --zone=public --remove-icmp-block-inversion (차단→허용)
윈도우 cmd에서 192.168.50.50으로 ping을 쏘면 ping이 간다.
윈도우 cmd에서 192.168.50.50으로 ping을 쏘면 ping이 가지 않는다.
firewall-cmd --permanent --zone=public --add-icmp-block=echo-request (echo-request를 차단하겠다.)
firewall-cmd --permanent --zone=public --remove-icmp-block=echo-request (echo-request를 허용하겠다.)
윈도우 cmd에서 ping을 치면 안된다. (ping만 안되는것)