Unverschlüsselten FTP Server sichern

Hi,

ich sollte in der Uni hier einen FTP Server aufsetzen für den Lehrstuhl. Das ganze sollte unverschlüsselt sein ... warum auch immer. Wahrscheinlich weil man sich sonst nen FTP CLient suchen müsste der TLS mitmacht oder so. Jedenfalls kann man in den Logs wunderbar brute-force Versuche beobachten.

Was kann ich tun um das Ding halbwegs sicher zu halten? Klar verschlüsseln, aber wir sehen jetzt mal das Uni Netz als "trusted" an ;) Und von ganz woanders das Passwort zu sniffen dürfte schwer sein - außer vllt in Internetcafe Szenarien.

Ich benutze vsftpd mit dieser Config:

Code:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
anon_upload_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem

Firewall-technisch tut ich momentan nichts als IPs blocken, die mir im Log negativ auffallen. Liegt daran, dass da noch ein SMB und ein CUPS laufen von denen ich nicht weiss, wie ich damit auf iptables Seite umgehen muss damit die noch funktionieren.

Code:
echo "Stopping firewall and allowing everyone..."
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

echo "Setting default policies..."
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

echo "Setting IP blocks..."
iptables -A INPUT -p tcp -s 202.106.15.210 -j DROP
iptables -A INPUT -p tcp -s 88.81.236.74 -j DROP
iptables -A INPUT -p tcp -s 218.145.128.151 -j DROP

Hat man ne Möglichkeit zu den IPs die Netzwerkmaske rauszukriegen? Dann wurde ich gleich das ganze Netz blocken. Spart vllt Arbeit.

Root darf nicht einloggen, und dem User, der nur FTP benutzen darf hab ich die Shell /bin/false gegeben. Es existieren aber noch andere User mit valider Shell.

Was kann ich noch tun?

cu
serow
 
Root darf nicht einloggen, und dem User, der nur FTP benutzen darf hab ich die Shell /bin/false gegeben. Es existieren aber noch andere User mit valider Shell.

Was kann ich noch tun?

Code:
userlist_deny=NO
userlist_enable=YES

vsftpd.user_list:
Code:
erlaubteruser1
erlaubteruser2
...

Würd mir jetzt spontan einfallen.
 
Firewall-technisch tut ich momentan nichts als IPs blocken, die mir im Log negativ auffallen. Liegt daran, dass da noch ein SMB und ein CUPS laufen von denen ich nicht weiss, wie ich damit auf iptables Seite umgehen muss damit die noch funktionieren.

Zumindest für SMB kann ich weiterhelfen:

Code:
iptables -A INPUT -p tcp -m tcp -s 192.168.1.0/8 --dport 135 -j ACCEPT
iptables -A INPUT -p udp -m udp -s 192.168.1.0/8 --dport 135 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -s 192.168.1.0/8 --dport 137:139 -j ACCEPT
iptables -A INPUT -p udp -m udp -s 192.168.1.0/8 --dport 137:139 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -s 192.168.1.0/8 --dport 445 -j ACCEPT
iptables -A INPUT -p udp -m udp -s 192.168.1.0/8 --dport 445 -j ACCEPT

Solltest nur das Netzwerk auf dein Uni-Netz anpassen.
 
das blocken der IPs, von denen bruteforce-Angriffe kommen, würde ich mit fail2ban automatisieren... dann werden die IPs für eine definierte Zeit (meinetwegen 10 Minuten) gesperrt und danach wieder freigegeben...

und dabei würde ich auch wirklich komplett alles droppen - wer den Server angreift, soll ruhig für paar Minuten komplett ausgesperrt werden und auch keinen Zugriff auf Samba / Drucker bekommen...
 
Hi,

danke für die Tips! Hab beide umgesetzt. Ich schätze CUPS braucht wirklich nur 631 oder? Dann kann ich nämlich mal die default policy für INPUT auf DROP setzen.

cu
serow
 
Zurück
Oben