Садага болоюн, чырагым, лампочкам деген апа маегинде лампа заводунда иштегенин айтты
สารบัญ:
- ข้อกำหนดเบื้องต้น
- การติดตั้ง vsftpd บน CentOS 7
- การกำหนดค่า vsftpd
- 1. การเข้าถึง FTP
- 2. เปิดใช้งานการอัปโหลด
- 3. คุก Chroot
- 4. การเชื่อมต่อ FTP แบบพาสซีฟ
- 5. การ จำกัด การเข้าสู่ระบบของผู้ใช้
- 6. การรักษาความปลอดภัยการส่งด้วย SSL / TLS
- เริ่มบริการ vsftpd ใหม่
- เปิดไฟร์วอลล์
- สร้างผู้ใช้ FTP
- ปิดการใช้งาน Shell Access
- ข้อสรุป
FTP (File Transfer Protocol) เป็นโปรโตคอลเครือข่ายไคลเอนต์ - เซิร์ฟเวอร์ที่อนุญาตให้ผู้ใช้ถ่ายโอนไฟล์ไปยังและจากเครือข่ายระยะไกล
มีเซิร์ฟเวอร์ FTP โอเพ่นซอร์สหลายตัวสำหรับ Linux ที่นิยมมากที่สุดและใช้กันอย่างแพร่หลายคือ PureFTPd, ProFTPD และ vsftpd
ในบทช่วยสอนนี้เราจะทำการติดตั้ง vsftpd (Very Secure Ftp Daemon) บน CentOS 7 มันเป็นเซิร์ฟเวอร์ FTP ที่เสถียรปลอดภัยและรวดเร็ว นอกจากนี้เราจะแสดงวิธีกำหนดค่า vsftpd เพื่อ จำกัด ผู้ใช้ในไดเรกทอรีหลักและเข้ารหัสการส่งทั้งหมดด้วย SSL / TLS
เพื่อการถ่ายโอนข้อมูลที่ปลอดภัยและรวดเร็วยิ่งขึ้นให้ใช้ SCP หรือ SFTP
ข้อกำหนดเบื้องต้น
ก่อนดำเนินการกับบทช่วยสอนนี้ต่อให้แน่ใจว่าคุณได้เข้าสู่ระบบในฐานะผู้ใช้ที่มีสิทธิ์ sudo
การติดตั้ง vsftpd บน CentOS 7
แพ็คเกจ vsftpd พร้อมใช้งานในที่เก็บ CentOS เริ่มต้น หากต้องการติดตั้งให้ใช้คำสั่งต่อไปนี้:
sudo yum install vsftpd
เมื่อติดตั้งแพ็กเกจแล้วให้เริ่ม vsftpd daemon และเปิดใช้งานให้เริ่มโดยอัตโนมัติในเวลาบูต:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
คุณสามารถตรวจสอบว่าบริการ vsftpd กำลังทำงานอยู่โดยการพิมพ์สถานะ:
sudo systemctl status vsftpd
ผลลัพธ์จะมีลักษณะดังนี้ด้านล่างแสดงว่าบริการ vsftpd เปิดใช้งานและทำงานอยู่:
● 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
การกำหนดค่า vsftpd
การกำหนดค่าเซอร์วิส vsftpd เกี่ยวข้องกับการแก้ไขไฟล์คอนฟิกูเรชัน
/etc/vsftpd/vsftpd.conf
การตั้งค่าส่วนใหญ่มีการบันทึกไว้อย่างดีภายในไฟล์กำหนดค่า สำหรับตัวเลือกทั้งหมดที่มีให้เยี่ยมชมหน้า vsftpd อย่างเป็นทางการ
ในส่วนต่อไปนี้เราจะทำการตั้งค่าที่สำคัญบางอย่างเพื่อกำหนดค่าการติดตั้ง vsftpd ที่ปลอดภัย
เริ่มต้นด้วยการเปิดไฟล์คอนฟิกูเรชัน vsftpd:
sudo nano /etc/vsftpd/vsftpd.conf
1. การเข้าถึง FTP
เราจะอนุญาตให้เข้าถึงเซิร์ฟเวอร์ FTP เฉพาะผู้ใช้ในพื้นที่ค้นหาคำสั่ง
anonymous_enable
และ
local_enable
และยืนยันการกำหนดค่าของคุณตรงกับบรรทัดด้านล่าง:
anonymous_enable=NO local_enable=YES
2. เปิดใช้งานการอัปโหลด
write_enable
การตั้งค่า
write_enable
เพื่ออนุญาตการเปลี่ยนแปลงระบบไฟล์เช่นการอัพโหลดและการลบไฟล์
3. คุก Chroot
ป้องกันไม่ให้ผู้ใช้ FTP เข้าถึงไฟล์ใด ๆ นอกไดเรกทอรีบ้านโดยไม่แสดงข้อคิดเห็น
chroot
directive
chroot_local_user=YES
โดยค่าเริ่มต้นเมื่อ chroot ถูกเปิดใช้งาน vsftpd จะปฏิเสธที่จะอัปโหลดไฟล์หากไดเรกทอรีที่ผู้ใช้ล็อคนั้นเขียนได้ นี่คือเพื่อป้องกันช่องโหว่ความปลอดภัย
ใช้วิธีใดวิธีหนึ่งด้านล่างเพื่ออนุญาตให้อัปโหลดเมื่อเปิดใช้งาน chroot
-
วิธีที่ 1 - วิธีที่แนะนำให้อนุญาตให้อัพโหลดคือการเปิดใช้งาน chroot และกำหนดค่าไดเรกทอรี FTP ในบทช่วยสอนนี้เราจะสร้างไดเรกทอรี
/etc/vsftpd/vsftpd.confftp
ภายในหน้าแรกของผู้ใช้ซึ่งจะทำหน้าที่เป็น chroot และไดเรกทอรีuploads
เขียนได้สำหรับการอัพโหลดไฟล์user_sub_token=$USER local_root=/home/$USER/ftp
วิธีที่ 2 - ตัวเลือกอื่นคือการเพิ่มคำสั่งต่อไปนี้ในไฟล์การกำหนดค่า vsftpd ใช้ตัวเลือกนี้หากคุณต้องให้สิทธิ์การเข้าถึงแก่ผู้ใช้ของคุณในโฮมไดเรกทอรี
/etc/vsftpd/vsftpd.confallow_writeable_chroot=YES
4. การเชื่อมต่อ FTP แบบพาสซีฟ
vsftpd สามารถใช้พอร์ตใดก็ได้สำหรับการเชื่อมต่อ FTP แบบพาสซีฟ เราจะระบุช่วงต่ำสุดและสูงสุดของพอร์ตแล้วเปิดช่วงในไฟร์วอลล์ของเรา
เพิ่มบรรทัดต่อไปนี้ในไฟล์คอนฟิกูเรชัน:
/etc/vsftpd/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/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
เมื่อสร้างใบรับรอง SSL แล้วให้เปิดไฟล์คอนฟิกูเรชัน vsftpd:
sudo nano /etc/vsftpd/vsftpd.conf
ค้นหาคำสั่ง
rsa_private_key_file
และ
rsa_private_key_file
เปลี่ยนค่าเป็นพา ธ ไฟล์
pam
และตั้งค่าคำสั่ง
ssl_enable
เป็น
YES
:
rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YES
หากไม่ได้ระบุเป็นอย่างอื่นเซิร์ฟเวอร์ FTP จะใช้ TLS เท่านั้นเพื่อทำการเชื่อมต่อที่ปลอดภัย
เริ่มบริการ vsftpd ใหม่
เมื่อคุณแก้ไขเสร็จแล้วไฟล์การกำหนดค่า vsftpd (ยกเว้นความคิดเห็น) ควรมีลักษณะดังนี้:
/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
บันทึกไฟล์และรีสตาร์ทเซอร์วิส vsftpd เพื่อให้การเปลี่ยนแปลงมีผล:
เปิดไฟร์วอลล์
หากต้องการเปิดพอร์ต
21
(พอร์ตคำสั่ง FTP), พอร์ต
20
(พอร์ตข้อมูล FTP) และ
30000-31000
(ช่วงพอร์ตแบบพาสซีฟ) ให้ใช้คำสั่งต่อไปนี้:
sudo firewall-cmd --permanent --add-port=20-21/tcp
sudo firewall-cmd --permanent --add-port=30000-31000/tcp
โหลดกฎไฟร์วอลล์ซ้ำโดยพิมพ์:
สร้างผู้ใช้ FTP
เพื่อทดสอบเซิร์ฟเวอร์ FTP ของเราเราจะสร้างผู้ใช้ใหม่
- หากคุณมีผู้ใช้ที่คุณต้องการให้สิทธิ์การเข้าถึง FTP ข้ามขั้นตอนที่ 1 หากคุณตั้ง
allow_writeable_chroot=YES
ในไฟล์กำหนดค่าของคุณให้ข้ามขั้นตอนที่ 3
-
สร้างผู้ใช้ใหม่ชื่อ
newftpuser
:sudo adduser newftpuser
ถัดไปคุณจะต้องตั้งรหัสผ่านผู้ใช้:
sudo passwd 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 ที่ปลอดภัยและรวดเร็วบนระบบ CentOS 7 ของคุณ
ftp centosMicrosoft Tweaks Ad หลังจากที่ Apple บ่น

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

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

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