IP-таблиці Ubuntu дозволяють використовувати лише одну країну


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.