เพื่อใช้งานการกำหนดค่าเซิร์ฟเวอร์ FTP ในสภาพแวดล้อม Linux แพ็คเกจการแจกจ่าย Linux ส่วนใหญ่ใช้ Washington University FTP (Wu-Ftpd) นี่เป็นซอฟต์แวร์เซิร์ฟเวอร์ที่ยอดเยี่ยมเนื่องจากมีฟังก์ชันที่ทรงพลังมากมายและมีปริมาณงานมาก มากกว่า 60% ของ FTP เซิร์ฟเวอร์บนอินเทอร์เน็ตนำมาใช้
ติดตั้งและรัน
ด้านล่างนี้เราใช้ RedHat Linux เป็นตัวอย่าง
1. การติดตั้ง
ตามวัตถุบริการที่แตกต่างกัน บริการ FTP สามารถแบ่งออกเป็นสองประเภท: ประเภทแรกคือเซิร์ฟเวอร์ FTP ของระบบ ซึ่งอนุญาตให้ผู้ใช้ที่ถูกกฎหมายในระบบใช้งานได้เท่านั้น และอีกประเภทคือเซิร์ฟเวอร์ FTP ที่ไม่ระบุชื่อ ซึ่งอนุญาตให้ทุกคนเข้าสู่ระบบ FTP เซิร์ฟเวอร์และเซิร์ฟเวอร์ เมื่อเชื่อมต่อแล้ว ให้ป้อน Anonymous ในข้อความแจ้งให้เข้าสู่ระบบเพื่อเข้าถึงเซิร์ฟเวอร์ สำหรับบริการทั้งสองนี้ คุณสามารถติดตั้งแพ็คเกจ RPM ของ Wu-Ftpd ผ่านซีดีแผ่นแรกของ RedHat คุณจะต้องเข้าสู่ระบบในฐานะรูทแล้วรันคำสั่งต่อไปนี้:
รอบต่อนาที -ivh anonftp -xx-x.i386.rpm
รอบต่อนาที-ivhwu-ftpd-xxx-x.i386.rpm
โดยที่ -xx-x และ -xxx-x เป็นหมายเลขเวอร์ชัน
2. เริ่มต้น
เช่นเดียวกับ Apache คุณสามารถกำหนดค่า Wu-Ftpd ให้เริ่มทำงานโดยอัตโนมัติได้: รันโปรแกรมติดตั้งที่มาพร้อมกับ RedHat เลือก Wu-Ftpd ในตัวเลือก "System Service" แล้วกดปุ่ม [OK] เพื่อยืนยันและออก
การเริ่มต้นอัตโนมัตินั้นสะดวก แต่เมื่อเราเปลี่ยนไฟล์การกำหนดค่า Wu-Ftpd เราจำเป็นต้องเริ่มด้วยตนเอง:
เริ่มต้น: /usr/sbin/ftprestart
ปิด: /usr/sbin/ftpshut
การกำหนดค่าเซิร์ฟเวอร์ FTP
เพื่อให้มั่นใจในความปลอดภัยของเซิร์ฟเวอร์ FTP จะต้องตั้งค่าไฟล์การกำหนดค่าที่สำคัญบางไฟล์เพื่อควบคุมสิทธิ์การเข้าถึงของผู้ใช้ได้ดียิ่งขึ้น ไฟล์คอนฟิกูเรชันเหล่านี้คือ: /etc/ftpusers, /etc/ftpconversions, /etc/ftp-groups, /etc/ftpphosts, /etc/ftpaccess การใช้ไฟล์เหล่านี้ คุณสามารถควบคุมได้อย่างแม่นยำว่าใครสามารถเชื่อมต่อกับเซิร์ฟเวอร์ เวลาใด และจากที่ไหน และคุณสามารถตรวจสอบและติดตามงานที่พวกเขาทำหลังจากเชื่อมต่อได้
/etc/ftpusers: ผู้ใช้ที่อยู่ในโฟลเดอร์นี้ไม่สามารถเข้าสู่ระบบเซิร์ฟเวอร์ผ่าน FTP ได้ บางครั้งบัญชีผู้ใช้ที่ต้องถูกแบนจะถูกเขียนลงในไฟล์ /etc/ftpuser เพื่อให้ผู้ใช้บางรายสามารถถูกแบนจากการใช้บริการ FTP ได้
/etc/ftpconversions: ใช้เพื่อกำหนดค่าโปรแกรมบีบอัด/คลายการบีบอัด
/etc/ftpgroups: สร้างกลุ่มผู้ใช้ สมาชิกของกลุ่มนี้ถูกกำหนดไว้ล่วงหน้าเพื่อเข้าถึงเซิร์ฟเวอร์ FTP
/etc/ftpphosts: ใช้เพื่อห้ามหรืออนุญาตให้โฮสต์ระยะไกลเข้าถึงบัญชีเฉพาะ ตัวอย่างเช่น:
อนุญาต 192.168.0.0/24
ปฏิเสธ cdd 10.0.0.0/8
หมายความว่าผู้ใช้ czc ได้รับอนุญาตให้เข้าถึงจากส่วนเครือข่าย 192.168.0 และ cdd ถูกปฏิเสธการเข้าถึงจากส่วนเครือข่าย 10
/etc/ftpaccess: เป็นไฟล์กำหนดค่าที่สำคัญมากที่ใช้ในการควบคุมสิทธิ์การเข้าถึง แต่ละบรรทัดในไฟล์จะกำหนดแอตทริบิวต์และตั้งค่าของแอตทริบิวต์ ต่อไปนี้เป็นคำแนะนำสั้นๆ เกี่ยวกับการกำหนดค่าทั่วไปบางส่วน:
1. กำหนดหมวดหมู่ผู้ใช้
รูปแบบ: คลาส [ชื่อคลาส] [จริง/แขก/ไม่ระบุชื่อ][ที่อยู่ IP]
ฟังก์ชั่น: ฟังก์ชั่นของคำสั่งนี้จะตั้งค่าหมวดหมู่ของผู้ใช้บนเซิร์ฟเวอร์ FTP นอกจากนี้ยังสามารถจำกัดที่อยู่ IP ของลูกค้าและอนุญาตให้เฉพาะหรือที่อยู่ IP ทั้งหมดเพื่อเข้าถึงเซิร์ฟเวอร์ FTP
2. จำนวนครั้งในการเข้าสู่ระบบใหม่
เข้าสู่: การเข้าสู่ระบบล้มเหลว 10 ในบรรทัดคำสั่งซึ่งบ่งชี้ว่าการเชื่อมต่อจะถูกตัดออกหากการเข้าสู่ระบบไม่สำเร็จหลังจาก 10 ครั้ง
3. ตรวจสอบรหัสผ่าน
รูปแบบ: passwd-check 〈ความเข้มงวด〉 เตือน
เป็นการตรวจสอบการใช้รหัสผ่านของผู้ใช้ที่ไม่ระบุชื่อ โดยที่ <strictness> เป็นหนึ่งในสามสตริงที่เป็นไปได้: None, Trivial, RFC822 หากเลือกไม่มี หมายความว่าจะไม่มีการตรวจสอบรหัสผ่าน หากเลือก Trivial หมายความว่ามีข้อกำหนดบางประการสำหรับรหัสผ่าน และต้องมีสัญลักษณ์ @ อย่างน้อยหนึ่งตัวในรหัสผ่าน หมายความว่าหากเลือก RFC822 ข้อกำหนดที่เข้มงวดที่สุดคือที่อยู่อีเมล ต้องเป็นไปตามมาตรฐานส่วนหัวของข้อความ RFC822 (เช่น: [email protected])
ตัวอย่างเช่น: passwd-check rfc822 warn ระบุว่าข้อกำหนดของรหัสผ่านนั้นเข้มงวดมากและข้อความเตือนจะปรากฏขึ้นเมื่อรหัสผ่านไม่ตรงตามข้อกำหนด
4. การจำกัดจำนวนคนที่สามารถเข้าสู่ระบบได้
รูปแบบ: จำกัด [หมวดหมู่] [จำนวนคน] [เวลา] [ชื่อไฟล์]
กำหนดจำนวนคนในหมวดหมู่ที่กำหนดซึ่งสามารถเข้าสู่ระบบ FTP ได้ภายในเวลาที่ตกลงกัน ตัวอย่างเช่น: จำกัดระยะไกล Any/etc/many.msg ซึ่งระบุว่าจำนวนผู้ที่ล็อกอินเข้าสู่หมวดหมู่ระยะไกล ณ เวลาใดๆ ไม่ควรเกิน 20 คน มิฉะนั้น ข้อความเตือน Many.msg จะปรากฏขึ้น
การใช้การกำหนดค่าเหล่านี้อย่างเหมาะสมสามารถปกป้องเซิร์ฟเวอร์ของเราได้อย่างมีประสิทธิภาพ
ตรวจสอบ
หลังจากติดตั้งและกำหนดค่าเซิร์ฟเวอร์ FTP คุณสามารถตรวจสอบและเข้าถึงเซิร์ฟเวอร์ FTP โดยใช้ทั้งเครื่องมือกราฟิกและบรรทัดคำสั่ง คำสั่งที่ใช้บ่อยที่สุดใน Linux คือ FTP ซึ่งมีอินเทอร์เฟซเซิร์ฟเวอร์ FTP ที่ไม่ซับซ้อน หากต้องการเชื่อมต่อกับเซิร์ฟเวอร์ FTP เพียงป้อน: FTP Servername ที่พร้อมท์คำสั่ง แทนที่ Servername ด้วยชื่อโฮสต์หรือที่อยู่ IP ของเซิร์ฟเวอร์ FTP ที่คุณต้องการเชื่อมต่อ ป้อนชื่อผู้ใช้และรหัสผ่านตามที่ได้รับแจ้ง จากนั้นใช้ Linux มาตรฐาน เพื่อเลื่อนขึ้นหรือลงโครงสร้างไดเร็กทอรี FTP Server นอกจากนี้ คุณยังสามารถใช้โปรแกรม FTP แบบกราฟิก รวมถึง gFTP แบบหน้าต่าง เพื่อเข้าถึงเซิร์ฟเวอร์ FTP ด้วยความช่วยเหลือของเว็บเบราว์เซอร์
ข้างต้นคือประเด็นสำคัญของการกำหนดค่าเซิร์ฟเวอร์ FTP ภายใต้ Linux ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ
/etc/ftpusers: ผู้ใช้ที่อยู่ในโฟลเดอร์นี้ไม่สามารถเข้าสู่ระบบเซิร์ฟเวอร์ผ่าน FTP ได้ บางครั้งบัญชีผู้ใช้ที่ต้องถูกแบนจะถูกเขียนลงในไฟล์ /etc/ftpuser เพื่อให้ผู้ใช้บางรายสามารถถูกแบนจากการใช้บริการ FTP ได้
/etc/ftpconversions: ใช้เพื่อกำหนดค่าโปรแกรมบีบอัด/คลายการบีบอัด
/etc/ftpgroups: สร้างกลุ่มผู้ใช้ สมาชิกของกลุ่มนี้ถูกกำหนดไว้ล่วงหน้าเพื่อเข้าถึงเซิร์ฟเวอร์ FTP
/etc/ftpphosts: ใช้เพื่อห้ามหรืออนุญาตให้โฮสต์ระยะไกลเข้าถึงบัญชีเฉพาะ ตัวอย่างเช่น:
อนุญาต 192.168.0.0/24
ปฏิเสธ cdd 10.0.0.0/8
หมายความว่าผู้ใช้ czc ได้รับอนุญาตให้เข้าถึงจากส่วนเครือข่าย 192.168.0 และ cdd ถูกปฏิเสธการเข้าถึงจากส่วนเครือข่าย 10
/etc/ftpaccess: เป็นไฟล์กำหนดค่าที่สำคัญมากที่ใช้ในการควบคุมสิทธิ์การเข้าถึง แต่ละบรรทัดในไฟล์จะกำหนดแอตทริบิวต์และตั้งค่าของแอตทริบิวต์ ต่อไปนี้เป็นคำแนะนำสั้นๆ เกี่ยวกับการกำหนดค่าทั่วไปบางส่วน:
1. กำหนดหมวดหมู่ผู้ใช้
รูปแบบ: คลาส [ชื่อคลาส] [จริง/แขก/ไม่ระบุชื่อ][ที่อยู่ IP]
ฟังก์ชั่น: ฟังก์ชั่นของคำสั่งนี้จะตั้งค่าหมวดหมู่ของผู้ใช้บนเซิร์ฟเวอร์ FTP นอกจากนี้ยังสามารถจำกัดที่อยู่ IP ของลูกค้าและอนุญาตให้เฉพาะหรือที่อยู่ IP ทั้งหมดเพื่อเข้าถึงเซิร์ฟเวอร์ FTP
2. จำนวนครั้งในการเข้าสู่ระบบใหม่
เข้าสู่: การเข้าสู่ระบบล้มเหลว 10 ในบรรทัดคำสั่งซึ่งบ่งชี้ว่าการเชื่อมต่อจะถูกตัดออกหากการเข้าสู่ระบบไม่สำเร็จหลังจาก 10 ครั้ง
3. ตรวจสอบรหัสผ่าน
รูปแบบ: passwd-check 〈ความเข้มงวด〉 เตือน
เป็นการตรวจสอบการใช้รหัสผ่านของผู้ใช้ที่ไม่ระบุชื่อ โดยที่ <strictness> เป็นหนึ่งในสามสตริงที่เป็นไปได้: None, Trivial, RFC822 หากเลือกไม่มี หมายความว่าจะไม่มีการตรวจสอบรหัสผ่าน หากเลือก Trivial หมายความว่ามีข้อกำหนดบางประการสำหรับรหัสผ่าน และต้องมีสัญลักษณ์ @ อย่างน้อยหนึ่งตัวในรหัสผ่าน หมายความว่าหากเลือก RFC822 ข้อกำหนดที่เข้มงวดที่สุดคือที่อยู่อีเมล ต้องเป็นไปตามมาตรฐานส่วนหัวของข้อความ RFC822 (เช่น: [email protected])