centos6.5离线安装vsftpd,配置
1. 查看是否安装vsftp
# rpm -qa | grep vsftpd
如果没有提示则说明没有安装
如果提示版本号则说明已经安装
2. 下载vsftp http://rpmfind.net/linux/rpm2html/search.php?query=vsftpd(x86-64)
3. 安装vsftpd
在线安装
yum install -y vsftp
离线安装
[root@sem boot]# rpm -ivh vsftpd-2.2.2-13.el6_6.1.x86_64.rpm Preparing... ########################################### [100%] 1:vsftpd ########################################### [100%]
4.检查是否安装成功
[root@sem boot]# rpm -qa | grep vsftpd vsftpd-2.2.2-13.el6_6.1.x86_64
出现版本号,说明安装成功
5. 将ftp服务器设置为自动启动
chkconfig vsftpd on
或者
systemctl enable vsftpd.service
6. 启动服务
[root@sem boot]# service vsftpd start
为 vsftpd 启动 vsftpd: [确定]
7. 关闭服务
[root@sem boot]# service vsftpd stop
关闭 vsftpd: [确定]
8. 重启服务
[root@sem boot]# service vsftpd restart
关闭 vsftpd: [确定]
为 vsftpd 启动 vsftpd: [确定]
9. 开启端口两个端口 20,21
[root@sem boot]# iptables -I INPUT -i eth0 -p tcp --dport 21 -j ACCEPT [root@sem boot]# iptables -I OUTPUT -o eth0 -p tcp --sport 20 -j ACCEPT [root@sem boot]# /etc/rc.d/init.d/iptables save iptables:将防火墙规则保存到 /etc/sysconfig/iptables: [确定] [root@sem boot]# service iptables restart iptables:将链设置为政策 ACCEPT:filter [确定] iptables:清除防火墙规则: [确定] iptables:正在卸载模块: [确定] iptables:应用防火墙规则: [确定]
10. 测试
使用匿名账号登录,Name输入anonymous ,Password直接回车
[root@localhost ~]# ftp 10.172.4.76 Connected to 10.172.4.76 (10.172.4.76). 220 (vsFTPd 2.2.2) Name (10.172.4.76:root): anonymous 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x 2 0 0 4096 Oct 17 2014 pub
226 Directory send OK.
如果提示 227 Entering Passive Mode
由于服务器上的FTP进行TCP/IP筛选,仅允许特定的端口可以被客户端连接,所以无法使用PASV方式。找到了原因,解决办法也很简单,只需要关闭客户端的PASV方式,强制其用PORT方式访问服务器即可。
客户端登录FTP服务器后,用passive命令关闭客户端的PASV方式,如下:
ftp> passive
Passive mode off.
再次运行命令可打开
11. 配置
查找vsftpd安装位置
[root@sem boot]# whereis vsftpd vsftpd: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd.8.gz You have new mail in /var/spool/mail/root
yum安装的主要目录为上述的3个目录,其中配置文件vsftpd.conf在/etc/vsftpd中
默认配置文件: /etc/vsftpd/vsftpd.conf
cd /etc/vsftpd
先备份
cp vsftpd.conf vsftpd.conf_bak
然后编辑
vi vsftpd.conf
配置说明如下
anonymous_enable=YES # 是否开启匿名登录
local_enable=YES # 是否允许本地用户登录
write_enable=YES # 是否允许上传
local_umask=022 # 使用FTP的本地文件权限,默认为077,一般设置为022
#--------
# 如果允许匿名登录
#anon_upload_enable=YES #是否允许匿名用户上传文件,须将全局的write_enable=YES。
#anon_mkdir_write_enable=YES #anon_mkdir_write_enable=YES #是否允许匿名用户创建新文件夹并在文件夹内上传文件
#--------
# 是否激活目录欢迎信息功能
# 当用户用CMD模式首次访问服务器上某个目录时,FTP服务器将显示欢迎信息
# 默认情况下,欢迎信息是通过该目录下的.message文件获得的
# 此文件保存自定义的欢迎信息,由用户自己建立
dirmessage_enable=YES
#--------
xferlog_enable=YES # 激活上传/下载的日志
connect_from_port_20=YES # 启用FTP数据端口的数据连接
#chown_uploads=YES #设置是否改变匿名用户上传文件(非目录)的属主。默认值为NO
#chown_username=whoever #设置匿名用户上传文件(非目录)的属主名。建议不要设置为root
#xferlog_file=/var/log/xferlog #设置日志文件名和路径,默认值为/var/log/vsftpd.log
xferlog_std_format=YES #如果启用,则日志文件将会写成xferlog的标准格式,如同wu-ftpd 一般。
#idle_session_timeout=600 设置多长时间不对FTP服务器进行任何操作,则断开该FTP连接,单位为秒。
#data_connection_timeout=120 #设置建立FTP数据连接的超时时间,单位为秒。默认是120秒
#nopriv_user=ftpsecure # 运行vsftpd需要的非特权系统用户,缺省是nobody
#async_abor_enable=YES #设定支持异步传输的功能
#-------
# 是否以ASCII方式传输数据。默认情况下,服务器会忽略ASCII方式的请求。
# 启用此选项将允许服务器以ASCII方式传输数据
# 不过,这样可能会导致由"SIZE /big/file"方式引起的DoS攻击
#ascii_upload_enable=YES
#ascii_download_enable=YES
#--------
# 登录FTP服务器时显示的欢迎信息
# 如有需要,可在更改目录欢迎信息的目录下创建名为.message的文件,并写入欢迎信息保存后
#ftpd_banner=Welcome to blah FTP service.
#-------
# 黑名单设置。如果很讨厌某些email address,就可以使用此设定来取消他的登录权限
# 可以将某些特殊的email address抵挡住。
#deny_email_enable=YES
#-------
# 当上面的deny_email_enable=YES时,可以利用这个设定项来规定哪些邮件地址不可登录vsftpd服务器
# 此文件需用户自己创建,一行一个email address即可
#banned_email_file=/etc/vsftpd/banned_emails
#chroot_local_user=YES #用于指定用户列表文件中的用户是否允许切换到上级目录。默认值为NO。
#chroot_list_enable=YES #设置是否启用chroot_list_file配置项指定的用户列表文件。默认值为NO。
#chroot_list_file=/etc/vsftpd/chroot_list #用于指定用户列表文件,该文件用于控制哪些用户可以切换到用户家目录的上级目录。
#ls_recurse_enable=YES #若是启用此功能,则允许登入者使用ls –R(可以查看当前目录下子目录中的文件)这个指令。默认值为NO。
listen=YES # 是否允许监听,如果设置为YES,则vsftpd将以独立模式运行,由vsftpd自己监听和处理IPv4端口的连接请求
#--------
# 设定是否支持IPV6。如要同时监听IPv4和IPv6端口
# 则必须运行两套vsftpd,采用两套配置文件
# 同时确保其中有一个监听选项是被注释掉的
#listen_ipv6=YES
#--------
# 设置PAM外挂模块提供的认证服务所使用的配置文件名,即/etc/pam.d/vsftpd文件
# 此文件中file=/etc/vsftpd/ftpusers字段,说明了PAM模块能抵挡的帐号内容来自文件/etc/vsftpd/ftpusers中
pam_service_name=vsftpd
#--------
# 是否允许ftpusers文件中的用户登录FTP服务器,默认为NO
# 若此项设为YES,则user_list文件中的用户允许登录FTP服务器
# 而如果同时设置了userlist_deny=YES,则user_list文件中的用户将不允许登录FTP服务器,甚至连输入密码提示信息都没有
userlist_enable=YES
#--------
# 是否使用tcp_wrappers作为主机访问控制方式。
# tcp_wrappers可以实现linux系统中网络服务的基于主机地址的访问控制
# 在/etc目录中的hosts.allow和hosts.deny两个文件用于设置tcp_wrappers的访问控制
# 前者设置允许访问记录,后者设置拒绝访问记录。
# 如想限制某些主机对FTP服务器192.168.57.2的匿名访问,编缉/etc/hosts.allow文件,如在下面增加两行命令:
# vsftpd:192.168.57.1:DENY 和vsftpd:192.168.57.9:DENY
# 表明限制IP为192.168.57.1/192.168.57.9主机访问IP为192.168.57.2的FTP服务器
# 此时FTP服务器虽可以PING通,但无法连接
tcp_wrappers=YES
#--------
修改配置部分
anonymous_enable=NO # 关闭匿名登录
idle_session_timeout=600 #打开,设置多长时间不对FTP服务器进行任何操作,则断开该FTP连接
data_connection_timeout=120 #打开,建立FTP数据连接的超时时间
ascii_upload_enable=YES #打开 是否以ASCII方式上传数据
ftpd_banner=Welcome to blah FTP service. #欢迎信息
#----添加
userlist_deny=NO
#被动模式开放的端口--设置被动模式添加
pasv_enable=YES
pasv_min_port=30001
pasv_max_port=30025
12. 添加FTP用户
[root@sem vsftpd]# useradd filesync # 创建用户
[root@sem vsftpd]# passwd filesync # 设置密码
更改用户 filesync 的密码 。
新的 密码:
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
授权目录和权限
[root@sem vsftpd]# mkdir -p /home/filesync
[root@sem vsftpd]# chown -R filesync /home/filesync/
[root@sem vsftpd]# chmod -R 755 /home/filesync/
根据我们需要授权给用户的目录,可以创建也可以将已有的目录授权给上面添加的用户
还需要将用户添加到userlist中
# echo filesync >> /etc/vsftpd/user_list
可以直接到/etc/vsftpd/user_list文件中添加编辑删除用户。
13. 重启ftp服务使配置生效
service vsftpd restart
参考资源
https://www.cnblogs.com/findumars/p/7003147.html
https://www.itbulu.com/centos6-vsftpd.html
https://www.cnblogs.com/Confession/p/6813227.html
https://www.cnblogs.com/UncleWang001/p/9948150.html