歡迎您光臨本站 註冊首頁

centos架設FTP伺服器

←手機掃碼閱讀     火星人 @ 2014-03-08 , reply:0

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的默認埠

本文出自 「愛在7元錢」 博客,請務必保留此出處http://oakcdrom.blog.51cto.com/1940330/813259


[火星人 ] centos架設FTP伺服器已經有757次圍觀

http://coctec.com/docs/linux/show-post-46249.html