Score:0

ไม่สามารถเชื่อมต่อกับ vsftpd บนพอร์ต 21 เมื่อพยายามสร้างการเชื่อมต่อ FTP

ธง us

ฉันได้ติดตั้ง vsftpd เกี่ยวกับฉัน ลินุกซ์ อูบุนตู 21.04 ตัวอย่างการใช้ต่อไปนี้:

sudo apt-get ติดตั้ง vsftpd

ฉันได้เปิดใช้งาน FTP ในไฟล์ ยูเอฟดับบลิว ไฟร์วอลล์โดยใช้สิ่งต่อไปนี้:

sudo ufw อนุญาต ftp

ของฉัน /etc/vsftpd.conf ไฟล์ประกอบด้วยสิ่งต่อไปนี้:

# ตัวอย่างไฟล์ปรับแต่ง /etc/vsftpd.conf
#
# ค่าเริ่มต้นที่คอมไพล์ในการตั้งค่าค่อนข้างหวาดระแวง ไฟล์ตัวอย่างนี้
# คลายสิ่งต่าง ๆ เล็กน้อยเพื่อให้ ftp daemon ใช้งานได้มากขึ้น
# โปรดดู vsftpd.conf.5 สำหรับการคอมไพล์ทั้งหมดในค่าเริ่มต้น
#
# อ่านสิ่งนี้: ไฟล์ตัวอย่างนี้ไม่ใช่รายการตัวเลือก vsftpd ที่ครบถ้วนสมบูรณ์
# โปรดอ่านหน้าคู่มือ vsftpd.conf.5 เพื่อรับทราบแนวคิดทั้งหมดของ vsftpd
#ความสามารถ.
#
#
#รันสแตนด์อโลน? vsftpd สามารถเรียกใช้จาก inetd หรือแบบสแตนด์อโลน
# daemon เริ่มต้นจาก initscript
ฟัง=ใช่
#
# คำสั่งนี้เปิดใช้งานการฟังบนซ็อกเก็ต IPv6 โดยค่าเริ่มต้น การฟัง
# บนที่อยู่ IPv6 "ใดๆ" (::) จะยอมรับการเชื่อมต่อจากทั้ง IPv6
# และลูกค้า IPv4 ไม่จำเป็นต้องฟังบน *ทั้ง* IPv4 และ IPv6
#ซ็อกเก็ต.ถ้าคุณต้องการ (อาจเป็นเพราะคุณต้องการฟังเฉพาะ
ที่อยู่ #) คุณต้องเรียกใช้ vsftpd สองชุดพร้อมการกำหนดค่าสองชุด
# ไฟล์
Listen_ipv6=ไม่
#
# อนุญาต FTP ที่ไม่ระบุตัวตน? (ปิดใช้งานโดยค่าเริ่มต้น)
anonymous_enable=ไม่
#
# ยกเลิกความคิดเห็นนี้เพื่ออนุญาตให้ผู้ใช้ในพื้นที่เข้าสู่ระบบ
local_enable=ใช่
#
# ยกเลิกความคิดเห็นนี้เพื่อเปิดใช้งานคำสั่งเขียน FTP รูปแบบใดก็ได้
write_enable=ใช่
#
# umask เริ่มต้นสำหรับผู้ใช้ในเครื่องคือ 077 คุณอาจต้องการเปลี่ยนค่านี้เป็น 022
# หากผู้ใช้ของคุณคาดหวัง (022 ถูกใช้โดย ftpd อื่น ๆ ส่วนใหญ่)
#local_umask=022
#
# ยกเลิกความคิดเห็นนี้เพื่ออนุญาตให้ผู้ใช้ FTP ที่ไม่ระบุตัวตนสามารถอัปโหลดไฟล์ได้ นี้เท่านั้น
# มีผลหากมีการเปิดใช้งานการเปิดใช้งานการเขียนส่วนกลางด้านบน นอกจากนี้คุณจะ
# เห็นได้ชัดว่าจำเป็นต้องสร้างไดเร็กทอรีที่ผู้ใช้ FTP เขียนได้
#anon_upload_enable=ใช่
#
# ยกเลิกการแสดงความคิดเห็นหากคุณต้องการให้ผู้ใช้ FTP ที่ไม่ระบุชื่อสามารถสร้างได้
# ไดเร็กทอรีใหม่
#anon_mkdir_write_enable=ใช่
#
# เปิดใช้งานข้อความไดเรกทอรี - ข้อความที่มอบให้กับผู้ใช้ระยะไกลเมื่อพวกเขา
# เข้าไปในไดเร็กทอรีที่แน่นอน
dirmessage_enable=ใช่
#
# หากเปิดใช้งาน vsftpd จะแสดงรายชื่อไดเร็กทอรีพร้อมเวลา
# ในเขตเวลาท้องถิ่นของคุณ ค่าเริ่มต้นคือการแสดง GMT เดอะ
# ครั้งที่ส่งคืนโดยคำสั่ง MDTM FTP ก็ได้รับผลกระทบเช่นกัน
# ตัวเลือก.
use_localtime=ใช่
#
# เปิดใช้งานการบันทึกการอัพโหลด / ดาวน์โหลด
xferlog_enable=ใช่
#
# ตรวจสอบให้แน่ใจว่าการเชื่อมต่อการถ่ายโอน PORT เริ่มต้นจากพอร์ต 20 (ftp-data)
connect_from_port_20=ใช่
#
# ถ้าคุณต้องการ คุณสามารถจัดการไฟล์ที่ไม่ระบุชื่อที่อัพโหลดให้เป็นของเจ้าของ
#ผู้ใช้อื่น บันทึก! ไม่ได้ใช้ "root" สำหรับไฟล์ที่อัพโหลด
# ที่แนะนำ!
#chown_uploads=ใช่
#chown_username=ใครก็ตาม
#
# คุณสามารถแทนที่ตำแหน่งที่ไฟล์บันทึกจะไปได้หากต้องการ ค่าเริ่มต้นจะแสดงขึ้น
# ด้านล่าง.
#xferlog_file=/var/log/vsftpd.log
#
# ถ้าคุณต้องการ คุณสามารถมีไฟล์บันทึกของคุณในรูปแบบมาตรฐาน ftpd xferlog
# โปรดทราบว่าตำแหน่งไฟล์บันทึกเริ่มต้นคือ /var/log/xferlog ในกรณีนี้
#xferlog_std_format=ใช่
#
# คุณสามารถเปลี่ยนค่าเริ่มต้นสำหรับการหมดเวลาเซสชันที่ไม่ได้ใช้งาน
#idle_session_timeout=600
#
# คุณสามารถเปลี่ยนค่าเริ่มต้นสำหรับการหมดเวลาการเชื่อมต่อข้อมูล
#data_connection_timeout=120
#
# ขอแนะนำให้คุณกำหนดผู้ใช้เฉพาะในระบบของคุณซึ่ง
# เซิร์ฟเวอร์ ftp สามารถใช้เป็นผู้ใช้ที่โดดเดี่ยวและไม่มีสิทธิพิเศษโดยสิ้นเชิง
#nopriv_user=ftpsecure
#
# เปิดใช้งานสิ่งนี้และเซิร์ฟเวอร์จะรับรู้คำขอ ABOR แบบอะซิงโครนัส ไม่
# แนะนำเพื่อความปลอดภัย (รหัสไม่สำคัญ) ไม่เปิดใช้งาน
# อย่างไรก็ตาม อาจทำให้ไคลเอ็นต์ FTP รุ่นเก่าสับสนได้
#async_abor_enable=ใช่
#
# โดยค่าเริ่มต้น เซิร์ฟเวอร์จะแสร้งทำเป็นอนุญาตโหมด ASCII แต่ในความเป็นจริงจะเพิกเฉย
#คำขอ. เปิดใช้ตัวเลือกด้านล่างเพื่อให้เซิร์ฟเวอร์ทำ ASCII จริง
# จัดการไฟล์เมื่ออยู่ในโหมด ASCII
# ระวังว่าในเซิร์ฟเวอร์ FTP บางตัว การสนับสนุน ASCII อนุญาตให้ปฏิเสธบริการได้
# โจมตี (DoS) ผ่านคำสั่ง "SIZE /big/file" ในโหมด ASCII vsftpd
# ทำนายการโจมตีนี้และปลอดภัยเสมอโดยรายงานขนาดของ
#ไฟล์ดิบ.
# ASCII mangling เป็นคุณสมบัติที่น่ากลัวของโปรโตคอล
#ascii_upload_enable=ใช่
#ascii_download_enable=ใช่
#
# คุณสามารถปรับแต่งสตริงแบนเนอร์เข้าสู่ระบบได้อย่างเต็มที่:
#ftpd_banner=ยินดีต้อนรับสู่บริการ FTP
#
# คุณสามารถระบุไฟล์ของที่อยู่อีเมลที่ไม่ระบุตัวตนที่ไม่ได้รับอนุญาต เห็นได้ชัดว่า
# มีประโยชน์สำหรับการต่อสู้กับการโจมตี DoS บางอย่าง
#deny_email_enable=ใช่
# (ค่าเริ่มต้นดังต่อไปนี้)
#banned_email_file=/etc/vsftpd.banned_emails
#
# คุณอาจจำกัดผู้ใช้ในเครื่องไว้ที่โฮมไดเร็กทอรีของพวกเขา ดูคำถามที่พบบ่อยสำหรับ
# ความเสี่ยงที่เป็นไปได้ในเรื่องนี้ก่อนที่จะใช้ chroot_local_user หรือ
# chroot_list_enable ด้านล่าง
chroot_local_user=ใช่
#
# คุณอาจระบุรายชื่อผู้ใช้ในเครื่องอย่างชัดเจนให้ chroot() ไปที่บ้านของพวกเขา
#ไดเร็กทอรี ถ้า chroot_local_user เป็น YES รายการนี้จะกลายเป็นรายการของ
# ผู้ใช้ไม่ chroot ()
# (คำเตือน chroot'ing อาจเป็นอันตรายมาก หากใช้ chroot ตรวจสอบให้แน่ใจว่า
# ผู้ใช้ไม่มีสิทธิ์เขียนไปยังไดเร็กทอรีระดับบนสุดภายใน
#โครต)
#chroot_local_user=ใช่
#chroot_list_enable=ใช่
# (ค่าเริ่มต้นดังต่อไปนี้)
#chroot_list_file=/etc/vsftpd.chroot_list
#
# คุณสามารถเปิดใช้งานตัวเลือก "-R" ในตัว ls สิ่งนี้ถูกปิดใช้งานโดย
# เริ่มต้นเพื่อหลีกเลี่ยงไม่ให้ผู้ใช้ระยะไกลสามารถทำให้เกิด I/O มากเกินไปในขนาดใหญ่
# ไซต์ อย่างไรก็ตาม ไคลเอนต์ FTP ที่เสียหายบางตัว เช่น "ncftp" และ "มิเรอร์" ถือว่า
# การมีอยู่ของตัวเลือก "-R" ดังนั้นจึงมีกรณีที่แข็งแกร่งสำหรับการเปิดใช้งาน
#ls_recurse_enable=ใช่
#
#ปรับแต่ง
#
# การตั้งค่าบางอย่างของ vsftpd ไม่พอดีกับเลย์เอาต์ของระบบไฟล์
# ค่าเริ่มต้น.
#
# ตัวเลือกนี้ควรเป็นชื่อของไดเร็กทอรีที่ว่างเปล่า อีกทั้ง
# ไดเร็กทอรีไม่ควรเขียนโดยผู้ใช้ ftp ไดเร็กทอรีนี้ใช้
# เป็นคุก chroot() ที่ปลอดภัยในบางครั้ง vsftpd ไม่ต้องการระบบไฟล์
# เข้าไป.
secure_chroot_dir=/var/run/vsftpd/empty
#
# สตริงนี้เป็นชื่อของบริการ PAM vsftpd ที่จะใช้
pam_service_name=vsftpd
#
# ตัวเลือกนี้ระบุตำแหน่งของใบรับรอง RSA เพื่อใช้สำหรับ SSL
# การเชื่อมต่อที่เข้ารหัส
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=ไม่

#
# ยกเลิกการแสดงความคิดเห็นเพื่อระบุว่า vsftpd ใช้ระบบไฟล์ utf8
#utf8_filesystem=ใช่

user_sub_token=$USER
local_root=/home/$USER/ftp_user

userlist_enable=ใช่
userlist_file=/etc/vsftpd.user_list
userlist_deny=ไม่

ฉันได้เพิ่มบัญชีผู้ใช้ที่ต้องการแล้ว ftpuser ถึง /etc/vsftpd.user_list. ต่อไปนี้มีอยู่ในผลลัพธ์ของ netstat -tanp:

tcp 0 0 0.0.0.0:27017 0.0.0.0:* ฟัง 939/docker-proxy
tcp 0 0 0.0.0.0:21 0.0.0.0:* ฟัง 585614/vsftpd
tcp 0 0 127.0.0.53:53 0.0.0.0:* ฟัง 582461/systemd-reso
tcp 0 0 0.0.0.0:22 0.0.0.0:* ฟัง 581200/sshd: /usr/s

ข้างต้นดูเหมือนจะบ่งบอกว่า vsftpd กำลังฟังพอร์ต 21 อย่างที่ควรจะเป็น อย่างไรก็ตาม ฉันไม่สามารถเชื่อมต่อได้โดยใช้ วินเอสซีพี บนพอร์ต 21 ด้วยโปรโตคอล FTP อย่างไรก็ตาม ที่แปลกคือฉันสามารถเชื่อมต่อกับพอร์ต 22 ด้วยโปรโตคอล SFTP

ฉันควรพูดถึงว่าก่อนหน้านี้ฉันมี vsftpd ติดตั้งและกำหนดค่าสำหรับ SFTP ฉันทำ sudo apt-get ล้าง vsftpd และได้พยายามติดตั้งใหม่ตั้งแต่นั้นเป็นต้นมา

แก้ไข แม้แต่ตอนที่ฉันวิ่ง ftp โลคัลโฮสต์ ฉันได้รับข้อความแสดงข้อผิดพลาด: ftp: connect: การเชื่อมต่อหมดเวลา

นี่คือขั้นตอนที่ฉันได้ทำไปแล้ว

ติดตั้ง VSFTPD

อัปเดต sudo apt
sudo apt ติดตั้ง vsftpd
sudo บริการ vsftpd สถานะ

กำหนดค่าไฟร์วอลล์

sudo ufw อนุญาต 20/tcp
sudo ufw อนุญาต 21/tcp
sudo ufw อนุญาต 40000:50000/tcp
sudo ufw อนุญาต 990/tcp
sudo ufw อนุญาตให้ opensh
sudo ufw เปิดใช้งาน
สถานะ sudo ufw

สร้าง ftpuser และไดเร็กทอรี

sudo adduser ftpuser
sudo mkdir /home/ftpuser/ftp
sudo chown ไม่มีใคร:nogroup /home/ftpuser/ftp
sudo chmod aw /home/ftpuser/ftp
sudo mkdir /home/ftpuser/ftp/files
sudo chown ftpuser:ftpuser /home/ftpuser/ftp/files

ตั้งค่าคอนฟิก VSFTPD

sudo นาโน /etc/vsftpd.conf

โดยมีรายการดังต่อไปนี้

ฟัง = ไม่
Listen_ipv6=ใช่
anonymos_enable=ไม่
local_enable=ใช่
write_enable=ใช่
local_mask=022
dirmessage_enable=ใช่
use_localtime=ใช่
xferlog_enable=ใช่
connect_from_port_20=ใช่
chroot_local_user=ใช่
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
force_dot_files=ใช่
pasv_min_port=400000
pasv_max_port=500000

user_sub_token=$USER
local_root=/home/$USER/ftp

รีสตาร์ท VSFTPD เพื่อให้การเปลี่ยนแปลงมีผล

sudo systemctl รีสตาร์ท vsftpd.service

ลองเชื่อมต่อกับ Filezilla และ WinSCP ไม่ทำงาน อย่างไรก็ตาม ก่อนหน้านี้ ฉันสามารถเชื่อมต่อผ่าน SFTP ที่พอร์ต 22 ได้

ผมทำอะไรผิดหรือเปล่า?

Score:0
ธง us

ฉันติดตั้งใหม่ อูบุนตู 21.04 และทำตามขั้นตอนในบทช่วยสอนนี้: https://www.digitalocean.com/community/tutorials/how-to-set-up-vsftpd-for-a-user-s-directory-on-ubuntu-18-04และมันก็ทำงานตามที่คาดไว้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา