预安装操作(本文属于测试安装此处步讨论selinux和iptables的问题)
[root@localhost vsftpd]# setenforce 0
[root@localhost vsftpd]# vi /etc/sysconfig/selinux
[root@localhost vsftpd]# cat /etc/sysconfig/selinux |grep -v "#"
SELINUX=disabled
SELINUXTYPE=targeted
[root@localhost vsftpd]#
iptables:清除防火墙规则: [确定]
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:正在卸载模块: [确定]
[root@localhost vsftpd]# chkconfig iptables off
安装所需包
[root@localhost vsftpd]yum -y install db4-utils
[root@localhost vsftpd]yum -y install vsftpd
创建用户
[root@localhost vsftpd]# useradd vsftp -s /sbin/nologin
创建配置工具和配置文件
[root@localhost vsftpd]# cd /etc/vsftpd/
[root@localhost vsftpd]# vi db.sh
[root@localhost vsftpd]# cat db.sh
db_load -T -t hash -f /etc/vsftpd/login /etc/vsftpd/login.db
[root@localhost data0]# cat /etc/pam.d/vsftpd
#%PAM-1.0
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/login #新添加 如果是i386的 应该是/lib/security/pam_userdb.so\
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/login #此处以amd64为例
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
session required pam_loginuid.so
session include password-auth
主配置文件如下
[root@localhost vsftpd]# cat vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
#connect_from_port_20=YES
chown_uploads=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=600
data_connection_timeout=120
nopriv_user=vsftp #何以上创建的用户名一样
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to ufstone FTP service.
chroot_local_user=YES
listen=YES
use_localtime=YES
pam_service_name=vsftpd #和修改的pam.d的名字一样,也可以是login
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=vsftpd
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vconf
#主动模式设置
#Port_enable=YES
connect_from_port_20=YES
#被动模式
pasv_enable=YES
pasv_min_port=10000
pasv_max_port=10010
[root@localhost vsftpd]# mkdir vconf
[root@localhost vsftpd]# cd vconf/
[root@localhost vconf]# vi test_60
[root@localhost vconf]# mkdir /opt/data0 && chown -R vsftp.vsftp /opt/data0
[root@localhost vconf]# cat test_60
local_root=/opt/data0
[root@localhost vsftpd]# cat login
test_60
test_60
[root@localhost vsftpd]# ./db.sh
[root@localhost vsftpd]# /etc/init.d/vsftpd start
为 vsftpd 启动 vsftpd:
[root@localhost vsftpd]# lsof -i:21 #端口已监听
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
vsftpd 23260 root 3u IPv4 134673 0t0 TCP *:ftp (LISTEN)
RHEL7/CentOS7
allow_writeable_chroot=YES
本文由笔者原创
作者:john
转载请注明出处!