歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux服務器 >> 在RHEL4配置ftp服務詳細的五個步驟

在RHEL4配置ftp服務詳細的五個步驟

日期:2017/3/2 16:40:03   编辑:Linux服務器

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 © Linux教程網 All Rights Reserved