Android

Paano mag-setup ng ftp server na may vsftpd sa debian 9

Installing FTP server (vsftp) Debian 10

Installing FTP server (vsftp) Debian 10

Talaan ng mga Nilalaman:

Anonim

Ang FTP (File Transfer Protocol) ay isang karaniwang network protocol na ginagamit upang maglipat ng mga file papunta at mula sa isang malayong network. Para sa mas ligtas at mas mabilis na paglilipat ng data, gumamit ng SCP o SFTP.

Maraming mga bukas na mapagkukunan FTP server na magagamit para sa Linux. Ang pinakatanyag at malawak na ginagamit ay PureFTPd, ProFTPD, at vsftpd.

Ipinapaliwanag ng tutorial na ito kung paano i-install at i-configure ang vsftpd (Very Secure Ftp Daemon) sa Debian 9. vsftpd isang matatag, secure at mabilis na FTP server. Ipapakita rin namin sa iyo kung paano i-configure ang vsftpd upang higpitan ang mga gumagamit sa kanilang direktoryo sa bahay at i-encrypt ang buong paghahatid sa SSL / TLS.

Mga kinakailangan

Ang gumagamit na naka-log in ka ay dapat magkaroon ng mga pribilehiyo ng sudo upang mai-install ang mga pakete.

Pag-install ng vsftpd sa Debian 9

Ang pakete ng vsftpd ay magagamit sa mga repositori sa Debian. Ang pag-install ay medyo prangka:

sudo apt update sudo apt install vsftpd

Ang serbisyo ng vsftpd ay awtomatikong magsisimula pagkatapos makumpleto ang proseso ng pag-install. Patunayan ito sa pamamagitan ng pag-print ng katayuan ng serbisyo:

sudo systemctl status vsftpd

Ang output ay magmumukhang isang bagay tulad ng sa ibaba, na nagpapakita na ang serbisyo ng vsftpd ay aktibo at tumatakbo:

● vsftpd.service - vsftpd FTP server Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2018-12-10 11:42:51 UTC; 53s ago Main PID: 1394 (vsftpd) CGroup: /system.slice/vsftpd.service └─1394 /usr/sbin/vsftpd /etc/vsftpd.conf

Pag-configure sa vsftpd

Ang server ng vsftpd ay maaaring mai-configure sa pamamagitan ng pagbabago ng vsftpd.conf file, na matatagpuan sa direktoryo /etc .

Karamihan sa mga setting ay maayos na na-dokumentado sa loob ng file ng pagsasaayos. Para sa lahat ng magagamit na mga pagpipilian bisitahin ang opisyal na pahina ng vsftpd.

Sa mga sumusunod na seksyon, pupunta kami sa ilang mahahalagang setting na kinakailangan upang i-configure ang isang secure na pag-install ng vsftpd.

Magsimula sa pamamagitan ng pagbubukas ng vsftpd na file ng pagsasaayos:

sudo nano /etc/vsftpd.conf

1. Pag-access sa FTP

Hanapin ang mga anonymous_enable at local_enable direktiba at i-verify ang iyong pagtutugma sa pagsasaayos sa mga linya sa ibaba:

/etc/vsftpd.conf

anonymous_enable=NO local_enable=YES

Tinitiyak nito na ang mga lokal na gumagamit lamang ang maaaring ma-access ang FTP server.

2. Paganahin ang pag-upload

Hindi write_enable setting na write_enable maaaring payagan ang mga pagbabago sa filesystem tulad ng pag-upload at pagtanggal ng mga file.

/etc/vsftpd.conf

write_enable=YES

3. Chroot Jail

Upang maiwasan ang mga gumagamit ng FTP na ma-access ang anumang mga file sa labas ng kanilang mga direktoryo sa bahay na hindi kasama ang setting ng chroot .

/etc/vsftpd.conf

chroot_local_user=YES

Sa pamamagitan ng default upang maiwasan ang kahinaan sa seguridad, kapag ang pagpapaandar ay pinagana ang vsftpd ay tumanggi upang mag-upload ng mga file kung ang direktoryo na nakakonekta ang mga gumagamit ay nakasulat.

Gumamit ng isa sa mga pamamaraan sa ibaba upang payagan ang pag-upload kapag pinagana ang chroot.

  • Paraan 1. - Ang inirekumendang pamamaraan upang pahintulutan ang pag-upload ay upang mapanatili ang paganahin ng chroot at i-configure ang mga direktoryo ng FTP. Sa Tutorial na ito, gagawa kami ng isang direktoryo ng ftp loob ng tahanan ng gumagamit na magsisilbing chroot at isang nakasulat na direktoryo ng pag-upload para sa pag-upload ng mga file.

    /etc/vsftpd.conf

    user_sub_token=$USER local_root=/home/$USER/ftp

    Paraan 2. - Ang isa pang pagpipilian ay upang idagdag ang sumusunod na direktiba sa file ng pagsasaayos ng vsftpd. Gamitin ang pagpipiliang ito kung kailangan mong magbigay ng nakasulat na pag-access sa iyong gumagamit sa direktoryo ng bahay nito.

    /etc/vsftpd.conf

    allow_writeable_chroot=YES

4. Passive FTP na Koneksyon

Maaaring gamitin ng vsftpd ang anumang port para sa mga pasibo na mga koneksyon sa FTP. Tukuyin namin ang minimum at maximum na saklaw ng mga port at kalaunan buksan ang saklaw sa aming firewall.

Idagdag ang mga sumusunod na linya sa file ng pagsasaayos:

/etc/vsftpd.conf

pasv_min_port=30000 pasv_max_port=31000

5. Limitahan ang Pag-login sa Gumagamit

Upang payagan lamang ang ilang mga gumagamit na mag-log in sa FTP server idagdag ang mga sumusunod na linya sa dulo ng file:

/etc/vsftpd.conf

userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO

Kapag pinagana ang pagpipiliang ito kailangan mong malinaw na tukuyin kung aling mga gumagamit ang maaaring mag-login sa pamamagitan ng pagdaragdag ng mga pangalan ng gumagamit sa /etc/vsftpd.user_list file (isang gumagamit bawat linya).

6. Pag-secure ng Mga Transmissions kasama ang SSL / TLS

Upang ma-encrypt ang mga pagpapadala ng FTP sa SSL / TLS, kakailanganin mong magkaroon ng isang SSL certificate at i-configure ang FTP server upang magamit ito.

Maaari kang gumamit ng isang umiiral na sertipiko ng SSL na nilagdaan ng isang pinagkakatiwalaang Awtoridad ng Sertipiko o lumikha ng isang sertipiko na naka-sign sa sarili.

Sa tutorial na ito, bubuo kami ng isang sertipiko ng SSL na naka-sign sa sarili gamit ang openssl command.

Ang sumusunod na utos ay lilikha ng isang 2048-bit pribadong key at sertipiko na nilagdaan ng sarili na may bisa sa loob ng 10 taon. Parehong ang pribadong key at sertipiko ay mai-save sa parehong file:

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Kapag ang SSL sertipiko ay nilikha buksan ang vsftpd pagsasaayos ng file:

sudo nano /etc/vsftpd.conf

Hanapin ang rsa_cert_file at rsa_private_key_file direktiba, baguhin ang kanilang mga halaga sa landas ng file ng pam file at itakda ang ssl_enable sa YES :

/etc/vsftpd.conf

rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES

Kung hindi tinukoy kung hindi, ang FTP server ay gagamit lamang ng TLS upang makagawa ng mga ligtas na koneksyon.

I-restart ang Serbisyo ng vsftpd

Kapag tapos ka na ng pag-edit, ang file ng pagsasaayos ng vsftpd (hindi kasama ang mga komento) ay dapat magmukhang katulad nito:

/etc/vsftpd.conf

listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key ssl_enable=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO

I-save ang file at i-restart ang serbisyo ng vsftpd para sa mga pagbabago na magkakabisa:

sudo systemctl restart vsftpd

Pagbukas ng Firewall

Upang buksan ang port 21 (FTP command port), port 20 (FTP data port) at 30000-31000 (Passive port port), patakbuhin ang sumusunod na mga utos:

sudo ufw allow 20:21/tcp sudo ufw allow 30000:31000/tcp

Upang maiwasan ang mai-lock ay buksan din namin ang port 22 :

sudo ufw allow OpenSSH

Reload ang UFW patakaran sa pamamagitan ng pagpapagana at muling paganahin ang UFW:

sudo ufw disable sudo ufw enable

Upang mapatunayan ang mga pagbabago na tumatakbo:

sudo ufw status

Status: active To Action From -- ------ ---- 20:21/tcp ALLOW Anywhere 30000:31000/tcp ALLOW Anywhere OpenSSH ALLOW Anywhere 20:21/tcp (v6) ALLOW Anywhere (v6) 30000:31000/tcp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)

Paglikha ng FTP Gumagamit

Upang subukan ang aming FTP server ay gagawa kami ng isang bagong gumagamit.

  • Kung mayroon ka nang isang gumagamit na nais mong bigyan ang FTP access laktawan ang 1st step.Kung nagtakda ka ng allow_writeable_chroot=YES sa iyong file ng pagsasaayos na laktawan ang ika-3 na hakbang.
  1. Lumikha ng isang bagong gumagamit na nagngangalang newftpuser :

    sudo adduser newftpuser

    Idagdag ang gumagamit sa pinapayagan na listahan ng mga gumagamit ng FTP:

    echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list

    Lumikha ng puno ng direktoryo ng FTP at itakda ang tamang mga pahintulot:

    sudo mkdir -p /home/newftpuser/ftp/upload sudo chmod 550 /home/newftpuser/ftp sudo chmod 750 /home/newftpuser/ftp/upload sudo chown -R newftpuser: /home/newftpuser/ftp

    Tulad ng tinalakay sa nakaraang seksyon ang gumagamit ay maaaring mag-upload ng mga file nito sa direktoryo ng ftp/upload .

Sa puntong ito, ang iyong FTP server ay ganap na gumagana at dapat mong kumonekta sa iyong server gamit ang anumang FTP client na maaaring mai-configure upang magamit ang pag-encrypt ng TLS tulad ng FileZilla.

Hindi pagpapagana ng Pag-access sa Shell

Bilang default, kapag lumilikha ng isang gumagamit, kung hindi malinaw na tinukoy ang gumagamit ay magkakaroon ng SSH access sa server.

Upang hindi paganahin ang pag-access sa shell, gagawa kami ng isang bagong shell na i-print lamang ang isang mensahe na nagsasabi sa gumagamit na ang kanilang account ay limitado lamang sa FTP access.

Lumikha ng /bin/ftponly shell at gawin itong maipapatupad:

echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly sudo chmod a+x /bin/ftponly

Maglagay ng bagong shell sa listahan ng mga wastong shells sa /etc/shells file:

echo "/bin/ftponly" | sudo tee -a /etc/shells

Baguhin ang shell ng gumagamit sa /bin/ftponly :

sudo usermod newftpuser -s /bin/ftponly

Gumamit ng parehong utos upang mabago ang shell ng lahat ng mga gumagamit na nais mong bigyan lamang ng access sa FTP.

Konklusyon

Sa tutorial na ito, nalaman mo kung paano i-install at i-configure ang isang secure at mabilis na FTP server sa iyong Debian 9 system.

ftp debian