Vraagje, ik draai een server waarop ondermeer httpd, sshd en postfix draaien.
Nu is het natuurlijk altijd wel handig als men bijvoorbeeld vanuit een SSH-sessie een SSH/FTP verbinding kan maken naar een andere server, kan whoisen op poort 43, kan wgetten op HTTP(S), etc. En het is niet de bedoeling dat men bijvoorbeeld via SSH connecties gaat leggen met dport 25. Dat mag alleen postfix. En postfix mag slechts verbinding maken met my-smtp.relay.nl:25 en mag die andere dingen weer niet. En uitgaande verbindingen vanuit httpd wil ik beperken tot 80 en 443, zodat web 2.0 niet onmogelijk wordt gemaakt
. Samenvattend:
1. postfix -> mijn-smtp:25
2. httpd -> *:{80,443}
3. sshd -> *:{80,443,22,43,etc}
Probleem 1 heb ik reeds opgelost door de volgende regels op te nemen in mijn FW:
Oftewel, postfix mag verbinding met mijn-smtp:25 en de rest naar 25 wordt gelogd en geblokkeerd.
Het beperken van httpd is het grote probleem, omdat alle rechten die aan ssh worden toegekend, ik momenteel httpd niet kan ontzeggen. Niet met --uid-owner in ieder geval. Voorbeeld: via een SSH sessie moet er een FTP sessie kunnen worden geopend naar een andere host, terwijl dit via httpd niet mag.
Immers, als je op een SSH sessie inlogt met piet, is de owner piet en niet sshd. Dit geldt in mijn geval ook voor httpd (ik gebruik mpm-itk). Ik kan dus niet zeggen:
Wat ik momenteel doe is gewoon dit:
Alles behalve ideaal dus, omdat er nogal wat malware wordt binnengehaald via FTP dmv lekke Joomla's e.d.
Vroeger had je -m owner --cmd-owner. Dan kon je wel zeggen:
Echter is deze optie sinds Linux 2.6.16 ivm bugs al niet meer beschikbaar. Weet iemand toevallig een andere manier om per daemon fatsoenlijk de uitgaande verbindingen te regelen?
Nu is het natuurlijk altijd wel handig als men bijvoorbeeld vanuit een SSH-sessie een SSH/FTP verbinding kan maken naar een andere server, kan whoisen op poort 43, kan wgetten op HTTP(S), etc. En het is niet de bedoeling dat men bijvoorbeeld via SSH connecties gaat leggen met dport 25. Dat mag alleen postfix. En postfix mag slechts verbinding maken met my-smtp.relay.nl:25 en mag die andere dingen weer niet. En uitgaande verbindingen vanuit httpd wil ik beperken tot 80 en 443, zodat web 2.0 niet onmogelijk wordt gemaakt
1. postfix -> mijn-smtp:25
2. httpd -> *:{80,443}
3. sshd -> *:{80,443,22,43,etc}
Probleem 1 heb ik reeds opgelost door de volgende regels op te nemen in mijn FW:
iptables -A OUTPUT -p tcp --dst mijn-smtp --dport 25 -m owner --uid-owner postfix -j ACCEPT iptables -A OUTPUT -p tcp --dport 25 -j LOG --log-prefix "**iptables-foreign_smtp**: " iptables -A OUTPUT -p tcp --dport 25 -j REJECT
Oftewel, postfix mag verbinding met mijn-smtp:25 en de rest naar 25 wordt gelogd en geblokkeerd.
Het beperken van httpd is het grote probleem, omdat alle rechten die aan ssh worden toegekend, ik momenteel httpd niet kan ontzeggen. Niet met --uid-owner in ieder geval. Voorbeeld: via een SSH sessie moet er een FTP sessie kunnen worden geopend naar een andere host, terwijl dit via httpd niet mag.
Immers, als je op een SSH sessie inlogt met piet, is de owner piet en niet sshd. Dit geldt in mijn geval ook voor httpd (ik gebruik mpm-itk). Ik kan dus niet zeggen:
iptables -A OUTPUT -p tcp -m state --state NEW --dport 21 -m owner --uid-owner sshd -j ACCEPT
Wat ik momenteel doe is gewoon dit:
iptables -A OUTPUT -p tcp -m state --state NEW --dport 21 -j ACCEPT
Alles behalve ideaal dus, omdat er nogal wat malware wordt binnengehaald via FTP dmv lekke Joomla's e.d.
Vroeger had je -m owner --cmd-owner. Dan kon je wel zeggen:
iptables -A OUTPUT -p tcp -m state --state NEW --dport 21 -m owner --cmd-owner sshd -j ACCEPT
Echter is deze optie sinds Linux 2.6.16 ivm bugs al niet meer beschikbaar. Weet iemand toevallig een andere manier om per daemon fatsoenlijk de uitgaande verbindingen te regelen?
12 × LG 330Wp (Enphase) | Daikin FTXM-N 3,5+2,0+2,0kW | Panasonic KIT-WC03J3E5 3kW