CentOS6 配置FTP服务器
Posted Zip Zou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS6 配置FTP服务器相关的知识,希望对你有一定的参考价值。
安装CentOS6.5
为了保证测试环境的准确和纯净,笔者选用了CentOS6.5进行安装,并且选择最小化安装。该版本系统有个特点,即不安装其他过多的第三方库。这样可以有多个优点:
- 系统安装速度快
- 依赖冲突少
安装完成CentOS后,我们只有一个root用户,如果不想使用其他角色用户,可以不新建用户。若要新建用户,我们可以执行以下命令进行:
# 创建用户testuser,并建立目录,使用缺省bash
useradd testuser
# 修改用户testuser密码
passwd testuser
# 由于Linux中,输入密码不回显,在修改密码时,需要保证两次密码一致
# 使用su切换用户testuser
su testuser
# 执行完后,将会切换到新建的testuser,详细使用,请参照Linux命令
为了使用,我们可能需要安装一些其他的库,如:
- Vim编辑器
- seinfo工具
- ftp客户端工具
- man命令工具
- wget下载工具
- links文本浏览器工具
安装好上述工具后,我们可以着手开始安装vsftpd服务:
# 在非root用户下安装vsftpd
sudo yum install -y vsftpd
安装完毕后,可以使用 sudo service vsfptd status
查看vsftpd服务的状态,若显示已停或正在运行,则表示ftp服务安装成功,或使用man命令查看vsftpd服务是否存在。
安装成功后,我们可以将该服务加入到开机自启动,避免每次开机都要开启服务的麻烦。
# 添加开机自启动服务
sudo chkconfig vsftpd on
查看ftp所需的端口,是否已经开启
# 查看iptables所开放的端口,若出现dpt:21表示21端口已开放
sudo /etc/init.d/iptables status
若21端口未开放,我们需要手动添加iptables记录,开放21端口,供外来用户访问。
编辑文件 /etc/sysconfig/iptables
添加三行记录 -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
,-A INPUT -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT
,-A INPUT -p tcp -m state --state NEW -m tcp --dport 1000:2000 -j ACCEPT
,添加后,重启防火墙生效 sudo service iptables restart
,再执行上述命令,即可查看21端口是否开放!
配置vsftpd服务
在上述准备工作结束后,即可开始配置vsftpd服务,首先备份配置文件:/etc/vsftpd/vsftpd.conf
。
备份后,可首先配置匿名用户访问ftp服务,首先在该配置文件中添加三行,开启匿名用户的权限:
# 匿名上传文件权限
anon_upload_enable=YES
# 匿名创建文件夹权限
anon_mkdir_write_enable=YES
# 匿名用户其他权限(删除、重命名)
anon_other_write_enable=YES
开启后,ftp匿名访问配置成功,但Windows资源管理器,连接ftp服务器时,使用的是被动连接的方式,而默认被动连接,并未配置,因此为了能够通过Windows资源管理器连接该服务器,接下来可以配置被动连接,添加以下行:
# 被动连接开启
pasv_enable=YES
# 设置被动连接的端口范围
pasv_min_port=1000
pasv_max_port=2000
# 主动连接开启
port_enable=YES
在centos中,默认开启了selinux,对Linux进行保护,因此我们需要开启一系列的selinux权限,使得能够外界客户端访问该服务器。
执行:seinfo -b |grep ftp
查看selinux关于ftp的一系列布尔值的设置,如图:
在该列表中,我们需要将:
- ftp_home_dir
- allow_ftpd_anon_write
- allow_ftpd_full_access
设置为1,执行:
sudo setsebool ftp_home_dir 1
sudo setsebool allow_ftpd_anon_write 1 # 匿名用户权限
sudo setsebool allow_ftpd_full_access 1
设置完权限后,即可通过Windows资源管理器访问ftp服务器,并上传和删除文件,如图:
测试成功后,表明匿名用户已经配置成功,紧接着配置实体用户。
配置实体用户访问FTP服务器
我们先确定,我们需要创建两个用户,分别是:ftp1、ftp2,并且我们将这两个用户,都加入ftp组中,这两个用户仅用于登录ftp,不可登录系统。首先执行用户的添加命令:
sudo groupadd ftp
# 建立用户组
sudo useradd ftp1 -s /sbin/nologin -g ftp
# 建立ftp1
sudo useradd ftp2 -s /sbin/nologin -g ftp
# 建立ftp2
sudo passwd ftp1
sudo passwd ftp2
# 修改密码
在/home目录下,分别创建了两个用户的主目录,我们需要修改其权限,便于ftp用户组的用户,可以进行查看
sudo chmod 750 /home/ftp1
sudo chmod 750 /home/ftp2
# 修改目录权限
如此,用户及其准备工作已经完成,接下来继续配置vsftpd,编辑conf文件即可。
使用vim编辑: /etc/vsftpd/vsftpd.conf
保证如下几行:
local_enable=YES
# 启用本地用户
# 保证本地用户写权限
write_enable=YES
# 本地用户的目录
chroot_local_user=YES
保证后,即可登录测试,可成功登录,且可进行读写操作,表示配置成功:
若配置本地用户成功,则可以将匿名用户禁用。禁用匿名登录,将对应的conf文件中行:anonymous_enable=YES
修改为:anonymous_enable=NO
即可。
总结
- 在centos中,通过防火墙及selinux共同对系统进行保护,若需要开放权限,需要同时更改防火墙设置和selinux设置
- 首先对匿名用户进行配置,配置完匿名后,可再配置本地用户,避免其他情况
以上是关于CentOS6 配置FTP服务器的主要内容,如果未能解决你的问题,请参考以下文章