1卖哎、搭建vsftpd,并實現(xiàn)虛擬用戶
1. 安裝
使用chkconfig –list來查看是否裝有vsftpd服務(wù)誉简;
使用yum命令直接安裝:yum -y install vsftpd
然后為它創(chuàng)建日志文件:touch /var/log/vsftpd.log
這樣簡單的兩個命令就完成了vsftp的安裝楷扬,但是如果你現(xiàn)在想這樣ftp://your_ip來訪問的話翘鸭,那還不行,還需要配置權(quán)限!
2. 啟動與配置自啟動
使用chkconfig –list來查看vsftpd服務(wù)啟動項情況瘩蚪;
如果看到的是如下顯示的結(jié)果:
vsftpd? ? ? ? ? 0:off? 1:off? 2:off? 3:off? 4:off? 5:off? 6:off
服務(wù)全部都是off的刑桑,注意這里的off表示的是服務(wù)器啟動的時候是否會自啟動服務(wù),我們使用如下命令來配置其自啟動:
chkconfig –level 2345 vsftpd on #2345對應(yīng)的是上面對應(yīng)的0-6項
查看與管理ftp服務(wù):
啟動ftp服務(wù):service vsftpd start
查看ftp服務(wù)狀態(tài):service vsftpd status
重啟ftp服務(wù):service vsftpd restart
關(guān)閉ftp服務(wù):service vsftpd stop
3.創(chuàng)建vsftpd服務(wù)的宿主用戶和虛擬用戶
## 建立Vsftpd服務(wù)的宿主用戶募舟,不能登錄系統(tǒng)祠斧,指定主目錄/home/vsftpd
useradd vsftpd -d /home/vsftpd -M -s /sbin/nologin
cat /etc/passwd |grep vsftpd
sudo chown -R vsftpd:vsftpd /home/vsftpd
#虛擬用戶設(shè)置
sudo mkdir /etc/vsftpd/
sudo vim? /etc/vsftpd/virtusers.txt
# 加一些賬號密碼在里面,一行賬號 一行密碼(奇數(shù)行為賬號拱礁,偶數(shù)行為密碼)
test
tes123
# 轉(zhuǎn)化為db 文件/etc/vsftpd/virtusers.db 琢锋,記住保存的路徑后面會用到
#如果以后向/etc/vsftpd/virtusers.txt添加了虛擬賬戶后,需要重新執(zhí)行下面的db_load命令才能生效
sudo db_load -T -t hash -f /etc/vsftpd/virtusers.txt? /etc/vsftpd/virtusers.db
4.PAM 驗證設(shè)置
默認安裝后會生成/etc/pam.d/vsftpd呢灶,但直接設(shè)置這個文件會有問題吴超,我們新建一個文件vsftpd.virtual寫配置,并設(shè)置/etc/vsftpd/vsftpd.conf寫對應(yīng)的名字 pam_service_name=vsftpd.virtual
sudo vim /etc/pam.d/vsftpd.virtual
#替換為下面兩行配置鸯乃,pam_userdb.so根據(jù)自己的系統(tǒng)配置路徑鲸阻,
#db為上一步生成的(不用加后綴.db)文件 /etc/vsftpd/virtusers
auth? ? required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/virtusers
account required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/virtusers
#以上兩條是手動添加的,內(nèi)容是對虛擬用戶的安全和帳戶權(quán)限進行驗證缨睡。
這里的auth是指對用戶的用戶名口令進行驗證鸟悴。
這里的accout是指對用戶的帳戶有哪些權(quán)限哪些限制進行驗證。
其后的sufficient表示充分條件奖年,也就是說细诸,一旦在這里通過了驗證,那么也就不用經(jīng)過下面剩下的驗證步驟了陋守。
相反震贵,如果沒有通過的話,也不會被系統(tǒng)立即擋之門外水评,因為sufficient的失敗不決定整個驗證的失敗猩系,
意味著用戶還必須將經(jīng)歷剩下來的驗證審核。
再后面的/lib/security/pam_userdb.so表示該條審核將調(diào)用pam_userdb.so這個庫函數(shù)進行中燥。
最后的db=/etc/vsftpd/virtusers則指定了驗證庫函數(shù)將到這個指定的數(shù)據(jù)庫中調(diào)用數(shù)據(jù)進行驗證寇甸。
5.虛擬用戶配置
虛擬用戶的設(shè)置都在文件夾下,有上一步的 user_config_dir=/etc/vsftpd/vu設(shè)置
宿主用戶設(shè)置為上面創(chuàng)建的用戶 vsftpd
## 建立虛擬用戶配置文件模版:以后沒添加一個虛擬用戶都可以復(fù)制一份修改
vi /etc/vsftpd/vu/vconf.tmp
#vconf.tmp內(nèi)容如下:
guest_username=vsftpd? #指定宿主用戶
virtual_use_local_privs=NO? #虛擬用戶和本地用戶有相同的權(quán)限褪那。
local_root=/home/vsftpd/test1 #指定虛擬用戶的具體主路徑
write_enable=YES? #設(shè)定允許寫操作
local_umask=022? #設(shè)定上傳文件權(quán)限掩碼
anonymous_enable=NO #設(shè)定不允許匿名用戶訪問
anon_upload_enable=NO #設(shè)定不允許匿名用戶上傳
anon_mkdir_write_enable=NO #設(shè)定不允許匿名用戶建立目錄
idle_session_timeout=600 #設(shè)定空閑連接超時時間
data_connection_timeout=120# 設(shè)定單次連續(xù)傳輸最大時間
max_clients=10? #設(shè)定并發(fā)客戶端訪問個數(shù)
max_per_ip=5? #設(shè)定單個客戶端的最大線程數(shù)幽纷,這個配置主要來照顧Flashget、迅雷等多線程下載軟件
local_max_rate=50000? #設(shè)定該用戶的最大傳輸速率博敬,單位b/s
anon_umask=133
#
#測試用戶復(fù)制配置模板,可以進行個性化配置
cp /etc/vsftpd/vu/vconf.tmp /etc/vsftpd/vu/test
vim /etc/vsftpd/vconf/test
6.其他設(shè)置
#logo 文件設(shè)置權(quán)限
chown vsftpd:vsftpd /var/log/vsftpd.log
2峰尝、簡述iptales四表五鏈及詳細介紹iptables命令使用方法偏窝。
iptables只是Linux防火墻的管理工具而已,位于/sbin/iptables。真正實現(xiàn)防火墻功能的是netfilter祭往,它是Linux內(nèi)核中實現(xiàn)包過濾的內(nèi)部結(jié)構(gòu)伦意。
? ? iptables包含4個表,5個鏈硼补。其中表是按照對數(shù)據(jù)包的操作區(qū)分的驮肉,鏈?zhǔn)前凑詹煌腍ook點來區(qū)分的,表和鏈實際上是netfilter的兩個維度已骇。? ? ? 4個表:filter,nat,mangle,raw离钝,默認表是filter(沒有指定表的時候就是filter表)。表的處理優(yōu)先級:raw>mangle>nat>filter褪储。
? ? ? ? ? filter:一般的過濾功能
? ? ? ? ? nat:用于nat功能(端口映射卵渴,地址映射等)
? ? ? ? ? mangle:用于對特定數(shù)據(jù)包的修改
? ? ? ? ? raw:有限級最高,設(shè)置raw時一般是為了不再讓iptables做數(shù)據(jù)包的鏈接跟蹤處理鲤竹,提高性能
? ? ? 5個鏈:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING浪读。
? ? ? ? ? PREROUTING:數(shù)據(jù)包進入路由表之前
? ? ? ? ? INPUT:通過路由表后目的地為本機
? ? ? ? ? FORWARDING:通過路由表后,目的地不為本機
? ? ? ? ? OUTPUT:由本機產(chǎn)生辛藻,向外轉(zhuǎn)發(fā)
? ? ? ? ? POSTROUTIONG:發(fā)送到網(wǎng)卡接口之前碘橘。
規(guī)則表:
1.filter表——三個鏈:INPUT、FORWARD吱肌、OUTPUT
作用:過濾數(shù)據(jù)包? 內(nèi)核模塊:iptables_filter.
2.Nat表——三個鏈:PREROUTING蛹屿、POSTROUTING、OUTPUT
作用:用于網(wǎng)絡(luò)地址轉(zhuǎn)換(IP岩榆、端口) 內(nèi)核模塊:iptable_nat
3.Mangle表——五個鏈:PREROUTING错负、POSTROUTING、INPUT勇边、OUTPUT犹撒、FORWARD
作用:修改數(shù)據(jù)包的服務(wù)類型、TTL粒褒、并且可以配置路由實現(xiàn)QOS內(nèi)核模塊:iptable_mangle(別看這個表這么麻煩识颊,咱們設(shè)置策略時幾乎都不會用到它)
4.Raw表——兩個鏈:OUTPUT、PREROUTING
作用:決定數(shù)據(jù)包是否被狀態(tài)跟蹤機制處理? 內(nèi)核模塊:iptable_raw
(這個是REHL4沒有的奕坟,不過不用怕祥款,用的不多)
規(guī)則鏈:
1.INPUT——進來的數(shù)據(jù)包應(yīng)用此規(guī)則鏈中的策略
2.OUTPUT——外出的數(shù)據(jù)包應(yīng)用此規(guī)則鏈中的策略
3.FORWARD——轉(zhuǎn)發(fā)數(shù)據(jù)包時應(yīng)用此規(guī)則鏈中的策略
4.PREROUTING——對數(shù)據(jù)包作路由選擇前應(yīng)用此鏈中的規(guī)則
(記住月杉!所有的數(shù)據(jù)包進來的時侯都先由這個鏈處理)
5.POSTROUTING——對數(shù)據(jù)包作路由選擇后應(yīng)用此鏈中的規(guī)則
(所有的數(shù)據(jù)包出來的時侯都先由這個鏈處理)
規(guī)則表之間的優(yōu)先順序:
Raw——mangle——nat——filter
規(guī)則鏈之間的優(yōu)先順序(分三種情況):
第一種情況:入站數(shù)據(jù)流向
? ? 從外界到達防火墻的數(shù)據(jù)包刃跛,先被PREROUTING規(guī)則鏈處理(是否修改數(shù)據(jù)包地址等),之后會進行路由選擇(判斷該數(shù)據(jù)包應(yīng)該發(fā)往何處)苛萎,如果數(shù)據(jù)包的目標(biāo)主機是防火墻本機(比如說Internet用戶訪問防火墻主機中的web服務(wù)器的數(shù)據(jù)包)桨昙,那么內(nèi)核將其傳給INPUT鏈進行處理(決定是否允許通過等)检号,通過以后再交給系統(tǒng)上層的應(yīng)用程序(比如Apache服務(wù)器)進行響應(yīng)。
第二沖情況:轉(zhuǎn)發(fā)數(shù)據(jù)流向
? ? 來自外界的數(shù)據(jù)包到達防火墻后蛙酪,首先被PREROUTING規(guī)則鏈處理齐苛,之后會進行路由選擇,如果數(shù)據(jù)包的目標(biāo)地址是其它外部地址(比如局域網(wǎng)用戶通過網(wǎng)關(guān)訪問QQ站點的數(shù)據(jù)包)桂塞,則內(nèi)核將其傳遞給FORWARD鏈進行處理(是否轉(zhuǎn)發(fā)或攔截)凹蜂,然后再交給POSTROUTING規(guī)則鏈(是否修改數(shù)據(jù)包的地址等)進行處理。
第三種情況:出站數(shù)據(jù)流向
? ? 防火墻本機向外部地址發(fā)送的數(shù)據(jù)包(比如在防火墻主機中測試公網(wǎng)DNS服務(wù)器時)阁危,首先被OUTPUT規(guī)則鏈處理玛痊,之后進行路由選擇,然后傳遞給POSTROUTING規(guī)則鏈(是否修改數(shù)據(jù)包的地址等)進行處理欲芹。