安装ftp
一. Redhat 安装FTP
1 . 首先查询是否安装vsftp
[root@localhost root]# rpm -qa|grep vsftpd
vsftpd-1.1.3-8
没有安装VSFTP,下载渠道:
http://download.csdn.net/detail/chenyong19871223/3877250
安装VSFTPD
[root@localhost tmp]# rpm -ivh vsftpd-1.1.3-8.i386.rpm
warning: vsftpd-1.1.3-8.i386.rpm: Header V3 DSA signature: NOKEY, key ID db42a60e
Preparing... ########################################### [100%]
1:vsftpd ########################################### [100%]
[root@localhost tmp]# which vsftpd
/usr/sbin/vsftpd
2 . 现在就可以直接启动vsftp了启动
[root@localhost root]# /etc/rc.d/init.d/vsftpd start
Starting vsftpd for vsftpd: [ OK ]
3 . 控制其他用户
vsftpd的文档结构其主配置文件只有一个:/etc/vsftpd/vsftpd.conf,所做的修改主要是围绕它进行,
此外还有一些附加的文件,我将几个重要的说明如下:
/etc/pam.d/vsftpd
这里定义了采用pam的方式进行身份验证,它是根据/etc/vsftpd.ftpusers文件进行验证的,
凡是在这个文件里面列出的用户无法登陆ftp
/etc/vsftpd.user_list
当配置文件vsftd.conf中的参数userlist_enable和userlist_deny设置为YES之后,此文件生效,凡是在此文件里面列出的用户就无法登陆ftp
注:上面的两个文件看起来功能雷同,其实不然,vsftpd.ftpusers是采用外挂的PAM程序进行验证时所需要的,而vsftd.user_list则是vsftp本身的验证机制.也就是双重验证,无疑时更加安全.既然作用一样,所以这两个文件的内容也最好写的一样/etc/vsftpd.chroot_list 此文件要自行建立,当vsftpd.conf中的参数chroot_list_enable和chroot_list_file启用后,此文件里面的用户就登陆ftp以后就只能在自己的主目录下活动,不能到处逛./var/ftp匿名用户登陆后的主目录.
说明:ftp的工作方式分为两种
主动(active):当客户端的连接上server的控制端口(21)后,当需要传输数据时,由server主动开启端口(20)连接client
被动(passive):控制端口的连接方式与上面一样,只不过当要传数据时,仍是由client发起连接在redhat上采用的软件是vsftpd,对它进行配置.
当然每次使用FTP都必须把服务启动,我们可以设置开机自启动:
方法1:在/etc/rc.local 文件下加入如下信息 /usr/local/bin/vsftpd &
一. Redhat 安装FTP
1 . 首先查询是否安装vsftp
[root@localhost root]# rpm -qa|grep vsftpd
vsftpd-1.1.3-8
没有安装VSFTP,下载渠道:
http://download.csdn.net/detail/chenyong19871223/3877250
安装VSFTPD
[root@localhost tmp]# rpm -ivh vsftpd-1.1.3-8.i386.rpm
warning: vsftpd-1.1.3-8.i386.rpm: Header V3 DSA signature: NOKEY, key ID db42a60e
Preparing... ########################################### [100%]
1:vsftpd ########################################### [100%]
[root@localhost tmp]# which vsftpd
/usr/sbin/vsftpd
2 . 现在就可以直接启动vsftp了启动
[root@localhost root]# /etc/rc.d/init.d/vsftpd start
Starting vsftpd for vsftpd: [ OK ]
3 . 控制其他用户
vsftpd的文档结构其主配置文件只有一个:/etc/vsftpd/vsftpd.conf,所做的修改主要是围绕它进行,
此外还有一些附加的文件,我将几个重要的说明如下:
/etc/pam.d/vsftpd
这里定义了采用pam的方式进行身份验证,它是根据/etc/vsftpd.ftpusers文件进行验证的,
凡是在这个文件里面列出的用户无法登陆ftp
/etc/vsftpd.user_list
当配置文件vsftd.conf中的参数userlist_enable和userlist_deny设置为YES之后,此文件生效,凡是在此文件里面列出的用户就无法登陆ftp
注:上面的两个文件看起来功能雷同,其实不然,vsftpd.ftpusers是采用外挂的PAM程序进行验证时所需要的,而vsftd.user_list则是vsftp本身的验证机制.也就是双重验证,无疑时更加安全.既然作用一样,所以这两个文件的内容也最好写的一样/etc/vsftpd.chroot_list 此文件要自行建立,当vsftpd.conf中的参数chroot_list_enable和chroot_list_file启用后,此文件里面的用户就登陆ftp以后就只能在自己的主目录下活动,不能到处逛./var/ftp匿名用户登陆后的主目录.
说明:ftp的工作方式分为两种
主动(active):当客户端的连接上server的控制端口(21)后,当需要传输数据时,由server主动开启端口(20)连接client
被动(passive):控制端口的连接方式与上面一样,只不过当要传数据时,仍是由client发起连接在redhat上采用的软件是vsftpd,对它进行配置.
设置防火墙
打开/etc/sysconfig/iptables
添加下面两行内容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
保存后退出,然后重启防火墙服务
service iptables restart
当然每次使用FTP都必须把服务启动,我们可以设置开机自启动:
方法1:在/etc/rc.local 文件下加入如下信息 /usr/local/bin/vsftpd &
方法2:使用如下命令# chkconfig vsftpd on
关于错误:cannot change directory://home/....
是因为SE配置的关闭了ftp的原因。
使用命令
getsebool ftpd_disable_trans
能够查看当前的状态假如不是on
那么是输入命令
setsebool ftpd_disable_trans 1
当然也能够加入-P参数 以便无需每次开机都输入这个命令
setsebool -P ftpd_disable_trans 1
selinux的问题也能够使用 管理工具中的 selinux management 来调整相关配置。
如果你在配置过程中使用了如上方法还是没有解决问题,请检查vsftpd的用户运行权限,是以哪个用户或者是组来运行的,把home下面的那个目录加上权限即可,一般把目录的所属组改为ftp用户组就ok了 而且要给读写执行权限!