지정된 포트에서 지정된 국가의 TCP 트래픽만 허용하고 나머지 트래픽은 iptables를 사용하여 다른 IP/포트로 리디렉션하는 방법이 있습니까?
답변1
작동하기 전에 geoip 데이터베이스를 설정하고 업데이트해야 합니다.
iptables -I INPUT -m geoip -p tcp --dport ### --src-cc CN -j ACCEPT
iptables -A PREROUTING -m geoip -p tcp --dport ### --src-cc ! CN -j DNAT --to-destination 1.1.1.1:333
1.1.1.1을 IP로 바꾸고 333을 원하는 포트로 바꾸십시오.
다음은 도움이 되는 튜토리얼입니다. http://xmodulo.com/block-network-traffic-by-country-linux.html 분명히 이 링크는 사라졌기 때문에 인터넷 보관용으로 하나를 추가하고 있습니다.
때때로 IP 주소가 소유자와 국가를 변경하므로 데이터베이스를 주기적으로 업데이트해야 합니다.
답변2
올바른 구문은 다음과 같습니다.
iptables -I INPUT -m geoip -p tcp --dport xxx --src-cc CN -j ACCEPT
iptables -A PREROUTING -p tcp --dport xxx --src-cc ! CZ,SK -j DNAT --to-destination 1.1.1.1:333
하지만 당신의 대답은 정확했습니다.