보안 조치 때문에 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 --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 로 전송하고 있음.
이래서 제대로 원리를 모르면 헤매는 것 같다....
'개발 > 개발관련' 카테고리의 다른 글
[개발관련] JAVA_ SLF4J와 Logback에 대한 이해(+ServiceLoader) (0) | 2024.05.24 |
---|---|
[개발관련]JAVA_ Getter/Setter vs Field Direct Access 비교 (0) | 2024.05.17 |
[개발관련] Rocky8 비밀번호 5회 틀림 잠김 처리 (authselect, pam.d, faillock) (0) | 2024.05.04 |
[개발관련] snmpwalk 인터페이스 정보 (0) | 2024.04.30 |
[개발관련] route add (0) | 2024.04.19 |