Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Ubuntu - iptables - porty

Zdravím, potřeboval bych poradit s iptables. Asi vím, jak to vyřešit, ale raději bych to viděl od někoho, kdo tomu rozumí víc. Mám stroj, na kterém běží Ubuntu, a potřebuji na něm přes iptables nastavit, aby poslouchal jen na určitých portech a zbytek DROPnul. Potřeboval bych jen porty pro Apache, SSH a MySQL, tedy 80, 443, 22 a 3306. Odchozí komunikace by neměla být ovlivněna.

Díky :-)

Předmět Autor Datum
Podle mě by to mělo být takto: ## IPv4 ## -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT…
polikit 06.09.2016 11:36
polikit
máš to špatně. Výše uvedená pravidla (bez nějakého dalšího, který bude povolovat pakety s establishe…
touchwood 06.09.2016 12:26
touchwood
Posledne pravidlo na INPUTE bude proste drop pre vsetko a vsetky pravidla nad nim budu povolovat kon…
fleg 06.09.2016 11:55
fleg
U mysql ipv6 je špatně port. Ale upřímně, to co je zde vyjmenované je v podatě taky úplně všechno, c…
JR_Ewing 06.09.2016 12:04
JR_Ewing
to je další věc. ;-)
touchwood 06.09.2016 12:27
touchwood
Jde zatím jen o testovací stanici v lokální síti. Samozřejmě v případě překlopení na ostrý provoz by…
polikit 06.09.2016 12:32
polikit
Pokud je to embeded mysql jenom pro ten webserver, nemá co mít přístupný port 3306 vůbec (používat s… poslední
JR_Ewing 06.09.2016 12:48
JR_Ewing

Podle mě by to mělo být takto:

## IPv4 ##
-A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
-A INPUT -m state --state NEW -p tcp --dport 3306 -j ACCEPT

## IPv6 ##
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3360 -j ACCEPT

máš to špatně. Výše uvedená pravidla (bez nějakého dalšího, který bude povolovat pakety s established/related příznakem) fungovat nebudou, protože zafungují jen na SYN pakety.

obecně, pokud si nebudeme hrát na stavový firewall, což v případě prostého otevření portu je tak trochu nesmysl, postačí pravidlo očesat o stavy, samozřejmě je třeba jej zařadit správně do posloupnosti pravidel a správné tabulky (dnes si každý firewallista tvoří své a klasické defaultní tabulky nechává jen pro výchozí skoky do těch svých).

Nějak takto:

-A INPUT -p tcp -m multiport --dports 22,80,443,3306 -j ACCEPT

U mysql ipv6 je špatně port. Ale upřímně, to co je zde vyjmenované je v podatě taky úplně všechno, co na tom serveru poslouchá (otevřené porty - navíc služby, které "potenciálně" i reálně mohou sloužit pro vstup do systému ), takže IPtables budou asi dost zbytečné. Jo a MySQL přístupná odkudkoli je teda bombónek :-).

Pokud je to embeded mysql jenom pro ten webserver, nemá co mít přístupný port 3306 vůbec (používat socket nebo ho připojit na localhosta). Pokud to má být SQL server pro více serverů, přísně omezit uživatelská oprávnění k jednotlivým databázím a zajistit, aby přístup k SQL serveru byl pouze po "bezpečných sítích". Komunikace je totiž totálně nešifrovaná.

Zpět do poradny Odpovědět na původní otázku Nahoru