centos架设FTP服务器
1.安裝vsftp在這里,我們架設的是虛擬用戶,所謂虛擬用戶就是沒有使用真實的帳戶,只是通過某種手段達到映射帳戶和設置權限的目的。
yum -y install vsftpd
在CentOS中,這樣就可以完成了一個簡單的匿名FTP的搭建。你可以通過訪問ftp://yourip來進行,不過這個FTP沒有任何權限。
2.啟動/重啟/關閉vsftpd服務器
[root@localhost ftp]# service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
OK表示重啟成功了.
3.與vsftpd服務器有關的文件和文件夾
vsftpd服務器的配置文件的是: /etc/vsftpd/vsftpd.conf
vsftpd服務器的根目錄,即FTP服務器的主目錄:/var/ftp/pub
如果你想修改服務器目錄的路徑,那么你只要修改/var/ftp到別處就行了
4.添加FTP本地用戶(即虛擬用戶,簡單方案)
有的FTP服務器需要用戶名和密碼才能登錄,就是因為設置了FTP用戶和權限.
FTP用戶一般是不能登錄系統的,只能進入FTP服務器自己的目錄中,這是為了安全.
這樣的用戶就叫做虛擬用戶了.實際上并不是真正的虛擬用戶,只是不能登錄SHELL了而已,沒權限登錄系統.
useradd -d /var/ftp -g ftp -s /sbin/nologin test
這個命令的意思是:
使用命令(useradd)添加test用戶,不能登錄系統(-s /sbin/nologin),自己的文件夾在(-d /var/ftp)),屬于組ftp(-g ftp)
然后你需要為它設置ftp登錄密碼 passwd test
passwd test
Changing password for user test.
New UNIX password:
Changing password for user test.New UNIX password:
注意:這里的密碼要求為字母和數字的組合才可以,如果不符合密碼驗證機制的話就修改不成功,會有各種報錯,“BAD PASSWORD: it’s WAY too short”,這是報密碼太短,不符合/etc/login.defs的設置,“BAD PASSWORD: it is based on your username”,這是密碼與帳號不能同名,這是不符合/etc/pam.d/passwd的設置。“BAD PASSWORD: it is based on a dictionary word”這是因為出現了字典里的字符串,如果你英文與數字組合使用,就不會報錯。
———————————————————————————————————-
1)我們在/etc/vsftpd/vsftpd.conf中做如下CentOS FTP服務配置:(復雜方案)
anonymous_enable=NO 設定不允許匿名訪問
local_enable=YES 設定本地用戶可以訪問。注:如使用虛擬宿主用戶,在該項目設定為NO的情況下所有虛擬用戶將無法訪問。
chroot_list_enable=YES 使用戶不能離開主目錄
xferlog_file=/var/log/vsftpd.log 設定vsftpd的服務日志保存路徑。注意,該文件默認不存在。必須要手動touch出來
ascii_upload_enable=YES
ascii_download_enable=YES 設定支持ASCII模式的上傳和下載功能。
pam_service_name=vsftpd PAM認證文件名。PAM將根據/etc/pam.d/vsftpd進行認證
以下這些是關于Vsftpd虛擬用戶支持的重要CentOS FTP服務配置項目。
默認vsftpd.conf中不包含這些設定項目,需要自己手動添加CentOS FTP服務配置。
guest_enable=YES 設定啟用虛擬用戶功能。
guest_username=ftp 指定虛擬用戶的宿主用戶。-CentOS中已經有內置的ftp用戶了
user_config_dir=/etc/vsftpd/vuser_conf 設定虛擬用戶個人vsftp的CentOS FTP服務文件存放路徑。
存放虛擬用戶個性的CentOS FTP服務文件(配置文件名=虛擬用戶名)
2)創建chroot list,將用戶ftp加入其中:
touch /etc/vsftpd/chroot_list
echo test >> /etc/vsftpd/chroot_list
3)進行認證(可以不認證):
首先,安裝Berkeley DB工具,很多人找不到db_load的問題就是沒有安裝這個包。
yum install db4 db4-utils
然后,創建用戶密碼文本/etc/vsftpd/vuser_passwd.txt ,注意奇行是用戶名,偶行是密碼
ftpuser1
ftppass1
ftpuser2
ftppass2
接著,.生成虛擬用戶認證的db文件
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
隨后,編輯認證文件/etc/pam.d/vsftpd,全部注釋掉原來語句
再增加以下兩句
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
最后,創建虛擬用戶個性CentOS FTP服務文件
mkdir /etc/vsftpd/vuser_conf/
vi /etc/vsftpd/vuser_conf/ftpuser1
內容如下:
local_root=/opt/var/ftp1 虛擬用戶的根目錄(根據實際修改)
write_enable=YES 可寫
anon_umask=022 掩碼
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
————————————————————————————————————————-
5、常見錯誤:
安裝完以后,可能發現連接ftp服務器,一般是由于SELinux的問題,原因如下:
他的系統是CentOS,是RH派系的。我把vsftpd安裝配置好了,以為大功告成,但客戶端訪問提示如下錯誤:
500 OOPS: cannot change directory:/home/ftp
原因是他的CentOS系統安裝了SELinux,因為默認下是沒有開啟FTP的支持,所以訪問時都被阻止了。
//查看SELinux設置
# getsebool -a|grep ftp
ftpd_disable_trans –> off
ftp_home_dir–>off
//使用setsebool命令開啟
# setsebool ftpd_disable_trans 1
# setsebool ftp_home_dir 1
由于操作系統一旦重啟后,這種設置需要重新設置,這里使用-P參數實現.
//setsebool使用-P參數,無需每次開機都輸入這個命令
# setsebool -P ftpd_disable_trans 1
# setsebool -P ftp_home_dir 1
//查看當前狀態是否是on的狀態
# getsebool -a|grep ftp
ftpd_disable_trans –> on
ftp_home_dir–>on
# service vsftpd restart
有關selinux的配置
如關閉,僅僅警告,強制等等 需要編輯/etc/sysconfig/selinux 默認是強制。
1.553 Could not create file
一般都是SELinux的問題,設置SELinux的一個值,重啟服務器即可。
setsebool -P ftpd_disable_trans 1
service vsftpd restart
2.500 OOPS: bad bool value in config file for: write_enable
注意你的CentOS FTP服務文件中保證每一行最后沒有任何空格,一般出錯就是在多余的空格上。
打開/etc/selinux/config
將selinux=enforcing 改成 permissive 或 disabled。
?enforcing強制模式,只要SELinux不允許,就無法執行;
?permissive警告模式,將該事件記錄,依然允許執行;
?disabled關閉SELinux;
?停用、啟用需要重啟計算機;
?使用setenforce切換enforcing與permissive模式不需要重啟計算機;
?getenforce及sestatus查看執行模式;
關閉selinux命令:setenforce 0
?
我的FTP無法訪問提示ftp: connect :未知錯誤號
以前問過這個問題,朋友們說是LINUX的防火墻沒有關閉
請問在字符方式下如何關閉我LINUX上的防火墻?
yongpeng
我的FTP無法訪問提示ftp: connect :未知錯誤號
service iptables stop
or
/etc/rc.d/init.d/iptables stop
nios
我的FTP無法訪問提示ftp: connect :未知錯誤號
謝謝你了,
LINUX 默認會起這個防火墻嗎??
順便說一下剛才發現一個查看服務的命令
/sbin/service –status-all
?
ftp:connect:未知錯誤號可能的原因是ftp服務沒有真正啟動成功,可以做以下幾步
1、查看兩臺機器間能否ping通2、關閉防火墻:service iptables stop (也可以chkconfig iptables off 這樣啟動是就關閉了,其他服務類似)
3、查看21端口,有沒有被其他暫用:netstat -ano | grep 21
如果被暫用,就修改ftp的默認端口
轉自:http://www.centoscn.com/CentosServer/ftp/2013/0728/727.html
總結
以上是生活随笔為你收集整理的centos架设FTP服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 读《史蒂夫•乔布斯传》(一)
- 下一篇: java计算机毕业设计Vue框架龙猫宠物