Absichern eines FTP-Servers (Wu-Ftp)
Nach dem Abarbeiten dieser Instruktionen wird es möglich sein, jedem User sein home-Verzeichnis zuzuweisen, aus dem er nicht heraus kann.
1. Anonymer Login
In der Datei /etc/ftpaccess sollte der "anonymous" Eintrag
gelöscht werden.
Hier sehen Sie ein Beispiel, wie die Datei ftpaccess aussehen sollte:
| /etc/ftpaccess |
class all real,guest * email your@email.com loginfails 3 readme README* login readme README* cwd=* message /welcome.msg login message .message cwd=* compress yes all tar yes all chmod no guest delete no guest overwrite no guest rename no guest log transfers anonymous,real inbound,outbound shutdown /etc/shutmsg passwd-check rfc822 warn guestgroup FTPgroup greeting full |
2. User hinzufügen
Zuerst erzeugen Sie eine "usergroup" in die die FTP Benutzer gepackt werden sollen, zum Beispiel die Gruppe FTPgroup
>> groupadd FTPgroupJetzt können Sie die Benutzer erzeugen:
>> adduser -g FTPgroup "username"(Wenn Sie dem Benutzer keinen Zugang zu einer Shell geben wollen, dann lesen Sie im Abschnitt 4. weitere Informationen.)
>> passwd "username"Jetzt stellen Sie sicher, dass die Verzeichnisse "bin", "etc" und "lib" und die dort enthaltenen Dateien aus /home/ftp oder /var/ftp in das home-Verzeichnis des neuen Benutzers kopiert werden. Benutzen Sie cp -R wie bei:
>> cp -R /var/ftp/pub /home/usernameDann sollte noch ein Download- und ein Upload- Verzeichnis im "pub" Verzeichnis angelegt werden. Aus diesen können die Benutzer dann hoch- und runterladen.
>> mkdir /home/username/pub/download >> mkdir /home/username/pub/uploadStellen Sie zudem sicher, dass die Rechte und Benutzerzugehörigkeit richtig gesetzt sind. Folgendes wird empfohlen:
>> chown username:FTPgroup upload download >> chmod 500 /home/username/pub/download >> chmod 700 /home/username/pub/uploadSomit hat der Benutzer Lese- und Schreibrechte für das Upload- Verzeichnis und nur Leserechte für das Download-Verzeichnis.
3. Aufs home-Verzeichnis beschränken
Um die Benutzer auf das eigene home-Verzeichnis zu beschränken, sollte man die
FTPgroup zu einer sogenannten "guestgroup" machen.
Dazu wird die /etc/ftpacces wie folgt geändert:
guestgroup FTPgroup
4. Kein shell access
Wenn es unerwünscht sein sollte, dass der Benutzer sich auch via telnet oder ssh einloggen
kann, muss eine Shell Atrappe erzeugt werden. Diese können Sie z.B. NoAccess nennen und unter
/etc/ plazieren.
>> touch /etc/NoAccessDann editieren Sie die Datei und schreiben dort hinein:
| Datei /etc/NoAccess |
#!/bin/sh |
Diese Datei speichern und sicherstellen, dass sie ausführbar ist:
>> chmod +x /etc/NoAccess.Danach wird die Datei /etc/shells editiert und die gerade erzeugte Shell hinzugefügt.
Diese Datei /etc/shells sollte wie folgt aussehen:
| Datei /etc/shells |
/bin/bash2 /bin/bash /bin/sh /bin/ash /bin/bsh /bin/tcsh /etc/NoAccess |
Wenn Sie den Benutzer manuell hinzufügen und nicht das angebotene Script nutzen, muss
auch noch die /etc/passwd geändert werden.
Dort sollte der Eintrag wie folgt aussehen:
username:x:100:100::/home/username:/bin/bashJetzt wird /bin/bash in /etc/NoAccess geändert.
Desweiteren muss bei der manuellen Installation noch die richtige Shell dem Benutzer zugewiesen werden. Das erfolgt mit
>> adduser -g FTPgroup -s /etc/NoAcces "username"Die Erzeugung von Benutzern kann auch automatisiert werden. Ein kleines Shell-Script folgt, dass einen Benutzer zur FTPgroup hinzufügt, die Upload- und Download- Verzeichnisse erstellt und die notwendigen Verzeichnisse kopiert. Ebenfalls werden auch die Rechte richtig gesetzt.
| ftpuseradd_script |
#!/usr/bin/perl
print "Username: ";
chomp ($Name =<STDIN>);
system("adduser -g FTPgroup -s /etc/NoAccess $Name");
system("cp -R /var/ftp/pub /home/$Name");
system("cp -R /var/ftp/bin /home/$Name");
system("cp -R /var/ftp/lib /home/$Name");
system("cp -R /var/ftp/etc /home/$Name");
system("mkdir /home/$Name/pub/upload");
system("mkdir /home/$Name/pub/download");
system("chown $Name: $Name/pub/download");
system("chown $Name: $Name/pub/upload");
system("chmod 500 /home/$Name/pub/download");
system("chmod 700 /home/$Name/pub/upload");
system("passwd $Name");
print "Done! user $Name has been added.\n";
|
Nach der Erzeugung einer Datei useradd und dem Einfügen der obigen Zeilen, kann der Spaß schon fast beginnen. Zuvor muss allerdings noch der Zugriff richtig gesetzt werden:
>> chmod +x useradd >> chown root:root useraddDann kann man die Datei z.B. ins /usr/local/scripts/ kopieren und mit
>> /usr/local/scripts/useraddaufrufen. Der neue User, dessen Name abgefragt wird, wird automatisch angelegt.
Anmerkungen zu diesem Artikel
| [3] | ftp anlegen | battleben | 31-3-2003 |
Eigene Anmerkung eintragen