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