28 March 2012

ทำ FTP server Ubuntu


  1. ติดตั้ง vsftpd
    apt-get install vsftpd   > install program ที่จะใช้ทำ FTP server
  2. sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.original  > copy config file เก็บไว้ก่อนเผื่อแก้ไปแก้มาแล้วมึน จำของเดิมไม่ได้
  3. แก้ไขไฟล์ /etc/vsftpd.conf
    sudo gedit /etc/vsftpd.conf หรือ nano /etc/vsftpd.conf
  4. ลบคอมเม้นต์ # หน้าบรรทัดเหล่านี้
    • #local_enable = YES
    • #write_enable = YES
    • #local_umask = 022 (ให้ file ที่ user upload ขึ้นไป มี permission เป็น 755 อัตโนมัติโดยไม่ต้องมาไล่ chmod กันทีหลัง)
    • #chroot_local_user = YES
แต่ละบรรทัดจะมีความหมายดังนี้
anonymous_enable=YES > หมายความว่าระบบจะยอมให้ผู้ใช้ login โดยใช้ username เป็น anonymous ได้ ถ้าไม่ต้องการก็เปลี่ยนเป็น NO หรือจะใส่ # ก็ได้ ซึ่งถ้าไม่ให้anonymous FTP ได้ หมายความว่า คนที่มีสิทธิ์ FTP ได้ต้องเป็น user ที่มี account อยู่ในเครื่อง FTP server เท่านั้นอ่ะ
#local_enable=YES > ถ้าเอา comment ออกจะทำให้ user ใน local zone (network วงเดียวกะ server) สามารถ FTP ได้
#write_enable=YES > ถ้าไม่เอา comment ออก user จะไม่สามารถ upload file เข้า server ได้ download ได้อย่างเดียว
#anon_upload_enable=YES > ถ้าไม่เอา comment ออก anonymous user จะไม่สามารถ upload file เข้า server ได้ download ได้อย่างเดียว 

    การปรับแต่งระบบทำได้โดยการแก้ไขแฟ้ม /etc/vsftpd.conf 

    ตั้งเวลาให้แสดงผลเวลาตรงกับของ server 
    ด้วยการเพิ่ม/แก้ไขบรรทัดข้อความว่า use_localtime=yes

    หากต้องการให้ใช้งานได้เฉพาะภายใน home ของตนเอง ไม่ต้องการให้ออกไปเพ่นพ่านที่อื่น
    เพิ่ม/แก้ไขบรรทัดข้อความว่า chroot_local_user=YES

    หากต้องการห้าม anonymous เข้ามาใช้บริการ
    เพิ่ม/แก้ไขบรรทัดข้อความว่า anonymous_enable=NO

    หากต้องการให้ user สามารถ upload แฟ้มได้
    เพิ่ม/แก้ไขบรรทัดข้อความว่า local_enable=YES และ write_enable=YES

    ตัวอย่างหากต้องการจำกัดจำนวน client ที่เข้ามาใช้บริการ ftp ไม่ให้เกิน 100 คน
    เพิ่ม/แก้ไขบรรทัดข้อความว่า max_clients=100
    แต่ถ้าต้องการจำกัดจำนวน clinet ต่อ 1 เลข IP ที่เข้ามาใช้บริการ ftp ไม่ให้เกิน 50 คนด้วย
    เพิ่ม/แก้ไขบรรทัดข้อความว่า max_per_ip=50

    sudo chmod 555 /etc/vsftpd.conf   > แก้สิทธิ์ไม่ให้เขียนไฟล์ config ได้
    แก้ไขเสร็จแล้วสั่ง vsftpd ทำงานใหม่ด้วยคำสั่ง  sudo /etc/init.d/vsftpd restart 
    -------------------------------------------------------------------------------------------------------------
    1. เทคนิคในการสร้าง link ให้สามารถเปิดดูได้ทั้ง http และ ftp ตัวอย่างเช่น
      http://ftp.localhost.com/pub/temp/ และ ftp://ftp.localhost.com/pub/temp/
      สมมติว่า root directcory ของ http อยู่ที่ /var/www
      และ root directcory ของ http อยู่ที่  /srv/ftp/pub
      ให้ใช้คำสั่งว่า sudo ln -s /srv/ftp/pub /var/www
      แล้วทดสอบดูผลงานได้เลย
    2. ตัวอย่างหากต้องการเพิ่ม hard disk ลูกใหม่เข้าไป และต้องการให้ไปเป็นส่วนหนึ่งของพื้นที่ใน /home/ftp/pub
      ให้จัดการติดตั้ง hard disk และ mount ให้เรียบร้อยสามารถใช้งานได้ซะก่อน
      ตัวอย่างของผมคือเพิ่ม hard disk /dev/hdb1 ไปในพื้นที่ /mnt/data
      และต้องการให้ไปโผล่เป็นส่วนหนึ่งของ /home/ftp/pub/newdisk
      ทำคำสั่งขั้นตอนดังนี้คือ
      sudo mkdir  -p  /mnt/data
      sudo mount  /dev/hdb1  /mnt/data
      sudo mkdir  -p  /home/ftp/pub/newdisk
      sudo mount  --bind  /mnt/data  /home/ftp/pub/newdisk
      แค่นี้ก็เสร็จแล้ว ตรวจสอบดูผลงานได้เลย

      ต้องแก้ไขให้ระบบทำงานคำสั่งเหล่านี้โดยอัตโนมัติทุกครั้งที่บูทเครื่อง
      ต้องแก้ไขแฟ้ม /etc/rc.local โดยเพิ่มบรรทัดคำสั่งเหล่านั้นเข้าไปด้วย
    -----------------------------------------------------------------------------------------
    ตรวจสอบว่า vsftpd ทำงานแล้วด้วยคำสั่ง
    ps ax | grep vsftpd
    ได้คำตอบประมาณว่า
    ….. ?        Ss     0:00 /usr/sbin/vsftpd ….
    แสดงว่าใช้งานได้แล้ว

No comments:

Post a Comment