IPTables — перенаправление трафика в зависимости от страны

IPTables — перенаправление трафика в зависимости от страны

Есть ли способ разрешить TCP-трафик только из определенных стран на указанном порту, а остальной трафик перенаправить на другой IP/порт с помощью iptables?

решение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 Видимо, эта ссылка умерла, поэтому я добавляю другую для интернет-архива.

https://web.archive.org/web/20190410142529/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

Но ваш ответ был правильным.

Связанный контент