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]
问题延伸
- linux搭建FTP服务器
- centos安装vsftp
- 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
收藏了,哈哈。
谢谢,有问题欢迎提问,近日将会录制一份VSFTPD安装全过程的视频,分享给大家
Pingback: Centos中安装VSFTPD全过程【视频】 | 网家