原文链接
1.关闭防火墙和selinux
防火墙(firewalld)
临时关闭防火墙
systemctl stop firewalld
永久防火墙开机自关闭
systemctl disable firewalld
临时打开防火墙
systemctl start firewalld
防火墙开机启动
systemctl enable firewalld
查看防火墙状态
systemctl status firewalld
[root@localhost ~]# systemctl status firewalld
SELinux
临时关闭SELinux
setenforce 0
临时打开SELinux
setenforce 1
查看SELinux状态
getenforce
开机关闭SELinux
编辑/etc/selinux/config文件,将SELINUX的值设置为disabled。下次开机SELinux就不会启动了。
SELINUX=disabled
2.安装vsftp
[root@localhost ~]# yum -y install vsftpd*
3.将cp命令将配置文件备份
[root@localhost ~]# cp /etc/vsftpd/vsftpd.conf{,.bak}
4.建立虚拟FTP用户的帐号
[root@localhost ~]# useradd -s /sbin/nologin vu
5.创建虚拟用户文件并添加用户密码
[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# vim user
wangwu
12345
6.通过db_load工具创建出Berkeley DB格式的数据库文件
[root@localhost vsftpd]# db_load -T -t hash -f user user.db
-f 指定数据原文件
-T 允许非Berkeley DB的应用程序使用文本格式转换的DB数据文件
-t hash 读取文件的基本方法
7.建立支持虚拟用户的PAM认证文件
[root@localhost vsftpd]# vim /etc/pam.d/vsftpd.vu
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/user
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/user
8.修改配置文件
[root@localhost vsftpd]# vim vsftpd.conf
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
userlist_enable=YES
tcp_wrappers=YES
allow_writeable_chroot=YES
guest_enable=YES
guest_username=vu
pam_service_name=vsftpd.vu
local_enable=YES
local_umask=077
chroot_local_user=YES
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/user_dir
9.为用户建立独立的配置目录及文件
[root@localhost vsftpd]# mkdir /etc/vsftpd/user_dir
[root@localhost vsftpd]# cd /etc/vsftpd/user_dir
[root@localhost user_dir]# vim wangwu
local_root=/etc/vsftpd/data
#创建虚拟用户数据存放目录
[root@localhost user_dir]# cd ..
[root@localhost vsftpd]# mkdir data
[root@localhost vsftpd]# chmod 777 data/
#启动vsftpd服务
[root@localhost vsftpd]# systemctl start vsftpd
10.连接测试
# ftp若是没有需要输入 yum install ftp* -y 下载
[root@localhost data]# ftp
ftp> open 192.168.1.4
Connected to 192.168.1.4 (192.168.1.4).
220 (vsFTPd 3.0.2)
Name (192.168.1.4:root): wangwu
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
11.配置文件详解
#常用的匿名FTP配置项
anonymous_enable=YES 是否允许匿名用户访问
anon_umask=022 匿名用户所上传文件的权限掩码
anon_root=/var/ftp 设置匿名用户的FTP根目录
anon_upload_enable=YES 是否允许匿名用户上传文件
anon_mkdir_write_enable=YES 是否允许匿名用户允许创建目录
anon_other_write_enable=YES 是否允许匿名用户有其他写入权(改名,删除,覆盖)
anon_max_rate=0 限制最大传输速率(字节/秒)0为无限制
#常用的本地用户FTP配置项
local_enable=YES 是否允许本地系统用户访问
local_umask=022 本地用户所上传文件的权限掩码
local_root=/var/ftp 设置本地用户的FTP根目录
chroot_list_enable=YES 表示是否开启chroot的环境,默认没有开启
chroot_list_file=/etc/vsftpd/chroot_list 表示写在/etc/vsftpd/chroot_list文件里面的用户是不可以出chroot环境的。默认是可以的。
Chroot_local_user=YES 表示所有写在/etc/vsftpd/chroot_list文件里面的用户是可以出chroot环境的,和上面的相反。
local_max_rate=0 限制最大传输速率(字节/秒)0为无限制
#常用的全局配置项
listen=YES 是否以独立运行的方式监听服务
listen_address=192.168.4.1 设置监听FTP服务的IP地址
listen_port=21 设置监听FTP服务的端口号
write_enable=YES 是否启用写入权限(上传,删除文件)
download_enable=YES 是否允许下载文件
dirmessage_enable=YES 用户切换进入目录时显示.message文件
xferlog_enable=YES 启用日志文件,记录到/var/log/xferlog
xferlog_std_format=YES 启用标准的xferlog日志格式,禁用此项将使用vsftpd自己的格式
connect_from_port_20=YES 允许服务器主动模式(从20端口建立数据连接)
pasv_enable=YES 允许服务器被动模式
pasv_max_port=24600 设置被动模式服务器的最大端口号
pasv_min_port=24500 设置被动模式服务器的最小端口号
pam_service_name=vsftpd 用户认证的PAM文件位置
(/etc/pam.d/vsftpd.vu)
userlist_enable=YES 是否启用user_list列表文件
userlist_deny=YES 是否禁用user_list中的用户
max_clients=0 限制并发客户端连接数
max_per_ip=0 限制同一IP地址的并发连接数
tcp_wrappers=YES 是否启用tcp_wrappers主机访问控制
chown_username=root 表示匿名用户上传的文件的拥有人是root,默认关闭
ascii_upload_enable=YES 表示是否允许用户可以上传一个二进制文件,默认是不允许的
ascii_download_enable=YES 这个是代表是否允许用户可以下载一个二进制文件,默认是不允许的
nopriv_user=vsftpd 设置支撑Vsftpd服务的宿主用户为手动建立的Vsftpd用户
async_abor_enable=YES 设定支持异步传输功能
ftpd_banner=Welcome to Awei FTP servers 设定Vsftpd的登陆标语
guest_enable=YES 设置启用虚拟用户功能
guest_username=ftpuser 指定虚拟用户的宿主用户
virtual_use_local_privs=YES 设定虚拟用户的权限符合他们的宿主用户
user_config_dir=/etc/vsftpd/vconf 设定虚拟用户个人Vsftp的配置文件存放路径