1. 程式人生 > >linux——vsftpd作業,如何配置匿名用戶ftp

linux——vsftpd作業,如何配置匿名用戶ftp

ges proftpd require 密碼 firewalld yum 技術分享 有關 ftpd

1.FTP簡介
網絡文件共享服務主流的主要有三種,分別是ftp,nfs,samba


概念:上傳,下載


監聽端口:21 C/S架構


客戶端工具
ftp,lftp,lftpget,wget,curl,filezilla,gftp(Linux GUI),商業軟件(flashfxp,cuteftp)


服務端軟件
wu-ftpd,proftpd(提供web接口),pureftp,vsftpd(Very Secure),ServU(windows平臺的一種強大ftp服務)


傳輸模式
技術分享圖片


環境,先關防火墻


[root@localhost ~]# systemctl status firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0

1.vsftpd——安裝vsftpd

[root@localhost ~]# yum -y install vsftpd`

vsftpd配置
/etc/pam.d/vsftpd                 //vsftpd用戶認證配置文件
/etc/vsftpd/                      //配置文件目錄
/etc/vsftpd/vsftpd.conf           //主配置文件

2.vsftpd——配置匿名用戶ftp,只需要改主配置文件

[root@localhost ~]# yum -y install vsftpd
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf    編輯
anonymous_enable=YES          //原配置中有,但需要查看是否開啟
anon_umask=022                //上傳文件的默認遮掩碼
anon_upload_enable=YES        //允許匿名上傳
anon_mkdir_write_enable=YES   //允許寫入,但不允許刪除
anon_other_write_enable=YES   //創建之外的權限,刪除
[root@localhost ~]# systemctl start vsftpd     //開啟
[root@localhost ~]# ss -antl

默認路徑介紹
/var/ftp/ 默認匿名用戶登錄的根目錄
/etc/vsftpd/vsftpd.conf 主配置文件
/etc/pam.d/vsftpd 身份認證用的,這個文件指定一個無法登錄的文件路徑 /etc/vsftpd/ftpusers
/etc/vsftpd/user_list 這個文件有主配置文件userlist_enable和userlist_deny決定是否開啟拒絕什麽用戶
/etc/vsftpd/chroot_list 這個文件默認是不存在的。手動建立,和主配置文件chroot_list_enable和chroot_list_file有關。
/usr/sbin/vsftpd 主要執行文件

sed -ri "s/^(anonymous_enable=).*/\1YES/g" /etc/vsftpd/vsftpd.conf

echo ‘anon_umask=022‘ >> /etc/vsftpd/vsftpd.conf //通過ftp上傳文件的默認遮罩碼
echo ‘anon_upload_enable=YES‘ >> /etc/vsftpd/vsftpd.conf //允許匿名上傳
echo ‘anon_mkdir_write_enable=YES‘ >> /etc/vsftpd/vsftpd.conf //允許寫入,但不允許刪除
echo ‘anon_other_write_enable=YES‘ >>/etc/vsftpd/vsftpd.conf //創建之外的權限,刪除


客戶端登陸
lftp +ip

3.vsftpd——配置虛擬用戶ftp

//安裝依賴的程序:

[root@localhost ~]# cd /etc/yum.repos.d/              進入yum源配置文件
[root@localhost yum.re``pos.d]# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo            //下載網易雲的源到配置文件下
[root@localhost yum.repos.d]# yum clean all                        //清除yum緩存
已加載插件:fastestmirror, langpacks 
[root@localhost yum.repos.d]# yum -y install epel-release         //安裝”epel-release”的軟件包,這個軟件包會自動配置yum的軟件倉庫
[root@localhost yum.repos.d]# yum -y install vsftpd                                     //安裝vsftpd服務

//創建文本格式的用戶名,密碼列表,列如要添加三個用戶 user1,user2,user3,密碼分別是123,123,123
對應前一行是用戶,後一行是密碼
[root@localhost ~]# echo ‘user1‘ >> /etc/vsftpd/vu.list
[root@localhost ~]# echo ‘123‘ >> /etc/vsftpd/vu.list
[root@localhost ~]# echo ‘user2‘ >> /etc/vsftpd/vu.list
[root@localhost ~]# echo ‘123‘ >> /etc/vsftpd/vu.list
[root@localhost ~]# echo ‘user3‘ >> /etc/vsftpd/vu.list
[root@localhost ~]# echo ‘123‘ >> /etc/vsftpd/vu.list

//安裝db4工具,

[root@localhost ~]# yum -y install db4*                 db4的所有

//將之前創建的文本格式用戶名,密碼文件使用db4工具轉換成數據庫文件
   -T表示轉換,-t表示加密方式使用hash算法加密
[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/vu.list /etc/vsftpd/vu.db

//提高虛擬用戶賬號文件的安全性,將文件權限設為600,以免數據外泄
[root@localhost ~]# chmod 600 /etc/vsftpd/vu.*
[root@localhost ~]# ll /etc/vsftpd/vu.*
-rw-------. 1 root root 12288 8月   8 11:40 /etc/vsftpd/vu.db
-rw-------. 1 root root    31 8月   8 11:29 /etc/vsftpd/vu.list

//添加虛擬用戶的映射賬號,創建ftp跟目錄,列如要將使用的ftp根目錄設置為/var/ftproot(指定家目錄路徑可另外指定,但是不能在root目錄下),//映射賬號的名稱為vftp,可以執行以下操作   ( 如果不想讓用戶登錄系統可以用 -s /sbin/nologin.此用戶就不可以登錄系統。)
[root@localhost ~]# useradd -d /var/ftproot -s /sbin/nologin vftp
[root@localhost ~]# chmod 755 /var/ftproot/                  //賦予讀寫權限
[root@localhost ~]# ll -d /var/ftproot/
drwxr-xr-x. 3 vftp vftp 78 8月   8 15:29 /var/ftproot/

//為虛擬用戶建立PAM認證

[root@localhost ~]# cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak          //備份
[root@localhost ~]# vim /etc/pam.d/vsftpd                 //清空並,追加以下3行內容,vu是之前生成的輸出文件,不能有#
%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vu         db前是固定式,後路徑無需帶後綴
account required pam_userdb.so db=/etc/vsftpd/vu

//修改vsftp配置文件,添加虛擬用戶支持

[root@localhost ~]# mkdir /etc/vsftpd/vusers_dir      //創建文件,並完成下方配置後就可以在目錄中為每個虛擬用戶分別建立配置文件了
[root@localhost ~]# echo ‘guest_enable=YES‘ >> /etc/vsftpd/vsftpd.conf       //啟用匿名用戶追加,(guest=客人)
[root@localhost ~]# echo ‘guest_username=vftp‘ >> /etc/vsftpd/vsftpd.conf   //匿名用戶使用那個用戶登陸,vftp(之前創建的虛擬用戶的用戶名)

//為不同的虛擬用戶建立獨立的配置文件

[root@localhost ~]# echo ‘user_config_dir=/etc/vsftpd/vusers_dir‘ >> /etc/vsftpd/vsftpd.conf 
   //user_config_dir=/etc/vsftpd/vusers_dir   添加‘用戶配置目錄‘(vusers_dir默認沒有,需要創建)

//允許被禁錮的用戶家目錄有寫權限‘allow_writeable_chroot=YES‘
[root@localhost ~]# echo ‘allow_writeable_chroot=YES‘ >> /etc/vsftpd/vsftpd.conf     

[root@localhost ~]# ll /etc/vsftpd/
總用量 40
-rw-------. 1 root root   125 8月   3 2017 ftpusers
-rw-------. 1 root root   361 8月   3 2017 user_list
-rw-------. 1 root root  5113 8月   8 16:47 vsftpd.conf
-rw-r--r--. 1 root root    20 8月   8 16:05 vsftpd.confa
-rwxr--r--. 1 root root   338 8月   3 2017 vsftpd_conf_migrate.sh
-rw-------. 1 root root 12288 8月   8 11:40 vu.db
-rw-------. 1 root root    31 8月   8 11:29 vu.list
drwxr-xr-x. 2 root root     6 8月   8 16:37 vusers_dir

[root@localhost ~]# cat /etc/vsftpd/vu.list
user1
123
user2
123
user3
123

//設置user1用戶可上傳文件,創建目錄

[root@localhost ~]# echo ‘anon_umask=022‘ >> /etc/vsftpd/vusers_dir/user1                          //通過ftp上傳文件的默認遮罩碼
[root@localhost ~]# echo ‘anon_upload_enable=YES‘ >> /etc/vsftpd/vusers_dir/user1                             //允許匿名上傳
[root@localhost ~]# echo ‘anon_mkdir_write_enable=YES‘ >> /etc/vsftpd/vusers_dir/user1                      //允許寫入,但不允許刪除
echo ‘anon_other_write_enable=YES‘ >> /etc/vsftpd/vusers_dir/user1   創建之外的權限,刪除

//設置user2用戶只有默認的下載權限,只需要創建一個名為jerry的空文件即可
[root@localhost ~]# touch /etc/vsftpd/vusers_dir/user2
//註意:虛擬用戶是通過匿名訪問的,所以必須開啟匿名訪問!

//啟動服務
[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# ss -antl
State      Recv-Q Send-Q                                 Local Address:Port                                                Peer Address:Port                       
LISTEN     0      32                                                :::21                                                            :::*                  
網絡站點管理

技術分享圖片

技術分享圖片
4.vsftpd——配置系統用戶ftp

第1步:

服務器端編輯配置文件: vim /etc/vsftpd/vsftpd.conf       追加:已經有的項目不添加
 anonymous_enable=NO        //是否允許匿名訪問
 local_enable=YES                 //是否允許本地登陸
 write_enable=YES                //是否允許寫
 local_umask=022                 //本地用戶上傳遮掩嗎
‘
 userlist_deny=YES                //是否啟用 ‘禁止登陸用戶名單‘
 userlist_enable=YES              //是否啟用 ‘禁止登陸用戶名單‘

第2步:

/etc/vsftpd/ftpusers    /etc/vsftpd/user_list 禁止列表
 服務器端vsftpd服務為了讓FTP服務更加的安全,默認禁止以root身份登入,那麽創建個普通用戶abc 並添加密碼:
 useradd abc
 passwd abc
‘

第3步:

服務器端設置SELinux: setsebool -P ftpd_full_access=on
[root@localhost ~]# systemctl start vsftpd     //開啟
[root@localhost ~]# ss -antl

第4步:

客戶端登錄ftp192.168.56.11 並驗證 ,創建的文件位於abc賬戶家目錄:/home/abc`

linux——vsftpd作業,如何配置匿名用戶ftp