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
Podle mě by to mělo být takto:
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:
Posledne pravidlo na INPUTE bude proste drop pre vsetko a vsetky pravidla nad nim budu povolovat konkretne porty.
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 .
to je další věc.
Jde zatím jen o testovací stanici v lokální síti. Samozřejmě v případě překlopení na ostrý provoz by se ta MySQL omezila.
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á.