안녕하세요? MEGA IDC 서버운영팀입니다.
firewall-cmd --permanent --new-ipset=whitelist --type=hash:net
한국 아이피대역.
wget -O kr.zone http://www.ipdeny.com/ipblocks/data/countries/kr.zone
한국인터넷정보센터에서 제공하는 것도 있는데 따로 가공을 하셔야 하는 관계로
https://xn--3e0bx5euxnjje69i70af08bea817g.xn--3e0b707e/jsp/infoboard/stats/ipCurrent.jsp?nationCode1=KR
링크만 올려두었습니다.
쉘 스크립트 을 만듭니다.
#!/bin/bash
for IP in $(cat 경로..)
do
echo "firewall-cmd --ipset=whitelist --add-entry=$IP"
firewall-cmd --ipset=whitelist --add-entry=$IP
done
실행합니다.
또는 firewall-cmd --permanent --ipset=whitelist --add-entries-from-file=파일명로도 된다는데 테스트 해보시면 될꺼같습니다.
firewall-cmd --zone=public --add-rich-rule='rule source NOT ipset=whitelist drop'
firewall-cmd --restart
참고 http://bbangpower-blog.blogspot.com/2017/11/centos-7-firewalld-ipset-ip.html
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/security_guide/sec-setting_and_controlling_ip_sets_using_firewalld
바로 적용하지 마시고 테스트해보시고 적용하세요.
rich rule를 공부하시면 규칙을 간단하게 설정가능합니다.
ipset 삭제
firewall-cmd --permanent --delete-ipset=whitelist
rich rule 제거시
firewall-cmd --zone=public --remove-rich-rule='rule source NOT ipset=whitelist drop'
기타 명령어는 help로 조회해서 보시면됩니다.