Wypróbuj ten podręcznik. Może zadziała dla Ciebie.
Jak to zrobić
Zainstaluj vsftpd i bibliotekę PAM
Edytuj /etc/vsftpd.conf
i/etc/pam.d/vsftpd
Twórz konta użytkowników za pomocą niestandardowych katalogów (na przykład w / var / www /)
Ustaw katalogi z poprawnymi chmod
ichown
Utwórz użytkownika administratora z pełnym dostępem do serwera
- Zainstaluj
vsftpd
(Very Secure FTP Deamon) i libpam-pwdfile
utwórz wirtualnych użytkowników
Chciałem stworzyć użytkowników FTP, ale nie chciałem dodawać lokalnych użytkowników unixa (brak dostępu do powłoki, brak katalogu domowego i tak dalej). PAM (Pluggable Authentication Modules) pomoże Ci stworzyć wirtualnych użytkowników.
sudo apt-get install vsftpd libpam-pwdfile
- Edytować
vsftpd.conf
Najpierw musisz wykonać kopię zapasową oryginalnego pliku
sudo mv /etc/vsftpd.conf /etc/vsftpd.conf.bak
Następnie utwórz nowy
sudo vim /etc/vsftpd.conf
Skopiuj i wklej następujące linie. Plik powinien zawierać TYLKO następujące wiersze:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
nopriv_user=vsftpd
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/var/www/$USER
chroot_local_user=YES
hide_ids=YES
guest_username=vsftpd
- Zarejestruj wirtualnych użytkowników
Aby zarejestrować użytkownika, którego używasz htpasswd
, zakładam, że apache2
pracujesz na swoim serwerze. Utwórz vsftpd
folder, a następnie umieść w nim pliki konfiguracyjne.
sudo mkdir /etc/vsftpd
następnie
sudo htpasswd -cd /etc/vsftpd/ftpd.passwd user1
-c oznacza, że utworzymy plik, jeśli jeszcze nie istnieje -d wymusza MD5, potrzebujesz go na Ubuntu 12.04, po prostu używaj go zawsze
Polecenie wyświetli monit o podanie hasła.
Jeśli chcesz później dodać nowych użytkowników:
sudo htpasswd -d /etc/vsftpd/ftpd.passwd user2
- Skonfiguruj PAM w
/etc/pam.d/vsftpd
Ponownie musisz wykonać kopię zapasową pliku orignal
sudo mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
i stwórz nowy
sudo vim /etc/pam.d/vsftpd
Skopiuj i wklej te 2 wiersze (powinna to być jedyna treść). Nalegam tylko na te 2 wiersze, traciłem dużo czasu na przechowywanie oryginałów i właśnie je dodałem.
auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd
account required pam_permit.so
- Utwórz lokalnego użytkownika bez dostępu do powłoki
sudo useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd
Możesz sprawdzić, czy został utworzony za pomocą komendy id: id vsftpd. Definiujemy użytkownika za pomocą powłoki / bin / false ze względu na parametr check_shell (nawet jeśli go nie używasz). Gdy użytkownik końcowy połączy się z serwerem FTP, zostaną wykorzystane do uzyskania praw i własności:
chmod
a chown
.
- Uruchom ponownie
vsftpd
Popularnym sposobem jest używanie init.d jak wszystkich deamon
sudo /etc/init.d/vsftpd restart
sudo service vsftpd restart
- Twórz katalogi
Zgodnie z konfiguracją wszyscy użytkownicy zostaną umieszczeni w tym folderze: / var / www / user1.
Musisz je utworzyć z określonymi uprawnieniami: folder główny nie może być zapisywalny!
/ [root = /var/www/user1] => 555
www [ /var/www/user1/www ] => 755
docs [ /var/www/user1/docs ] => 755
Uwaga: użytkownik nie może tworzyć plików ani folderów w katalogu głównym.
W vsftpd.conf
mamy chroot_local_user=YES
więc użytkownik nie widzi nic poza swoim folderze. Dla niego serwer wygląda tak:
Więc po prostu uruchom następujące polecenia:
mkdir /var/www/user1`
chmod -w /var/www/user1
mkdir www/user1/www
chmod -R 755 /var/www/user1/www
chown -R vsftpd:nogroup /var/www/user1
/var/www/user1
Folder musi istnieć lub połączenie nie powiedzie się.
W tej chwili możesz spróbować połączyć się z FTP
- Utwórz użytkownika administracyjnego, aby uzyskać dostęp do całego serwera
Aby utworzyć administratora, musimy zarejestrować nowego użytkownika htpasswd
.
Zanim to zrobimy, radzę sprawdzić w /etc/ftpusers
pliku, który definiuje niektórych użytkowników, którzy nie mogą łączyć się z ftp. Myślę, że jest to tylko dla użytkowników lokalnych, a nie użytkowników wirtualnych, ale na wszelki wypadek nie wybieraj nazwy zawartej w tym pliku.
sudo htpasswd -d /etc/vsftpd/ftpd.passwd theadmin
Teraz musimy dodać nową linię do /etc/vsftpd.conf
chroot_list_enable=YES
Oznacza to, że użytkownik zostanie umieszczony w swoim folderze (jako więzienie) Z WYJĄTKIEM użytkowników w / etc /
vsftpd.chroot_list
Utwórzmy ten plik i dodajmy naszego użytkownika, plik jest prostą linią zawierającą „theadmin”. Dodaj jednego użytkownika w wierszu. Oznacza to, że NIE musisz tworzyć /var/www/theadmin
folderu, użytkownik zaloguje się i rozpocznie pracę /home/vsftpd
.
Uruchom ponownie serwer i gotowe!