centos 7.4 离线安装 ftp
一、检验是否已安装ftp
不显示版本号就是没有安装
rpm -qa|grep vsftpd
二、安装
1.在线安装
yum -y install vsftpd
chkconfig vsftpd on
2.离线安装
根据服务器情况选择,我这边是Centos 7的
上传到服务器进行安装
rpm -ivh vsftpd-3.0.2-28.el7.x86_64.rpm
三、修改配置
根据自己的实际需要进行配置,具体的文件&配置以及使用注意点下面列出来
#默认安装目录:/etc/vsftpd,里面有四个文件
ftpusers 黑名单文件,此文件里的用户不允许访问 FTP 服务器,总是生效
user_list 是否允许访问 FTP 服务器的用户列表,取决于userlist_enable和userlist_deny两项配置
vsftpd.conf 核心配置文件
vsftpd_conf_migrate.sh FTP服务
如果没有chroot_list,新建此文件:touch /etc/vsftpd/chroot_list
#修改配置,进入/etc/vsftpd,主要修改vsftpd.conf和user_list配置vsftpd.conf
anonymous_enable=no 是否启用匿名用户,为了安全选择关闭
pasv_promiscuous=YES
local_enable=YES 允许本地用户登录
write_enable=YES 允许写入(无论是匿名用户还是本地用户要实现上传就需要快开启它)
local_umask=022 设定上传文件的权限掩码
dirmessage_enable=YES 显示每个目录下的文件信息
xferlog_enable=YES 开启日志
port_enable=yes
connect_from_port_20=yes 主动请求的数据端口
pasv_enable=YES
pasv_min_port=11000
pasv_max_port=11100
xferlog_file=/var/log/vsftpd.log ftp日志目录
xferlog_std_format=YES
chroot_local_user=YES 所有文件列出用户, 可以切换到其他目录
chroot_list_enable=YES 若为NO,禁止用户登出自己的ftp主目录,无法离开.如果为YES,则所记录的用户将不被chroot.这里YES.
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
pam_service_name=vsftpd 设置PAM认证模块使用名称预设为vsftpd
userlist_enable=YES
userlist_deny=YES
tcp_wrappers=YES
allow_writeable_chroot=YES
listen_ipv6=NO
listen_port=10021 修改默认端口号,默认端口号21
max_clients=10240 限制并发客户端连接数,就是最多允许多少用户同时登录
max_per_ip=100 每个ip的最大client数目,并发连接数,就是一个IP最多同时下载几个文件
idle_session_timeout=0 空闲连接超时时间
data_connection_timeout=0 数据传输超时时间
pasv_address=[映射的外网IP]
在配置权限的时候大家容易混淆两个个文件和userlist_enable的关系,下面列出来
#(2)配置user_list
当userlist_enable=NO时,user_list文件不被使用,无论userlist_deny项为何值都是无效的,用户都允许登陆
当userlist_enable=YES时,userlist_deny=YES时:user_list是一个黑名单,即:所有出现在名单中的用户都会被拒绝登陆;
当userlist_enable=YES时,userlist_deny=NO时:user_list是一个白名单,即:只有出现在名单中的用户才会被准许登入(user_list之外的用户都被拒绝登入)
最后在修改配置文件后重启vsftp即可
# 操作ftp服务命令
查看FTP服务是否运行中:service vsftpd status
查看本地是否含有包含ftp的进程开启:ps -ef | grep ftp
FTP设置开机自动运行:chkconfig vsftpd on
关闭FTP开机自动运行:chkconfig vsftpd off
查看所有服务开启自动运行的情况:chkconfig --list
启动FTP服务:service vsftpd start\
停止FTP服务:service vsftpd stop\
重启FTP服务:service vsftpd restart
四、用户配置
#创建ftp用户
ftp用户名:testftp,密码testftp,并将用户绑定到 /var/ftp/testftp
useradd -d /var/ftp/testftp testftp
#设置密码:
passwd testftp
五、记录一个我在配置好用户以及权限后,卡了好久的问题。
vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
我在配置文件中设置用户不能跳出其主目录 chroot_list_enable=YES#限制访问自身目录
这是因为从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。
要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。或者你可以在vsftpd的配置文件中增加下列项:
allow_writeable_chroot=YES
另外:看到有朋友allow_writeable_chroot=YES 加在前面不行,放到最后重启就可以了