Ubuntu IPTables разрешают только 1 страну


10

Поэтому я искал в сети сценарий, который отбрасывает весь трафик на все порты, кроме портов 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

Ответы:


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чтобы они загружались при каждой перезагрузке.


Спасибо! У меня есть еще один вопрос, я обновил свой вопрос выше, чтобы отразить его. Вы случайно не знаете ответ?
— Остин Крегель

Правило будет работать, но вы должны изменить его направление, теперь оно есть, OUTPUTи вам нужно установить его INPUTи не использовать, --dst-ccа --src-ccвместо этого. Но если вопрос в том, должно ли оно работать в сочетании с любым другим существующим iptablesправилом, ответ - да.
— nKn

не xt_geoip_dlкоманда больше не работает, он требует почтового то не существует больше
— Мартейн
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.