Lenny/Ftp
Archiv: Dieser Artikel beschreibt nicht die Funktionalität des derzeit aktuellen delixs-Servers. Er beschreibt ältere Schulserver-Funktionen und dient dem Zweck der Archivierung. |
FTP-Server
Installation von pure-ftpd
Voreinstellungen für den FTP-Server setzen:
<source lang="text"> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo -e " \ pure-ftpd-common pure-ftpd/ftpwho-setuid boolean false pure-ftpd-common pure-ftpd/virtualchroot boolean false pure-ftpd-common pure-ftpd/standalone-or-inetd select standalone \ " | debconf-set-selections ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ </source>
pure-ftpd als LDAP-Variante installieren:
aptitude -R install pure-ftpd-{common,ldap} -y
Sicherstellen, dass der inetd sich auch wirklich heraushält:
sed -i '/STANDALONE_OR_INETD=/{s#inetd#standalone#p}' /etc/default/pure-ftpd-common update-inetd --comment-chars '#' --disable tftp
Den LDAP Bereich des pure-ftpd konfigurieren. Schreib dafür die folgenden Zeilen in die "/etc/pure-ftpd/db/ldap.conf":
<source lang="text">
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LDAPServer localhost
LDAPPort 389
LDAPBaseDN ou=people,ou=accounts,dc=delixs-schule,dc=de
LDAPBindDN cn=admin,dc=delixs-schule,dc=de
LDAPBindPW schule
LDAPFilter (&(objectClass=posixAccount)(uid=\L))
LDAPHomeDir homeDirectory
LDAPVersion 3
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
</source>
Kontrolle mittels:
# egrep -v '^$|#' /etc/pure-ftpd/db/ldap.conf
Danach ist der Dienst wieder durchzustarten
service pure-ftpd-ldap restart
Test des FTP-Servers
Der Erfolg:
# lsof -ni:21 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME pure-ftpd 4085 root 5u IPv4 13005 TCP *:ftp (LISTEN) pure-ftpd 4085 root 6u IPv6 13007 TCP *:ftp (LISTEN)
Da noch kein Benutzer angelegt ist, folgt nun mmustermann:
delixs-useradd --user mmustermann --lastname Mustermann \ --forename Martin --class TEACHER --pass geheim delixs-passwd --user mmustermann --pass geheim
Er wird jetzt im LDAP auch gefunden. Der filter (&(objectClass=posixAccount)(uid=mmustermann))" wird von pure-ftpd benutzt, daher der Test:
ldapsearch -x -LLL -b "ou=people,ou=accounts,dc=delixs-schule,dc=de" "(&(objectClass=posixAccount)(uid=mmustermann))"
<source lang="text">
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dn: uid=mmustermann,ou=people,ou=accounts,dc=delixs-schule,dc=de
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
objectClass: sambaSamAccount
cn: mmustermann
sn: mmustermann
givenName: mmustermann
uid: mmustermann
uidNumber: 1000
gidNumber: 1001
homeDirectory: /home/teacher/mmustermann
loginShell: /bin/bash
gecos: Martin Mustermann,TEACHER
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaKickoffTime: 2147483647
sambaPwdCanChange: 0
displayName: mmustermann
sambaSID: S-1-5-21-1217022432-528198597-2225102744-3000
sambaPrimaryGroupSID: S-1-5-21-1217022432-528198597-2225102744-3003
sambaLMPassword: 193130B61A7F81C0AAD3B435B51404EE
sambaAcctFlags: [U]
sambaNTPassword: C2AE1FE6E648846352453E816F2AEB93
sambaPwdLastSet: 1256425561
sambaPwdMustChange: 2120425561
shadowMax: 10000
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
</source>
Ein ftp-login gelingt nicht auf localhost, sondern nur auf die IP Adresse von eth0 oder eth1!
Also musst du deine IP-Adresse herausfinden:
# ifconfig eth0 | awk '/inet Adresse/{print $2}' | awk -F: '{print $2}' 172.16.16.154
Einloggen mit ncftp ist jetzt erfolgreich:
ncftp -ummustermann -pgeheim 172.16.16.154
fertig.
Das FTP Clientprogramm
Das Paket "ncftp" ist zur Dateiübertragung mittels (File Transfer Protocol) vorgesehen. Es erlaubt den Transfer von Dateien zu oder von entfernten Rechnern.
Installation:
aptitude install ncftp
Einzurichten ist hier nichts.
Weblinks
- http://tuxclouds.org
- http://www.debian-administration.org/article/Setting_up_an_FTP_server_on_Debian
Thorsten Strusch 2009