개발/개발관련

[개발관련] firewall-cmd, zone, service

mabb 2024. 5. 6. 12:32
반응형

보안 조치 때문에 firewall-cmd 명령어를 이것 저것 사용해보고 있다.
목적은 기본적으로 모든 인바운드를 드랍하고 특정IP:특정서비스(port)만 허용하는 것.

TCPWrapper인 경우 /etc/hosts.allow, /etc/hosts.deny 파일을 편집하여 설정하라고 하는데, Rocky8버전인지라 firewall-cmd 를 이용하여 ACL(Access Control List, 접근제어리스트) 을 설정해주어야 한다.

firewall-cmd 를 사용해보면서 조금 알게된 부분을 기록한다.

[이해]

1. zone: 방화벽 정책 그룹 정도로 이해. public, dmz, drop, internal, external, home 등이 있다. NIC에 매핑할 수 있다.
 -> 공용 네트워크에서 갖추어야 할 보안 정책을 public이라는 이름의 그룹으로 정의해둔 것이라고 이해
     dmz에서 갖추어야 할 보안 정책 그룹 = dmz
2. service: 서비스 단위의 정책 설정 정도로 이해. ssh서비스의 경우 22/tcp port로 설정되어 있다.
-> zone에 service를 추가할 수 있다. 허용이 필요한 서비스(port) 를 service 로 등록하여 zone 에 추가한다.

3.drop/ accept/ reject: drop=폐기(응답 없이 그냥 버림), accept=허용, reject=거부(거부했다고 응답을 해줌)

 

firewall-cmd --get-zones ❘ tr ' ' '\n'

 

frewall-cmd --list-all
firewall-cmd --get-services ❘ tr ' ' '\n'
firewall-cmd --info-service=ssh

 

[명령어]

# firewall-cmd --state 

#firewall-cmd --list-all 

#firewall-cmd --get-zones

#firewall-cmd --get-services | tr ' ' '\n'

#firewall-cmd --new-service=서비스명 --permanent

#firewall-cmd --remove-service=서비스명 --permanent         // 이하 --permanent 생략

#firewall-cmd --info-zone=존이름

#firewall-cmd --info-service=서비스명

#firewall-cmd --zone=존이름 --add-source=IP또는IP대역

#firewall-cmd --zone=존이름 --remove-source=IP또는IP대역

#firewall-cmd --zone=존이름 --add-source=IP또는IP대역

#firewall-cmd --zone=존이름 --add-service=서비스명

#firewall-cmd --zone=존이름 --remove-service=서비스명

#firewall-cmd --get-active-zones

#firewall-cmd --zone=존이름 --set-target=DROP | ACCEPT | REJECT

#firewall-cmd --zone=존이름 --add-rich-rule='rule family="ipvt" source address=IP또는IP대역 drop | accept | reject '

#firewall-cmd --zone=존이름 --remove-rich-rule='rule family="ipvt" source address=IP또는IP대역 drop | accept | reject '

#firewall-cmd --zone=존이름 --change-interface=인터페이스명

 

 

 

그나저나  무엇을 잘못 했는지, 모든 ip 의 인바운드를 reject 하고 특정 Ip (225) 만 허용하도록 설정을 바꿔주어도 모두 reject 되고 있음

왼쪽은 src 225, 오른쪽은 src 233

 

rich-rule 로 설정 = 안됨

 

source에 설정 = 안됨

 

혹시 src 가 다른가 해서 tcpdump 확인해보니 src 225 로 전송하고 있음.

 

이래서 제대로 원리를 모르면 헤매는 것 같다.... 

반응형