在RHEL4配置ftp服务详细的五个步骤


Ftp在每个操作系统上都是必不可少的,在RHEL4上也不例外,RHEL4配置ftp服务是一个繁琐的过程,下面把这个过程拆分成五大步骤进行讲解:

一、RHEL4配置ftp服务的基本配置
RHEL4自带的ftp服务是vsftp,即very secure ftp。ftp配置文件是/etc/vsftpd/vsftpd.conf
chkconfig --list vsftpd可以看到 说明在run level 5时,ftp服务是随着系统自动启动的
service vsftpd start/stop/restart可以启动、停止、重启ftp服务。

配置文件中做如下设置
anonymous_enable=YES    允许匿名用户登录
anon_upload_enable=YES    允许匿名用户上载文件,此项有效还有一个前提,即write_enable=YES
anon_mkdir_write_enable=YES    允许匿名用户创建新目录
anon_root=/ftpbase/public    指定匿名用户的根目录
anon_other_write_enable=YES    允许匿名用户删除文件
local_enable=YES    允许本地用户登录
chroot_local_user=YES    本地用户限制在家目录
local_umask=002    本地用户新增文件的umask值,取002是因为下面要增加的普通用户都属于ftp这个组,为了使这些用户可以完全控制ftpbase目录下的文件
anon_umask=002    匿名用户新增文件的umask值

在系统中添加用户
useradd -g ftp -d /ftpbase -c "Ftp user 1" ftpuser1
useradd -g ftp -d /ftpbase -c "Ftp user 2" ftpuser2
设置ftpuser1和ftpuser2的密码
passwd ftpuser1
passwd ftpuser1

建立目录
mkdir /ftpbase
mkdir /ftpbase/public
chown -R ftp:ftp /ftpbase
chown -R ftp:ftp /ftpbase/public
service vsftpd restart重启服务,之后就可以连接RHEL4上的ftp服务器了

二、RHEL4配置ftp服务的权限相关的若干问题
有了上面的设置之后其实还有权限相关的问题未解决
这里需要说一下的是对于目录而言,x权限表示的是可进入目录。
默认情况下匿名用户登录ftp后使用的系统用户名是ftp。public目录的权限设为755之后,匿名用户登录总是失败,报“500 OOPS: vsftpd: refusing to run with writable anonymous root”,此信息指出匿名用户对根目录不能有写权限,也就是只要public目录有u+w的权限,那么就都会报这个错,因此public目录的u权限中不可以有w。经检验使匿名用户可以看到此目录下的文件,并可下载,但不可删除的最小权限是504。有点奇怪的是为什么不是500,即other用户为什么也一定要有r权限才能确保匿名用户可以看到public下的内容。这里public目录的权限设成575,以便于属于ftp组的普通用户可以控制此目录。
public下再建子目录upload,upload目录权限设为775,使普通用户和匿名用户都有upload下的所有文件控制权限。

三、RHEL4配置ftp服务的PASV模式和防火墙
在dos控制台下使用windows自带的ftp命令连接RHEL4上的FTP没有问题,使用CuteFtp连接则连不上,后发现CuteFtp客户端在全局设置里使用了PASV模式来连接ftp服务器,改为PORT模式就可以正常连上了。
为了使用PASV模式,在/etc/vsftpd/vsftpd.conf中新增pasv_enable=YES一行并重启vsftpd,但是客户端使用PASV模式依然连不上服务器。发现是RHEL4的防火墙问题,PASV模式不仅需要客户端去连接服务器的控制端口(默认是21),还需要通过服务器返回的数据端口号去连接数据端口,这样RHEL4的防火墙必须允许客户端访问服务器提供的数据端口。

在/etc/vsftpd/vsftpd.conf中新增两行,把数据连接端口限制在55000~56000
pasv_min_port=55000
pasv_max_port=56000
在/etc/sysconfig/iptables中新增一行,允许客户端对55000~56000端口的访问
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 55000:56000 -j ACCEP
重启iptables和vsftpd服务即可

另外,windows自带的ftp工具是不支持PASV模式的,连接时就没有PASV选项可选。连接上之后使用ls等命令之后会有提示“200 PORT command successful. Consider using PASV.”,使用quote pasv命令服务器会返回“227 Entering Passive Mode (144,24,17,4,220,74)”的提示,但是事实上客户端并有把连接改为PASV模式,使用ls命令后还是会返回提示的。

四、RHEL4配置ftp服务的禁止为ftp而专设的用户从远程登录操作系统
新增的用户ftpuser1和ftpuser2是专为ftp登录而设的,需要禁止远程使用telnet和ssh等登录,在/etc/passwd文件中把
ftpuser1:x:501:50:FTP User 1 for test:/ftpbase:/bin/bash
ftpuser2:x:502:50:FTP User 2 for test:/ftpbase:/bin/bash
修改为
ftpuser1:x:501:50:FTP User 1 for test:/ftpbase:/sbin/nologin
ftpuser2:x:502:50:FTP User 2 for test:/ftpbase:/sbin/nologin

五、RHEL4配置ftp服务的中文显示问题
ftp正常使用后通过客户端上传了几个中文文件,但是使用telnet工具或ssh工具登录后中文字符显示为乱码,很多显示为问号“?”,本地登录后显示中文是没有问题的。
RHEL4默认的编码方式是UTF-8,安装时使用中文为默认语言则/etc/sysconfig/i18n中的第一行为LANG="zh_CN.UTF-8",把这一行改为LANG="zh_CN"后重启机器之后即可。必须注意的是客户端连接工具中的相关设置也必须更改,以SecureCRT为例,Session Option->Terminal->Appearance->Character必须设为default或者none,如果是UTF-8的话,那么还是会显示乱码。也有改成LANG="zh_CN.18030"的做法。

已上是RHEL4配置ftp服务的五大步骤,笔者对其进行了详细的讲解,对于在RHEL4配置ftp服务中所遇到的问题几乎都已解决,希望可以帮助大家完成RHEL4配置ftp服务


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3