一二三

centos6.3安装配置vsFTPd搭建FTP服务器
2013年3月28日 校对(近日将出相关视频)        今天给公司的...
扫描右侧二维码阅读全文
16
2012/12

centos6.3安装配置vsFTPd搭建FTP服务器

2013年3月28日 校对(近日将出相关视频)
       今天给公司的论坛搬家,搬到了一个Linux服务器上,论坛采用的discuz程序,因为使用的是远程附件方式,所以服务器上海需要搭建一个FTP服务器,系统是Centos6.3。于是翻出来以前我转载过来的文章,按照文章所诉进行操作结果结果发现问题多多,很多地方似是而非。如果完全按照文章中的步骤来呢基本上就是玩具根本没法用,除非你将防火墙和selinux全都关掉,但这样服务器的安全性可以要大大打个折扣了。

下面的文章已经根据我真实操作流程做了修改,添加了一些内容删除了一些内容;有什么疑问的话欢迎留言询问。

什么是VSFTPD

        vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开发源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。
关键字:VSFTPD,CentOS安装vsftpd,linux搭建ftp,搭建ftp服务器,centos搭建ftp服务器
[accordion title="目录" close="1"]

[/accordion]

 

问题延伸

  1. linux搭建FTP服务器
  2. centos安装vsftp
  3. centos安装ftp软件

 

安装VSFTPD

1、以管理员(root)身份执行以下命令
假设你是在桌面版的linux中尝试,并不是用root账号登陆的系统,那首先咱们将身份切换到root。

su -

输入密码后就可以切换到root账号了;

yum install vsftpd

2、设置开机启动vsftpd ftp服务

chkconfig vsftpd on

3、启动vsftpd服务

service vsftpd start

管理vsftpd相关命令

停止vsftpd: service vsftpd stop
重启vsftpd: service vsftpd restart

 

配置防火墙

编辑防火墙配置文件

vi /etc/sysconfig/iptables

在REJECT行之前添加如下代码

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

按照上述原文,我操作的时候是不能通过的,于是做了些更改;

-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

这样仅能够使客户端连接到ftp但无法进行任何操作所以还需要添加一段内容,至于65400到65410端口出处在文章后面了。

-A INPUT -p tcp --dport 65400:65410 -j ACCEPT

也就是说最后你在iptables中添加的应该是这些

-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -p tcp --dport 65400:65410 -j ACCEPT

保存和关闭文件,重启防火墙

service iptables restart

配置vsftpd服务器

默认的配置文件是/etc/vsftpd/vsftpd.conf,你可以用文本编辑器打开。

vi /etc/vsftpd/vsftpd.conf

添加ftp用户
下面是添加ftpuser用户,设置根目录为/home/wwwroot/ftpuser,禁止此用户登录SSH的权限,并限制其访问其它目录。
1、修改/etc/vsftpd/vsftpd.conf
将底下三行

#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list

改为

chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list

在使用过程中发现问题,这样仅仅可以连接到ftp但是无法进行读写操作,所以又在在文本最后面添加如下几段

pasv_min_port=65400
pasv_max_port=65410

3、增加用户ftpuser,指向目录/home/wwwroot/ftpuser,禁止登录SSH权限。

useradd -d /home/wwwroot/ftpuser -g ftp -s /sbin/nologin ftpuser

4、设置用户口令

passwd ftpuser

5、编辑文件chroot_list:

vi /etc/vsftpd/chroot_list

内容为ftp用户名,每个用户占一行,如:

peter
john

6、重新启动vsftpd

service vsftpd restart

另外,如果觉得以后管理ftp用户名嫌麻烦,可以使用centos官方发布的脚本管理。地址如下:
http://wiki.centos.org/HowTos/Chroot_Vsftpd_with_non-system_users
----------------
到这里你可以正常连接到ftp了,但是依然无法上传文件。是因为SElinux还没有正确的配置,在网上找了很多解决办法,结果发现要么是没有办法用,要么就是直接关掉SElinux;我并不想关掉SElinux这样会让我觉得很不安全。
几经折腾我终于想出办法了

setsebool -P allow_ftpd_full_access 1
setsebool -P allow_ftpd_anon_write 1

鸣谢:

本文大量引用http://www.vpsroll.net/jiaocheng/281.html

声明:转载请请注明出处:http://c.n-di.com

Last modification:August 30th, 2016 at 11:59 am

3 comments

  1. [...] 观察 发表在《centos6.3安装配置vsFTPd搭建FTP服务器》 [...]

  2. 一二三

    收藏了,哈哈。

    1. 观察
      @一二三

      谢谢,有问题欢迎提问,近日将会录制一份VSFTPD安装全过程的视频,分享给大家

Leave a Comment