IPTABLES multiport

Fórumok

Van egy kisebb webszerverem amit próbálok minél biztossá tenni, és távoltartani a robotokat.
Nagyjából megy is mert ssh más porton van nincs ftp http, https-re meghatárazott lekérészám van percenként és kapcsolatonként, túlterhelni sem nagyon tudják, viszont mivel minél tömörebbre próbáltam csinálni multiporttal próbáltam megoldani hogy egyszerre http-re és https-re ugyanaz vonatkozzon. Https viszont kimarad...

Az alap elgondolás az volt hogy minden nem illő lekérést egy "SZEMETEK" nevű kupacba teszek, annak adom a "hakikaki" nevet azt meg recenttel és update-val pár percre kizárom.

valami ilyesmi
Chain INPUT (policy ACCEPT)
DROP all -- anywhere anywhere recent: UPDATE seconds: 90 name: hakikaki side: source

LOG tcp -- anywhere anywhere multiport dports http,https STRING match "/myadmin/" ALGO name bm TO 65535 ICASE LOG level info prefix `SZEMETEK: myadmin'
SZEMETEK tcp -- anywhere anywhere multiport dports http,https STRING match "/myadmin/" ALGO name bm TO 65535 ICASE
LOG tcp -- anywhere anywhere multiport dports http,https STRING match "/cgi-bin/" ALGO name bm TO 65535 ICASE LOG level info prefix `SZEMETEK: myadmin'
SZEMETEK tcp -- anywhere anywhere multiport dports http,https STRING match "/cgi-bin/" ALGO name bm TO 65535 ICASE
.......... stb (a többi phpmyadmin és más próbálkozások)

Chain SZEMETEK (7 references)
target prot opt source destination
DROP all -- anywhere anywhere recent: SET name: hakikaki side: source

És szépen működik is.
De csak http-re, https engedélyezi.

Nem tudom hol a hiba, nagyon örülnék egy jó ötletnek...
Persze megtehetem hogy egyesével portonként is felviszem a szabályokat, de örülnék ha rájönnék ez miér hibádzsik...

Előre is köszi

Hozzászólások

A https-t a webszerver csomagolja ki, az iptables csak randomnak tűnő bájtsorozatokat lát, ezért nem fog menni rá a string match. Meg ez a string match szerintem nem egy életbiztosítás, sokféleképpen lehet kódolni egy URL-t. Ezt nem iptables-ben kell megoldani, hanem magában a webszerverben, vagy ha nagyon biztosra akarsz menni, akkor egy IPS/IDS reverse proxyban.

--

Ahh, mert az URL részek a fejléceben vannak benne, ez kiment a fejemből... Az meg kódolva van.
Köszi hogy felhomályosítottál!
Akkor valami javaslat hogy tudnék https-re urlt- letiltani apache-on kívül mert azzzal kidobhatom, azt szeretném ne érje el a webszervert sem.

Tudom hogy nem életbiztosítás...
Az alap dolgokat próbálom kizárni egyelőre, és a sűrűn látogató robotokat távoltartani.
Ezek az URL-ek amúgy sem működnek, csak azt próbálom elérni egyáltalán ne is tudjanak próbákozni...

HTTPS titkosított, tehát nem fog benne találni szöveges tartalmat a szűrőd, csak miután a http démon (mint alkalmazás) kibontotta az SSL-t.

Egy érdekes lehetőség: http démon elé teszel egy külön http<--->https proxy-t. Például a Squid mint reverz proxy is tud ilyen SSL bontást, de az nginx és a több más reverz proxyként is használható program is. Ez esetben az SSL CERT-eket a httpd helyett a reverz proxy fogja használni, a httpd felé már titkosítatlan TCP csomagok fognak menni.