centosftp虛擬用戶
⑴ 求高手,想在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』
所以注意一下細節,安裝上面的步驟來是很簡單的
⑵ centos5.5系統怎麼安裝ftp服務,在虛擬機中
1. 使用setup菜單完成TCP/IP網路配置;
(1)在命令行運行setup,選擇「Network Configuration」
(2)選擇「eth0(eth0)……」
(3)取消「Use DHCP」
(4)配置IP地址和子網掩碼為192.168.202.5/255.255.255.0,網關為192.168.202.1
(5)一層層退出
(6)運行ifdown eth0禁用乙太網卡
(7)運行ifup eth0啟用乙太網卡並重新讀取配置。
(8)使用ifconfig檢查eth0網卡的IP地址配置。
2. vsftpd伺服器的基本配置
(1)rpm -q vsftpd 察看vsftpd軟體包是否安裝
(2)service vsftpd start 啟動vsftpd伺服器
(3)chkconfig vsftpd on 將vsftpd服務設置為自動啟動
(4)從XP客戶端訪問「ftp://192.168.202.5」
(5)察看vsftpd伺服器的配置文件的預設配置:vi /etc/vsftpd/vsftpd.conf
1)anonymous_enable=YES 允許匿名用戶登錄
2)local_enable=YES 允許本地用戶登錄
3)write_enable=YES 允許寫入(上傳文件、創建目錄)(包含所有用戶)
4)#anon_upload_enable=YES 允許匿名用戶上傳文件,但已被注釋掉
5)#anon_mkdir_enable=YES 允許匿名用戶創建目錄,但已被注釋掉
3. 配置允許匿名用戶上傳的FTP伺服器
(1)vi /etc/vsftpd/vsftpd.conf
(2)去掉上面(4)(5)兩行的注釋
(3)service vsftpd restart
(4)從XP客戶端重新訪問「ftp://192.168.202.5」,上傳一個文件,是否成功?
(5)因為匿名用戶是以ftp帳號訪問FTP伺服器的,主目錄為/var/ftp。(可察看/etc/passwd,找ftp那一行)而「/var/ftp」目錄所屬用戶為root,目錄許可權為drwxr-xr-x,即ftp作為「其他用戶」,沒有寫入許可權,所以不能在「/var/ftp」目錄中創建新文件和新建目錄。
兩種辦法解決這個問題:
4. 辦法1:創建一個屬於ftp用戶的目錄
(1)cd /var/ftp
(2)mkdir up1 創建一個目錄
(3)chown ftp:ftp up1 修改目錄的所屬用戶
(4)ll 查看目錄許可權
5. 辦法2:創建一個屬於root用戶的目錄,但修改目錄許可權為允許其他用戶修改目錄內容
(1)cd /var/ftp
(2)mkdir up2 創建一個目錄
(3)chmod 777 up2 修改目錄的許可權,使「其他用戶」可以修改
(4)ll 查看目錄許可權
6. 繼續配置允許匿名用戶上傳的FTP伺服器
(1)刷新XP客戶端的ftp://192.168.202.5,進入up1或up2目錄,上傳一個文件,能否成功?然後再下載剛上傳的文件,能否成功?
(2)ll /var/ftp/up1或ll /var/ftp/up2,看剛上傳文件的許可權為-rw-------,所屬用戶為ftp
(3)cd /var/ftp/up1或cd /var/ftp/up,chmod 644 上傳的文件名
(4)再次下載文件,就可以了,這是為什麼?
(5)vi /etc/vsftpd/vsftpd.conf,在local_umask=022下面添加:
anon_umask=022,將匿名用戶創建新文件的umask設置為022。
(6)service vsftpd restart
(7)從XP客戶端重新訪問「ftp://192.168.202.5」,這時,上傳、下載都能正常工作了。
⑶ centos ftp伺服器怎麼設置用戶許可權,要求 : 1.admin 所有許可權 2.userA 只能上傳 3.userB 只能下載
首先你要弄清楚vsftpd的驗證方式有三種
匿名訪問:任何人無需驗證口令即可登入FTP服務端。
本地用戶:使用FTP伺服器中的用戶、密碼信息。
虛擬用戶:創建獨立的FTP帳號資料。
一般像你這種對許可權控制比較嚴格的話,要用虛擬用戶模式,下面是方法
第1步:建立虛擬FTP用戶資料庫文件。
切換至vsftpd程序目錄:cd /etc/vsftpd/
創建用於生成FTP用戶資料庫的原始帳號和密碼文件:vim vuser.list
//單數行為帳號,雙數行為密碼。
userA
passwdA
userB
passwdB
admin
passwdadmin
使用db_load命令用HASH演算法生成FTP用戶資料庫文件vuser.db:
db_load -T -t hash -f vuser.list vuser.db
FTP用戶資料庫內容很敏感,所以許可權給小一些:chmod 600 vuser.db
刪除原始的帳號和密碼文件:rm -f vuser.list
第2步:創建FTP根目錄及虛擬用戶映射的系統用戶。
創建用戶virtual並設置為不允許登陸系統並定義該用戶的家目錄:
useradd -d /var/ftproot -s /sbin/nologin virtual
為保證其他用戶可以訪問,給予rwxr-xr-x許可權:chmod -Rf 755 /var/ftproot/
第3步:建立支持虛擬用戶的PAM認證文件:
vim /etc/pam.d/vsftpd.vu
//參數db用於指向剛剛生成的vuser.db文件,但不要寫後綴。
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
第4步:在vsftpd.conf文件中添加支持配置。
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO 禁止匿名開放模式。
local_enable=YES 允許本地用戶模式。
guest_enable=YES 開啟虛擬用戶模式。
guest_username=virtual 指定虛擬用戶帳號。
pam_service_name=vsftpd.vu 指定pam文件。
allow_writeable_chroot=YES 允許禁錮的FTP根目錄可寫而不拒絕用戶登入請求。
第5步:為虛擬用戶設置不同的許可權
現在不論是userA還是userB帳戶,他們的許可權都是相同的——默認不能上傳、創建、修改文件
指定用戶獨立的許可權配置文件存放的目錄:
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers_dir
創建用戶獨立的許可權配置文件存放的目錄:
mkdir /etc/vsftpd/vusers_dir/
切換進入到該目錄中:cd /etc/vsftpd/vusers_dir/
創建userA的配置文件:
vim userA
anon_upload_enable=YES
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
anon_download_enable=NO
創建userB的配置文件:
vim userB
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
anon_download_enable=YES
創建admin的配置文件
vim admin
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_download_enable=YES
第6步:重啟vsftpd服務,驗證實驗效果。
systemctl restart vsftpd
如果出現操作被拒絕,考慮selinux的因素
⑷ ftp怎麼查虛擬用戶信息內容
簡介:FTP(File Transfer Protocol)文件傳輸協議,基於該協議FTP客戶端與服務端可以實現共享文件、上傳文件、下載文件。FTP基於C/S模式,FTP客戶端與伺服器端有兩種傳輸模式,分別是FTP主動模式、FTP被動模式,主被動模式均是以FTP伺服器端為參照。Linux下ftp服務常用的是通過部署VSftpd伺服器來實現,以CentOS為例,可以執行命令yum -y install vsftpd安裝該服務。VSftp的用戶登陸方式有三種,分別是匿名用戶模式、本地用戶模式和虛擬用戶模式,匿名模式和本地用戶模式存在安全性問題,一般配置的都是使用虛擬用戶模式。
本文將繼續上文內容,主要介紹怎麼在已經搭建好的FTP伺服器中通過腳本快速創建虛擬用戶,並配置Loganalyzer日誌採集,對日常事件進行收集分析。詳細內容請參考纖頌陸下文。
一、登陸Linux系統
二、查看FTP服務狀態
三、編寫自動創建虛擬用戶的腳本
1、執行指令# vim useradd.sh
2、編寫並毀頃保存創建用戶的腳本文件useradd.sh
備註:執行櫻橋該腳本useradd.sh的時候,後面附帶用戶名、用戶密碼和用戶的家目錄,實例為#sh useradd.sh chensc 123456 /home/ftpuser/chensc。
3、授權腳本文件
執行指令# chmod 777 useradd.sh授權讀、寫和執行的許可權
4、執行腳本文件useradd.sh創建新用戶
執行指令# sh useradd.sh chensc 123456 /home/ftpuser/chensc
⑸ CentOS vsftpd虛擬用戶的配置 配置完之後就是登陸不上去FTP 用了兩個用戶也是登陸不上,初學者,求大神
製作虛擬用戶資料庫文件
1.先建立虛擬用戶名單文件:[root@KcentOS5 ~]# touch
/etc/vsftpd/virtusers建立了一個虛擬用戶名單文件,這個文件就是來記錄CentOS
vsftpd虛擬用戶的用戶名和口令的數據文件,我這里給它命名為virtusers。為了避免文件的混亂,我把這個名單文件就放置在/etc
/vsftpd/下。
2.編輯虛擬用戶名單文件:
[root@KcentOS5 ~]# vi /etc/vsftpd/virtusers download 1234 upload 5678 admin 9012
CentOS vsftpd編輯這個虛擬用戶名單文件,在其中加入用戶的用戶名和口令信息。格式很簡單:「一行用戶名,一行口令」。
3.生成虛擬用戶數據文件:
[root@KcentOS5 ~]# db_load -T -t hash -f /etc/vsftpd/virtusers
/etc/vsftpd/virtusers.db設定PAM驗證文件,並指定虛擬用戶資料庫文件進行讀取在/etc/pam.d/vsftpd的文件頭
部加入以下信息(在後面加入無效)
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/virtusers account sufficient /lib/security/鋒慎磨pam_userdb.so db=/etc/vsftpd/virtusers
虛擬用戶的配置
local_root=/var/www/html指定虛擬銀斗用戶的具體主路徑。
anonymous_enable=NO設定不允許匿名用戶訪問。
write_enable=YES設定允許寫操作。
local_umask=022設定上傳文件許可權掩碼。
anon_upload_enable=NO設定不允許匿名用戶上孝碰傳。
anon_mkdir_write_enable=NO設定不允許匿名用戶建立目錄。
idle_session_timeout=600設定空閑連接超時時間。
data_connection_timeout=120設定單次連續傳輸最大時間。
max_clients=10設定並發客戶端訪問個數。
max_per_ip=5設定單個客戶端的最大線程數,這個配置主要來照顧Flashget、迅雷等多線程下載軟體。
local_max_rate=50000設定該用戶的最大傳輸速率,單位b/s。
這里將原CentOS
vsftpd.conf配置文件經過簡化後保存作為虛擬用戶配置文件的模版。這里將並不需要指定太多的配置內容,主要的框架和限制交由CentOS
vsftpd的主配置文件CentOS vsftpd.conf來定義,即虛擬用戶配置文件當中沒有提到的配置項目將參考主配置文件中的設定。
而在這里作為虛擬用戶的配置文件模版只需要留一些和用戶流量控制,訪問方式控制的配置項目就可以了。這里的關鍵項是local_root這個配置,用來指定這個虛擬用戶的FTP主路徑。
[b][color=Red]這里有一個最主要的問題,就是目錄的宿主和宿主用戶不是虛擬用戶,我們設置了目錄後還只能下載,不能上傳和下載,如果想上傳就要使用chown的命令chmod o+w /var/www/html/ o是指其它的用戶,w是寫的許可權