Садага болоюн, чырагым, лампочкам деген апа маегинде лампа заводунда иштегенин айтты
สารบัญ:
- ข้อกำหนดเบื้องต้น
- การติดตั้ง vsftpd บน Ubuntu 18.04
- การกำหนดค่า vsftpd
- 1. การเข้าถึง FTP
- 2. เปิดใช้งานการอัปโหลด
- 3. คุก Chroot
- 4. การเชื่อมต่อ FTP แบบพาสซีฟ
- 5. การ จำกัด การเข้าสู่ระบบของผู้ใช้
- 6. การรักษาความปลอดภัยการส่งด้วย SSL / TLS
- เริ่มบริการ vsftpd ใหม่
- เปิดไฟร์วอลล์
- สร้างผู้ใช้ FTP
- ปิดการใช้งาน Shell Access
- ข้อสรุป
FTP (File Transfer Protocol) เป็นโปรโตคอลเครือข่ายมาตรฐานที่ใช้ในการถ่ายโอนไฟล์ไปยังและจากเครือข่ายระยะไกล เพื่อการถ่ายโอนข้อมูลที่ปลอดภัยและรวดเร็วยิ่งขึ้นให้ใช้ SCP หรือ SFTP
มีเซิร์ฟเวอร์ FTP โอเพนซอร์สมากมายสำหรับ Linux ที่นิยมมากที่สุดและใช้กันอย่างแพร่หลายคือ PureFTPd, ProFTPD และ vsftpd ในบทช่วยสอนนี้เราจะติดตั้ง vsftpd (Very Secure Ftp Daemon) มันเป็นเซิร์ฟเวอร์ FTP ที่มั่นคงปลอดภัยและรวดเร็ว นอกจากนี้เราจะแสดงวิธีกำหนดค่า vsftpd เพื่อ จำกัด ผู้ใช้ในไดเรกทอรีหลักและเข้ารหัสการส่งทั้งหมดด้วย SSL / TLS
แม้ว่าบทช่วยสอนนี้เขียนขึ้นสำหรับ Ubuntu 18.04 คำแนะนำเดียวกันนี้ใช้กับ Ubuntu 16.04 และการแจกจ่ายแบบ Debian ใด ๆ รวมถึง Debian, Linux Mint และระบบปฏิบัติการระดับประถมศึกษา
ข้อกำหนดเบื้องต้น
ก่อนดำเนินการกับบทช่วยสอนนี้ต่อให้แน่ใจว่าคุณได้เข้าสู่ระบบในฐานะผู้ใช้ที่มีสิทธิ์ sudo
การติดตั้ง vsftpd บน Ubuntu 18.04
แพ็คเกจ vsftpd นั้นมีอยู่ในที่เก็บของ Ubuntu หากต้องการติดตั้งให้เรียกใช้คำสั่งต่อไปนี้:
sudo apt update
sudo apt install vsftpd
บริการ vsftpd จะเริ่มต้นโดยอัตโนมัติหลังจากกระบวนการติดตั้งเสร็จสมบูรณ์ ตรวจสอบโดยพิมพ์สถานะบริการ:
sudo systemctl status vsftpd
ผลลัพธ์จะมีลักษณะดังนี้ด้านล่างแสดงว่าบริการ vsftpd เปิดใช้งานและทำงานอยู่:
* 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
การกำหนดค่า vsftpd
เซิร์ฟเวอร์ vsftpd สามารถกำหนดค่าได้โดยแก้ไขไฟล์
/etc/vsftpd.conf
การตั้งค่าส่วนใหญ่มีการบันทึกไว้อย่างดีภายในไฟล์กำหนดค่า สำหรับตัวเลือกทั้งหมดที่มีให้เยี่ยมชมหน้า vsftpd อย่างเป็นทางการ
ในส่วนต่อไปนี้เราจะไปตั้งค่าที่สำคัญบางอย่างที่จำเป็นในการกำหนดค่าการติดตั้ง vsftpd ที่ปลอดภัย
เริ่มต้นด้วยการเปิดไฟล์คอนฟิกูเรชัน vsftpd:
1. การเข้าถึง FTP
เราจะอนุญาตให้เข้าถึงเซิร์ฟเวอร์ FTP เฉพาะผู้ใช้ในพื้นที่ค้นหาคำสั่ง
anonymous_enable
และ
local_enable
และยืนยันการกำหนดค่าของคุณตรงกับบรรทัดด้านล่าง:
anonymous_enable=NO local_enable=YES
2. เปิดใช้งานการอัปโหลด
write_enable
การตั้งค่า
write_enable
เพื่ออนุญาตการเปลี่ยนแปลงระบบไฟล์เช่นการอัพโหลดและการลบไฟล์
3. คุก Chroot
เพื่อป้องกันไม่ให้ผู้ใช้ FTP เข้าถึงไฟล์ใด ๆ นอกไดเรกทอรีบ้านยกเลิกการตั้งค่า
chroot
chroot_local_user=YES
โดยค่าเริ่มต้นเพื่อป้องกันช่องโหว่ความปลอดภัยเมื่อเปิดใช้งาน chroot vsftpd จะปฏิเสธที่จะอัปโหลดไฟล์หากไดเรกทอรีที่ผู้ใช้ล็อคอยู่นั้นสามารถเขียนได้
ใช้วิธีใดวิธีหนึ่งด้านล่างเพื่ออนุญาตให้อัปโหลดเมื่อเปิดใช้งาน chroot
-
วิธีที่ 1 - วิธีที่แนะนำให้อนุญาตให้อัพโหลดคือการเปิดใช้งาน chroot และกำหนดค่าไดเรกทอรี FTP ในบทช่วยสอนนี้เราจะสร้างไดเรกทอรี
/etc/vsftpd.confftp
ภายในหน้าแรกของผู้ใช้ซึ่งจะทำหน้าที่เป็น chroot และไดเรกทอรีuploads
เขียนได้สำหรับการอัพโหลดไฟล์user_sub_token=$USER local_root=/home/$USER/ftp
วิธีที่ 2 - ตัวเลือกอื่นคือการเพิ่มคำสั่งต่อไปนี้ในไฟล์การกำหนดค่า vsftpd ใช้ตัวเลือกนี้หากคุณต้องให้สิทธิ์การเข้าถึงแก่ผู้ใช้ของคุณในโฮมไดเรกทอรี
/etc/vsftpd.confallow_writeable_chroot=YES
4. การเชื่อมต่อ FTP แบบพาสซีฟ
vsftpd สามารถใช้พอร์ตใดก็ได้สำหรับการเชื่อมต่อ FTP แบบพาสซีฟ เราจะระบุช่วงต่ำสุดและสูงสุดของพอร์ตแล้วเปิดช่วงในไฟร์วอลล์ของเรา
เพิ่มบรรทัดต่อไปนี้ในไฟล์คอนฟิกูเรชัน:
/etc/vsftpd.conf
pasv_min_port=30000 pasv_max_port=31000
5. การ จำกัด การเข้าสู่ระบบของผู้ใช้
หากต้องการอนุญาตให้ผู้ใช้บางคนเท่านั้นที่ล็อกอินเข้าสู่เซิร์ฟเวอร์ FTP ให้เพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์:
userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO
เมื่อเปิดใช้งานตัวเลือกนี้คุณจะต้องระบุผู้ใช้ที่สามารถเข้าสู่ระบบได้โดยเพิ่มชื่อผู้ใช้ลงในไฟล์
/etc/vsftpd.user_list
(ผู้ใช้หนึ่งคนต่อบรรทัด)
6. การรักษาความปลอดภัยการส่งด้วย SSL / TLS
ในการเข้ารหัสการส่งสัญญาณ FTP ด้วย SSL / TLS คุณจะต้องมีใบรับรอง SSL และกำหนดค่าเซิร์ฟเวอร์ FTP เพื่อใช้งาน
คุณสามารถใช้ใบรับรอง SSL ที่มีอยู่ซึ่งลงนามโดยผู้ออกใบรับรองที่เชื่อถือได้หรือสร้างใบรับรองที่ลงนามด้วยตนเอง
เราจะสร้างใบรับรอง SSL ที่ลงชื่อด้วยตนเองโดยใช้คำสั่ง
openssl
คำสั่งต่อไปนี้จะสร้างคีย์ส่วนตัว 2048 บิตและใบรับรองที่ลงชื่อด้วยตนเองมีอายุ 10 ปี ทั้งรหัสส่วนตัวและใบรับรองจะถูกบันทึกในไฟล์เดียวกัน:
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
เมื่อสร้างใบรับรอง SSL แล้วให้เปิดไฟล์คอนฟิกูเรชัน vsftpd:
sudo nano /etc/vsftpd.conf
ค้นหาคำสั่ง
rsa_private_key_file
และ
rsa_private_key_file
เปลี่ยนค่าเป็นพา ธ ไฟล์
pam
และตั้งค่าคำสั่ง
ssl_enable
เป็น
YES
:
rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES
หากไม่ได้ระบุเป็นอย่างอื่นเซิร์ฟเวอร์ FTP จะใช้ TLS เท่านั้นเพื่อทำการเชื่อมต่อที่ปลอดภัย
เริ่มบริการ vsftpd ใหม่
เมื่อคุณแก้ไขเสร็จแล้วไฟล์การกำหนดค่า vsftpd (ยกเว้นความคิดเห็น) ควรมีลักษณะดังนี้:
/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
บันทึกไฟล์และรีสตาร์ทเซอร์วิส vsftpd เพื่อให้การเปลี่ยนแปลงมีผล:
เปิดไฟร์วอลล์
หากต้องการเปิดพอร์ต
21
(พอร์ตคำสั่ง FTP), พอร์ต
20
(พอร์ตข้อมูล FTP) และ
30000-31000
(ช่วงพอร์ตแบบพาสซีฟ) ให้รันคำสั่งต่อไปนี้:
sudo ufw allow 20:21/tcp
sudo ufw allow 30000:31000/tcp
เพื่อหลีกเลี่ยงการถูกล็อคให้เปิดพอร์ต
22
:
sudo ufw allow OpenSSH
โหลดกฎ UFW อีกครั้งโดยปิดใช้งานและเปิดใช้งาน UFW อีกครั้ง:
sudo ufw disable
sudo ufw enable
หากต้องการตรวจสอบการเปลี่ยนแปลงให้ดำเนินการดังนี้
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)
สร้างผู้ใช้ FTP
เพื่อทดสอบเซิร์ฟเวอร์ FTP ของเราเราจะสร้างผู้ใช้ใหม่
- หากคุณมีผู้ใช้ที่คุณต้องการให้สิทธิ์การเข้าถึง FTP ข้ามขั้นตอนที่ 1 หากคุณตั้ง
allow_writeable_chroot=YES
ในไฟล์กำหนดค่าของคุณให้ข้ามขั้นตอนที่ 3
-
สร้างผู้ใช้ใหม่ชื่อ
newftpuser
:sudo adduser newftpuser
เพิ่มผู้ใช้ไปยังรายการผู้ใช้ FTP ที่อนุญาต:
echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list
สร้างแผนผังไดเร็กทอรี FTP และตั้งค่าการอนุญาตที่ถูกต้อง:
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
ตามที่กล่าวไว้ในส่วนก่อนหน้านี้ผู้ใช้จะสามารถอัปโหลดไฟล์ไปยังไดเรกทอรี
ftp/upload
ณ จุดนี้เซิร์ฟเวอร์ FTP ของคุณทำงานได้อย่างสมบูรณ์และคุณควรจะสามารถเชื่อมต่อกับเซิร์ฟเวอร์ของคุณโดยใช้ไคลเอนต์ FTP ที่สามารถกำหนดค่าให้ใช้การเข้ารหัส TLS เช่น FileZilla
ปิดการใช้งาน Shell Access
โดยค่าเริ่มต้นเมื่อสร้างผู้ใช้หากไม่ได้ระบุไว้อย่างชัดเจนผู้ใช้จะมีการเข้าถึง SSH ไปยังเซิร์ฟเวอร์
หากต้องการปิดใช้งานการเข้าถึงเชลล์เราจะสร้างเชลล์ใหม่ซึ่งจะพิมพ์ข้อความแจ้งให้ผู้ใช้ทราบว่าบัญชีของพวกเขาถูก จำกัด การเข้าถึง FTP เท่านั้น
สร้างเชลล์
/bin/ftponly
และทำให้สามารถเรียกใช้งานได้:
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
ผนวกเชลล์ใหม่เข้ากับรายการของเชลล์ที่ถูกต้องในไฟล์
/etc/shells
:
echo "/bin/ftponly" | sudo tee -a /etc/shells
เปลี่ยนเชลล์ผู้ใช้เป็น
/bin/ftponly
:
sudo usermod newftpuser -s /bin/ftponly
ใช้คำสั่งเดียวกันเพื่อเปลี่ยนเชลล์ของผู้ใช้ทั้งหมดที่คุณต้องการให้สิทธิ์การเข้าถึง FTP เท่านั้น
ข้อสรุป
ในบทช่วยสอนนี้คุณเรียนรู้วิธีการติดตั้งและกำหนดค่าเซิร์ฟเวอร์ FTP ที่ปลอดภัยและรวดเร็วบนระบบ Ubuntu 18.04 ของคุณ
ftp ubuntuMicrosoft Tweaks Ad หลังจากที่ Apple บ่น

เรื่องราว "Laptop Hunter" ยังคงมีน้อยลงเล็กน้อย Apple-bashing
วิธีการตั้งค่าเซิร์ฟเวอร์ ftp ด้วย vsftpd บน centos 7

ในบทช่วยสอนนี้เราจะทำการติดตั้ง vsftpd มันเป็นเซิร์ฟเวอร์ FTP ที่มั่นคงปลอดภัยและรวดเร็ว นอกจากนี้เราจะแสดงวิธีกำหนดค่า vsftpd เพื่อ จำกัด ผู้ใช้ไปยังโฮมไดเร็กตอรี่ของพวกเขาและเข้ารหัสการส่งข้อมูลทั้งหมดด้วย SSL / TLS
วิธีการตั้งค่าเซิร์ฟเวอร์ ftp ด้วย vsftpd บนเดเบียน 9

ในบทช่วยสอนนี้เราจะทำการติดตั้ง vsftpd มันเป็นเซิร์ฟเวอร์ FTP ที่มั่นคงปลอดภัยและรวดเร็ว นอกจากนี้เราจะแสดงวิธีกำหนดค่า vsftpd เพื่อ จำกัด ผู้ใช้ไปยังโฮมไดเร็กตอรี่ของตนและเข้ารหัสการส่งข้อมูลทั้งหมดด้วย SSL / TLS