Dies ist ein kleines Howto um ein Windows ActiveDirectory als Authentifizeirungs-backend für vsftpd zu nutzen. Die Authentifizierung findet mittels Kerberos 5 statt.
Installieren der benötigten Pakete
aptitude install vsftpd krb5-clients krb5-user libpam-krb5
Bearbeiten der vsftpd Konfig
# /etc/vsftpd.conf # Network listen=YES listen_ipv6=NO listen_port=21 connect_from_port_20=YES # Dir local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES chown_uploads=NO chown_username=whoever # Anonymous anonymous_enable=NO anon_upload_enable=NO anon_mkdir_write_enable=NO # User userlist_enable=YES userlist_deny=NO # Log syslog_enable=YES xferlog_enable=YES xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES # Banner ftpd_banner=Welcome # Chroot chroot_local_user=YES chroot_list_enable=NO # System check_shell=NO nopriv_user=ftp secure_chroot_dir=/var/run/vsftpd pam_service_name=vsftpd
Bearbeiten der Kerberos Konfigdatei
[libdefaults]
default_realm = ADDOMAIN.LOCAL
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true
v4_instance_resolve = false
v4_name_convert = {
host = {
rcmd = host
ftp = ftp
}
plain = {
something = something-else
}
}
[realms]
ADDOMAIN.LOCAL = {
kdc = server.addomain.local
admin_server = server.addomain.local
default_domain = ADDOMAIN.LOCAL
}
[domain_realm]
.addomain.local = ADDOMAIN.LOCAL
addomain.local = ADDOMAIN.LOCAL
[login]
krb4_convert = true
krb4_get_tickets = true
[appdefaults]
pam = {
minimum_uid = 100
ADDOMAIN.LOCAL = {
ignore_k5login = true
}
}Bearbeiten der PAM Module Konfigdatei /etc/pam.d/vsftpd
auth sufficient pam_krb5.so ignore_root session optional pam_krb5.so ignore_root account required pam_krb5.so ignore_root password optional pam_krb5.so ignore_root @include common-account @include common-session @include common-auth
Benutzer, der sich über den FTP-Server einloggen soll auf dem Linux-Server anlegen
groupadd freach useradd -c "freach" -d /srv/ftp/freach -g freach -m -s /bin/false freach
Zur Freigabe des Benutzers auf dem FTP-Server müsst ihr seinen Benutzername in der Datei /etc/vsftpd.user_list eintragen.
Neustarten des FTP-Servers
/etc/init.d/vsftpd restart
Nun könnt ihr eure Daten auf dem Linux-Server ablegen euch aber mit dem Passwort aus der Windows Domäne authentifizieren. Leider müsst ihr beim erstellen eines neuen Windows Accounts auch einen Linux Account anlegen. Bedenkt das bei FTP das Passwort im Klartext übertragen wird und eine Authentifizierung über das Netzwerk nicht empfohlen ist. Eine SSL gesicherte Verbindung würde dieses Problem jedoch beheben.
Dokumentation vsftpd
Dokumentation libpam-krb5
Dokumentation Kerberos




Versteh ich nun grad nicht ganz. Da wird einerseits im Vmware artikel über theoretische Sicherheitsprobleme und auch Praktische (priscous mode) philosophiert.
Und dann hier ne Anleitung für sowas, mit ner lapidaren Bemerkung das ne SSL gesicherte Verbindung die Sicherheitsrelevanten Probleme löst.
Nun das liegt daran, dass beide Probleme in einem völlig unterschiedlichen Kontext zueinander stehen. Im VMWare Artikel geht es um die ganze Bandbreite an Sicherheitsproblematiken und in diesem Artikel wird konkret das Problem angesprochen, dass FTP ein Klartextprotokoll ist und bei Mitschneiden der Authentifizierungsdaten sich nicht nur am FTP-Server sondern auch an allen anderen Diensten, die das AD als Backend nutzen authentifiziert werden kann. Sicherlich kann ich jetzt das gesamte Spektrum der Sicherheitsproblematiken von FTP-Servern oder ActiveDirectory ausrollen, aber das war nicht Ziel dieses Artikels. Danke für deinen Beitrag.
Post new comment