vsftpd บน Solaris9

พอดีได้ไปแก้ระบบของกระทรวงแห่งหนึ่ง ซึ่งได้รับ request จากลูกค้ามาว่าต้องการให้ user ที่ login ใน service ftp ให้เห้นแต่เฉพาะ home ของตัวเองเท่านั้น ซึ่งจากที่เคยทำมา ftp service ของ solaris มันทำไม่ได้มั๊ง เพราะยังไม่เคยเห็น doc เลย เลยหันมาเลือกใช้ของที่คุ้นมือดีกว่า ซึ่งก็คือ vsftpd

ในตอนแรกด้วย ความขี้เกียจลงเลยจะหา binary แต่ดันไม่มีนี่ซิ เลยต้องมานั่ง compile ลงเอง แต่ไม่เป็นไรมาลองกันซักตั้ง เริ่มแรกไป download vsftpd จาก web มาก่อนเลย download ได้ที่นี่ http://vsftpd.beasts.org

  1. จากนั้นนำ file ที่เรา download มาได้เอาไปไว้ที่ /usr/local/src ซะ ในที่นี่ใช้ version 2.0.3 แตกมันซะ
    $ gzip -dc vsftpd-2.0.3.tar.gz | tar xvf - 
  2. หลังจากนั้นเข้าไปแก้ "builddefs.h" เพื่อกำหนดว่าเราจะเอา feature อะไรบ้างจากของเดิม #undef VSF_BUILD_SSL ผมแก้เป็น #define VSF_BUILD_SSL โดยจุดประสงค์เผื่อจะใช้ ssl ในการ authen
  3. จากนั้นก็สั่ง make ซะ พบ error บางอย่างเกี่ยวกับ ssl lib เลยแก้ปัญหาแบบทื่อๆ เมื่อลงแล้วหาไม่เจอ ทำ link ให้ซะเลย เนื่องจากมันหา lib ssl ไม่เจอ ซึ่งผมลง openssl ไว้ที่ /usr/local/ssl โดยสั่งแบบนี้
    # cd /lib
    # ln -s /usr/local/ssl/lib/libcrypto.so /lib/libcrypto.so
    # ln -s /usr/local/ssl/lib/libssl.so /lib/libssl.so
    # ln -s /usr/local/openssl /usr/include/ssl
  4. จากนั้นลอง make ใหม่ ก็เสร็จเรียบร้อย จากนั้นก็ make install โลด แล้วลอง run โดยสั่ง
    # vsftpd /etc/vsftpd/vsftpd.conf & 
    # ftp localhost
    # vsftpd /etc/vsftpd/vsftpd.conf &
    # ftp localhost
    Connected to localhost.
    220 .
    Name (localhost:xxxxx):
    331 Please specify the password.
    Password:
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp> bye
    221 Goodbye.
    เอาละเรียบร้อยดี ใช้งานได้ล่ะ ทีเหลือก็ config ตามใจชอบ

Reply