La whitelist ha permesso gli IP (in / out) usando iptables


21

Ho alcune gamme di ip a cui voglio che il mio server sia in grado di connettersi e gli utenti da cui connettersi. Tutto il resto dovrebbe essere bloccato.

Come dovrei farlo con iptables?

Il mio sistema operativo è una distribuzione Linux basata su Debian.

Risposte:


27

Suggerirei di prendere uno strumento di configurazione del firewall, come Firestarter , e andare da lì. Ecco alcune nozioni di base per te, però.

#Flush existing rules
iptables -F
# Set up default DROP rule for eth0
iptables -P INPUT DROP
# Allow existing connections to continue
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Accept everything from the 192.168.1.x network
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT
# Allow connections from this host to 192.168.2.10
iptables -A OUTPUT -o eth0 -d 192.168.2.10 -j ACCEPT

3
Sai che puoi formattare il tuo codice in post serverfault, usando il pulsante 101010. In questo modo i tuoi commenti non verranno pubblicati come urla. Basta selezionare (trascinare il mouse sopra) il codice e quindi fare clic sul pulsante 101010 sopra il campo di testo.
Jason Tan,

2
Ahhh grazie, non me ne sono reso conto. Ora lo so :)
Zenham,

1
+1 per ESISTENTE, CORRELATO - troppe persone non lo fanno.
Alnitak,

1
Per amore di Dio, imposta la regola DROP predefinita ULTIMA! Mi sono bloccato (e tutto il resto!) Fuori da una macchina seguendo quell'ordine di operazioni.
Bendoh,

1
Risposta terribile. OP non dice nulla sull'abbandono di tutte le connessioni correnti. Ora sono bloccato perché ho pensato che la risposta migliore avesse senso.
omike

14
iptables -I INPUT -s <allowed_ip> -j ACCEPT #(repeat this line as needed)
iptables -P INPUT DROP

Ciò trasformerà il tuo sistema in un sistema inesistente per computer non consentiti.


7

Se si desidera consentire intervalli arbitrari piuttosto che intere sottoreti, è possibile utilizzare il modulo iptables 'iprange':

iptables -P INPUT DROP

iptables -A INPUT -m iprange --src-range 192.168.1.30-50 -j ACCEPT

ad esempio, consentirà il traffico proveniente da tutte le macchine con indirizzo tra 192.168.1.30 e 192.168.1.50.

Se si desidera consentire il traffico in entrata e in uscita verso lo stesso intervallo di IP, suggerirei di creare una catena specifica che consenta tali IP e targetizzi tutti i target di input e output:

--definisci i criteri predefiniti per eliminare tutto:

iptables -P INPUT DROP

iptables -P OUTPUT DROP

--creare la nuova catena:

iptables -N allowed_ips

--se la fonte fa parte dell'intervallo consentito, accetta

iptables -A allowed_ips -m iprange --src-range 192.168.1.30-50 -j ACCEPT

- In caso contrario, tornare alla catena del chiamante per continuare l'elaborazione

iptables -A allowed_ips -j RETURN

- fai passare tutto il traffico in entrata e in uscita dalla macchina attraverso la nostra nuova catena

iptables -A INPUT -j allowed_ips

iptables -A OUTPUT -j allowed_ips

e basta! ovviamente potresti aver bisogno di regole adizionali, come quella che consente tutto il traffico da / verso l'interfaccia lo, ecc.


1

Una volta che sei soddisfatto delle tue regole, probabilmente vorrai salvarle . I commenti in questo link hanno diverse opzioni su come farlo.

Un generatore di regole iptables facile da usare per esigenze semplici è ufw . Il pacchetto è disponibile in debian unstable.

Prova anche Firestarter . Disponibile in lenny.


0

Puoi anche usare ferm, che uso anche l'anno scorso e mi ha aiutato molto con casi come le regole condizionali del firewall.

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.