vsftp源碼下載
⑴ 虛擬機linux系統解壓vsftp.tar.gz後怎麼手動安裝
這個嘛,簡單說下。如果是生產使用。
去官網或者centos git下載release版本。非root用戶安裝,--prefix=/usr/local/vsftpd-x-y-x 安裝目錄大概選擇這個. 當然也可以參照deb build。
參照centos sftpd spec文件,看看裡面的編譯選項,都打開了哪些?如果直接configure很可能出現各種隱藏的系統配置和漏洞問題。如有需要,對源碼進行改修修正。
make之後做測試。make test。
配置項測試。
⑵ 求,在linux 中,搭建ftp伺服器的方法, 謝謝,
FTP不安全,萬不得已情況下,才可使用。
vsftp安全性相對較好
可採用sftp代替FTP
Linux另外常用的FTP:
proftp
vsftp
pureftp
下面以VSFTP為例:
安裝方式一:源碼包安裝
useradd -s /bin/false -d /var/ftp ftpvirtual
cd ......
make
make install
cp vsftpd.conf /etc
/usr/local/sbin/vsftpd & #啟動
安裝方式二:rpm安裝,推薦
rpm -ivh vsftpd-2.0.1-5.i386.rpm
或者 yum install vsftpd
/etc/init.d/vsftpd start
兩種方式安裝完成後,配置方法都一樣,下面開始講配置。
首先講主配置文件常見配置
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO #禁止匿名登錄
local_enable=NO #禁止本地用戶登錄
write_enable=YES #對本地用戶的寫許可權
local_umask=022 #本地用戶文件生成掩碼
dirmessage_enable=YES #顯示隱藏文件
xferlog_enable=YES #啟用上傳和下載日誌
connect_from_port_20=YES #伺服器將啟用FTP數據埠的連接請求
xferlog_std_format=YES #伺服器將使用標準的ftpd xferlog日誌格式
pam_service_name=vsftpd #設置PAM認證服務的配置文件名稱
userlist_enable=YES #設置文件中指定的用戶是否可以訪問vsftpd伺服器
listen=YES #FTP伺服器將處於獨立啟動模式
tcp_wrappers=YES #使用tcp_wrappers作為主機訪問控制方式
chroot_local_user=YES #將FTP本地用戶禁錮在宿主目錄中
chroot_list_enable=YES #將用戶禁錮在宿主目錄中
listen_address=192.168.0.2 #偵聽地址
pasv_enable=YES #是否允使用被動模式,默認是允許的。
pasv_min_port=10000 #指定使用被動模式時打開埠的最小值
pasv_max_port=10004 #指定使用被動模式時打開埠的最大值。
max_clients=100 #設置FTP伺服器所允許的最大客戶端連接數,值為0時表示不限制
max_per_ip=5 #同一IP地址允許的最大客戶端連接數,值為0時表示不限制,即線程
local_max_rate=500000 #設置本地用戶的最大傳輸速率,單位為bytes/sec,值為0時表示不限制
anon_max_rate=200000 #設置匿名用戶的最大傳輸速率,單位為bytes/sec,值為0表示不限制
use_localtime=YES #在vsftp之中的時間默認值是顯式GMT時間,因此我們會發現上面的時間與我們時寄存取的時間差八小時。改了這一項就好了。
listen_port=10021 改埠
one_process_model=NO yes可增加性能,增加負載,便降低安全,建議NO
nopriv_user=nobody 默認以nobody運行vsftp
對外服務,建議使用stand alone方式啟動,性能好。
僅內部人員,建議用super daemon啟動,修改如下:
listen=NO
……略
vsftp默認使用GMT時間,建議修改如下:
use_localtime=YES
/etc/vsftpd.ftpusers #保存不允許進行FTP登錄的本地用戶帳號,提高系統的安全性
/etc/vsftpd.user_list
#禁止vsftpd.user_list中的用戶
userlist_enable=YES
userlist_deny=YES
#僅允許vsftpd.user_list中的用戶
userlist_enable=YES
userlist_deny=NO
日誌:
vsftpd_log_file=/var/log/vsftpd.log
下面開始講vsftp四種「用戶認證」的方式
一、匿名用戶 ftp anonymous
/var/ftp 默認主目錄
在/etc/vsftpd/vsftpd.conf中:
anonymous_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES #可刪除
chmod -R 777 /var/ftp/pub/
修改/var/ftp/pub的SELinux許可權
執行以下命令,修改/var/ftp/pub這目錄的類型:
chcon -R -t ftpd_anon_rw_t /var/ftp/pub/
anon_root=/var/www/html/ftp #改匿名用戶的宿主目錄
二、本地用戶
默認支持,使用各自的宿主目錄。不安全
local_root=/opt #新增這一項,改成其他路徑
三、虛擬用戶 PAM文件方式 推薦
建立虛擬用戶口令庫文件
# cat logins.txt
mike
pwabcd
john
pw1234
生成vsftpd的認證文件
db_load -T -t hash -f logins /etc/vsftpd/vsftpd_login.db
chmod 600 /etc/vsftpd/vsftpd_login.db
新創建虛擬用戶所需的PAM配置文件
cat /etc/pam.d/vsftpd.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
新創建虛擬用戶的系統用戶所要訪問的目錄並設置相應許可權
# useradd -s /bin/false -d /home/ftpsite ftpvirtual
# chmod 700 /home/ftpsite
#設置vsftpd.conf配置文件,支持虛擬用戶
guest_enable=YES
guest_username=ftpvirtual
pam_service_name=vsftpd.vu
user_config_dir=/etc/vsftpd/vsftpd_user_conf #添加用戶配置文件目錄設置
/etc/vsftpd/vsftpd_user_conf/mike (同名),這里沒有的設置默認按vsftpd.conf的設置執行
anon_world_readable_only=NO #可以瀏覽FTP目錄和下載文件
anon_upload_enable=YES #用戶可以上傳文件,等同於 write_enable=yes 允許上傳
anon_mkdir_write_enable=YES #具有建立和刪除目錄的權利
anon_other_write_enable=YES #具有文件改名和刪除文件的許可權
local_root=/data/userspace #設置虛擬用戶登錄後的主目錄
anon_max_rate=1024000 #以Bytes/s為單位,這里限8Mbit,范圍大概在80%到120%之間
四、虛擬用戶 mysql認證方式 推薦
1. mysql安裝見mysql筆記
2.1 openssl-0.9.8e 源程序預編譯時在日誌中可能出現md5.h "Present But Cannot Be Compiled的錯誤,卸載下面某些包可能解決問題。
cyrus-sals-sql cyrus-sasl-ntlm cyrus-sasl-gssapi cyrus-sasl-devel openldap-devel
然後移除系統可能自帶的:
mv /usr/bin/openssl /usr/bin/openssl.OFF
mv /usr/include/openssl /usr/include/openssl.OFF
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
配置庫文件搜索路徑
#echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
#ldconfig -v
2.2 或者安裝openssl-0.9.8e的rpm包
3. pam_mysql-0.7RC1.tar.gz
#./configure --with-mysql=/usr/local/mysql --with-openssl=/usr/local/ssl
如果mysql是rpm安裝的,則不帶--with-mysql參數,如果openssl是rpm安裝的,參數為--with-openssl
make;make install
注意pam_mysql.so路徑,可能在/usr/lib/security/pam_mysql.so或/lib/security/pam_mysql.so
vi /etc/pam.d/vsftp.mysql #新建,僅兩行
auth required /lib/security/pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftp table=users usercolumn=name passwdcolumn=passwd crypt=2
account required /lib/security/pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftp table=users usercolumn=name passwdcolumn=passwd crypt=2
4.0 准備資料庫、表和數據
mysql> create database vsftp;
mysql> grant select on vsftp.* to vsftpd@localhost identified by '123456';
mysql> grant select on vsftp.* to [email protected] identified by '123456';
mysql> use vsftp;
mysql> create table users (
-> id int AUTO_INCREMENT NOT NULL,
-> name char(20) binary NOT NULL,
-> passwd char(48) binary NOT NULL,
-> primary key(id)
-> );
mysql> insert into users(name,passwd) values('hlc',password('hlc'));
mysql> insert into users(name,passwd) values('holly',password('holly'));
5.0 修改主配置文件
vi /etc/vsftpd/vsftpd.conf
guest_enable=YES
guest_username=vsftp
listen=YES
pam_service_name=vsftpd.mysql
以上完成了vsftp的配置,下面是補充:
dirmessage_enable=YES #設置歡迎語 在每個目錄下建立.message,寫入歡迎語即可。
db_load支持包(前面三個即可):
db4
db4-devel
db4-utils
db4-java
db4-tcl
Linux建議關閉selinux或征對FTP不做任何安全
setsebool -P -ftpd_disable_trans on
setsebool -P -allow_ftpd_full_access on
servie vsftpd restart
或者需要重啟伺服器
底下列出FTP訪問中所出現數字代碼的含意。
110 重新啟動標記應答。
120 服務在多久時間內ready。
125 數據鏈路埠開啟,准備傳送。
150 文件狀態正常,開啟數據埠。
200 命令執行成功。
202 命令執行失敗。
211 系統狀態或是系統求助響應。
212 目錄的狀態。
213 文件的狀態。
214 求助的訊息。
215 名稱系統類型。
220 新的聯機服務ready。
221 服務的控制埠關閉,可以注銷。
225 數據鏈接開啟,但無傳輸動作。
226 關閉數據埠,請求的文件操作成功。
227 進入passive mode。
230 用戶登錄。
250 請求的文件操作完成。
257 顯示目前的路徑名稱。
331 用戶名稱正確,需要密碼。
332 登入時需要帳戶信息。
350 請求的操作需要進一部的命令。
421 無法提供服務,關閉控制連結。
425 無法開啟數據鏈路。
426 關閉聯機,終止傳輸。
450 請求的操作未執行。
451 命令終止:有本地的錯誤。
452 未執行命令:磁碟空間不足。
500 格式錯誤,無法識別命令。
501 參數語法錯誤。
502 命令執行失敗。
503 命令順序錯誤。
504 命令所接的參數不正確。
530 未登入。
532 儲存文件需要賬戶登入。
550 未執行請求的操作。
551 請求的命令終止,類型未知。
552 請求的文件終止,儲存位溢出。
553 未執行請求的的命令,名稱不正確。
⑶ 在哪裡下載vsftp伺服器端
ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.5.tar.gz
⑷ 在ubuntu下編譯vsftpd出現問題,修改過Makefile和vsf_findlibs.sh。但是還是出現下面的問題
你是學生嗎?
我沒有裝個這個,一般裝這個編譯不成功都是缺少什麼庫,或者找不到庫路徑,我不知道你為什麼要改Makefile(是哪個大神指導的嗎。。。),一般這個不都是自動生成的嗎,不建議去改這些東西。。。
一般源碼安裝都是這樣的步驟:
./configure --prefix=<一個你有許可權的安裝路徑>
make
make install
如果make不成功,就是你缺少庫,或者找不到庫的路徑(把庫路徑加到PATH里就可以了),如果少庫的話,再想辦法裝上少的庫吧
⑸ 在RedHat Linux上搭建ftp伺服器的步驟
1、下載源碼到伺服器,其下載地址是 ftp://vsftpd.beasts.org/users/cevans/,當前的版本是vsftpd-2.0.6.tar.gz 。強烈建議使用源碼安裝,即可擺脫類似rpm包依賴的困惑,又可以實現在不同unix/linux下自如的工作。2、解壓安裝:tar zxvf vsftpd-2.0.5.tar.gz ; make; make install3、添加ftp的用戶,如果用戶數目不多,簡單些,用系統用戶吧。Useradd –d /home/sery sery ;passwd ******.4、拷貝配置文件,這里有2個。Cp vsftpd.conf /etc/vsftpd.conf ;cp Redhat/vsftpd.pam /etc/pam.d/ftp .不拷貝vsftpd.pam這個文件,將導致ftp用戶不能登陸的問題。這個文件在debian下也是可以的。5、修改配置文件/etc/vsftpd.conf。這個配置文件是vsftpd的關鍵所在,修改下列值,以實現不同的功能:(1)修改的部分:把 local_enable=yes write_enable=yes和local_umask=022前面的注釋取消。(2)增加部分:listen=YES(ftp作為獨立的守護進程)chroot_local_user=yes(用戶被定位在自己的主目錄里,用cd / 並不能切換到根目錄)cmds_allowed=ABOR,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RETR,RMD,RNFR,RNTO,SITE,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST(只許上傳文件和目錄,但不許刪除。注意:這些必須一行寫完)6、啟動ftp服務。Vsftpd&我安裝完成後,卻無法運行:報錯如下:500 00PS: could not bind listening IPv4 socket埠有沖突。查看下:#netstat -utl |grep 21 是不是被佔用還真有耶。因為是redhat9所以想到了xinetd因為xinetd已經啟動了vsftpd,而vsftpd設置成了stardalone模式,所以,先停止xinetd服務, service xinetd stop ,然後:/usr/local/sbin/vsftpd &OK啟動正常。改埠:在vsftpd.conf最後加:listen_port=2121取消anonymous 登入 anonymous_enable=NO老大原文提到,讓用戶不能切換到別的目錄,需要添加一個文件:vim /etc/vsftpd/chroot_list 加入你所要限制的用戶vsftpd.conf也去掉相應的注釋:chroot_list_file=/etc/vsftpd/chroot_list
⑹ 如何在ubuntu中安裝設置ftp伺服器
1、更新軟體源,保證源是最新的,這樣有利於下面在線通過apt-get install命令安裝ftp。
2、使用sudo apt-get install vsftp命令安裝vsftp,安裝軟體需要root許可權,我們使用sudo來暫時獲取。
3、安裝好ftp後默認是會自動創建ftp用戶的,然後設置ftp用戶的密碼,輸入sudo passwd ftp,然後輸入密碼,再確認密碼。
4、創建ftp用戶的家目錄,使用sudo mkdir /home/ftp命令
5、設置ftp家目錄的許可權,我這里為方便直接使用sudo chmod 777 /home/ftp命令將許可權設置為777,當然你可以根據自己需求進行設置。
6、對/etc/vsftpd.conf配置文件進行一定的修改。使用 sudo gedit /etc/vsftpd.conf打開配置文件,如果你喜歡vi或vim編輯器也可以使用它們打開。
7、將配置文件中」anonymous_enable=YES 「改為 「anonymous_enable=NO」(是否允許匿名ftp,若不允許選NO)
取消如下配置前的注釋符號:
local_enable=YES(是否允許本地用戶登錄)
write_enable=YES(是否允許本地用戶寫的許可權)
chroot_local_user=YES(是否將所有用戶限制在主目錄)
chroot_list_enable=YES(是否啟動限制用戶的名單)
chroot_list_file=/etc/vsftpd.chroot_list(可在文件中設置多個賬號)
8、然後重啟ftp服務,使用命令sudo service vsftpd restart重啟ftp服務。
9、測試ftp,復制一些文件到/home/ftp目錄下
方法一:在瀏覽器中輸入ftp://localhost,網頁登錄。
方法二:在終端中輸入ftp localhost,然後輸入用戶名與密碼實現登錄。
另外:如果登錄ftp總是出現密碼錯誤,可以將/etc/vsftpd.conf配置文件的pam_service_name=vsftpd改為pam_service_name=ftp,即可解決。