CentOS6 配置FTP服务器

Posted Zip Zou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS6 配置FTP服务器相关的知识,希望对你有一定的参考价值。

安装CentOS6.5

为了保证测试环境的准确和纯净,笔者选用了CentOS6.5进行安装,并且选择最小化安装。该版本系统有个特点,即不安装其他过多的第三方库。这样可以有多个优点:

  1. 系统安装速度快
  2. 依赖冲突少

安装完成CentOS后,我们只有一个root用户,如果不想使用其他角色用户,可以不新建用户。若要新建用户,我们可以执行以下命令进行:

# 创建用户testuser,并建立目录,使用缺省bash
useradd testuser
# 修改用户testuser密码
passwd testuser
# 由于Linux中,输入密码不回显,在修改密码时,需要保证两次密码一致
# 使用su切换用户testuser
su testuser
# 执行完后,将会切换到新建的testuser,详细使用,请参照Linux命令

为了使用,我们可能需要安装一些其他的库,如:

  1. Vim编辑器
  2. seinfo工具
  3. ftp客户端工具
  4. man命令工具
  5. wget下载工具
  6. 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即可。

总结

  1. 在centos中,通过防火墙及selinux共同对系统进行保护,若需要开放权限,需要同时更改防火墙设置和selinux设置
  2. 首先对匿名用户进行配置,配置完匿名后,可再配置本地用户,避免其他情况

以上是关于CentOS6 配置FTP服务器的主要内容,如果未能解决你的问题,请参考以下文章

()centos6.8安装配置ftp服务器

centos6.8配置FTP普通用户除了家目录外还能访问其他目录

Linux配置ftp服务

centos6.5下安装vsftp配置与注意事项

CentOS6.8 安装FTP及添加用户

centos6.5 最小化安装FTP虚拟账号配置