ผู้เขียน หัวข้อ: สร้าง ftp server บน ubuntu 16.04  (อ่าน 13753 ครั้ง)

ออฟไลน์ ผู้ดูแลระบบ

  • Administrator
  • Jr. Member
  • *****
  • กระทู้: 66
  • +0/-0
    • ดูรายละเอียด
สร้าง ftp server บน ubuntu 16.04
« เมื่อ: กันยายน 08, 2021, 10:29:10 am »
1.ติดตั้ง vsftpd  Install vsftpd


ใช้คำสั่ง

sudo apt-get update
sudo apt-get install vsftpd


ตรวจสอบการทำงานของ vsftpd

sudo service vsftpd status

output
● vsftpd.service - vsftpd FTP server
   Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: e
   Active: active (running) since พ. 2021-09-08 10:23:12 +07; 5min ago
  Process: 24388 ExecStartPre=/bin/mkdir -p /var/run/vsftpd/empty (code=exited,
 Main PID: 24391 (vsftpd)
   CGroup: /system.slice/vsftpd.service
           ├─24391 /usr/sbin/vsftpd /etc/vsftpd.conf
           ├─24397 /usr/sbin/vsftpd /etc/vsftpd.conf
           └─24399 /usr/sbin/vsftpd /etc/vsftpd.conf

ก.ย. 08 10:23:12 server5-dell systemd[1]: Starting vsftpd FTP server...
ก.ย. 08 10:23:12 server5-dell systemd[1]: Started vsftpd FTP server.


2. Configure Firewall

ตรวจสอบว่า firewall มีการเปิดอยู่หรือเปล่า
sudo ufw status

ถ้าเปิดอยู่จะเห็น status :active และอะไรบ้างที่ให้ใช้งานได้จะต้องมี ตัวที่ทำเครื่องหมายแดงไว้

Status: active

To                         Action      From
--                         ------      ----
Apache Full                          ALLOW       Anywhere
22                                       ALLOW       Anywhere
3306,4444,4567,4568/tcp     ALLOW       Anywhere
4567/udp                             ALLOW       Anywhere
80                                       ALLOW       Anywhere
80/tcp                                  ALLOW       Anywhere
Samba                                 ALLOW       Anywhere
20/tcp                                  ALLOW       Anywhere
21/tcp                                  ALLOW       Anywhere
990/tcp                                ALLOW       Anywhere
40000:50000/tcp                  ALLOW       Anywhere
OpenSSH                              ALLOW       Anywhere
Apache Full (v6)                    ALLOW       Anywhere (v6)
22 (v6)                                 ALLOW       Anywhere (v6)
3306,4444,4567,4568/tcp (v6) ALLOW       Anywhere (v6)
4567/udp (v6)                       ALLOW       Anywhere (v6)
80 (v6)                                  ALLOW       Anywhere (v6)
80/tcp (v6)                            ALLOW       Anywhere (v6)
Samba (v6)                           ALLOW       Anywhere (v6)
20/tcp (v6)                            ALLOW       Anywhere (v6)
21/tcp (v6)                            ALLOW       Anywhere (v6)
990/tcp (v6)                          ALLOW       Anywhere (v6)
40000:50000/tcp (v6)            ALLOW       Anywhere (v6)
OpenSSH (v6)                        ALLOW       Anywhere (v6)


ถ้าไม่มีให้ใช้คำสั่ง

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 990/tcp
sudo ufw allow 40000:50000/tcp



3. สร้าง FTP User (ในตัวอย่างชื่อ "ftpuser")

sudo adduser ftpuser

แก้ไข config ของ ssh ให้สามารถใช้งานได้กับ user ของ ftp ที่เราสร้างขึ้น

sudo nano /etc/ssh/sshd_config

เพิ่มบรรทัดล่างสุดด้วย

DenyUsers ftpuser

บันทึกและ restart service ssh

sudo service sshd restart

4. กำหนด Directory Permissions(ตัวอย่างกำหนดให้เป็นห้อง /var/www/html/ftp_file)

คุณจะต้องตั้งค่าโฟลเดอร์เหนือรูทเอกสารเป็นโฮมไดเร็กทอรีสำหรับ ftpuser มา 1 step (ห้อง ftp_file เราอยู่ใน html อีกที)
sudo usermod -d /var/www/html ftpuser

และตั้งค่าความเป็นเจ้าของ directory หลักของ user
sudo chown ftpuser:ftpuser /var/www/html


5. Configure vsftpd

สำรองไพล์ config เดิมด้วยการ copyfile เก็บไว้ก่อน
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

แก้ไข config
sudo nano /etc/vsftpd.conf

ส่วนใหญ่ค่า default ก็จะตามนี้(จะอยู่คนละที่กันให้เลื่อนหาดูให้ได้ตามนี้)

write_enable=YES

chroot_local_user=YES

local_umask=022

force_dot_files=YES

pasv_min_port=40000
pasv_max_port=50000


และสำคัุญสุดบรรทัดนี้ให้เพิ่มเข้าไปท้ายสุด(ถ้าไม่เพิ่มจะ login error  จะพ้องเรื่อง chroot)

allow_writeable_chroot=YES

บันทึกและ restart service

sudo systemctl restart vsftpd


6. ทดสอบ ftp

ด้วยคำสั่ง
ftp -p 192.168.2.5

Connected to 192.168.2.5.
220 (vsFTPd 3.0.3)
Name (192.168.2.5:server5):(ใส่ftpuser ที่เราตั้งไว้ ในที่นี้คือ "ftpuser")

ใส่รหัสผ่าน

331 Please specify the password.
Password:

ถ้าใส่ผิด

530 Login incorrect.
Login failed.


ถ้าถูกต้อง

230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

ทดลอง ftp ผ่านโปรแกรม filezilla ดู



หมายเหตุ

การกำหนดสิทธิ์ให้ folder หรือ file ใดๆภายใต้ ftp root folder ให้กำหนดใน filezilla





« แก้ไขครั้งสุดท้าย: กันยายน 08, 2021, 11:24:26 am โดย ผู้ดูแลระบบ »

ออฟไลน์ ผู้ดูแลระบบ

  • Administrator
  • Jr. Member
  • *****
  • กระทู้: 66
  • +0/-0
    • ดูรายละเอียด
Re: สร้าง ftp server บน ubuntu 16.04
« ตอบกลับ #1 เมื่อ: กันยายน 08, 2021, 02:57:30 pm »
เพิ่มเติม

ถ้าต้องการให้ทุกไพล์ที่่ upload ผ่าน ftp ไป มีสิทธิ์อย่างอื่นให้ไปแก้ไข config ระบบ
sudo nano /etc/vsftpd.conf

#local_umask=022

เอา # ออก บันทึกและ restart service

sudo service vsftpd restart

ค่า 022 เป็นค่าที่นิยมใช้ permisssion ที่ได้คื 644