① 如何對CentOS FTP服務配置
vsftpd作為FTP伺服器,在Linux系統中是非常常用的。下面我們介紹如何在centos系統上安裝vsftp。
什麼是vsftpd
vsftpd是一款在Linux發行版中最受推崇的FTP伺服器程序。特點是小巧輕快,安全易用。
vsftpd 的名字代表」very secure FTP daemon」, 安全是它的開發者 Chris Evans 考慮的首要問題之一。在這個 FTP 伺服器設計開發的最開始的時候,高安全性就是一個目標。
安裝vsftpd
1、以管理員(root)身份執行以下命令
yum install vsftpd
2、設置開機啟動vsftpd ftp服務
chkconfig vsftpd on
3、啟動vsftpd服務
service vsftpd start
管理vsftpd相關命令:
停止vsftpd: service vsftpd stop
重啟vsftpd: service vsftpd restart
配置防火牆
打開/etc/sysconfig/iptables文件
vi /etc/sysconfig/iptables
在REJECT行之前添加如下代碼
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
保存和關閉文件,重啟防火牆
service iptables start
配置vsftpd伺服器
默認的配置文件是/etc/vsftpd/vsftpd.conf,你可以用文本編輯器打開。
vi /etc/vsftpd/vsftpd.conf
添加ftp用戶
下面是添加ftpuser用戶,設置根目錄為/home/wwwroot/ftpuser,禁止此用戶登錄SSH的許可權,並限制其訪問其它目錄。
1、修改/etc/vsftpd/vsftpd.conf
將底下三行
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
改為
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
3、增加用戶ftpuser,指向目錄/home/wwwroot/ftpuser,禁止登錄SSH許可權。
useradd -d /home/wwwroot/ftpuser -g ftp -s /sbin/nologin ftpuser
4、設置用戶口令
passwd ftpuser
5、編輯文件chroot_list:
vi /etc/vsftpd/chroot_list
內容為ftp用戶名,每個用戶佔一行,如:
peter
john
6、重新啟動vsftpd
service vsftpd restart
另外,如果覺得以後管理ftp用戶名嫌麻煩,可以使用centos官方發布的腳本管理。地址如下:
http://wiki.centos.org/HowTos/Chroot_Vsftpd_with_non-system_users
出現的錯誤
1、500 OOPS: cannot change directory
解決方法:
在終端輸入命令:
setsebool -P ftpd_disable_trans 1
service vsftpd restart
就OK了!
原因:這是因為伺服器開啟了selinux,這限制了FTP的登錄。
② vps centos 6 64bit怎麼安裝ftp伺服器
1.先檢查有沒有安裝 rpm -q vsftpd
如果沒有安裝 yum install vsftpd
2.先關閉防火牆進行調試.
service iptables stop
或者一步到位 添加規則允許21埠通行
vi /etc/sysconfig/iptables
添加一條
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
為了讓FLASHFXP之類的軟體更好的連接伺服器,得讓VSFTPD支持被動模式才行:
b.防火牆配置開放:
-A INPUT -p tcp --dport 30000:30100 -j ACCEPT
重啟防火牆即可
service iptables restart
這時應該可以用 winscp進行 SFTP連接了 ROOT帳戶
現在開始設置FTP 默認的已經可以用匿名登錄了
二。備份 etc/vsftpd/vsftpd.conf
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
編輯vsftpd.config文件 vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
設定不允許匿名用戶訪問。
為了讓FLASHFXP之類的軟體更好的連接伺服器,得讓VSFTPD支持被動模式才行,上面已經開通相應埠防火牆,在最後加入
pasv_enable=YES
pasv_max_port=30100
pasv_min_port=30000
(上面的30000--30100埠號可以是其它的,在此舉例)
/usr/sbin/setenforce 0 立刻關閉 SELINUX
#mkdir /tmp/test //首先創建好目錄
#adser -d /tmp/test -g ftp -s /sbin/nologin test
//-s /sbin/nologin是讓其不能登陸系統,-d 是指定用戶目錄為/tmp/test ,即該賬戶只能登陸ftp,卻不能用做登陸系統用。-g 是指定為FTP用戶組
#passwd test
Changing password for user beinan.//接下來會出現讓你設置新的密碼
**************************************************
【如果要刪除用戶,用下面代碼:
userdel test //userdel + 用戶 即可刪除ftp用戶】
***********************************************************
有必要的話 設置TEST目錄許可權
修改/var/www目錄屬性:
$ chmod -R 777 /var/www 遞歸地給此目錄下所有文件和子目錄的讀、寫、執行許可權
$ chgrp -R ftp /var/www 遞歸地把此目錄及該目錄下所有文件和子目錄的組屬性設置成ftp組
三。接著 限制用戶目錄,不得改變目錄到上級
修改/etc/vsftpd/vsftpd.conf
將這兩行
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
注釋去掉
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
新增一個文件: /etc/vsftpd/chroot_list
內容寫需要限制的用戶名:
test
重新啟動vsftpd
# service vsftpd restart
四。最後為了防止伺服器由於斷電、重啟等現象發生,導致ftp進程在開機後未啟動,將其添加到開機啟動文件中:
(1)找到/etc/rc.local文件
(2)打開該文件,在最後一行添加:service vsftpd start
(3)保存,退出
③ centos 怎麼開啟ftp服務
yum -y install vsftpd
chkconfig --level 235 vsftpd
/etc/init.d/vsftpd start
④ 求高手,想在CentOS下面搭個FTP伺服器
一:安裝vsftpd
查看是否已經安裝vsftpd
1.rpm -qa | grep vsftpd
2.#如果沒有,就安裝,並設置開機啟動
3.yum -y install vsftpd
4.chkconfig vsftpd on
二:基於虛擬用戶的配置
所謂虛擬用戶就是沒有使用真實的帳戶,只是通過映射到真實帳戶和設置許可權的目的。虛擬用戶不能登錄CentOS系統。
修改配置文件
打開/etc/vsftpd/vsftpd.conf,做如下配置
1.anonymous_enable=NO #設定不允許匿名訪問
2.local_enable=YES #設定本地用戶可以訪問。註:如使用虛擬宿主用戶,在該項目設定為NO的情況下所有虛擬用戶將無法訪問
3.chroot_list_enable=YES #使用戶不能離開主目錄
4.ascii_upload_enable=YES
5.ascii_download_enable=YES #設定支持ASCII模式的上傳和下載功能
6.pam_service_name=vsftpd #PAM認證文件名。PAM將根據/etc/pam.d/vsftpd進行認證
7.以下這些是關於vsftpd虛擬用戶支持的重要配置項,默認vsftpd.conf中不包含這些設定項目,需要自己手動添加
8.guest_enable=YES #設定啟用虛擬用戶功能
9.guest_username=ftp #指定虛擬用戶的宿主用戶,CentOS中已經有內置的ftp用戶了
10.user_config_dir=/etc/vsftpd/vuser_conf #設定虛擬用戶個人vsftp的CentOS FTP服務文件存放路徑。存放虛擬用戶個性的11.CentOS FTP服務文件(配置文件名=虛擬用戶名
進行認證
12.chroot_list_file=/etc/vsftpd/vuser_passwd.txt
首先,安裝Berkeley DB工具,很多人找不到db_load的問題就是沒有安裝這個包。
1.yum install db4 db4-utils
然後,創建用戶密碼文本/etc/vsftpd/vuser_passwd.txt ,注意奇行是用戶名,偶行是密碼
1.test
2.123456
接著,生成虛擬用戶認證的db文件
1.db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
隨後,編輯認證文件/etc/pam.d/vsftpd,全部注釋掉原來語句,再增加以下兩句:
1.auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
2.account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
最後,創建虛擬用戶配置文件
1.mkdir /etc/vsftpd/vuser_conf/
2.vi /etc/vsftpd/vuser_conf/test #文件名等於vuser_passwd.txt裡面的賬戶名,否則下面設置無效
3.內容如下
4.local_root=/ftp/www #虛擬用戶根目錄,根據實際情況修改
5.write_enable=YES
6.anon_umask=022 #掩碼
7.anon_world_readable_only=NO
8.anon_upload_enable=YES
9.anon_mkdir_write_enable=YES
10.anon_other_write_enable=YES
設置Selinux(如果你的selinux是開啟的話)
1.setsebool -P ftp_home_dir=1 #設置ftp可以使用home目錄
2.sersebool -P allow_ftpd_full_access=1 #設置ftp用戶可以有所有許可權
設置FTP根目錄許可權
1.mkdir /ftp/www #創建目錄
2.chmod R 755 /ftp
3.chmod R 777 /ftp/www
最新的vsftpd要求對主目錄不能有寫的許可權所以ftp為755,主目錄下面的子目錄再設置777許可權
設置防火牆
打開/etc/sysconfig/iptables
在「-A INPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT」,下添加:
1.-A INPUT m state --state NEW m tcp p dport 21 j ACCEPT
然後保存,並關閉該文件,在終端內運行下面的命令,刷新防火牆配置:
1.service iptables restart
OK,運行「service vsftpd start」,你就可以訪問你的FTP伺服器了。
配置PASV模式
vsftpd默認沒有開啟PASV模式,現在FTP只能通過PORT模式連接,要開啟PASV默認需要通過下面的配置
打開/etc/vsftpd/vsftpd.conf,在末尾添加
1.pasv_enable=YES #開啟PASV模式
2.pasv_min_port=40000 #最小埠號
3.pasv_max_port=40080 #最大埠號
4.pasv_promiscuous=YES
在防火牆配置內開啟40000到40080埠
1.-A INPUT m state --state NEW m tcp p dport 40000:40080 j ACCEPT
重啟iptabls和vsftpd
1.service iptables restart
2.service vsftpd restart
現在可以使用PASV模式連接你的FTP伺服器了~
常見錯誤:
問題一:
可我按照配置步驟走完一遍後發現每次都是
530 Login incorrect
找來找去才發現我把驗證用的vsftpd.vu創建在了etc的根目錄,而不是/etc/pam.d/vsftpd.vu
問題二:
修改了上面的問題,還是不能登錄,提示我:
500 OOPS:bad bool value in config file for:anon_world_readable_only
google了一把發現有人說是配置文件的末尾不能有空格,打開自己的配置文件一看,不止anon_world_readable_only這一行末尾,整個文件的末尾都有幾個空格。唉,復制粘貼網頁上的配置要謹慎啊。
問題三:
500 OOPS: vsftpd: cannot locate user specified in 'guest_username':aaA
這個問題很奇葩,最後發現是最後大小寫的問題,應該是『aaa』
所以注意一下細節,安裝上面的步驟來是很簡單的
⑤ centos怎麼搭建ftp伺服器
方法/步驟
一:安裝vsftpd
查看是否已經安裝vsftpd
二:基於虛擬用戶的配置
所謂虛擬用戶就是沒有使用真實的帳戶,只是通過映射到真實帳戶和設置許可權的目的。虛擬用戶不能登錄CentOS系統。
修改配置文件
配置文件直接貼出來吧
三:使用Berkeley DB進行認證
yum install db4 db4-utils
然後,創建用戶密碼文本/etc/vsftpd/vuser_passwd.txt ,注意奇行是用戶名,偶行是密碼
接著,生成虛擬用戶認證的db文件
編輯認證文件/etc/pam.d/vsftpd,全部注釋掉原來語句,再增加以下兩句:
最後,創建虛擬用戶配置文件
設置FTP根目錄許可權
最新的vsftpd要求對主目錄不能有寫的許可權所以ftp為755,主目錄下面的子目錄再設置777許可權
添加防火牆,把ftp的21埠開放 vi /etc/sysconfig/iptables
經過以上步驟我們就完成了ftp伺服器的搭建,讓我們暢游ftp吧
⑥ centos6 搭建的ftp伺服器無法上傳大文件
看下vsftp配置文件
idle_session_timeout=600
data_connection_timeout=300
再試試
其他的要看下日誌文件看下是否有什麼報錯 比如你伺服器做了配額
⑦ 求centos6上的vsftpd詳細配置。
linux ftp上傳文件_linux中ftp的配置管理
vsftpd是UNIX類操作體繫上運行的辦事器名稱,它的名兒代表「very secure FTP daemon」,安全性是其預設與研發的1個重要方針。它可運行在Linux、Solaris等體系中,撐持許多其它的FTP 辦事器不撐持的特性:
很是高的安全性需求
帶放寬期限定
傑出的可伸縮性
始於虛擬用戶的有可能性
分配虛擬IP地址的有可能性
1、vsftpd的開始工作
#service vsftpd start
要是許可用戶佚名拜候,需始於用戶ftp和目次/var/ftp
# mkdir /var/ftp
# useradd –d /var/ftp ftp
2、vsftpd的配備布置
Vsftpd的配備布置文件儲存安放在/etc/vsftpd/vsftpd.conf 咱們可按照現實數要對於如次信息舉行配備布置:
1. 毗連選項
☆監聽地址和節制埠
⑴ listen_address=ip address
界說主機在哪1個IP 地址上監聽FTP哀求。即在哪1個IP地址祭祀物品給FTP辦事。
⑵ listen_port=port_value
指定FTP辦事器監聽的端標語。默許值為21。
2. 機能與負載節制
☆超時選項
⑴ idle_session_timeout=
餘暇用戶對於話的超不時間,如果是跨越最近時間沒有數值的傳送或者是指令的輸入,則會被迫斷線。默許值是300s
⑵ accept_timeout=numerical value
接管成立聯機的超時設定。默許值為60s
☆負載選項
⑴ max_clients= numerical value
界說FTP辦事器最大的兵書毗連數。當跨越此毗連數時,辦事器拒絕客戶端毗連。默許值為0,暗示不限最大毗連數。
⑵ max_per_ip= numerical value
界說每個IP地址最大的並發毗連數量。跨越這個數量將會拒絕毗連。此選項的設置將會影響到網際快車、迅雷什麼的的多線程下載software。默許值為0,暗示不限定。
⑶ anon_max_rate=value
設定佚名用戶的最大數值傳道輸送速率,以B/s為單元。默許無。
⑷ local_max_rate=value
設定用戶的最大數值傳道輸送速率。以B/s為單元。默許無。此選項對於所有的用戶都起作用。
3. 用戶選項
vsftpd的用戶分為3類:佚名用戶、當地用戶(local user)及虛擬用戶(guest)
☆ 佚名用戶
⑴ anonymous_enable=YES|NO
節制是不是許可佚名用戶登錄
⑵ ftp_username=
佚名用戶施用的體系用戶名。默許環境下,值為ftp
⑶ no_anon_password= YES|NO
節制佚名用戶登錄時是不是需要暗碼。
⑷ anon_root=
設定佚名用戶的根目次,即佚名用戶登錄後,被定位至此目次下。主配備布置文件中默許無此項,默許值為/var/ftp/
⑸ anon_world_readable_only= YES|NO
節制是不是只許可佚名用戶下載可閱覽的文檔。YES,只許可佚名用戶下載可閱覽的文件。NO,許可佚名用戶瀏覽全般辦事器的文件體系。
⑹ anon_upload_enable= YES|NO
節制是不是許可佚名用戶上傳文件。除開這個參量外,佚名用戶要能上傳文件,還需要兩個前提,write_enable參量為YES;在文件體繫上,FTP佚名用戶對於某個目次有寫職權范圍。
⑺ anon_mkdir_wirte_enable= YES|NO
節制是不是許可佚名用戶始於新目次。在文件體繫上,FTP佚名用戶必需對於新目次的上層目次領有寫職權范圍。
⑻ anon_other_write_enbale= YES|NO
節制佚名用戶是不是領有除開上傳和新建目次以外的其它職權范圍。如刪去、改名等。
⑼ chown_uploads= YES|NO
是不是修改佚名用戶所上傳文件的佔有權。YES,佚名用戶上傳患上文件佔有權改成另外1個差別的用戶所有,用戶由chown_username參量指定。
⑽ chown_username=whoever
指定領有佚名用戶上傳文件佔有權的用戶。
☆當地用戶
⑴ local_enable= YES|NO
節制vsftpd地點的體系的用戶是不是可以登錄vsftpd。
⑵ local_root=
界說當地用戶的根目次。鐺鐺地用戶登錄時,將被改換至此目次下。
☆虛擬用戶
⑴ guest_enable= YES|NO
開始工作此功效將所有佚名登入者都視為guest
⑵ guest_username=
界說vsftpd的guest用戶在體系中的用戶名。
4. 安全辦法
☆用戶登錄節制
⑴ /etc/vsftpd.ftpusers
Vsftpd克制列在此文件中的用戶登錄FTP辦事器。此機制是默許設置的。
⑵ userlist_enable= YES|NO
此選項拿獲後,vsftpd將讀取userlist_file參量所指定的文件中的用戶列表。
⑶ userlist_file=/etc/vsftpd.user_list
指出userlist_enable選項起作用後,被讀取的包羅用戶列表的文件。默許值是/etc/vsftpd.user_list
⑷ userlist_deny= YES|NO
決議克制照舊只許可由userlist_file指定文件中的用戶登錄FTP辦事器。userlist_enable選項開始工作後才氣起作用。默許值為YES,剋制文中的用戶登錄,同時不向這些個用戶拍發輸進口令的指令。NO,只許可在文中的用戶登錄FTP辦事器。
☆目次拜候節制
⑴ chroot_list_enable= YES|NO
鎖定某些用戶在本身的目次中,而不成以轉到體系的其它目次。
⑵ chroot_list_file=/etc/vsftpd/chroot_list
指定被鎖定在主目次的用戶的列表文件。
⑶ chroot_local_users= YES|NO
將當地用戶鎖定在主目中。
3、vsftpd辦事器的配備布置實例:
基於IP的虛擬FTP辦事器配備布置
假定辦事器有兩個IP地址,192.168.1.199和192.168.1.200。vsftpd是成立在192.168.1.199上的。此刻在192.168.1.200上再供給1個虛擬FTP辦事器。
☆始於虛擬FTP辦事器根目次
# mkdir –p /var/ftp2/pub
確保/var/ftp2和/var/ftp2/pub目次的所有者和組均為root,掩碼為755
# chmod 755 /var/ftp2 # chmod 755 /var/ftp2/pub
# chown –R root /var/ftp2 # chown –R : root /var/ftp2
☆ 增長虛擬FTP辦事器的佚名用戶帳號ftp2
# useradd –d /var/ftp2 –M ftp2
☆ 始於虛擬FTP辦事器的配備布置文件
復制本來的vsftpd.conf作為虛擬FTP辦事器的配備布置文件,並修改相干參量
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd2.conf
# vi /etc/vsftpd/vsftpd2.conf
新增或者修改參量:
Listen=YES
Listen_address=192.168.1.200
ftp_username=ftp2
anon_root=/var/ftp2
並可參考vsftpd的配備布置部門的申明做其它配備布置,如:
•許可佚名用戶上傳文件
Write_enable=YES
Anon_world_readable_only=NO
Anon_upload_enable=YES
Anon_mkdir_write_enable=YES
始於佚名用戶上傳文件的目次,並設置職權范圍:
# mkdir /var/ftp/incoming # chmod o+w /var/ftp/incoming
•勾銷寫職權范圍
Write_enable=NO
Anon_upload_enable=NO
Anon_mkdir_write_enable=NO
Anon_other_write_enable=NO
•限定下載速率為80KB/s
Anon_max_rate=8000
•節制並發數,和每個IP地址的並發數
Max_clients=100
Max_per_ip=3
☆開始工作虛擬FTP辦事器
# /usr/sbin/vsftpd /etc/vsftpd/vsftpd2.comf &
⑧ 有人成功在CENTOS 6以上的版本安裝PURE-FTP嗎
你好,
1.用UltraISO打開iso(如:CentOS-6.5-x86_64-bin-DVD1.iso)
2.然後點「啟動」->"寫入硬碟映像",硬碟驅動器是你的u盤,映像文件安裝光碟iso,寫入方式是USB-HDD+,點擊「寫入」按鈕。完成後安裝u盤就做好了
3 選第一項Install or upgrade an existing system,按ENTER鍵確認
4 選擇chinese(simplified),這是設置語言為中文簡體
5 選擇US,設置為美式鍵盤
6 centos6.5系統在什麼介質上,選擇Hard drive 硬碟模式,然後選/dev/sda4,Directory holding images:系統在U盤的根目錄下,不用設置它自己能找到,點擊OK即可;
7 選第一項基本存儲設備
8 主機名這個隨意,默認自定義都行
9 點擊配置網路吧
10 注意:自動連接那裡要勾選上,因為裝完系統開機後ip配置信息丟失,估計就是這里沒有勾選的原因;
選擇有線模式
IPv4設置
方法:手動
地址:這個根據實際情況來
DNS:根據實際情況來填
K
⑨ 如何在Centos下安裝ftp伺服器
啟動命令:/etc/rc.d/init.d/vsftpd start
這時候可以使用ftp客戶端連接。
vsftpd的許可權貌似和系統許可權有掛鉤。
下面是抄來的配置解釋vsftpd的配置
,例如root等。
vsftpd.user_list:位於/etc目錄下。該文件里的用戶賬戶在默認情況下也不能訪問FTP伺服器,僅當vsftpd .conf配置文件里啟用userlist_enable=NO選項時才允許訪問。
vsftpd.conf:位於/etc/vsftpd目錄下。來自定義用戶登錄控制、用戶許可權控制、超時設置、伺服器功能選項、伺服器性能選項、伺服器響應消息等FTP伺服器的配置。
(1)CentOS系統用戶登錄控制
local_enable=YES,允許本地用戶登錄。
banned_email_file=/etc/vsftpd.banned_emails,當啟用deny_email_enable功能時,所需的電子郵件黑名單保存路徑(默認為/etc/vsftpd.banned_emails)。
(2)CentOS系統用戶許可權控制
write_enable=YES,開啟全局上傳許可權。
local_umask=022,本地用戶的上傳文件的umask設為022(系統默認是077,一般都可以改為022)。
chown_username=whoever,當啟用chown_uploads=YES時,所指定的屬主用戶賬號,此處的whoever自然要用合適的用戶賬號來代替。
chroot_list_file=/etc/vsftpd.chroot_list,如果chroot_local_user=YES,則指定該列表(chroot_local_user)的保存路徑(默認是/etc/vsftpd.chroot_list)。
nopriv_user=ftpsecure,指定一個安全用戶賬號,讓FTP伺服器用作完全隔離和沒有特權的獨立用戶。這是vsftpd系統推薦選項。
async_abor_enable=YES,強烈建議不要啟用該選項,否則將可能導致出錯!
ascii_upload_enable=YES;ascii_download_enable=YES,默認情況下伺服器會假裝接受ASCⅡ模式請求但實際上是忽略這樣的請求,啟用上述的兩個選項可以讓伺服器真正實現ASCⅡ模式的傳輸。
注意:啟用ascii_download_enable選項會讓惡意遠程用戶們在ASCⅡ模式下用「SIZE/big/file」這樣的指令大量消耗FTP伺服器的I/O資源。
這些ASCⅡ模式的設置選項分成上傳和下載兩個,這樣我們就可以允許ASCⅡ模式的上傳(可以防止上傳腳本等惡意文件而導致崩潰),而不會遭受拒絕服務攻擊的危險。
(3)CentOS系統用戶連接和超時選項
idle_session_timeout=600,可以設定默認的空閑超時時間,用戶超過這段時間不動作將被伺服器踢出。
data_connection_timeout=120,設定默認的數據連接超時時間。
dirmessage_enable=YES,允許為目錄配置顯示信息,顯示每個目錄下面的message_file文件的內容。
xferlog_enable=YES,啟用記錄上傳/下載活動日誌功能。
xferlog_file=/var/log/vsftpd.log,可以自定義日誌文件的保存路徑和文件名,默認是/var/log/vsftpd.log。
以上,我們就完成了CentOS系統中FTP的配置工作。
⑩ 怎麼配置centos5.3 ftp+apache
File Transfer Protocol
======== FTP =========
TCP 21 控制連接,傳輸FTP控制命令
TCP 20 數據連接,傳輸文件數據(主動模式)
====== Vsftpd ======
vsftpd 支持15000個用戶並發連接
/etc/vsftpd/ftpusers (此文件內的用戶禁止用於登錄FTP服務)
/etc/vsftpd/user_list (存在userlist_enable=YES時啟用)
userlist_deny=YES 禁止列表中的用戶帳號登錄
userlist_deny=NO 僅允許列表中的用戶帳號登錄
/usr/sbin/vsftpd (進程文件)
/etc/vsftpd/vsftpd.conf
/etc/pam.d/vsftpd (伺服器認證本地用戶的PAM介面配置文件)
====== Vsftpd Virtual Host ======
[root@CentOS ~]# ifconfig eth0:1 10.0.0.21 netmask 255.255.255.0 up
cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-eth0:1
vi ifcfg-eth0:1
# Edit ======
DEVICE=eth0:1
BOOTPROTO=static
HWADDR=00:30:48:33:4D:D8
ONBOOT=yes
IPADDR=10.89.3.21
NETMASK=255.255.255.0
# End ======
[root@CentOS ~]# vi /etc/vsftpd/vsftpd.conf
listen=YES
listen_address=10.0.0.56
[root@CentOS ~]# /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
[root@CentOS ~]# useradd -d /var/ftp2 -s /sbin/nologin ftp2
[root@CentOS ~]# chown root:root /var/ftp2
[root@CentOS ~]# chmod 755 /var/ftp2
[root@CentOS ~]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd2.conf
[root@CentOS ~]# vi /etc/vsftpd/vsftpd2.conf
ftpd_banner=Welcome to virtual ftp server
ftp_username=ftp2
listen=YES
listen_address=10.0.0.21
[root@CentOS ~]# /usr/sbin/vsftpd /etc/vsftpd/vsftpd2.conf
====== Vsftpd Virtual Users ======
基於虛擬用戶的vsftpd服務
vsftpd-2.0.5-10.el5
●[安裝db4-utils工具]
rpm -ivh db4-utils-4.3.29-9.fc6.i386.rpm
●[新建虛擬用戶所對應的系統帳號]
useradd -d /var/vuftp -s /sbin/nologin vuftp
chown root /var/vuftp/
chmod 775 /var/vuftp/
●[建立虛擬用戶資料庫]
奇數行為用戶名,偶數行為上一行用戶的密碼
[root@CentOS ~]# vi /etc/vsftpd/vusers.list
usera
123
userb
456
●[轉化生成vsftpd的DB資料庫文件]
db_load -T -t hash -f vusers.list vusers.db
chmod 600 /etc/vsftpd/vusers.*
●[新建PAM認證文件]
[root@CentOS ~]# vi /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
●[修改或添加配置內容]
[root@CentOS ~]# vi /etc/vsftpd/vsftpd.conf
local_enable=YES //使用虛擬用戶需要啟用本地用戶
pam_service_name=vsftpd.vu //修改使用的PAM文件位置
anon_root=/var/vuftp //指定默認目錄
anon_umask=022 //設置虛擬用戶上傳文件的默認許可權掩碼
guest_enable=YES //啟用用戶映射功能
guest_username=vuftp //將映射用戶指定為系統vuftp用戶
max_clients=150 //最大客戶端連接數
max_per_ip=5 //每一台主機可以連入的客戶端數
anon_max_rate=100000 //限速100KB/S
user_config_dir=/etc/vsftpd/vusers_dir //指定虛擬用戶配置目錄位置
●[為不同虛擬用戶建立獨立的配置文件]
[root@CentOS ~]# mkdir /etc/vsftpd/vusers_dir
[root@CentOS ~]# vi /etc/vsftpd/vusers_dir/usera
local_root=/var/ftp
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_max_rate=500000
●[啟動vsftpd服務]
/etc/init.d/vsftpd start
[設置啟動等級]
chkconfig --level 35 vsftpd on
[root@CentOS ~]# iptables -t filter -I INPUT -p tcp --dport 21 -j ACCEPT
[root@CentOS ~]# iptables -t filter -I INPUT -p tcp --dport 20 -j ACCEPT
# 發布FTP服務可以載入以下兩個模塊解決數據傳輸埠不固定的問題
[root@CentOS ~]# modprobe ip_conntrack_ftp
[root@CentOS ~]# modprobe ip_nat_ftp
== END =============================================================
[root@CentOS ~]# wget ftp://192.168.0.1/FTP_File
[root@CentOS ~]# wget ftp://UserA:[email protected]/FTP_File
[root@CentOS ~]# lsof -i:21
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
vsftpd 3163 root 3u IPv4 12204 TCP *:ftp (LISTEN)
[root@pan ~]# netstat -anptu | grep vsftpd
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 3163/vsftpd
tcp 0 0 192.168.0.1:20 192.168.10.1:5007 ESTABLISHED 3766/vsftpd
tcp 0 0 192.168.0.1:20 192.168.10.1:5006 TIME_WAIT -
tcp 0 0 192.168.0.1:21 192.168.10.1:1655 ESTABLISHED 3764/vsftpd
[root@CentOS ~]# ps -elf | head -1 ; ps -elf | grep vsftpd
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
5 S root 3163 1 0 75 0 - 1146 341098 May13 ? 00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
FTP
getsebool -a | grep ftp
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
ftp_home_dir --> off
ftpd_connect_db --> off
httpd_enable_ftp_server --> off
sftpd_anon_write --> off
sftpd_enable_homedirs --> off
sftpd_full_access --> off
sftpd_write_ssh_home --> off
tftp_anon_write --> off
setsebool -P allow_ftpd_anon_write on