centos6 install ftp server
vsftpd的檢測:可以使用命令來檢測是否安裝成功,命令如下:
[root@localhost ~]# rpm -qa|grep vsftpd
1.檢查是否安裝服務
使用chkconfig –list來查看是是否已經安裝了 vsftpd 服務,
如果已經安裝就可以在列表中找到,如果沒有就全新安裝。
使用yum命令直接安裝:yum -y install vsftpd
然後為它建立記錄檔:touch /var/log/vsftpd.log
2.配置自啟動
查看啟動配置:
chkconfig –list
預設情況下都是 off 。
vsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off 。
設定啟動配置:chkconfig –level 2345 vsftpd on
執行命令後在使用chkconfig –list查看如下
vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off 。
CentOS中vsftpd安裝與配置
查看與管理ftp服務:
啟動ftp服務:service vsftpd start
查看ftp服務狀態:service vsftpd status
重啟ftp服務:service vsftpd restart
關閉ftp服務:service vsftpd stop
上面的命令可以每一個輸入試試,走一圈之後又變成關閉狀態。
到這一步vsftpd的安裝和自動啟已經設定已經完成,但是現在還是不能串連的,還需修改他的設定檔,建立ftp虛擬使用者。
3.CentOS中vsftpd安裝與配置–基礎配置
修改vsftpd.conf 設定檔:
配置vsftp服務:vi /etc/vsftpd/vsftpd.conf
主要修改這些項目
anonymous_enable=NO #設定不允許匿名訪問
local_enable=YES #設定本機使用者可以訪問。註:如使用虛擬宿主使用者,在該項目設定為NO的情況下所有虛擬使用者將無法訪問。
chroot_list_enable=YES #使使用者不能離開主目錄
xferlog_file=/var/log/vsftpd.log #設定vsftpd的服務日誌儲存路徑。注意,該檔案預設不存在。必須要手動touch出來
ascii_upload_enable=YES #允許使用ASCII模式上傳
ascii_download_enable=YES #設定支援ASCII模式的上傳和下載功能。
pam_service_name=vsftpd #PAM認證檔案名稱。PAM將根據/etc/pam.d/vsftpd進行認證
預設vsftpd.conf中不包含以下設定項目,需要自己手動添加,可以添加在設定檔最後。
guest_enable=YES #設定啟用虛擬使用者功能。
guest_username=ftp #指定虛擬使用者的宿主使用者。centos 裡面已經有內建的ftp使用者了(註:此使用者在chroot_list_file=/etc/vsftpd/chroot_list檔案裡所指定的使用者)-RHEL/CentOS中已經有內建的ftp使用者了
user_config_dir=/etc/vsftpd/vuser_conf #設定虛擬使用者個人vsftp的RHEL/CentOS FTP服務檔案存放路徑。存放虛擬使用者個性的CentOS FTP服務檔案(設定檔名=虛擬使用者名稱)
CentOS中vsftpd安裝與配置
建立chroot list,將ftp使用者加入其中:
touch /etc/vsftpd/chroot_list
echo ftp>> /etc/vsftpd/chroot_list #指定虛擬使用者的宿主使用者
4.CentOS中vsftpd安裝與配置–使用者登入資訊配置
進行認證:
首先,安裝Berkeley DB工具,很多人找不到db_load的問題就是沒有安裝這個包。
yum install db4 db4-utils 或者 yum install db4*(*表示安裝所有含db4字元的安裝包)
然後,建立使用者密碼文本/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,開啟這檔案,用“#”注釋掉原先的所有內容,然後增加兩行。
32位系統增加以下兩句:auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
64位系統增加以下兩句:auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required /lib64/security/pam_userdb.sodb=/etc/vsftpd/vuser_passwd
最後,建立虛擬使用者個性服務檔案
mkdir /etc/vsftpd/vuser_conf/
vi /etc/vsftpd/vuser_conf/ftpuser1
內容如下:
local_root=/opt/var/ftp/ftpuser1 #虛擬使用者的根目錄(根據實際修改)
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
CentOS中vsftpd安裝與配置
CentOS中vsftpd安裝與配置
CentOS中vsftpd安裝與配置
CentOS中vsftpd安裝與配置
為目錄附許可權並重啟動vsftp服務:
mkdir /opt/var/ftp/ftpuser1
chmod 777 /opt/var/ftp/ftpuser1
service vsftpd restart
這樣所有配置就完成了,可以用ftp工具登陸試試:
賬戶是:ftpuser1 密碼是:ftppass1; 連接埠預設:21,ip地址伺服器位址。
常見問題:
在實際的操作中,經過上面的步驟,並不能正常訪問!!你還需要注意兩個問題。
防火牆:如果防火牆沒有配置愛過,你用ftp去串連,會發現連線逾時。這個時候可以用簡單暴力的方法,直接關閉防火牆 /etc/init.d/iptables stop 或開放相應的連接埠
/sbin/iptables -I INPUT -p tcp –dport 21 -j ACCEPT
/etc/rc.d/init.d/iptables save 。
這樣你就過了第一關
SELinux:經過防火牆的配置,你應該已經可以成功串連ftp,這個時候目錄是空的,你可以建立一個檔案或者上傳一個試試,又會報錯。這時你可以臨時關閉(不用重啟機器)SELinux : setenforce 0 。
經過上面的設定,ftp的功能應該全部可用。
如果遇到如下錯誤:
500 OOPS: bad bool value in config file for: write_enable
請檢查你的設定檔,每一行的後面是否有空格,或者其他多餘的內容。
service vsftpd start 開啟命令
service vsftpd restart 重啟
service vsftpd stop 停止
直接關閉防火牆 /etc/init.d/iptables stop 或開放相應的連接埠/sbin/iptables -I INPUT -p tcp –dport 21 -j ACCEPT /etc/rc.d/init.d/iptables save