ลองกับคู่มือนี้ อาจจะทำงานให้คุณ
ทำอย่างไร
ติดตั้ง vsftpd และไลบรารี PAM
แก้ไข/etc/vsftpd.conf
และ/etc/pam.d/vsftpd
สร้างบัญชีผู้ใช้ด้วยไดเรกทอรีที่กำหนดเอง (ตัวอย่างเช่น / var / www /)
ตั้งค่าไดเรกทอรีด้วยความถูกต้องchmod
และchown
สร้างผู้ใช้ผู้ดูแลระบบด้วยการเข้าถึงเซิร์ฟเวอร์แบบเต็ม
- ติดตั้ง
vsftpd
(Very Secure FTP Deamon) และlibpam-pwdfile
เพื่อสร้างผู้ใช้เสมือน
ฉันต้องการสร้างผู้ใช้ FTP แต่ฉันไม่ต้องการเพิ่มผู้ใช้ unix ในพื้นที่ (ไม่มีการเข้าถึงเชลล์ไม่มีโฮมไดเร็กตอรี่และอื่น ๆ ) PAM (โมดูลการพิสูจน์ตัวตนแบบเสียบได้) จะช่วยคุณสร้างผู้ใช้เสมือน
sudo apt-get install vsftpd libpam-pwdfile
- แก้ไข
vsftpd.conf
ก่อนอื่นคุณต้องสำรองไฟล์ต้นฉบับ
sudo mv /etc/vsftpd.conf /etc/vsftpd.conf.bak
จากนั้นสร้างใหม่
sudo vim /etc/vsftpd.conf
คัดลอกและวางบรรทัดต่อไปนี้ ไฟล์ควรมีบรรทัดเหล่านี้เท่านั้น:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
nopriv_user=vsftpd
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/var/www/$USER
chroot_local_user=YES
hide_ids=YES
guest_username=vsftpd
- ลงทะเบียนผู้ใช้เสมือน
เพื่อลงทะเบียนผู้ใช้ที่คุณใช้htpasswd
ดังนั้นฉันคิดว่าคุณapache2
ทำงานบนเซิร์ฟเวอร์ของคุณ สร้างvsftpd
โฟลเดอร์จากนั้นใส่ไฟล์การกำหนดค่าลงไป
sudo mkdir /etc/vsftpd
แล้วก็
sudo htpasswd -cd /etc/vsftpd/ftpd.passwd user1
-c หมายความว่าเราจะสร้างไฟล์ถ้ามันยังไม่มีอยู่ -d บังคับให้ MD5 คุณต้องการมันใน Ubuntu 12.04 เพียงใช้มันเสมอ
คำสั่งจะแจ้งให้ใส่รหัสผ่าน
หากคุณต้องการเพิ่มผู้ใช้ใหม่ในภายหลัง:
sudo htpasswd -d /etc/vsftpd/ftpd.passwd user2
- กำหนดค่า PAM ใน
/etc/pam.d/vsftpd
อีกครั้งคุณต้องสำรองไฟล์ orignal
sudo mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
และสร้างใหม่
sudo vim /etc/pam.d/vsftpd
คัดลอกและวาง 2 บรรทัดนี้ (ควรเป็นเนื้อหาเดียว) ฉันยืนยันเพียง 2 บรรทัดนี้ฉันเสียเวลามากในการรักษาต้นฉบับและเพิ่งเพิ่มสิ่งเหล่านี้
auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd
account required pam_permit.so
- สร้างผู้ใช้ท้องถิ่นโดยไม่มีการเข้าถึงเชลล์
sudo useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd
คุณสามารถตรวจสอบว่ามันถูกสร้างขึ้นด้วยคำสั่ง id: id vsftpd เรากำหนดผู้ใช้ด้วยเปลือก / bin / false เนื่องจากพารามิเตอร์ check_shell (แม้ว่าคุณจะไม่ได้ใช้) เมื่อผู้ใช้ปลายทางเชื่อมต่อกับเซิร์ฟเวอร์ FTP พวกเขาจะถูกใช้เพื่อสิทธิ์และความเป็นเจ้าของ:
chmod
chown
และ
- เริ่มต้นใหม่
vsftpd
วิธีการทั่วไปคือการใช้ init.d เหมือนทุกคน
sudo /etc/init.d/vsftpd restart
sudo service vsftpd restart
- สร้างไดเรกทอรี
ตามการกำหนดค่าผู้ใช้ทั้งหมดจะถูกวางลงในโฟลเดอร์นี้: / var / www / user1
คุณต้องสร้างมันด้วยสิทธิ์เฉพาะ: โฟลเดอร์รากไม่สามารถเขียนได้!
/ [root = /var/www/user1] => 555
www [ /var/www/user1/www ] => 755
docs [ /var/www/user1/docs ] => 755
หมายเหตุ: ผู้ใช้ไม่สามารถสร้างไฟล์หรือโฟลเดอร์ในไดเรกทอรีราก
ในนั้นvsftpd.conf
เรามีchroot_local_user=YES
เพื่อให้ผู้ใช้ไม่สามารถเห็นอะไรนอกโฟลเดอร์ของเขา สำหรับเขาเซิร์ฟเวอร์มีลักษณะดังนี้:
ดังนั้นให้เรียกใช้คำสั่งเหล่านี้:
mkdir /var/www/user1`
chmod -w /var/www/user1
mkdir www/user1/www
chmod -R 755 /var/www/user1/www
chown -R vsftpd:nogroup /var/www/user1
/var/www/user1
โฟลเดอร์ที่มีอยู่หรือการเชื่อมต่อจะล้มเหลว
ตอนนี้คุณสามารถลองเชื่อมต่อกับ FTP ของคุณได้แล้ว
- สร้างผู้ใช้ผู้ดูแลระบบเพื่อเข้าถึงเซิร์ฟเวอร์ทั้งหมด
htpasswd
เพื่อสร้างผู้ใช้ผู้ดูแลระบบที่เราจำเป็นต้องลงทะเบียนผู้ใช้ใหม่ด้วย
ก่อนที่เราจะทำเช่นนั้นฉันจะแนะนำให้คุณตรวจสอบ/etc/ftpusers
ไฟล์ที่กำหนดผู้ใช้บางคนที่ไม่ได้รับอนุญาตให้เชื่อมต่อกับ ftp ฉันคิดว่ามันเป็นเพียงสำหรับผู้ใช้ในท้องถิ่นและไม่ใช่ผู้ใช้เสมือน แต่ในกรณีที่ไม่ได้เลือกชื่อที่มีอยู่ในไฟล์นี้
sudo htpasswd -d /etc/vsftpd/ftpd.passwd theadmin
ตอนนี้เราต้องเพิ่มบรรทัดใหม่เข้าไป /etc/vsftpd.conf
chroot_list_enable=YES
ซึ่งหมายความว่าผู้ใช้ของคุณจะถูกวางไว้ในโฟลเดอร์ของพวกเขา (เป็นคุก) ยกเว้นผู้ใช้ใน / etc /
vsftpd.chroot_list
มาสร้างไฟล์นี้และเพิ่มผู้ใช้ของเราไฟล์นี้เป็นบรรทัดง่าย ๆ ที่มี“ theadmin” เพิ่มผู้ใช้หนึ่งรายต่อบรรทัด นั่นหมายความว่าคุณไม่จำเป็นต้องสร้างโฟลเดอร์ผู้ใช้จะเข้าสู่ระบบและเริ่มต้นใน/var/www/theadmin
/home/vsftpd
รีสตาร์ทเซิร์ฟเวอร์แล้วเสร็จ!