Instalacja serwera FTP vsftpd dla dystrybucji Debian W pierwszej kolejności instalujemy vsftpd z paczki: apt-get install vsftpd Przechodzimy do pliku konfiguracyjnego: nano /etc/vsftpd.conf Ustawiamy poniższe parametry: listen_ipv6=NO anonymous_enable=NO local_enable=YES write_enable=YES anon_upload_enable=NO connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=ftp Konfiguracja SFTP Edytujemy plik konfiguracyjny: nano /etc/ssh/sshd_config Dodajemy poniższe parametry: matchgroup sftp ChrootDirectory /srv/ftp/%u Forcecommand internal-sftp</code> Restartujemy serwis: [code language="bash"]service ssh restart Dodawanie użytkownika Skrypt do tworzenia użytkownika mieści się w folderze /home. Aby go uruchomić, wydajemy komendę: addftpuser.sh Definiujemy dwie zmienne – użytkownika i hasło: ./addftpuser.sh user password W ten sposób utworzyliśmy użytkownika FTP i SFTP „user” z hasłem „password”. Folder użytkownika zdefiniowany jest w pliku konfiguracyjnym sshd_config (tutaj na przykładzie folderu /srv/ftp): ChrootDirectory /srv/ftp/%u Skrypt addftpuser.sh #!/bin/bash # err when env not set set -u source /etc/ds-backup/config if [ $# -ne 2 ] then echo "bad number of args" exit 1 fi USR=$1 PASSWORD=$2 if [[ ! $USR =~ ^[a-zA-Z][a-zA-Z0-9_]{,9}$ ]] then echo "bad user name!" exit 5 fi if [[ $USR =~ ^(root|daemon|bin|sys|sync|games|man|lp|mail|news|uucp|proxy|www-data|backup|list|irc|gnats|systemd-timesync|systemd-network|systemd-resolve|systemd-bus-proxy|Debian-exim|messagebus|statd|sshd|ftp|admin|administra$ then echo "invalid user name!" exit 10 fi #skrypt do tworzenia uzytkownikow ftp/ftps i tworzenia folderu w /srv/ftp/ #./addftpuser nazwa_klienta haslo if [ ! -d "$STORAGE" ] then mkdir -p "$STORAGE" fi $GETENT passwd $USR >/dev/null 2>/dev/null if [ $? -eq 0 ] then echo "user already exists!" exit 100 fi if [ ! -d "$STORAGE/$USR" ] then $MKDIR -p "$STORAGE/$USR/$USER_SPACE" if [ ! -d "$STORAGE/$USR/$USER_SPACE" ] then echo "unable to create home directory for user $USR" exit 15 fi $USERADD -M -d "$STORAGE/$USR" -s $DSSHELL $USR RC=$? if [ $RC -ne 0 ] then echo "Unable to add new user $USR - please cleanup manualy" exit 20 fi $CHOWN root:root "$STORAGE/$USR" $CHMOD 0755 "$STORAGE/$USR" $CHOWN $USR:$USR "$STORAGE/$USR/$USER_SPACE" $CHMOD 0700 "$STORAGE/$USR/$USER_SPACE" cho -n "$1:$2"| chpasswd exit else echo "user already exists!" exit 101 fi