FTP服務器的配置node
一FTP服務器的安裝mysql
1)ftp服務器安裝後生成的相關文件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
四.配置虛擬用戶具備不一樣的訪問權限
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,選擇tom和jerry登陸,而後分別上傳、建立文件,觀察成功與否結果