Android

Paano mag-setup ng ftp server na may vsftpd sa sentimo 7

Configure the Vsftpd Linux FTP Server on Centos7

Configure the Vsftpd Linux FTP Server on Centos7

Talaan ng mga Nilalaman:

Anonim

Ang FTP (File Transfer Protocol) ay isang standard na protocol ng client-server network na nagpapahintulot sa mga gumagamit na maglipat ng mga file papunta at mula sa isang malayong network.

Mayroong maraming mga bukas na mapagkukunan ng 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) sa CentOS 7. Ito ay 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.

Para sa mas ligtas at mas mabilis na paglilipat ng data, gumamit ng SCP o SFTP.

Mga kinakailangan

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

Pag-install ng vsftpd sa CentOS 7

Ang pakete ng vsftpd ay magagamit sa mga default na repositories ng CentOS. Upang mai-install ito, mag-isyu ng sumusunod na utos:

sudo yum install vsftpd

Kapag na-install ang package, simulan ang daftpd daemon at paganahin ito upang awtomatikong magsimula sa oras ng boot:

sudo systemctl start vsftpd sudo systemctl enable vsftpd

Maaari mong i-verify ang serbisyo ng vsftpd ay tumatakbo sa pamamagitan ng pag-print ng katayuan nito:

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 daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2018-11-22 09:42:37 UTC; 6s ago Main PID: 29612 (vsftpd) CGroup: /system.slice/vsftpd.service └─29612 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

Pag-configure sa vsftpd

Ang /etc/vsftpd/vsftpd.conf serbisyo sa vsftpd ay nagsasangkot sa pag-edit ng /etc/vsftpd/vsftpd.conf file ng pagsasaayos. 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/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/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/vsftpd.conf

write_enable=YES

3. Chroot Jail

Pigilan ang mga gumagamit ng FTP na ma-access ang anumang mga file sa labas ng kanilang mga direktoryo sa bahay sa pamamagitan ng hindi pag-uusap ng chroot direktiba.

/etc/vsftpd/vsftpd.conf

chroot_local_user=YES

Bilang default, kapag pinapagana ang chroot na vsftpd ay tumangging mag-upload ng mga file kung ang direktoryo na nakakonekta ang mga gumagamit ay nakasulat. Ito ay upang maiwasan ang kahinaan sa seguridad.

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 mai- uploads direktoryo ng upload para sa pag-upload ng mga file.

    /etc/vsftpd/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/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/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-login sa FTP server idagdag ang mga sumusunod na linya matapos ang userlist_enable=YES line:

/etc/vsftpd/vsftpd.conf

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/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem

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

sudo nano /etc/vsftpd/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/vsftpd.conf

rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/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/vsftpd.conf

anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES userlist_file=/etc/vsftpd/user_list userlist_deny=NO tcp_wrappers=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YES

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), mag-isyu ng mga sumusunod na utos:

sudo firewall-cmd --permanent --add-port=20-21/tcp sudo firewall-cmd --permanent --add-port=30000-31000/tcp

Reload ang mga panuntunan ng firewall sa pamamagitan ng pag-type:

firewall-cmd --reload

Paglikha ng isang 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

    Susunod, kailangan mong itakda ang password ng gumagamit:

    sudo passwd 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 sa 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.

Patakbuhin ang sumusunod na mga utos upang 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 baguhin ang shell para sa iba pang 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 CentOS 7 system.

ftp sentimo