Vsftpd 2.2.x安装和配置--centos7前的版本
原文链接:https://my.oschina.net/loubobooo/blog/1633367
1. 关闭防火墙和Selinux
Linux的防火墙是咱们新手的噩梦,很多情况会出现能ping通,但是访问不了Web页面。所以开始就干掉它!
1.1 关闭防火墙
[root@localhost ~]# /etc/init.d/iptables stop iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Flushing firewall rules: [ OK ] iptables: Unloading modules: [ OK ]
1.2 开机自动关闭防火墙
[root@localhost ~]# chkconfig iptables off
1.3 查看Selinux状态
[root@localhost ~]# sestatus SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: enforcing Mode from config file: enforcing Policy MLS status: enabled Policy deny_unknown status: allowed Max kernel policy version: 28
1.4 关闭selinux
[root@localhost ~]# vi /etc/selinux/config
修改 SELINUX=disabled ,重启机器。
注:永久开启->改成:SELINUX=enforcing
2. 安装并配置Vsftpd 2.2.x
2.1 安装Vsftpd
[root@localhost ~]# yum -y install vsftpd
2.2 在根目录下创建ftp文件夹
[root@localhost ~]# mkdir ftpfile
2.3 添加一个ftp用户
[root@localhost ~]# useradd loubobooo
2.4 重设ftpuser密码
[root@localhost ~]# passwd loubobooo
2.5 添加虚拟用户名
[root@localhost ~]# vim /etc/vsftpd/chroot_list
在空文本中增加ftp用户名
loubobooo
2.6 配置Vsftpd
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
修改
anonymous_enable=NO #修改默认断开连接的时间 idle_session_timeout=6000
在文件末增加如下代码,
ftpd_banner=Welcome to loubobooo's FTP service. local_root=/ftpfile use_localtime=YES # 设置是否启用chroot_list_file配置项指定的用户列表文件 chroot_list_enable=YES # 用于指定用户列表文件, chroot_list_file=/etc/vsftpd/chroot_list #开启被动模式,这里可以不开启 pasv_min_port=30000 pasv_max_port=30999 pasv_enable=YES
2.7 赋予文件夹用户和用户组的权限
[root@localhost ~]# chown -R loubobooo.loubobooo /ftpfile
3. 启动并验证
3.1 启动Vsftpd
[root@localhost ~]# service vsftpd restart
3.2 验证Vsftpd
[root@localhost ~]# vsftpd -version vsftpd: version 2.2.2
4. 配置Vsftpd的自启动
4.1 配置自启动
[root@localhost ~]# chkconfig vsftpd on
4.2 验证Vsftpd的自启动情况
[root@localhost ~]# chkconfig --list|grep vsftpd vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
其中2-5为on则已自启动成功
5. 报错解决及说明
5.1 验证遇到550拒绝访问请执行
解决:
[root@localhost ~]# setsebool -P ftp_home_dir 1
ftp_home_dir 为vsftpd所设置的目录
5.2 说明
说明:本次使用
操作系统:CentOS 6.8 64位
Vsftpd版本:2.2.2
centos7增加ftp端口
开放FTP端口的方法:
暂时开放 ftp 服务
firewall-cmd --add-service=ftp
永久开放 ftp 服务
firewall-cmd --add-service=ftp --permanent
永久关闭ftp服务
firewall-cmd --remove-service=ftp --permanent
重启防火墙让设定生效
systemctl restart firewalld
Centos7
记得很清楚,vsftpd安装后,不需要配置,本地用户就可以正常使用(登录、上传、下载)
这次配的就是不行,另起了个虚拟机,装了下,就是不需要配置,但是在一台机上,就是不行,只能登录,下载,不能上传,先用了另一台机转一下,太麻烦。
网上也找了许久,试了很多方法,都没有用。
突然看到个说selinux 配置有问题,导致ftp用户权限有问题。
在机器上执行如下命令:
[root@venn05 hadoop]# sestatus -b | grep ftp ftpd_anon_write off ftpd_connect_all_unreserved off ftpd_connect_db off ftpd_full_access off ftpd_use_cifs off ftpd_use_fusefs off ftpd_use_nfs off ftpd_use_passive_mode off httpd_can_connect_ftp off httpd_enable_ftp_server off tftp_anon_write off tftp_home_dir off
参数全是off,依稀记得,以前好像改过这些参数。
那个博客说,要改参数“ftp_home_dir”,问题是,我都没有这个参数
尝试改了下“tftp_home_dir”,无效:
setsebool -P ftp_home_dir on #修改 setsebool -P ftp_home_dir off #改回
看了下参数,突然想修改
[root@venn05 hadoop]# setsebool -P ftpd_full_access on #修改参数 [root@venn05 hadoop]# service vsftpd restart #重启ftp