Le tabelle IP di Ubuntu consentono solo 1 Paese


10

Quindi ho cercato in rete uno script che rilascerà tutto il traffico verso tutte le porte tranne le porte http (80) e https (443), e quindi consenti solo il traffico su tutte le altre porte dal paese x (dove nel mio case country x sono gli Stati Uniti).

Non voglio aggiungere tutti gli IP di tutti i paesi, voglio solo consentire ips dal mio paese e bloccare quasi tutto il resto del traffico dall'esterno. Nessuno al di fuori del mio paese dovrebbe avere accesso a ssh, ftp, smtp, ect. diverso da me stesso. Se questo dovesse mai cambiare, aggiungerò un caso speciale quando si avvicina.

Nota a margine

Devo notare che ho trovato una domanda che contiene uno script per vietare l'IP per paese usando le tabelle ip ma questo è un sacco di extra che avrei dovuto fare.

Lo script contrassegnato come la migliore risposta bloccherà tutto il traffico proveniente da tali IP. Voglio solo bloccare l'accesso a tutte le porte tranne 80 e 443.

Aggiornare

Con la seguente regola,

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

sarei in grado di modificarlo e fare qualcosa di simile

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

Suppongo che ciò consentirebbe agli IP dalla Cina di accedere alla porta 80 e alla porta 443 e lascerebbe cadere il resto. Questa ipotesi sarebbe corretta? In caso contrario, perché no?

Aggiornamento 2

Dopo alcuni scherzi ho scoperto che la mia versione di Ubuntu non piace l' --dportattributo. Quindi invece di usare quelli che usano Ubuntu 14+ (almeno, ho installato Ubuntu 14.04, 14.10 e 15.04 su alcune macchine) dovranno usare-p PORT_NUMBER_OR_NAME

Così sarebbe simile

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

o per il traffico in entrata,

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

Risposte:


7

Sarà necessario aggiungere il supporto iptables per la geolocalizzazione. Per fare ciò, dovrai seguire questi passaggi:

# 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

Questo ti permetterà di fare cose come:

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

Ciò bloccherebbe qualsiasi traffico in uscita verso la Cina (CN). La complessità delle regole dipende da te, in pratica non hai bisogno di uno script, basta scrivere le regole che desideri applicare e quindi utilizzare in iptables-savemodo che vengano caricate ogni volta che riavvii.


Grazie! Ho un'altra domanda, ho aggiornato la mia domanda sopra per riflettere. Ti capita di conoscere la risposta ad esso?
Austin Kregel,

La regola funzionerebbe ma devi cambiarne la direzione, ora lo è OUTPUTe dovresti impostarla su INPUTe non usarla --dst-ccma --src-ccinvece. Ma se la domanda è se dovrebbe funzionare in combinazione con qualsiasi altra iptablesregola esistente , la risposta è sì.
nKn

il xt_geoip_dlcomando non funziona più, richiede una zip che non esiste più
Martijn
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.