天天看點

vsftpd的快速安裝

環境:centos 5.9 32位

1.使用yum指令直接安裝:yum -y install vsftpd

然後為它建立日志檔案:touch /var/log/vsftpd.log

2.啟動與配置自啟動

使用chkconfig --list來檢視vsftpd服務啟動項情況;

如果看到的是如下顯示的結果:

vsftpd          0:off   1:off   2:off   3:off   4:off   5:off   6:off

服務全部都是off的,注意這裡的off表示的是伺服器啟動的時候是否會自啟動服務,我們使用如下指令來配置其自啟動:

chkconfig--level 2345 vsftpd on #2345對應的是上面對應的0-6項

檢視與管理ftp服務:

啟動ftp服務:service vsftpd start

檢視ftp服務狀态:service vsftpd status

重新開機ftp服務:service vsftpd restart

關閉ftp服務:service vsftpd stop

3.db_4資料庫維護工具安裝

#rpm –qa | grep db4

db4-devel-4.2.52-7.1

db4-4.2.52-7.1

db4-utils-4.2.52-7.1

db_load指令存在則不用再裝了,繼續下一步

否則

yuminstall db4 db4-utils 或者 yum install db4*(*表示安裝所有含db4字元的安裝包)

4.建立一個系統虛拟使用者

useradd-d /home/vsftpd -s /sbin/nologin vsftpd

sudochmod go+w /home/vsftpd -R

chmodgo+wr /home/vsftpd –R (不然配置項不起作用,不能上傳、寫目錄等)

5.建立認證資料庫檔案并設定檔案屬性

進行認證:

建立使用者密碼文本/etc/vsftpd/vuser_passwd.txt,注意奇行是使用者名,偶行是密碼

test

123456

接着,生成虛拟使用者認證的db檔案

db_load-T -t hash -f /etc/vsftpd/vuser_passwd.txt  /etc/vsftpd/vuser_passwd.db

編輯認證檔案/etc/pam.d/vsftpd

注釋掉/etc/pam.d/vsftpd中所有的内容,加入如下内容:

特别注意 以下差別

32位系統增加以下兩句:(備注:required和sufficient似乎都可以)

authsufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd

accountsufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd

64位系統增加以下兩句:(收集與網絡,未認證)

auth   required   /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd

accountrequired   /lib64/security/pam_userdb.sodb=/etc/vsftpd/vuser_passwd

6./etc/vsftpd/vsftpd.conf配置(主檔案配置,可将原來的檔案内容删除,将以下内容加入)

anonymous_enable=NO

local_enable=YES

user_config_dir=/etc/vsftpd/user_conf(重要,調取etc/vsftpd/user_conf下檔案,路徑寫對)

write_enable=NO

anon_upload_enable=NO

anon_mkdir_write_enable=NO

anon_other_write_enable=NO

chroot_local_user=YES

guest_enable=YES

guest_username=vsftpd(vsftpd使用者名,與第4歩建立的檔案)

listen=YES

listen_port=21       (預設21,改為其他端口後,遠端無法擷取檔案目錄)

pasv_min_port=30000

pasv_max_port=30999

dirmessage_enable=YES

pam_service_name=vsftpd

7.建立虛拟使用者個性服務檔案

/etc/vsftpd/user_conf/test    

将以下内容加入test

local_root=/opt    (注意權限)

write_enable=YES

local_umask=022

anon_upload_enable=YES

anon_mkdir_write_enable=YES(我這裡如果是NO,則無法上傳)

idle_session_timeout=600

data_connection_timeout=120

max_clients=10

max_per_ip=5

local_max_rate=50000

8.servicevsftpd restart

注意:紅色部分要一樣

遇到的一些錯誤

530錯誤

我這裡是配置檔案錯誤導緻的

550Permission denied

網上找了N多答案,主要有,設定selinux,目錄權限是否正确,可我這裡還是不行,後來我将虛拟使用者配置檔案

anon_upload_enable= YES,問題解決,原來虛拟使用者上傳,需要匿名上傳權限

selinux的設定

我的selinux關于ftp的設定

allow_ftpd_anon_write --> on

allow_ftpd_full_access--> on

allow_ftpd_use_cifs--> on

allow_ftpd_use_nfs--> on

allow_tftp_anon_write--> on

ftp_home_dir--> on

ftpd_connect_db--> on

ftpd_disable_trans--> on

ftpd_is_daemon--> on

httpd_enable_ftp_server--> on

tftpd_disable_trans--> on

設定selinux方法:

一種方法:

#setsebool-Pftpd_disable_trans 1

重新開機vsftpd服務

另一種方法

關掉selinux

vim/etc/sysconfig/selinux

selinux=disable

然後重新開機即可。

檢視SELinux設定

# getsebool -a|grep ftp

ftpd_disable_trans --> off

或者

ftp_home_dir-->off

解決方法:

//使用setsebool指令開啟

# setsebool ftpd_disable_trans 1

# setsebool ftp_home_dir 1

再次檢視目前狀态是否是on的狀态

ftpd_disable_trans --> on

ftp_home_dir-->on

/setsebool使用-P參數,無需每次開機都輸入這個指令

# setsebool -P ftpd_disable_trans 1

# setsebool -P ftp_home_dir 1

# service vsftpd restart

本文轉自 穿越防火牆 51CTO部落格,原文連結:http://blog.51cto.com/sjitwant/1409746

繼續閱讀