重要提示:
已经全部部署后,还是无法正常访问 FTP 文件内容,使用 Windows 资源管理器访问 FTP 文件夹出现 “打开 FTP 服务器上的文件夹时发生错误,请检查是否有权限访问该文件夹。” 错误。
解决方法:IE 浏览器 > Internet 选项 > 高级 > 将 “使用被动 FTP(用于防火墙和 DSL 调制解调器的兼容)” 选项去掉 > 确定,完成即可。
一、安装 vsftpd
[root@localhost ~]# yum install -y vsftpd
Loaded plugins: fastestmirror
Setting up Install Process
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository epel is listed more than once in the configuration
Determining fastest mirrors
base | 3.7 kB 00:00
epel | 3.2 kB 00:00
epel/primary | 3.2 MB 00:00
epel 12490/12490
extras | 3.4 kB 00:00
updates | 3.4 kB 00:00
updates/primary_db | 1.9 MB 00:00
Resolving Dependencies
There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
The program yum-complete-transaction is found in the yum-utils package.
--> Running transaction check
---> Package vsftpd.x86_64 0:2.2.2-24.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================
Installing:
vsftpd x86_64 2.2.2-24.el6 base 156 k
Transaction Summary
==============================================================================================================================
Install 1 Package(s)
Total download size: 156 k
Installed size: 340 k
Downloading Packages:
vsftpd-2.2.2-24.el6.x86_64.rpm | 156 kB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : vsftpd-2.2.2-24.el6.x86_64 1/1
Verifying : vsftpd-2.2.2-24.el6.x86_64 1/1
Installed:
vsftpd.x86_64 0:2.2.2-24.el6
Complete!
[root@localhost ~]# service vsftpd status #检查 ftp 运行状态,未运行
vsftpd is stopped
[root@localhost ~]# service vsftpd start #启用 vsftpd
Starting vsftpd for vsftpd: [ OK ]
[root@localhost ~]# service vsftpd status #检查 ftp 运行状态,已运行
vsftpd (pid 12437) is running...
[root@localhost ~]# cat /etc/passwd #查看已建立的本地用户
.....
hxx:x:1001:1001::/home/hxx:/bin/bash
[root@localhost ~]# passwd hxx #选择 hxx 为 ftp 登录用户,更改该用户密码(可选)
......
[root@localhost hxx]# cd /home/hxx #切换成 hxx 的目录
二、使用前配置
1、关闭 SElinux
[root@localhost hxx]# vi /etc/sysconfig/selinux
# SELINUX=enforcing
SELINUX=disabled
2、防火墙开启 21 端口传输
[root@localhost hxx]# vi /etc/sysconfig/iptables
......
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
......
COMMIT
3、重启防火墙服务
[root@localhost hxx]# service iptables restart
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
iptables: Applying firewall rules: [ OK ]
4、开机启动
[root@localhost hxx]# chkconfig vsftpd on
5、如果使用 Windows 资源管理器访问 FTP 文件夹出现 “打开 FTP 服务器上的文件夹时发生错误,请检查是否有权限访问该文件夹。” 错误。
解决方法:IE 浏览器 > Internet 选项 > 高级 > 将 “使用被动 FTP(用于防火墙和 DSL 调制解调器的兼容)” 选项去掉 > 确定,完成即可。
6、使用 Windows 资源管理器或 FileZilla 类软件登录 FTP 文件夹。
如果没有禁用匿名用户,可使用 anonymous+空密码登录,默认有一个 pub 文件夹
三、vsftpd 加持配置
1、配置目录为:
[root@localhost ~]# cd /etc/vsftpd
vsftpd.conf #为主要配置文件
ftpusers #配置禁止访问 FTP 服务器的用户列表
user_list #配置用户访问控制
2、配置 vsftpd
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
########### 用户配置 ###########
# 允许本地用户登录
local_enable=YES
# 本地用户的写权限
write_enable=YES
# 修改连接端口(若修改,即前面防火墙开启 21 端口传输也要同时修改)
#listen_port=2121
######### 阻止匿名访问 ###########
# 允许匿名登录
anonymous_enable=NO
########### 限制目录 ###########
# 限制所有用户都在家目录
#chroot_local_user=YES
# 调用限制在家目录的用户名单
chroot_list_enable=YES
# 限制在家目录的用户名单所在路径
chroot_list_file=/etc/vsftpd/chroot_list
######### 日志设置 ###########
# 日志文件路径设置
xferlog_file=/var/log/vsftpd.log
# 默认情况下,vsftpd 是用 GMT 做为它的时间的,所以和操作系统的时间不一致!!!
# 所以加入下面这一行,来同步 vsftpd 与操作系统的时间
use_localtime=YES
编辑完成后保存配置,重新启动 FTP 服务
[root@localhost ~]# service vsftpd restart
3、修改 vsftpd 的默认根目录 /var/ftp/pub 到另一个目录
修改 ftp 的根目录只要修改以下文件
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
加入如下几行:
local_root=/var/www/html
chroot_local_user=YES
anon_root=/var/www/html
注:local_root 针对系统用户;anon_root 针对匿名用户。
重新启动服务:
[root@localhost ~]# service vsftpd restart
任何一个用户 ftp 登录到这个服务器上都会 chroot 到/var/www/html 目录下。
0 条评论