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로 조회해서 보시면됩니다.

 

natura

profile
취미로 개발하는 사람입니다.
  • profile

    iptables에 geoip를 설치하면 국가별로 차단이 가능합니다.

    제 경우는 80번포트는 CN,RU 중국과 러시아를 차단했습니다.

    FTP와 SSH는 한국만 열었습니다.

     

    -A RH-Firewall-1-INPUT -p tcp --dport 80 -m geoip --src-cc CN,RU -j DROP
    -A RH-Firewall-1-INPUT -p tcp --dport 21 -m geoip ! --src-cc KR -j DROP
    -A RH-Firewall-1-INPUT -p tcp --dport 22 -m geoip ! --src-cc KR -j DROP
     

    firewall-cmd 에서 다시 iptables로 돌아온 1인...