16 July 2011

Config vsFTP Customize

เขียน กันลืม บทความดีๆ ที่อยากเก็บไว้อ่านนะครับ^^

เจอปัญหาเลยเขียนไว้อ่าน!!!

การติดตั้ง VsFTP (แบบระบุตัวตน) + SSL
sudo apt-get install vsftpd

แก้ไฟล์
sudo nano /etc/vsftpd.conf


anonymous_enable=no //ทำให้ anonymous user ไม่สามารถใช้งานในระบบได้
local_enable=YES //จะทำให้ user ใน local zone (network วงเดียวกะ server) สามารถ FTP ได้
write_enable=YES //จะทำให้สามารถ upload file ไปที่ server ได้ด้วย
chroot_local_user=YES //จะเป็นการบังคับไม่ให้ผู้ใช้ออกนอกhome directory ของตนเองไปที่ directory ที่มีลำดับชั้นสูงกว่า ใช้ได้เฉพาะในกรณี ไม่ใช้ SSL+VsFTP นะครับ


แก้ปัญหาโดย


chroot_local_user=YES

chroot_list_file=/etc/vsftpd.chroot_list <== เอา comment ออกซะ

touch /etc/vsftpd.chroot_list
nano /etc/vsftpd.chroot_list แก้ไขเอา user ที่ต้องการขังเข้าไปไว้ในนี้



เหตุผล
             chroot_local_user=YES ใช้ได้ผลครับ แต่ใช้ได้เฉพาะกรณี connect เข้าไป server แบบ unsecure
คือ connect ผ่าน port 21 (ใช้ ethereal จับ username , password และ data ได้นะครับ)
 
   
             ถ้า connect ไปยัง FTP server แบบเข้ารหัส (ftp over ssh) โดยใช้ port 22 จะใช้option นี้ไม่
ได้ครับ ต้องทำ chroot environment

เพิ่มเติม
  1. port 21 เป็น control port ใช้รับ-ส่ง username , password กับ client
  2. port 20 เป็น data port ใช้รับ-ส่ง data กับเครื่อง client
  3. ใช้ port 21 กับ 20 ก็ต่อเมื่อ server เราเป็น ftp server แบบ active ftp ซึ่ง ftp server แบบนี้ในโลกเหลืออยู่ไม่มาก ทีไม่มีแมวที่ไหนใช้เพราะ ftp แบบนี้มีข้อเสียเพราะขั้นตอน establish data port จะเริ่มต้นจากทาง server จึงต้อง configre firewall 2 ฝั่ง คือ firewall ฝั่ง server ต้องทำการเปิด port 21 ส่วน firewall ฝั่ง client ต้องทำการเปิด high port ให้server connect เข้ามาได้ซึ่งเป็นการกระทำที่งี่เง่าเกินจะรับได้(แต่มหาวิทยาลัยก็ยังนิยม สอนว่าใช้ 2 port นี้)
  4. ในปัจจุบัน ftp server ส่วนมากเป็น ftp server แบบ passive ftp คือ ใช้ port 21 เป็น control port และ port > 1024 ที่สุ่มขึ้นมาทำเป็น data port โดยการ establish connection ทั้ง control port และ data port จะเริ่มที่ client จึงสะดวกกว่าเดิมมากเพราะการ configure firewall จะทำที่ฝั่ง server อย่างเดียว คือ เปิด port 21 ที่firewall ฝั่ง server อย่างเดียว(ส่วน high port ที่ฝั่ง server ไม่ต้องเปิด เพราะมันจะเห็น data port ที่client เรียกเข้ามาเป็น related port ซึ่งเป็น port ที่ต่อเนื่องจาก connection แรกจึง allow ให้ผ่านได้ ที่ทำงี้ได้เนื่องจาก firewall ในปัจจุบันเป็น statefull firewall)
*ปล. ถ้า ใช้เป็น sftp จะใช้แต่ port 22 เป็นทั้ง control port และ data port
  1. ตั้งแต่ทำงานมายังไม่เคยเห็นคนในที่ทำงานหรือพวกที่มีความรู้เรื่อง network ท่านใดเป็นปลื้มกับการใช้ftp เพียวๆเลยนะครับ ถ้าไม่จำเป็นต้องใช้จริงๆจะไม่ค่อยใช้กัน เพราะว่ามันสามารถใช้โปรแกรมดักเอา username , password , data ได้ ผมจึงไม่เคยใช้ ftp แบบธรรมดาครับ จึงเรียนมาเพื่อทราบ
*ปล. ขอเชิญชวนให้ใช้ ftp over ssh นะครับ เชื่อเถอะครับ ไม่โดน hack อาจจะยังไม่เห็นประโยชน์

อ้างอิงจาก http://ubuntuclub.com/node/234 ขอบคุณที่ให้ความรู้ดีๆๆ นะครับ

No comments:

Post a Comment