IPTables: consenti connessioni MySQL in uscita ma non connessioni in entrata


10

Ho un server che non consente connessioni mysql da fonti esterne - tutti i miei database e le connessioni avvengono su localhost. La politica predefinita di iptables è di eliminare le connessioni per tutte le porte che non ho specificato (al momento non ho specificato la porta 3306 nelle mie regole iptable, quindi tutte le connessioni a questa porta vengono eliminate).

Va bene, ma ora vorrei collegarmi a un database mysql situato esternamente su Amazon RDS.

La porta 3306 può essere aperta al mondo esterno come segue:

iptables -t filter -A INPUT -p tcp --sport 3306 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 3306 -j ACCEPT

Questo mi consente di connettermi al database su Amazon RDS, tuttavia consente anche connessioni remote ai database sul mio server.

Cosa devo fare per consentire al mio server di connettersi al database su Amazon, ma limitare le connessioni esterne ai database sul mio server?

Tieni anche presente che credo che l'indirizzo IP della mia istanza di Amazon RDS possa cambiare periodicamente.


2
Ottieni un IP statico da Amazon e quindi impostare una whitelist che consente solo quell'IP per le connessioni inbound / output?
Peter,

Risposte:


17

Approfitta del motore statale:

iptables -t filter -A OUTPUT -p tcp --dport 3306 -j ACCEPT
iptables -t filter -A INPUT -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT

o nelle versioni successive di iptables

iptables -t filter -A OUTPUT -p tcp --dport 3306 -j ACCEPT
iptables -t filter -A INPUT -p tcp --sport 3306 -m conntrack --ctstate ESTABLISHED -j ACCEPT

Questo è esattamente ciò che il motore di stato esiste: consentire il traffico che soddisfa vari criteri (ad es. Protocollo, porta di origine) ma fa anche parte di una connessione esistente (come definisce la connessione ). Il risultato è che il TCP SYNpacchetto in uscita verso un determinato indirizzo IP esterno sulla porta di destinazione 3306, da una porta ephmeral locale, creerà una voce della tabella di stato per quella particolare combinazione di indirizzi IP e numeri di porta e restituirà solo il traffico con la stessa combinazione di gli indirizzi e le porte saranno consentiti attraverso e solo per la durata di tale connessione.

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.