Linux系統下FTP服務器的配置

FTP服務器的配置node

 

FTP服務器的安裝mysql

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

/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服務器的配置vim

1.配置文件相關信息bash

# 是否容許匿名用戶登陸。默認值爲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服務器session

         node2:192.168.3.12,做爲mysql服務器app

 

2).實驗步驟:

   1、安裝所須要的程序

      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))


 

    2、建立虛擬用戶帳號

    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

相關文章
相關標籤/搜索