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.