虛擬機實驗環境:Redhat7.2 Windowsxp windows7 VMware12
一、實訓目的
● 掌握Vsftpd服務器的配置方法。
● 熟悉FTP客戶端工具的使用。
● 掌握常見的FTP服務器(vsftpd)的故障排除。
二、項目背景
某企業網絡拓撲圖如下圖所示,該企業想構建一臺FTP服務器,為企業局域網中的計算機提供文件傳送任務,為財務部門、銷售部門和OA系統提供異地數據備份。要求能夠對 FTP 服務器設置連接限制、日誌記錄、消息、驗證客戶端身份等屬性,並能創建用戶隔離的FTP站點。
三、實訓內容
練習Linux系統下Vsftpd服務器的配置方法及FTP客戶端工具的使用。
準備redhat7.2虛擬機+Windows7測試機
四、實訓步驟
環境準備:
redhat7.2跟windows7測試機在同一網段且可以正常ping通
本地yum配置掛載:
掛載系統鏡像到 /media目錄
vi編輯以上內容並且esc鍵後 shfit+冒號後輸入x回車保存
測試本地yum是否成功 yum list 列出軟件包
| tail -10列車後10條,不加參數會列出全部軟件包
安裝vsftpd
yum install -y vsftpd
安裝ftp
子項目1. 設置匿名帳號具有上傳、創建目錄權限
vi /etc/vsftpd/vsftpd.conf
esc鍵後輸入shfit+冒號後 輸入%d回車可以刪除全部內容接著添加以上配置信息
部分參數解釋
anon_umask=022 匿名用戶上傳文件的umask值。
anon_upload_enable=YES 允 許匿名用戶上傳文件
anon_mkdir_write_enable=YES 允許匿名用戶創建目錄
anon_other_write_enable=NO 禁止匿名用戶修改目錄名或刪除目錄
測試結果
子項目2. 設置禁止本地user1用戶登錄ftp服務器
新建user1賬戶並且設置密碼激活
[root@localhost vsftpd]# vi /etc/vsftpdftpusers
添加剛剛新建好的user1賬戶
重啟vsftpd服務
沒有報錯即正常 否則檢查配置文件
測試結果
user1登陸失敗
user2登陸成功
子項目3. 設置本地用戶登錄FTP服務器之後,在進入dir1目錄時顯示提示信息“welcome 小白一起學IT”
首先編輯下[root@localhost /]# vi /etc/vsftpd/vsftpd.conf 添加這兩條命令後保存重啟vsftpd服務
[root@localhost /]# systemctl restart vsftpd.service
以user2用戶登錄系統,並進入user2用戶家目錄/home/user2目錄下的dir1目錄
先創建user2賬戶並且切換到user2後 在/home/user2/目錄下創建dir1目錄
在 dir1目錄x新建.message文件並輸入”welcome 小白一起學IT”
結果如下
[user2@localhost dir1]$ su user2;cd/home/user2;mkdir dir1;cd /home/user2/dir1/;pwd; echo "welcome小白一起學IT ">.message
當然你也可以一條一條的輸入 前提在user2登陸下
修改完後可以ls -al顯示
[user2@localhost dir1]$ echo "welcome小白一起學IT ">.message
//以下為測試結果
su到root狀態
[root@localhost /]# ftp 192.168.1.2
ftp> cd dir1 //切換到dir目錄
250-welcome 小白一起學IT //顯示.message文件的內容
當然了你在windows下的cmd鍵入以上命令登陸ftp測試也是一樣的效果
子項目4.設置將所有本地用戶都鎖定在家目錄中
[root@localhost home]# vi /etc/vsftpd/vsftpd.conf
[root@localhost home]# systemctl restart vsftpd.service
子項目5. 設置只有指定本地用戶user1和user2可以訪問FTP服務器
root@localhost vsftpd]# vi user_list
[root@localhost vsftpd]# vi vsftpd.conf
root@localhost vsftpd]# systemctl restart vsftpd.service
測試
win7測試
報錯了哦,能顯示驗證信息但是登陸不了。怎麼辦呢 看下圖
修改配置文件添加一行allow_writeable_chroot=YES
[root@localhost vsftpd]# vi /etc/vsftpd/vsftpd.conf
保存退出後變忘記重啟vsftpd服務
[root@localhost vsftpd]# systemctl restart vsftpd.service
再次測試
登陸成功
沒報錯即配置參數正常
測試:
子項目6. 配置基於主機的訪問控制
實現如下功能:
● 拒絕192.168.1.6.0/24訪問+拒絕192.168.1.14訪問
[root@localhost vsftpd]# vi /etc/hosts.allow
測試結果
● 對域jnrp.net和192.168.2.0/24內的主機不做連接數和最大傳輸速率限制。
[root@localhost vsftpd]# vi /etc/hosts.allow
添加以下內容
vsftpd:jnrp.net,192.168.2.0/24 :setenv VSFTPD_LOAD_CONF /etc/vsftpd/vsftpd_tcp_wrap.conf
[root@localhost vsftpd]# vi /etc/vsftpd/vsftpd_tcp_wrap.conf
添加以下內容
● 對其他主機的訪問限制每IP的連接數為1,最大傳輸速率為20KB/S
[root@localhost vsftpd]# vi /etc/vsftpd/vsftpd.conf
添加以下內容
測試
本機先登陸一個ftp
很明顯一個Ip不能同時鏈接兩個
如果輸入ftp://192.168.1.2後沒有彈出登陸窗口 ,可以在空白界面鼠標右鍵 登陸
子項目7. 使用PAM實現基於虛擬用戶的FTP服務器的配置。
● 創建虛擬用戶口令庫文件。
[root@localhost vsftpd]# vim xiaobaiit.list
我是在etc/vsftpd目錄下先創建再寫入。基數列是賬戶 偶數列是密碼哦。這個是虛擬用戶
對虛擬賬戶加密
[root@localhost vsftpd]# db_load -T -t hash -f xiaobaiit.list xiaobaiit.db
[root@localhost vsftpd]# ll
別忘記把明文刪除,確保安全
[root@localhost vsftpd]# rm -rf xiaobaiit.list
● 生成虛擬用戶所需的PAM配置文件/etc/pam.d/vsftpd。
root@localhost vsftpd]# vi /etc/pam.d/vsftpd
添加紅線內的兩列內容,其餘列全部註釋掉 (前面加#號即可),別忘記保存哦
● 修改vsftpd.conf文件。
● 利用下面的命令重新啟動vsftpd服務即可。
[root@localhost vsftpd]# systemctl restart vsftpd.service
最後別忘記把虛擬用戶加入白名單
[root@localhost vsftpd]# vi /etc/vsftpd/user_list
[root@localhost vsftpd]# systemctl restart vsftpd.service
● 測試。
Linux主機測試
Windows7
當然了你在我的電腦 文件管理器裡面登陸也是一樣能登陸的
-------------番外篇----------故障解決----------------------------番外篇----------故障解決---------------
哈哈 發現配置完 登陸虛擬用戶 失敗。但是本地用戶能登陸。瞬間懵逼 崩潰了有木有!就是虛擬用戶登陸不了有木有 有木有!我明明加了白名單了 為毛還是登陸不了!!各種為毛!!!
別急!我們要學會查看日誌文件,才能去解決!!!go-----
查看日誌
[root@localhost vusers_dir]# tail -f /var/log/secure
日誌示例一:
哈哈找到問題了吧,很明顯文件目錄配置出錯啦
日誌示例二:
很明顯日誌告訴我們。沒有找到密碼數據庫 哈哈機智的你 知道錯哪了吧/趕緊找找自己加密的文件zai'在哪
-------------番外篇----------故障解決----------------------------番外篇----------故障解決---------------
五、實訓思考題
1.簡單敘述FTP服務器的配置過程。
2.簡單說一下FTP服務器中的文件在Linux系統本身的權限和通過FTP訪問時的權限之間的關係。
本小節至此結束了哦,Linux命令參數太多了,本文只做簡單的一小部分常用命令進行演示。以上的命令更多參數用法大家可以百度命令關鍵字 就可以查到用法(也可用man 或--help命令)。
(注:如果沒有看我這個系列前面文章的同學,按照上文配置 環境可能會跟你的Linux環境有一些小出入,建議點擊我的資料查看我的這個系列前面的文章。)
後續會更新Linux_redhat的一些環境配置,我自己也在學Linux,這也是我的專業,我也會把我的學 習過程不斷更新,讓0起步的小白也能輕鬆入門。老手就可以飄過了。
(如有錯的地方請多多包涵,謝謝)
前面的文章彙總:
「Linux基礎篇」(一)虛擬環境部署安裝redhat7.2
持續更新中。。。。。。。。。。。。喜歡的話請左上角關注哦!