Home   Artikel   Archiv   Forum   Impressum  
Artikel vom 9.03.2002
Autor: Alex Planting
Übersetzer: Andy Ziegler
Languages: en cn
Artikel bewerten:

Printer Druckversion
Helfen Sie mit!
 

Absichern eines FTP-Servers (Wu-Ftp)

Diese Anleitung zeigt zwei Beispiele, die beschreiben, wie ein FTP-Server sicherer gemacht werden kann. Notwendig ist so ein Eingriff auf jeden Fall, da die Standardinstallation in der Regel ein anonymes Einloggen ermöglicht und somit beliebig Müll auf Ihren Rechner hochgeladen werden kann.
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 FTPgroup
  
Jetzt 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/username
  
Dann 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/upload
  
Stellen 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/upload
  
Somit 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/NoAccess
  
Dann editieren Sie die Datei und schreiben dort hinein:

Datei /etc/NoAccess
   #!/bin/sh
#
echo " Shell Access verweigert! " echo " " echo " Sie haben keinen gültigen Zugang auf diesen Server. " exit 0


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/bash
  
Jetzt 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 useradd
  
Dann kann man die Datei z.B. ins /usr/local/scripts/ kopieren und mit
  >> /usr/local/scripts/useradd 
  
aufrufen. Der neue User, dessen Name abgefragt wird, wird automatisch angelegt.




Anmerkungen zu diesem Artikel


[3]  ftp anlegen battleben31-3-2003


Eigene Anmerkung eintragen