9

Поэтому я искал в сети сценарий, который отбрасывает весь трафик на все порты, кроме портов http(80) и https(443), а затем разрешает трафик только на все другие порты из страны x (где в моем страна дела x - это США).

Я не хочу добавлять все IP-адреса из каждой страны, я просто хочу разрешить ips из моей страны, а затем блокировать практически весь другой трафик из внешнего мира. Никто за пределами моей страны не должен иметь доступа к ssh, ftp, smtp, ect. кроме меня. Если это когда-нибудь изменится, я добавлю специальный случай для него, когда он подойдет.

Примечание

Я должен заметить, что я нашел вопрос, который содержит скрипт для запрета ip по стране с использованием таблиц ip, но это большая дополнительная вставка, которую я должен был бы сделать.

Сценарий, помеченный как лучший ответ, заблокирует весь трафик с этих IP-адресов. Я только хочу заблокировать доступ ко всем портам, кроме 80 и 443.

Обновить

Со следующим правилом

iptables -A OUTPUT -m geoip --dst-cc CN -j DROP

смогу ли я изменить его и сделать что-то вроде

iptables -A OUTPUT -m geoip --dst-cc CN --dport 80 -j ACCEPT
iptables -A OUTPUT -m geoip --dst-cc CN --dport 443 -j ACCEPT
iptables -A OUTPUT -m geoip --dst-cc CN -j DROP

Я предположил бы, что это позволит ips из Китая получить доступ к порту 80 и порту 443, а остальные будут отброшены. Будет ли это предположение правильным? Если нет, то почему нет?

Обновление 2

После некоторого возни я обнаружил, что моей версии Ubuntu не нравится атрибут --dport . Поэтому вместо того, чтобы использовать это, те из нас, кто работает с Ubuntu 14+ (по крайней мере, на некоторых машинах установлены только Ubuntu 14.04, 14.10 и 15.04), должны будут использовать -p PORT_NUMBER_OR_NAME

Так это будет выглядеть

iptables -A OUTPUT -m geoip --dst-cc CN -p 443 -j ACCEPT

или для входящего трафика,

iptables -A INPUT -m geoip --src-cc CN -p 443 -j ACCEPT

1 ответ1

7

Вам нужно будет добавить поддержку iptables для геолокации. Для этого вам необходимо выполнить следующие шаги:

# apt-get install xtables-addons-common
# mkdir /usr/share/xt_geoip
# apt-get install libtext-csv-xs-perl unzip
# /usr/lib/xtables-addons/xt_geoip_dl
# /usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip *.csv

Это позволит вам делать такие вещи, как:

iptables -A OUTPUT -m geoip --dst-cc CN -j DROP

Это блокирует любой исходящий трафик в Китай (CN). Сложность правил зависит от вас, в основном вам не нужен сценарий, просто запишите правила, которые вы хотите применить, а затем используйте iptables-save чтобы они загружались при каждой перезагрузке.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .