Linux系統下FTP服務器的配置

FTP服務器的配置

 

FTP服務器的安裝

1ftp服務器安裝後生成的相關文件

/etc/logrotate.d/vsftpd  #實現日誌滾動的程序
/etc/pam.d/vsftpd  #用戶認證配置文件
/etc/rc.d/init.d/vsftpd  #服務腳本
/etc/vsftpd #配置文件所在目錄
/etc/vsftpd/ftpusers  #控制哪些用戶是否可登陸ftp
/etc/vsftpd/user_list  #控制哪些用戶是否可登陸ftp
/etc/vsftpd/vsftpd.conf  #主配置文件
/var/ftp  #匿名用戶(被映射爲系統用戶)共享資源位置

2)安裝ftp服務器(安裝前配置好yum源以及確保iptables關閉)

#yum install vsftpd –y
查看安裝vsftp後生成的文件
#rpm -ql vsftpd
啓動vsftpd服務,並查看21端口是否開啓
# service vsftpd start
Starting vsftpd for vsftpd:                                [  OK  ]
# ss -tnlp | grep 21
LISTEN     0     32                       *:21                       *:*      users:(("vsftpd",2933,3))

到此,我們的ftp服務器就安裝好了!
測試連接訪問ftp服務器,發現可以成功使用!
# ftp 192.168.3.130
lftp 192.168.3.130:~> ls             
drwxr-xr-x    2 0       0            4096 Aug 04  2014 pub


基於mysql存儲用戶信息認證的FTP服務器的配置

1.配置文件相關信息

# 是否允許匿名用戶登錄。默認值爲YES。
anonymous=YES|NO
# 是否允許匿名用戶上傳文件(如果設置爲YES,則write_enable也必須設置爲YES)。默認值爲NO。
anon_upload_enable=YES|NO
# 是否允許匿名用戶創建目錄(如果設置爲YES,則write_enable也必須設置爲YES)。默認值爲NO。
anon_mkdir_write_enable=YES|NO
# 是否允許匿名用戶刪除和重命名文件(如果設置爲YES,則write_enable也必須設置爲YES)。默認值爲NO。
anon_other_write_enable=YES|NO
# 具體解釋請看我的另一篇博文。默認值爲YES。
anon_world_readable_only=YES|NO
# 用於設置匿名用戶上傳文件的umask值。默認值爲077。
anon_umask=077
 用戶限制匿名用戶的傳輸速度(單位:Byte/s)。默認值爲0(表示無限制)。
anon_max_rate=0
# 是否允許匿名用戶通過SSL連接(如果設置爲YES,則ssl_enable也必須設置爲YES)。默認值爲NO。
allow_anon_ssl=YES|NO
# 是否改變匿名用戶上傳文件後文件的屬主。默認值爲NO。
chown_uploads=YES|NO
# 用於設置匿名用戶上傳文件後文件的屬主(只有chown_uploads設置爲YES時該參數才生效)。默認值爲root。
chown_username=root
# 是否允許非匿名用戶登錄。默認值爲NO。
local_enable=YES|NO
# 是否允許用戶具有寫權限。默認值爲NO。
write_enable=YES|NO
# 是否允許用戶下載文件。默認值爲YES。
download_enable=YES|NO
# 用於設置非匿名用戶上傳文件的umask值。默認值爲022。
local_umask=022
# 是否允許用戶在登錄到FTP服務器後使用ls -R等比較佔用系統資源的命令。默認值爲NO。
ls_recurse_enable=YES|NO
# 是否允許用戶使用dir之類的列目錄命令。默認值爲YES。
dirlist_enable=YES|NO
# 是否啓用用戶列表。默認值爲NO。
userlist_enable=YES|NO
# 如果設置爲YES,則表示拒絕列表內的用戶登錄,否則表示只允許列表內的用戶登錄。默認值爲YES。
userlist_deny=YES|NO
# 用於設置用戶列表的路徑。默認值爲/etc/vsftpd/user_list。
userlist_file=/etc/vsftpd/user_list
# 是否將本地用戶控制在家目錄中。默認值爲NO。
chroot_local_user=YES|NO
# 如果設置爲YES,則chroot_local_user也必須爲YES,表示只有在列表中的用戶能離開家目錄,如果設置爲NO,則表示不啓用列表。默認值爲NO。
chroot_list_enable=YES|NO
 
# 用於設置列表的路徑。默認值爲/etc/vsftpd/chroot_list。
chroot_list_file=/etc/vsftpd/chroot_list
# 用於指定所有非匿名用戶的根目錄,默認情況,FTP會將各用戶引導到各自的家目錄,如果你希望所有用戶登錄到同一個根目錄,那麼你就需要用到該參數了。無默認值。
local_root
# 用於限制非匿名用戶的傳輸速度(單位:Byte/s)。默認值爲0(表示無限制)。
local_max_rate=0
# 是否允許客戶端使用sync等命令。默認值爲NO。
async_abor_enable=YES|NO
# 是否允許上傳文件時使用ASCII傳輸模式。默認值爲NO。
ascii_upload_enable=YES|NO
# 是否允許下載文件時使用ASCII傳輸模式。默認值爲NO。
ascii_download_enable=YES|NO
# 用於設置回話超時時間(單位:秒)。默認值爲300。
idle_session_timeout=300
# 用於設置數據傳輸的超時時間(單位:秒)。默認值爲300。
data_connection_timeout=300
# 用於設置被動連接的超時時間(單位:秒)。默認值爲60。
accept_timeout=60
# 用於設置主動連接的超時時間(單位:秒)。默認值爲60。
connect_timeout=60
# 用於限制上傳文件的類型,例如deny_file={*.mp3,*.exe}。無默認值。
deny_file
# 當vsftpd服務器連接多個網絡時,如果只希望監聽某個網絡的請求時,就需要設置該參數了。無默認值。
listen_address
# 用於設置監聽的端口。默認值爲21。
listen_port=21
# 用於設置最大連接數。默認值爲2000。
max_clients=2000
# 用於設置同一臺主機的最大連接數。默認值爲50。
max_per_ip=50
# 是否使用本地時間。默認值爲NO。
use_localtime=YES|NO
# 是否啓用standalone模式並通過ipv4監聽。默認值爲NO。
listen=YES|NO
# 是否啓用standalone模式並通過ipv6監聽。默認值爲NO。
listen_ipv6=YES|NO
# 是否啓用tcp_wrappers訪問控制列表。默認值爲NO。
tcp_wrappers=YES|NO
# 是否使用20端口來傳輸數據。默認值爲NO。
connect_from_port_20=YES|NO
 
# 用於設置數據傳輸端口。默認值爲20。
ftp_data_port=20
# 用於設置被動連接時,客戶端的數據連接端口的最小值。默認值爲0(表示採用隨機端口)。
pasv_min_port
# 用於設置被動連接時,客戶端的數據連接端口的最大值。默認值爲0(表示採用隨機端口)。
pasv_max_port
# 用於設置vsftpd服務的運行用戶。默認值爲nobody。
nopriv_user=nobody
# 是否啓用日誌記錄用戶的上傳/下載。默認值爲NO。
xferlog_enable=YES|NO
# 是否採用標準日誌文件來記錄日誌。默認值爲NO。
xferlog_std_format=YES|NO
# 用於設置日誌文件的路徑。默認值爲/var/log/xferlog。
xferlog_file=/var/log/xferlog
# 指定登錄到FTP時的歡迎信息。無默認值。
ftpd_banner
# 是否在用戶切換目錄時顯示歡迎信息,如果設置爲YES,則需要在每個需要顯示歡迎信息的目錄下創建名爲.message的文件,並在裏面輸入歡迎信息纔會顯示。默認值爲NO。
dirmessage_enable=YES|NO
# 用於設置保存歡迎信息的文件名。默認值爲.message。
message_file=.message

 

2.配置流程

1).實驗須知:

      node1:192.168.3.11,作爲ftp服務器

         node2:192.168.3.12,作爲mysql服務器

 

2).實驗步驟:

   一、安裝所需要的程序

      1.在node1安裝vsftpd 和連接mysql的模塊pam_mysql
       #yum install vsftpd pam_mysql  -y
       2.在node2上安裝mysql,並啓動mysql服務
       #yum install mysql-servermysql-devel  -y
       # service mysqld start
       # ss -tnlp | grep 3306
LISTEN     0     50                       *:3306                     *:*      users:(("mysqld",2764,10))


 

    二、創建虛擬用戶賬號

    1.在node2上準備數據庫及相關表
     #mysql
      >CREATE DATABASE vsftpd;
      >use vsftpd;
      >GRANT SELECT ON vsftpd.* TOvsftp@'192.168.3.%' IDENTIFIED BY 'tanjie123';
      >FLUSH PRIVILEGES;
 
  在node1主機上測試是否授權是否成功,能否成功連接
  # mysql -uvsftp -h192.168.3.12 -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
………………..
 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
| vsftpd             |
+--------------------+
3 rows in set (0.00 sec)
 2.在node2上添加測試的虛擬用戶
    在node2上創建用戶表,並插入用戶數據
      >CREATE TABLE users (
       id INT UNSIGNED NOT NULLAUTO_INCREMENT PRIMARY KEY,
         name VARCHAR(50) BINARY NOT NULL,
         password CHAR(48) BINARY NOTNULL);
      >DESC users;
 
    >INSERT INTO users(name,password) VALUES('tom',password('tanjie123')),('jerry',password('tanjie'));
     >select * from  users;
+----+-------+-------------------------------------------+
| id | name  | password                                  |
+----+-------+-------------------------------------------+
|  1 | tom  | *DD9360964DF8A7220B7D9725AFE323C5587B635F |
|  2 | jerry |*D3D009DE1810BBFD11427A1BED30C9B22564DD4D |
+----+-------+-------------------------------------------+
2 rows in set(0.00 sec)

 

  三 配置vsftpd

     

  1.在node1建立pam認證所需文件
       #vim /etc/pam.d/vsftpd.mysql
       添加如下:
              auth required pam_mysql.souser=vsftp passwd=tanjie123 host=192.168.3.12 db=vsftpd table=users usercolumn=namepasswdcolumn=password crypt=2
              account required pam_mysql.souser=vsftp passwd=tanjie123 host=192.168.3.12 db=vsftpd table=usersusercolumn=name passwdcolumn=password crypt=2
 
       2.在node1修改配置文件
       先建立系統賬號,用戶名爲vuser,家目錄爲/var/ftproot vuser
,並給予/var/ftproot目錄其他用戶可讀、可執行權限
       #useradd -s /sbin/nologin  -d /var/ftproot vuser
       #chmod go+rx /var/ftproot
       #vim /etc/vsftpd/vsftp.conf
       在文件裏添加如下2項,並修改pam_service_name爲vsftpd.mysql:
              guest_enable=YES
              guest_username=vuser
              pam_service_name=vsftpd.mysql 
 
       #service vsftpd restart


 

   node2上測試訪問,輸入tom,密碼tanjie123

    #ftp 192.168.3.11

   wKioL1X7ppGiUThRAAF5g08cWeM759.jpg

   .配置虛擬用戶具有不同的訪問權限

     

1.在配置文件中添加vsftpd虛擬用戶使用配置文件目錄,然
       #vim vsftpd.conf
              添加一項:
              user_config_dir=/etc/vsftpd/vusers
創建虛擬用戶使用配置文件目錄,並在目錄裏面創建tom和jerry倆文件,更改配置,使得tom能上傳、創建、刪除文件,而jerry不能上傳、創建、刪除文件
       #mkdir /etc/vsftpd/vusers
       #cd vusers
       #vim tom
              anon_upload_enable=YES
              anon_mkdir_write_enable=YES
              anon_other_write_enable=YES
       #vim jerry
              anon_upload_enable=NO
              anon_mkdir_write_enable=NO
              anon_other_write_enable=NO
重啓服務
       #service vsftpd restart


 

   node2上,用ftp登錄192.168.3.11,選擇tomjerry登錄,然後分別上傳、創建文件,觀察成功與否結果

wKiom1X7pHCxfNFSAAIc_yv6lxg327.jpg


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章