@vsftpd的使用及服务搭建_linux

FTP简介

vsftpd(Very Security File Transfer Protocol)是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。并且是一个完全免费开放源码的ftp软件。

更改启动状态

sudo service vsftpd start #开启ftp服务
service vsftpd status #查看FTP的状态
sudo service vsftp stop #停止ftp服务
sudo service vsftp restart #重启ftp服务
sudo /etc/init.d/vsftpd restart #倘若上面的不行就使用路径的形式直接执行
sudo pkill vsftpd #有时候停止失败就干掉吧

1、安装vsftpd和依赖
yum install
2、备份并且配置vsftpd.conf
cp
3、配置
cat > /etc/vsftpd/vsftpd.conf << EOF
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
connect_from_port_20=YES

xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log

ascii_upload_enable=YES
ascii_download_enable=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

chroot_local_user=YES
chroot_list_enable=YES
allow_writeable_chroot=YES
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list

guest_enable=YES
guest_username=ftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vconf
EOF
4、创建虚拟用户配置文件存放的目录,这个目录是vsftpd.conf配置文件中的参数user_config_dir=/etc/vsftpd/vconf定义的
mkdir
5、创建保存 虚拟用户 的文件
touch
6、在保存虚拟用户的文件中建立测试用户
echo "hzl" >> /etc/vsftpd/vusers
echo "123" >>
7、生成虚拟用户数据库加密文件
db_load -T -t hash
8、备份vsftpd的pam认证文件"/etc/pam.d/vsftpd"
cp
9、修改vsftpd的pam认证文件"/etc/pam.d/vsftpd"
# 首先删除/etc/pam.d/vsftpd的所有内容,然后添加以下内容到这个文件中
cat >/etc/pam.d/vsftpd <<EOF
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers
EOF
10、创建虚拟用户的配置文件
# 每个虚拟用户的配置文件可以不同,
# 每个虚拟用户的配置文件是个独立的文件,
# 配置文件新建到vsftpd.conf的配置文件中的参数user_config_dir=/etc/vsftpd/vconf定义的目录中,这个目录在第3步已经创建
# 各个虚拟用户的配置文件名称,必须设置得和虚拟用户数据库中的虚拟用户名相同,
# 例:在虚拟用户的数据库文件中定义了user1这个用户,那么在/etc/vsftpd/vconf/这个目录中,就必须定义1个user1这个用户配置文件的格式
cat > /etc/vsftpd/vconf/test <<EOF
local_root=/srv/vsftp/test
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
EOF
11、创建虚拟用户的ftp上传目录 ,这个目录是由第9步的配置文件中的参数 local_root=/srv/vsftp/test定义的,参考示例配置
mkdir
12、修改虚拟用户的ftp上传目录权限, 这个用户是由vsftpd.conf配置文件的参数 guest_username=ftp 定义的
chown
13、创建文件vsftpd.conf配置文件
# 创建文件vsftpd.conf配置文件中参数 chroot_list_file=/etc/vsftpd/vsftpd.chroot_list 定义的文件,这个参数和chroot_local_user=YES,chroot_list_enable=YES这2个参数配合使用,表示如果在chroot_list_file参数中未定义任何用户,就没有任何用户能切换到ftp的上级目录
touch /etc/vsftpd/vsftpd.chroot_list
Copy to clipboardErrorCopied



#更改默认文件路径位置
cat >> /etc/vsftpf/vsftpd.conf <<EOF
anon_root /hzl #更改文件储存路径
EOF
14、启动vsfrpd
#启动:systemctl enable --now vsftpd 

#默认文件位置: /var/fsp/pub
#或者: /srv/vsftp/test


#访问: ftp://172.16.1.31

FTP的基本配置信息vsftpd.conf

ftpd_banner=welcome to ftp service  #设置连接服务器后的欢迎信息
idle_session_timeout=60 #限制远程的客户机连接后,所建立的控制连接,在多长时间没有做任何的操作就会中断(秒)
data_connection_timeout=120 #设置客户机在进行数据传输时,设置空闲的数据中断时间
accept_timeout=60 #设置在多长时间后自动建立连接
connect_timeout=60 #设置数据连接的最大激活时间,多长时间断开,为别人所使用;
max_clients=200 #指明服务器总的客户并发连接数为200
max_per_ip=3 #指明每个客户机的最大连接数为3
local_max_rate=50000(50kbytes/sec) #本地用户最大传输速率限制
anon_max_rate=30000 #匿名用户的最大传输速率限制
pasv_min_port=21 #端口21
pasv-max-prot= #端口号 定义最大与最小端口,为0表示任意端口;为客户端连接指明端口;
listen_address= #IP地址 设置ftp服务来监听的地址,客户端可以用哪个地址来连接;
listen_port= #端口号 设置FTP工作的端口号,默认的为21
chroot_local_user=YES #设置所有的本地用户可以chroot
chroot_local_user=NO #设置指定用户能够chroot
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list #只有/etc/vsftpd/chroot_list中的指定的用户才能执行
local_root=path #无论哪个用户都能登录的用户,定义登录帐号的主目录, 若没有指定,则每一个用户则进入到个人用户主目录;
chroot_local_user=yes/no #是否锁定本地系统帐号用户主目录(所有);锁定后,用户只能访问用户的主目录/home/user,不能利用cd命令向上转;只能向下;
chroot_list_enable=yes/no #锁定指定文件中用户的主目录(部分),文件:/chroot_list_file=path 中指定;
userlist_enable=YES/NO #是否加载用户列表文件;
userlist_deny=YES 表示上面所加载的用户是否允许拒绝登录;
userlist_file=/etc/vsftpd/user_list #列表文件

主配置文件详解

anonymous_enable=YES   #是否启用匿名用户
local_enable=YES
write_enable=YES #允许写入(无论是匿名用户还是本地用户要实现上传就需要快开启它)
local_umask=022 #默认本地用户上传文件权限755
dirmessage_enable=YES #显示每个目录下的文件信息
xferlog_enable=YES #日志启用
connect_from_port_20=YES #主动请求的数据端口
chown_uploads=YES #所有匿名用户上传的文件所属用户将会被改成chown_username
chown_username=whoever #匿名上传的所属用户名是whoever
xferlog_file=/var/log/xferlog #启用的日志文件
xferlog_std_format=YES
idle_session_timeout=600 #空闲连接超时
data_connection_timeout=120 #数据连接超时
nopriv_user=ftpsecure #当服务器运行于最底层时使用的用户名
chroot_list_enable=YES chroot_local_user=YES #所有文件列出用户, 可以切换到其他目录
chroot_list_file=/etc/vsftpd/chroot_list
listen=NO #服务将自己监听处理listen_ipv6=YES
pam_service_name=vsftpd #设置PAM认证模块使用名称预设为vsftpd
userlist_enable=YES
tcp_wrappers=YES #服务端和客户端访问控制策略(服务器级别的一种防火墙)