Linux 搭建FTP伺服器

pursuer.chen發表於2016-04-08

介紹

本章主要介紹在Linux中搭建FTP伺服器的過程,需要掌握的要點是配置檔案的合理配置。

 

 

知識點

  • 在linux中使用的FTP是vsftp
  • FTP可以有三種登入方式分別是:
  1. 匿名登入方式:不需要使用者密碼
  2. 本地使用者登入:使用本地使用者和密碼登入
  3. 虛擬使用者方式:也是使用使用者和密碼登入,但是該使用者不是linux中建立的使用者

 

安裝FTP

使用YUM安裝

yum -y install vsftpd

 

檔案配置

安裝完之後在/etc/vsftpd/路徑下會存在三個配置檔案。

vsftpd.conf: 主配置檔案

ftpusers: 指定哪些使用者不能訪問FTP伺服器,這裡的使用者包括root在內的一些重要使用者。

user_list: 指定的使用者是否可以訪問ftp伺服器,通過vsftpd.conf檔案中的userlist_deny的配置來決定配置中的使用者是否可以訪問,userlist_enable=YES ,userlist_deny=YES ,userlist_file=/etc/vsftpd/user_list 這三個配置允許檔案中的使用者訪問FTP。

 

檢視主配置檔案的預設配置

cat /etc/vsftpd/vsftpd.conf |grep -v '^#';

anonymous_enable=YES #允許匿名使用者

local_enable=YES #允許使用本地使用者賬號登陸

write_enable=YES #允許ftp使用者寫資料

connect_from_port_20=YES #通過20埠傳輸資料

anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES

pam_service_name=vsftpd
tcp_wrappers=YES
chroot_local_user=yes

 

其它的一些引數說明包括:

ftpd_banner=welcome to ftp service :設定連線伺服器後的歡迎資訊

idle_session_timeout=60 :限制遠端的客戶機連線後,所建立的控制連線,在多長時間沒有做任何的操作就會中斷(秒)

data_connection_timeout=120 :設定客戶機在進行資料傳輸時,設定空閒的資料中斷時間

accept_timeout=60 設定在多長時間後自動建立連線

connect_timeout=60 設定資料連線的最大啟用時間,多長時間斷開,為別人所使用;

max_clients=200 指明伺服器總的客戶併發連線數為200

max_per_ip=3 指明每個客戶機的最大連線數為3

local_max_rate=50000(50kbytes/sec)  本地使用者最大傳輸速率限制

anon_max_rate=30000匿名使用者的最大傳輸速率限制

pasv_min_port=埠

pasv-max-prot=埠號 定義最大與最小埠,為0表示任意埠;為客戶端連線指明埠;

listen_address=IP地址 設定ftp服務來監聽的地址,客戶端可以用哪個地址來連線;

listen_port=埠號 設定FTP工作的埠號,預設的為21

local_root=path 無論哪個使用者都能登入的使用者,定義登入帳號的主目錄, 若沒有指定,則每一個使用者則進入到個人使用者主目錄;

chroot_local_user=yes/no 是否鎖定本地系統帳號使用者主目錄(所有);鎖定後,使用者只能訪問使用者的主目錄/home/user;
chroot_list_enable
=yes/no 啟用不鎖定使用者在主目錄的名單 chroot_list_file=/etc/vsftpd/chroot_list指定列表檔案 userlist_enable=YES/NO 是否載入使用者列表檔案; userlist_deny=YES 表示上面所載入的使用者允許登入; userlist_file=/etc/vsftpd/user_list 指定列表檔案

 

建立FTP連線使用者

建立使用者ftpuser
useradd ftpusr

設定使用者只能ftp不能登入
usermod -s /sbin/nologin ftpuser

設定使用者密碼
passwd ftpusr

使用者的預設的家目錄在/home下,當前使用者就只能訪問家目錄。

修改使用者的家目錄位/mnt

usermod -d /mnt ftpuser

 

啟動FTP服務

service vsftpd start

測試

在/mnt目錄下建立一個測試檔案

touch /mnt/test

連線ftp

 

 

解決普通的FTP無法登入問題

linux預設是帶安全機制,使用普通的ftp 21埠無法連線到ftp伺服器,使用sftp就可以。這個時候需要關閉selinux,修改配置檔案需要重啟伺服器。

vim /etc/sysconfig/selinux

改成selinux=disabled

 

不重啟伺服器的方法:

setenforce 0

 

setenforce 1 :設定SELinux 成為enforcing模式
setenforce 0 :設定SELinux 成為permissive模式

 

檢視SELinux狀態

/usr/sbin/sestatus -v

總結

 還有其他的一些配置方法在這裡就暫時不列舉,有興趣的可以去深入研究一下。

 

 

備註:

    作者:pursuer.chen

    部落格:http://www.cnblogs.com/chenmh

本站點所有隨筆都是原創,歡迎大家轉載;但轉載時必須註明文章來源,且在文章開頭明顯處給明連結。

《歡迎交流討論》

 

相關文章