Linux開啟FTP(vsftpd)服務
1. 查看是否安裝
# rpm -qa | grep vsftpd
2. 全新安裝
# rpm -ivh vsftpd-2.0.1-5.i386.rpm
3. 啟動/停止/重啟
# service vsftpd start
# service vsftpd stop
# service vsftpd restart
4. 主設定檔
# vi /etc/vsftpd.conf
# 匿名使用者配置
anonymous_enable=YES # 是否允許匿名ftp,如否則選擇NO
anon_upload_enable=YES # 匿名使用者是否能上傳
anon_mkdir_write_enable=YES # 匿名使用者是否能建立目錄
anon_other_write_enable=YES # 修改檔案名稱和刪除檔案
# 本機使用者配置
local_enable=YES # 是否允許本機使用者登入
local_umask=022 # umask 預設755
write_enable=YES
chroot_local_user=YES # 本機使用者禁錮在宿主目錄中
chroot_list_enable=YES # 是否將系統使用者限止在自己的home目錄下
chroot_list_file=/etc/vsftpd.chroot_list # 列出的是不chroot的使用者的列表
chown_upload=YES # 是否改變上傳檔案的屬主
chown_username=username # 如果是需要輸入一個系統使用者名稱
userlist_enable=YES
userlist_deny=NO
deny_email_enable=YES # 是否允許禁止匿名使用者使用某些郵件地址
banned_email_file=/etc/vsftpd.banned_emails # 禁止郵件地址的檔案路徑
ftpd_banner=Welcome to chenlf FTP service. # 定製歡迎資訊
dirmessage_enable=YES # 是否顯示目錄說明檔案, 需要收工建立.message檔案
message_file= # 設定訪問一個目錄時獲得的目錄資訊檔的檔案名稱,預設是.message
xferlog_enable=YES # 是否記錄ftp傳輸過程
xferlog_file=/var/log/vsftpd.log # ftp傳輸日誌的路徑和名字
xferlog_std_format=YES # 是否使用標準的ftp xferlog模式
ascii_upload_enable=YES # 是否使用ascii碼方式上傳檔案
ascii_download_enable=YES # 是否使用ascii碼方式下載檔案
connect_from_port_20=YES # 是否確信連接埠傳輸來自20(ftp-data)
nopriv_user=ftpsecure # 運行vsftpd需要的非特權系統使用者預設是nobody
async_abor_enable=YES # 是否允許運行特殊的ftp命令async ABOR.
# FTP伺服器的資源限制
idle_session_timeout=600 # 設定session逾時時間
data_connection_timeout=120 # 設定資料轉送逾時時間
max_clients=50 # 使用者最大串連數 預設是0不限止
max_per_ip=5 # 每個IP地址最大串連數
anon_max_rate=102400 # 匿名的下載速度 KB
local_max_rate=102400 # 普通使用者的下載速度 KB
5. 其他設定檔
/etc/xinetd.d/vsftpd
service ftp
{
socket_type = stream
wait = no
user = root
server = /usr/local/sbin/vsftpd
# server_args =
# log_on_success += DURATION USERID
# log_on_failure += USERID
nice = 10
disable = no
}
/etc/pam.d/vsftpd
PAM 認證
/etc/vsftpd.chroot_list
此檔案包含對伺服器上所有FTP內容有許可權的使用者名稱。對其他使用者來說,他們在伺服器上的主目錄對他們顯示為根目錄。
/etc/shells
在允許本機使用者登入之前,系統預設檢查是否有有效使用者 shell。以防 PAM 認證停用情況。
/etc/ftpusers
此檔案包含*禁止*FTP登入的使用者名稱,通常有 "root", "uucp", "news" 之類,因為這些使用者權限太高,登入 FTP 誤操作危險性大。
6. 防火牆設定
如果是用預設的SuSEFirewall2,在 YaST-系統-/etc/sysconfig 編輯器,network-SuSEfirewall2
把 ftp 添加到 FW_SERVICES_EXT_TCP,比如你還要開啟 ssh 那麼
FW_SERVICES_EXT_TCP "ftp ssh"
如果你需要被動模式 FTP 和 nat,在 YaST-系統-/etc/sysconfig 編輯器,network-SuSEfirewall2
FW_LOAD_MODULES "ip_conntrack_ftp ip_nat_ftp"
另一種方式直接修改防火牆設定檔:
# cd /etc/sysconfig/
# vi SuSEfirewall2
FW_SERVICES_EXT_TCP "ftp 21 telnet 23"
# rcSuSEfirewall2 restart