Giunsa ang Pag-install ug Pag-configure sa FTP Server sa Ubuntu


Ang FTP (File Transfer Protocol) kay medyo karaan ug kasagarang gigamit nga standard network protocol nga gigamit sa pag-upload/pag-download sa mga file tali sa duha ka computer sa usa ka network. Apan, FTP pinaagi sa iyang orihinal nga walay kasigurohan, tungod kay kini transmit data uban sa user credentials (username ug password) nga walay encryption.

Pahimangno: Kung nagplano ka nga mogamit sa FTP, hunahunaa ang pag-configure sa koneksyon sa FTP gamit ang SSL/TLS (motabon sa sunod nga artikulo). Kung dili, mas maayo nga gamiton ang luwas nga FTP sama sa SFTP.

Sa kini nga panudlo, ipakita namon kung giunsa ang pag-install, pag-configure ug pag-secure sa usa ka FTP server (VSFTPD sa hingpit nga \Very Secure FTP Daemon\) sa Ubuntu aron adunay kusgan nga seguridad batok sa mga kahuyangan sa FTP.

Lakang 1: Pag-instalar sa VsFTP Server sa Ubuntu

1. Una, kinahanglan natong i-update ang listahan sa mga tinubdan sa sistema sa pakete ug dayon i-install ang VSFTPD binary package sama sa mosunod:

$ sudo apt-get update
$ sudo apt-get install vsftpd

2. Sa diha nga ang pag-instalar makompleto, ang serbisyo ma-disable sa sinugdanan, busa, kinahanglan natong sugdan kini nga mano-mano alang sa gipasabot nga panahon ug mahimo usab kini nga awtomatiko nga magsugod gikan sa sunod nga sistema sa boot:

------------- On SystemD ------------- 
# systemctl start vsftpd
# systemctl enable vsftpd

------------- On SysVInit ------------- 
# service vsftpd start
# chkconfig --level 35 vsftpd on

3. Sunod, kung ikaw adunay UFW firewall nga naka-enable (dili kini ma-enable pinaagi sa default) sa server, kinahanglan nimo nga ablihan ang mga pantalan 21 ug 20 diin ang mga FTP daemon naminaw, aron tugotan ang pag-access sa mga serbisyo sa FTP gikan sa hilit nga mga makina, dayon idugang ang bag-ong firewall nga mga lagda sama sa mosunod:

$ sudo ufw allow 20/tcp
$ sudo ufw allow 21/tcp
$ sudo ufw status

Lakang 2: Pag-configure ug Pagsiguro sa VsFTP Server sa Ubuntu

4. Himoon nato karon ang pipila ka mga configuration aron ma-setup ug ma-secure ang atong FTP server, una maghimo kita og backup sa orihinal nga config file /etc/vsftpd/vsftpd.conf sama niini:

$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

Sunod, atong ablihan ang vsftpd config file.

$ sudo vi /etc/vsftpd.conf
OR
$ sudo nano /etc/vsftpd.conf

Idugang/usba ang mosunod nga mga opsyon uban niini nga mga bili:

anonymous_enable=NO             # disable  anonymous login
local_enable=YES		# permit local logins
write_enable=YES		# enable FTP commands which change the filesystem
local_umask=022		        # value of umask for file creation for local users
dirmessage_enable=YES	        # enable showing of messages when users first enter a new directory
xferlog_enable=YES		# a log file will be maintained detailing uploads and downloads
connect_from_port_20=YES        # use port 20 (ftp-data) on the server machine for PORT style connections
xferlog_std_format=YES          # keep standard log file format
listen=NO   			# prevent vsftpd from running in standalone mode
listen_ipv6=YES		        # vsftpd will listen on an IPv6 socket instead of an IPv4 one
pam_service_name=vsftpd         # name of the PAM service vsftpd will use
userlist_enable=YES  	        # enable vsftpd to load a list of usernames
tcp_wrappers=YES  		# turn on tcp wrappers

5. Karon, i-configure ang VSFTPD sa pagtugot/pagdumili sa FTP access sa mga tiggamit base sa user list file /etc/vsftpd.userlist.

Timan-i nga pinaagi sa default, ang mga tiggamit nga nalista sa userlist_file=/etc/vsftpd.userlist gibalibaran sa pag-login nga adunay userlist_deny=YES nga opsyon kon userlist_enable=YES.

Apan, ang opsyon nga userlist_deny=NO nagtuis sa kahulogan sa default setting, mao nga ang mga user lang kansang username klarong gilista sa userlist_file=/etc/vsftpd.userlist ang tugotan nga maka-log in sa FTP server.

userlist_enable=YES                   # vsftpd will load a list of usernames, from the filename given by userlist_file
userlist_file=/etc/vsftpd.userlist    # stores usernames.
userlist_deny=NO   

Importante: Kung ang mga tiggamit mag-log in sa FTP server, sila ibutang sa usa ka chrooted jail, kini ang lokal nga root directory nga molihok isip ilang home directory alang sa FTP session lamang.

Sunod, atong tan-awon ang duha ka posible nga mga senaryo kung unsaon pag-set ang chrooted jail (lokal nga gamut) nga direktoryo, ingon sa gipatin-aw sa ubos.

6. Niining puntoha, atong idugang/bag-ohon/i-uncomment kining duha ka mosunod nga mga opsyon sa pagpugong sa FTP users sa ilang Home directory.

chroot_local_user=YES
allow_writeable_chroot=YES

Ang opsyon nga chroot_local_user=YES importante nga nagpasabot nga ang mga lokal nga tiggamit ibutang sa chroot jail, ang ilang home directory sa default human sa login.

Ug kinahanglan usab natong sabton nga ang VSFTPD wala magtugot sa chroot jail directory nga masulat, sa default alang sa mga hinungdan sa seguridad, bisan pa niana, mahimo natong gamiton ang opsyon allow_writeable_chroot=OO aron ma-disable kini nga setting.

I-save ang file ug isira kini. Unya kinahanglan namong i-restart ang mga serbisyo sa VSFTPD aron matuman ang mga pagbag-o sa ibabaw:

------------- On SystemD ------------- 
# systemctl restart vsftpd

------------- On SysVInit ------------- 
# service vsftpd restart

Lakang 3: Pagsulay sa VsFTP Server sa Ubuntu

7. Karon atong sulayan ang FTP server pinaagi sa paghimo og FTP user nga adunay useradd nga sugo sama sa mosunod:

$ sudo useradd -m -c "Aaron Kili, Contributor" -s /bin/bash aaronkilik
$ sudo passwd aaronkilik

Dayon, kinahanglan natong ilista ang user aaronkilik sa file /etc/vsftpd.userlist nga adunay echo command ug tee command sama sa ubos:

$ echo "aaronkilik" | sudo tee -a /etc/vsftpd.userlist
$ cat /etc/vsftpd.userlist

8. Karon na ang panahon sa pagsulay sa among mga pag-configure sa ibabaw nga naglihok kung gikinahanglan. Magsugod kami pinaagi sa pagsulay sa wala mailhi nga mga login; tin-aw natong makita gikan sa output sa ubos nga ang anonymous logins dili tugutan sa FTP server:

# ftp 192.168.56.102
Connected to 192.168.56.102  (192.168.56.102).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.102:aaronkilik) : anonymous
530 Permission denied.
Login failed.
ftp> bye
221 Goodbye.

9. Sunod, atong sulayan kon ang usa ka user nga wala malista sa file /etc/vsftpd.userlist hatagan og permiso sa pag-login, nga dili tinuod gikan sa output nga mosunod:

# ftp 192.168.56.102
Connected to 192.168.56.102  (192.168.56.102).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:root) : user1
530 Permission denied.
Login failed.
ftp> bye
221 Goodbye.

10. Karon maghimo kami usa ka katapusan nga pagsulay aron mahibal-an kung ang usa ka tiggamit nga nalista sa file /etc/vsftpd.userlist, gibutang gyud sa iyang direktoryo sa balay pagkahuman sa pag-login. Ug kini tinuod gikan sa output sa ubos:

# ftp 192.168.56.102
Connected to 192.168.56.102  (192.168.56.102).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.102:aaronkilik) : aaronkilik
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls

Pahimangno: Ang pagbutang sa opsyon allow_writeable_chroot=YES mahimong delikado kaayo, kini adunay posible nga mga implikasyon sa seguridad, ilabi na kung ang mga tiggamit adunay pagtugot sa pag-upload, o labaw pa, pag-access sa shell. Gamita lang kini kung nahibal-an nimo kung unsa ang imong gibuhat.

Kinahanglan natong timan-an nga kini nga mga implikasyon sa seguridad dili espesipiko sa VSFTPD, mahimo usab kini nga makaapekto sa tanan nga uban pang FTP daemons nga nagtanyag nga ibutang ang mga lokal nga tiggamit sa chroot jails.

Tungod niini nga hinungdan, sa seksyon sa ubos, among ipasabut ang usa ka mas luwas nga pamaagi sa pagpahimutang sa usa ka lahi nga dili masulat nga lokal nga direktoryo sa ugat alang sa usa ka tiggamit.

Lakang 4: I-configure ang FTP User Home Directories sa Ubuntu

11. Karon, ablihi ang VSFTPD configuration file sa makausa pa.

$ sudo vi /etc/vsftpd.conf
OR
$ sudo nano /etc/vsftpd.conf

ug ikomento ang dili luwas nga kapilian gamit ang # nga karakter sama sa gipakita sa ubos:

#allow_writeable_chroot=YES

Sunod, paghimo og alternatibong lokal nga root directory para sa user (aaronkilik, ang imoha posibleng dili pareho) ug itakda ang gikinahanglang permiso pinaagi sa pag-disable sa mga permiso sa pagsulat sa tanang ubang user niini nga direktoryo:

$ sudo mkdir /home/aaronkilik/ftp
$ sudo chown nobody:nogroup /home/aaronkilik/ftp
$ sudo chmod a-w /home/aaronkilik/ftp

12. Unya, paghimo og direktoryo ubos sa lokal nga gamut nga adunay angay nga mga permiso diin ang user magtipig sa iyang mga file:

$ sudo mkdir /home/aaronkilik/ftp/files
$ sudo chown -R aaronkilk:aaronkilik /home/aaronkilik/ftp/files
$ sudo chmod -R 0770 /home/aaronkilik/ftp/files/

Pagkahuman, idugang/usba ang mga kapilian sa ubos sa VSFTPD config file sa ilang katugbang nga mga kantidad:

user_sub_token=$USER          # inserts the username in the local root directory 
local_root=/home/$USER/ftp    # defines any users local root directory

I-save ang file ug isira kini. Ug i-restart ang mga serbisyo sa VSFTPD sa bag-o nga mga setting:

------------- On SystemD ------------- 
# systemctl restart vsftpd

------------- On SysVInit ------------- 
# service vsftpd restart

13. Karon, buhaton nato ang katapusang pagsusi ug siguroha nga ang lokal nga root directory sa user mao ang FTP directory nga atong gibuhat sa iyang Home directory.

# ftp 192.168.56.102
Connected to 192.168.56.102  (192.168.56.102).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:aaronkilik) : aaronkilik
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls

Mao na! Hinumdumi nga ipaambit ang imong opinyon bahin sa kini nga giya pinaagi sa porma sa komento sa ubos o mahimo’g hatagan kami bisan unsang hinungdanon nga kasayuran bahin sa hilisgutan.

Katapusan apan dili labing gamay, ayaw palabya ang among sunod nga artikulo, diin among ihulagway kung giunsa ang pag-secure sa usa ka FTP server gamit ang mga koneksyon sa SSL/TLS sa Ubuntu 16.04/16.10, hangtod kaniadto, kanunay nga magpabilin sa TecMint.