Android

Paano mag-setup ng ftp server na may vsftpd sa ubuntu 18.04

Ubuntu Server 18.04.1. Настройка и установка FTP-сервера vsftpd

Ubuntu Server 18.04.1. Настройка и установка FTP-сервера vsftpd

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. Sa tutorial na ito, mai-install namin ang vsftpd (Very Secure Ftp Daemon). Ito ay isang matatag, ligtas 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.

Kahit na ang tutorial na ito ay isinulat para sa Ubuntu 18.04 ang parehong mga tagubilin na nalalapat para sa Ubuntu 16.04 at anumang pamamahagi na batay sa Debian, kasama ang Debian, Linux Mint at Elementary OS.

Mga kinakailangan

Bago magpatuloy sa tutorial na ito, siguraduhing naka-log in ka bilang isang gumagamit na may mga pribilehiyo ng sudo.

Ang pag-install ng vsftpd sa Ubuntu 18.04

Ang pakete ng vsftpd ay magagamit sa mga repositori ng Ubuntu. Upang mai-install ito, patakbuhin lamang ang mga sumusunod na utos:

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-10-15 03:38:52 PDT; 10min ago Main PID: 2616 (vsftpd) Tasks: 1 (limit: 2319) CGroup: /system.slice/vsftpd.service `-2616 /usr/sbin/vsftpd /etc/vsftpd.conf

Pag-configure sa vsftpd

Ang server ng vsftpd ay maaaring mai-configure sa pamamagitan ng pag-edit ng /etc/vsftpd.conf file. 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

Pinahihintulutan namin ang pag-access sa FTP server lamang sa mga lokal na gumagamit, hanapin ang anonymous_enable at local_enable at i-verify ang iyong pagtutugma ng pagsasaayos sa mga linya sa ibaba:

/etc/vsftpd.conf

anonymous_enable=NO local_enable=YES

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

Bilang 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.

  • Pamamaraan 1. - Ang inirekumendang pamamaraan upang payagan ang pag-upload ay upang mapanatili ang pag-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 mai- uploads direktoryo ng 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-log in sa 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

Kami ay bubuo ng isang naka-sign na SSL sertipiko gamit ang openssl utos.

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 tagubilin, 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/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem 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 out, buksan 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 mai-upload ang 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 TLS encryption 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, natutunan mo kung paano i-install at i-configure ang isang secure at mabilis na FTP server sa iyong Ubuntu 18.04 system.

ftp ubuntu