CentOS 7 vsftpd的安裝和配置

一. vsftpd服務器相關軟件的安裝

 1. 查看是否安裝vsftp服務器和客戶端

[root@hadoop ~]# rpm -qa|grep ftp
vsftpd-2.2.2-24.el6.x86_64
ftp-0.17-54.el6.x86_64

如果找到已安裝的vsftp應用(本機之前已安裝過),先進行卸載,如下:

[root@hadoop ~]# yum -y remove ftp vsftpd
Loaded plugins: fastestmirror
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package ftp.x86_64 0:0.17-54.el6 will be erased
---> Package vsftpd.x86_64 0:2.2.2-24.el6 will be erased
--> Finished Dependency Resolution

Dependencies Resolved
...
Removed:
  ftp.x86_64 0:0.17-54.el6                vsftpd.x86_64 0:2.2.2-24.el6

 2. 安裝vsftpd服務器和客戶端

[root@hadoop ~]# yum install ftp vsftpd -y
Loaded plugins: fastestmirror
Setting up Install Process
Determining fastest mirrors
epel/metalink                                                                          | 6.7 kB     00:00     
 * base: mirrors.cn99.com
 * epel: mirrors.ustc.edu.cn
 * extras: mirrors.cn99.com
 * remi-safe: mirrors.tuna.tsinghua.edu.cn
 * rpmfusion-free-updates: mirrors.ustc.edu.cn
 * rpmfusion-nonfree-updates: mirrors.ustc.edu.cn
 * updates: mirrors.cn99.com
...
Installed:
  ftp.x86_64 0:0.17-54.el6                            vsftpd.x86_64 0:2.2.2-24.el6                           

Complete!

二. 配置vsftpd服務器

1. 創建vsftpd的登錄用戶和主目錄

[root@hadoop ~]# useradd -d /home/hadoopftp -s /sbin/nologin hadoopftp

  其中hadoopftp是ftp的登錄用戶名,可以根據需要實際替換即可

2. 修改相應的密碼

[root@hadoop ~]# passwd hadoopftp

3. 創建vsftpd虛擬用戶

[root@hadoop vsftpd]# vim /etc/vsftpd/vsftpuser.txt

輸入文本格式如下:

    用戶1
    用戶1密碼
    用戶2
    用戶2密碼
    ......

然後生成認證db:

[root@hadoop ~]# db_load -T -t hash -f /etc/vsftpd/vsftpuser.txt /etc/vsftpd/vsftpuser.db

4. 添加vsftpd的虛擬用戶的PAM認證

[root@hadoop ~]# vim /etc/pam.d/vsftpd

修改內容爲替換 pam文件中的account和auth:

#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
#auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth       required    pam_shells.so
#auth       include     password-auth
#account    include     password-auth
#64位系統
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpuser
#32位系統
#auth required pam_userdb.so db=/etc/vsftpd/vsftpuser
#account required pam_userdb.so db=/etc/vsftpd/vsftpuser
session    required     pam_loginuid.so
session    include      password-auth

5. 修改vsftpd的配置文件vsftpd.conf

[root@hadoop ~]# vim /etc/vsftpd/vsftpd.conf

修改點如下:

# 是否運行匿名登錄(NO)
anonymous_enable=NO

# 監聽端口(默認21)
listen_port=8021

# 限制ftp用戶只能在其主目錄下(root dir)下活動,不允許他們跳出主目錄之外瀏覽服務器上的其他目錄
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
local_root=/home/hadoop/ftp/public/ftproot
anon_root=/home/hadoop/ftp/public/ftproot
virtual_use_local_privs=YES
guest_enable=YES
guest_username=anyoftp
allow_writeable_chroot=YES
pasv_enable=YES

# 被動模式端口區間, 這個10021端口,可以修改爲你喜歡的
connect_from_port_10021=YES
pasv_min_port=40000
pasv_max_port=41000
pasv_address=172.16.1.2

添加以下防火規則,個人用的是iptables,也可以參考 firewall 設置

[root@hadoop ~]# vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10021 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 40000:41000 -j ACCEPT

創建文件chroot_list,聲明 限制在主目錄下的用戶名單:

[root@hadoop ~]# vim /etc/vsftpd/chroot_list

內容如下:

    hadoopftp

至於是限制名單還是排除名單,這取決於chroot_local_user的值 ,可以參考http://blog.csdn.net/bluishglc/article/details/42398811進行理解。

6. 新建FTP訪問根目錄,並設置訪問權限

[root@hadoop ~]# mkdir /home/hadoop/ftp/public/ftproot
[root@hadoop ~]# chown -R hadoopftp /home/hadoop/ftp/public/ftproot
[root@hadoop ~]# chmod -R 755 /home/hadoop/ftp/public/ftproot

7. 開啓vsftpd服務

[root@hadoop ~]# systemctl start vsftpd.service

# 查看vsftpd服務的狀態
systemctl status vsftpd.service

8. 設置開機啓動

[root@hadoop ~]# systemctl enable vsftpd.service

三. vsftpd服務驗證

打開瀏覽器,輸入ftp訪問地址,彈出一下界面:

輸入設置的ftp用戶名和密碼,進行訪問,驗證通過,跳到ftp文件目錄界面:

到此,vsftpd在Centos 7系統的安裝與簡單配置基本完成,本人在虛擬機環境下測試通過,不當之處,歡迎指正!!!

 

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