vsftp 部署和优化

2016-09-12

vsftp 部署和优化

(1)安装 vsftpd

[root@133 ~]# yum install -y vsftpd db4-utils

  这里安装两个软件包,同时会把依赖的包安装上。其中 db4-utils 用来生成密码库文件。

(2)建立账号

  vsftpd 默认是可以支持使用系统账号体系登录的,但那样不太安全,所以最好使用虚拟账号体系。

  建立虚拟账号相关联的系统账号

[root@133 ~]# useradd virftp -s /sbin/nologin

  建立虚拟账户相关的文件

[root@133 ~]# vim /etc/vsftpd/vsftpd_login

test1

123456

test2

abcdef

  更改该文件的权限,提升安全级别

[root@133 ~]# chmod 600 /etc/vsftpd/vsftpd_login

  vsftpd 使用的密码文件不是明文的,需要生成对应的库文件

[root@133 ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db

  建立虚拟账号相关的目录以及配置文件

[root@133 ~]# mkdir /etc/vsftpd/vsftpd_user_conf

[root@133 ~]# cd /etc/vsftpd/vsftpd_user_conf/

(3)创建和用户对应的配置文件

[root@133 vsftpd_user_conf]# vim test1

local_root=/home/virftp/test1

anonymous_enable=NO

write_enable=YES

local_umask=022

anon_upload_enable=NO

anon_mkdir_write_enable=NO

idle_session_timeout=600

data_connection_timeout=120

max_clients=10

max_per_ip=5

local_max_rate=50000

  说明:local_root 为该账号的家目录,anonymous_enable 用来限制是否允许匿名账号登陆,若为 NO 表示不允许匿名账号登陆,write_enable=YES 表示可写,local_umask 指定 umask 值,anon_upload_enable 是否允许匿名账号上传文件,anon_mkdir_write_enable 是否允许匿名账号可写。以上为关键配置参数,创建 test2 账号的步骤和 test1 一样。

[root@133 vsftpd_user_conf]# mkdir /home/virftp/test1

[root@133 vsftpd_user_conf]# chown -R virftp:virftp /home/virftp

[root@133 vsftpd_user_conf]# vim /etc/pam.d/vsftpd          //在最开头添加如下两行

#%PAM-1.0

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

  说明:32 为系统的库文件路径是 /lib/security/pam_userdb.so。

(4)修改全局配置文件 /etc/vsftpd.conf

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


anonymous_enable=YES              改为       anonymous_enable=NO

#anon_upload_enable=YES           改为       anon_upload_enable=NO

#anon_mkdir_write_enable=YES      改为       anon_mkdir_write_enable=NO

  再增添:

chroot_local_user=YES

guest_enable=YES

guest_username=virftp

virtual_use_local_privs=YES

user_config_dir=/etc/vsftpd/vsftpd_user_conf

  启动服务

[root@133 ~]# /etc/init.d/vsftpd start

为 vsftpd 启动 vsftpd:                                    [确定]

  如果没有启动成功,很有可能是前面的 pure-ftpd 服务没有关闭。测试过程和前面 pure-ftpd 的一样。如果用户登陆不了,查看/var/log/secure 日志。


标题:vsftp 部署和优化
作者:散宜生
地址:https://17kblog.com/articles/2016/09/12/1473644724856.html