天天看點

利用vsftpd搭建ftp伺服器

http://vastars.info/linux/ftp-server.html

昨天在實驗室内網的一台機器上搭建了一個ftp伺服器,友善大家共享檔案。這個ftp-server要滿足的要求是:

  1. 有多個使用者,使用一個共用目錄,每個人都能上傳檔案,但是隻能對屬于自己的檔案進行修改(删除)。
  2. 伺服器雖然在内網的機器上,但是要求在整個校園内都可以友善的通路。

首先,在這台内網機器上建立一個檔案夾作為ftp服務的根目錄,如/home/ftp_root,然後執行如下指令

chmod 1777 /home/ftp_root

或者

chmod 777 /home/ftp_root

chmod +t /home/ftp_root

則所有的使用者都可以對這個檔案夾進行讀寫。但是由于”sticky”粘滞位(t)的添加保證了該目錄中的檔案或子目錄無論是什麼權限隻有檔案或子目錄所有者和root使用者能夠删除。

然後安裝vfftpd,打開配置檔案/etc/vsftpd,如下幾個地方要修改:

# 允許本地使用者登入ftp

local_enable=YES

# 允許寫操作

write_enable=YES

#指定ftp服務根目錄

local_root=/home/ftp_root

#限定使用者在根目錄下

chroot_local_user=YES

#允許檔案能被其它使用者讀取(下載下傳)

local_umask=022

最後重新開機ftp服務

service vsftpd restart

這樣第一個目标就實作了,内網裡已經可以通路ftp服務。

對于第二個目标,則需要借助網關的端口轉發了。設定iptable将網關的21端口(ftp服務的預設端口)轉發到内網的ftp伺服器上(假設其内網ip是192.168.2.8)。

iptables -F

iptables -F -t nat

iptables -P INPUT ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

echo 1 > /proc/sys/net/ipv4/ip_forward

modprobe iptable_nat

modprobe ip_conntrack_ftp

modprobe ip_nat_ftp

iptables -t nat -A POSTROUTING -d 192.168.2.8 -p tcp –dport 21 -j MASQUERADE

iptables -t nat -A PREROUTING -p tcp –dport 21 -j DNAT –to-dest 192.168.2.8:21