CentOS5.4安装配置vsftpd

来源:互联网 发布:思乐数据 编辑:程序博客网 时间:2024/05/13 02:37

 

centOS5.4 安装配置vsftpd

1.查看有没有安装vsftpd: 
rpm -qa | grep vsftpd 
2.yum安装vsftpd: 
yum install vsftpd 
3.rpm安装vsftpd: 
    可以从下面两个地方获得最新的vsftpd的RPM包https://www.redhat.com/或者http://www.rpmfind.net/ 
安装命令: 
rpm -Uvh vsftpd-1.1.3-8.i386.rpm 
4.设置每次开机时自动运行及手工启动它: 
chkconfig vsftpd on 
service vsftpd start 
netstat -tl 可以查看ftp端口是否在侦听了! 
5.配置文件 
/etc/vsftpd/ftpusers 和 /etc/vsftpd/user_list,#不能登陆FTP的用户; 
/etc/vsftpd/vsftpd.conf 
#anonymous_enable=YES 
anonymous_enable=NO     #设定不允许匿名用户访问 
chroot_local_user=YES   #把系统内所有的FTP用户都限制在家目录中 
6.设定个FTP目录 
修改 /var/www 目录属性: 
$ chmod -R 777 /var/www 递归地给此目录下所有文件和子目录的读、写、执行权限 
$ chgrp -R ftp   /var/www 递归地把此目录及该目录下所有文件和子目录的组属性设置成ftp组 
7.增加FTP用户 
adduser -d /var/www -g ftp -s /sbin/nologin 用户名 #增加用户,组是FTP,目录是/var/www 
passwd 用户名 #设定密码 
Changing password for user beinan. 
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully. 
8.重启FTP 
service vsftpd restart 
9.如果ftp服务器连接失败,错误提示: 
500 OOPS: cannot change directory:/home/******* 
500 OOPS: child died 
当你看到以上提示时,试着在输入以下命令解决 
setsebool -P ftpd_disable_trans 1 
service vsftpd restart 
第一行中的-P参数是为了以后不需要每次开机都输入这个命令 
10.用户管理 
userdel 选项 用户名   #删除用户 
常用的选项是-r,它的作用是把用户的主目录一起删除。 
passwd 选项 用户名 #修改口令 
passwd -l 用户名 锁定口令,即禁用账号。 
passwd -u 用户名 口令解锁。 
passwd -d 用户名 使账号无口令。 
passwd -f 用户名 强迫用户下次登录时修改口令。 
如果默认用户名,则修改当前用户的口令。 
如果是超级用户,可以用下列形式指定任何用户的口令: 
passwd 用户名 
passwd -d 用户名 此命令将用户的口令删除,这样用户下一次登录时,系统就不再询问口令 
11.是否想修改21端口呢? 
先修改防火墙,增加其FTP端口,下面使用921 
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 921 -j ACCEPT 
/etc/init.d/iptables restart   #重启防火墙 
/etc/vsftpd/vsftpd.conf 里增加加   listen_port=921 
/etc/rc.d/init.d/vsftpd restart    #重启vsftpd 
netstat -an |grep 921             #查看端口是否正常启动: 
有时客户端反应很慢,可以使用被动模式
经常听见有人讨论PORT和PASV,到底两者有何区别?   答:防火墙有很多种,其中有一些会禁止那些不是从内部网络IP发出的连接请求。而ftp协议是个很老的东东,没有考虑这个问题。可以这样简单描述一般ftp的工作原理:client对server发出请求:“嗨,我的xx端口正等着你传送数据呢,sever听到这个请求,就会建立一个连接,指向这个端口,并且开始传送数据。这就回到了我们的问题,如果发出请求的client在防火墙的后面,而这个防火墙禁止外部IP建立连接,那么当然server(在外部)不能建立与client的连接。所以,过了几年,人们修改了ftp协议以应付这种情况。这就是passive mode,工作原理如下:client向server发出passive命令,server回答说:“数据在xx端口等你,自己来拿。” 而这回则由client建立指向server的连接,从而取得数据。这就避免了防火墙的限制。  为什么PORT方式比PASV方式安全?  FTP传输过程中要求建立一个专门的连接来传输数据,建立连接有两个方法:一个就是FTP Server打开一个端口,Client可以去连接这个端口来建立连接。这就是PASV方式。一个就是FTP Client打开一个端口,Server去连接这个端口来建立连接。这就是PORT方式。显然,如果服务器打开了一个端口,就意味着向互联网打开了一个端口。所以PORT方式比PASV方式安全。如果有很多机器都要连这个FTP,那都这样改,很麻烦,得让VSFTPD支持被动模式才行:a.首先配置vi /etc/vsftpd/vsftpd.conf文件,加入pasv_enable=YESpasv_max_port=30100pasv_min_port=30000(上面的30000--30100端口号可以是其它的,在此举例)b.防火墙配置开放:vi /etc/sysconfig/iptables添加下面二行-A RH-Firewall-1-INPUT -p tcp --dport 30000:30100 -j ACCEPT-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

FTP需要2个端口,一个端口是作为控制连接端口,也就是21这个端口,用于发送指令给服务器以及等待服务器响应;另一个端口是数据传输端口,端口号为20(仅PORT模式),是用来建立数据传输通道的,主要有3个作用:

 

1.从客户向服务器发送一个文件。

2.从服务器向客户发送一个文件。

3.从服务器向客户发送文件或目录列表。

 

注意:所有FTP服务器软件都支持PORT方式,大部分FTP服务器软件PORT方式和PASV方式都支持,有些FTP服务器不支持PASV方式都支持,故造成了PASV 模式失败,正在尝试 PORT错误 或者 数据Sock错误。对症下药,解决的方法其实很简单――取消PASV模式

 

 

2.具体的方法

 

1)在ie中如何启用或者取消PASV模式:

 

如果要在ie里启用或关闭PASV方式,先打开IE,在菜单里选择:工具 -> Internet选项 -> 高级,在“使用被动ftp”前面打上钩或者去掉钩,不过需要IE6.0以上才支持。

 

 

2)FTP下载工具取消被动模式的方法:

 

Cute FTP 3.5英文版:FTP>Settings>Options>Firewall,将“PASV mode”前复选框中的打勾去掉。

Cute FTP3.5中文版:FTP>设置―>选项―>防火墙,“PASV方式(A)”前复选框中的打勾去掉。

Cute FTP4.0中文版:右击你所建立的ftp站点―>选择属性(properties)―>去掉"use PASV mod" 选择项

Cute FTP Pro2.0中文版:编辑―>全局设置―>连接―>连接类型,“PASV/PORT”下拉选项菜单选择PORT

Leap FTP2.7.2Sites>Site Manager>Advanced,将“Use PASV mode”前复选框中的打勾去掉。

flashfxp: 选项->参数->代理->去掉“使用被动模式”

flashget: 选项->参数->代理服务器->编辑->将“Use PASV mode”前复选框中的打勾去掉。