Ⅰ 怎樣在linux中搭建FTP伺服器
FTP服務可以根據服務對象的不同分為兩類:一類是系統FTP伺服器,它只允許系統上的合法用戶使用;另一類是匿名FTP伺服器,Anonymous FTP Server,它使用任何人都可以登錄到FTP伺服器上去獲取文件。
5.1 選擇和安裝FTP伺服器軟體
如果你在安裝LINUX系統的時候,在選擇啟動進程的時候選擇了「ftpd」這一項的話,安裝完LINUX系統後,它已經將一個默認的FTP伺服器安裝到系統中去了。我們已經可以利用它來實現系統FTP伺服器的功能了。我們只需在此基礎上根據我們的需要進行一些個性化設定就可以了。
在絕大多數的LINUX發行版本中都選用的是Washington University FTP,它是一個著名的FTP伺服器軟體,一般簡稱為wu-ftp。它功能強大,能夠很好地運行於眾多的UNIX操作系統,例如:IBM AIX、FreeBSD、HP-UX、NeXTstep、Dynix、SunOS、Solaris等。所以Internet上的FTP伺服器,一大半以上採用了它。
wu-ftp擁有許多強大的功能,很適於吞吐量較大的FTP伺服器的管理要求:
1) 可以在用戶下載文件的同時對文件做自動的壓縮或解壓縮操作;
2) 可以對不同網路上的機器做不同的存取限制;
3) 可以記錄文件上載和下載時間;
4) 可以顯示傳輸時的相關信息,方便用戶及時了解目前的傳輸動態;
5) 可以設置最大連接數,提高了效率,有效地控制了負載。
5.2 wu-ftp的組成
安裝了wu-ftp後,你將在/bin目錄下看到以下五個可執行文件:
ftpd FTP伺服器程序
ftpshut 用於關閉FTP伺服器程序
ftpcount 顯示目前在線人數
ftpwho 查看目前FTP伺服器的連接情況
ckconfig 檢查FTP伺服器的設置是否正確
除了這些可執行文件以外,它還在/etc和/var目錄下生成了七個配置文件:
/etc/ftpusers
/etc/ftpaccess
/var/run/ftp.pids
/etc/ftpconversions
/var/log/xferlog
/etc/ftpgroups
/etc/ftphosts
系統安裝了wu-ftp後,會建立一個特殊的用戶ftp,並在/home目錄下建立了一個ftpd目錄,當用戶以匿名登錄上來時,將會自動定位於這個目錄下。在這個目錄下一般會建立幾個子目錄。
/home/ftpd/bin:存放一些供FTP用戶使用的可執行文件
/home/ftpd/etc:存放一些供FTP用戶使用的配置文件
/home/ftpd/pub:存放供下載的信息
/home/ftpd/incoming:存放供上載信息的空間
5.3 wu-ftp的配置
5.3.1 查看、修改/etc/inetd.conf文件
/etc/inetd.conf文件是LINUX系統的超級伺服器inetd的配置文件。它負責監聽多個TCP/IP埠。當它收到請求,就根據配置文件派生一個相應的伺服器。通過使用超級伺服器,其他服務就可以只在需要時才派生,從而大大節省了系統資源。
而wu-ftp就是利用超極伺服器inetd來監聽請求的。當超級伺服器inetd收到了客戶端的FTP請求時,就根據配置文件打開一個FTP服務進程。所以我們如果要使用wu-ftp,就必須確認在超級伺服器inetd的配置文件inetd.conf中有這樣一句:
ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd
以便當超級伺服器收到FTP請求的時候,能夠派生一個wu-ftp的FTP服務進程。(註:要確認是否有這樣一行時,可以使用文件內容查找命令來確認:
cat /etc/inetd.conf | grep ftp 如果沒有,則用手工加入或手工修改。
5.3.2 wu-ftpd的命令選項
wu-ftpd就是wu-ftp的服務進程。它可以不帶參數執行,也可以帶參數執行。下面簡單介紹一下wu-ftpd的執行參數。
-d 當FTP伺服器發生錯誤時,將錯誤入系統的syslog中;
-l 將每次FTP客戶端進行連接的入系統的syslog中;
-t 設置FTP客戶端連接幾分鍾無操作就切斷連接;
-a 使wu-ftp使用/etc/ftpaccess的設定;
-A 使wu-ftp不使用/etc/ftpaccess的設定;
-L 將FTP客戶端連線後所執行的程序記錄在系統的syslog中;
-I 將FTP客戶端上載文件的日誌記錄在/usr/adm.xferlog文件中;
-o 將FTP客戶端下載文件的日誌記錄在/usr/adm/xferlog文件中。
通過對以上參數的理解,我們建議,將上面系統安裝時的那條默認配置改為:
ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd ?a ?I
5.3.3 提供自動壓縮、解壓縮的功能
如果想讓FTP伺服器有自動壓縮、解壓縮的功能,必須先將一些壓縮、解壓縮的命令文件如tar、gzip、gunzip、compress、uncompress等命令文件拷貝到/home/ftpd/bin目錄下。
5.3.4 關於/etc/ftpaccess的設置
這個配置文件是FTP伺服器上最重要的配置文件,它直接關繫到你的FTP伺服器能否正常工作,還有許多許可權上的設置。下面是一個典型的配置實例。
loginfails 3
class local real *
class remote anonymous guest *
limit remote 100 Any /etc/ftpd/toomany.
msgmessage /etc/ftpd/welcome.msg login
compress yes local remote
tar yes local remote
private yes
passwd-check rfc822 warn
log commands real
log transfer anonymous guest inbound outbound
log transfer real inbound
shutdown /etc/ftpd/shut.msg
delete no anonymous,guest
overwrite no anonymous,guest
rename no anonymous
chmod no anonymous,guest
umask no anonymous
upload /home/ftpd * no
upload /home/ftpd /bin no
upload /home/ftpd /etc no
upload /home/ftpd /pub yes real 0644 dirs
upload /home/ftpd /incoming yes real guest anonymous 0644 dirs
alias in /incoming
email [email protected]
email [email protected]
deny *.com.tw /etc/ftpd/deny.msg
下面我們逐句進行講解,並給出每條設置的含義,以便大家觸類旁通,以便根據自己FTP伺服器的具體情況進行合理的設置。
1. 格式:loginfails [次數]
功能:設定當用戶登錄到FTP伺服器時,允許用戶輸錯密碼的次數。
實例:loginfails 3:密碼輸入錯誤三次就切斷連接。
2. 格式:class [類名] [real/guest/anonymous] [IP地址]
功能:這個指令的功能設定FTP伺服器上用戶的類別。並可對客戶端的IP地址進行限制,允許某部分的IP地址或全部的IP地址訪問。而在FTP伺服器上的用戶基本上可以分為以下三類:
real 在該FTP伺服器有合法帳號的用戶;
guest 有記錄的匿名用戶;
anonymous 許可權最低的匿名用戶
實例:class local real *:定義一個名為local的類,它包含了在任何地方登錄(*代表所有IP地址)的real用戶。
class remote anonymous guest *:定義一個名為remote的類,它包含了在任何地方登錄的anonymous用戶和guest用戶。
3. 格式:limit [類別] [人數] [時間] [文件名]
功能:這個指令的功能為設置指定的時間內指定的類別允許連接的指定人數上限。當達到人數上限的時候,顯示指定文件的內容。
實例:limit remote 100 Any /etc/ftpd/toomany.msg:在任何時間內,remote類的訪問用戶達到100人時,將不再允許無法產生新的連接,當第101位客戶要連接時,連接將失敗,並象用戶出示文件/etc/ftpd/toomany.msg的內容。
4. 格式:message [文件名稱] [指令]
功能:當用戶執行所指定的指令時,系統將指定的文件內容顯示出來。
實例:message /etc/ftpd/welcome.msg login:當用戶執行login命令時,也就是登錄到FTP伺服器上的時候,系統將顯示文件/etc/ftpd/welcome.msg的內容。
5. 格式:compress [yes/no] [類別]
功能:設置哪一個類別的用戶可以使用compress(壓縮)功能。
實例:compress yes local remote:允許local和remote兩個類別的用戶都能使用compress(壓縮)功能。
6. 格式:tar [yes/no] [類別]
功能:設置哪一個類別的用戶可以使用tar(歸檔)功能。
實例:tar yes local remote:允許local和remote兩類的用戶都能使用tar功能。
7. 格式:private [yes/no]
功能:設定是否支持群組對文件的取用。
實例:private yes:支持群組對文件的取用。
8. 格式:passwd-check [none/trivial/rfc822] [enforce/warn]
功能:設定對匿名用戶anonymous的密碼使用方式。
none 表示不做密碼驗證,任何密碼都可以登錄;
trival 表示只要輸入的密碼中含有字元「@」就可以登錄;
rfc822 表示密碼一定要符合RFC822中所規定的E-Mail格式才能登錄;
enfore 表示輸入的密碼不符合以上指定的格式就不讓登錄;
warn 表示密碼不符合規定時只出現警告信息,仍然能夠登錄。
實例:passwd-check rfc822 warn:希望能夠得到符合規定的E-Mail作為密碼,但如果不是,也允許登錄。
9. 格式:log command [real/guest/anonymous]
功能:設置哪些用戶登錄後的操作記錄在文件/usr/adm/xferlog中。
實例:log command real:當real用戶登錄後,將他的操作記錄下來。由於其它用戶許可權較低,所以操作不會引起太大的安全隱患,所以一般只需記下real用戶的操作就可以了。
10. 格式:log transfers [real/guest/anonymous] [inbound/outbound]
功能:設置哪些用戶的上載(inbound)和下載(outbound)操作做日誌。
實例:log transfer anonymous guest inbound outbound:對於匿名用戶要更加的關注它們的文件操作,所以無論上載、下載都進行記錄。
log transfer real inbound:對於合法用戶則只記錄他的上載記錄。
11. 格式:shutdown [文件名]
功能:FTP伺服器關閉的時間可以設置在後面所指定的文件中,當設置的時間一到,便無法登錄FTP伺服器了,要恢復的話只有將這個文件刪掉。而這個文件必須由指令/bin/ftpshut來生成。
實例:shutdown /etc/ftpd/shut.msg
12. 格式:delete [yes/no] [real/anonymous/guest]
功能:設置是否允許指定用戶使用delete命令刪除文件。默認是允許。
實例:delete no anonymous,guest:為了更好地管理FTP伺服器,一般情況下,我們不允許匿名用戶執行delete命令。
13. 格式:overwrite [yes/no] [real/anonymous/guest]
功能:設置是否允許指定用戶覆蓋同名文件。默認是允許。
實例:overwrite no anonymous,guest:為了更好地管理FTP伺服器,一般情況下,我們不允許匿名用戶覆蓋同名文件。
14. 格式:rename [yes/no] [real/anonymous/guest]
功能:設置是否允許指定用戶使用rename命令來為文件改名。默認是允許。
實例:delete no anonymous:為了更好地管理FTP伺服器,一般情況下,我們不允許匿名用戶執行rename命令改變文件名。而對有記錄的匿名用戶則適當的放寬,允許他們使用改名命令。
15. 格式:chmod [yes/no] [real/anonymous/guest]
功能:設置是否允許指定用戶使用chmod命令更改文件許可權。默認是允許。
實例:delete no anonymous,guest:為了更好地管理FTP伺服器,一般情況下,我們不允許匿名用戶執行chmod命令更改文件許可權。
16. 格式:umask [yes/no] [real/anonymous/guest]
功能:設置是否允許指定用戶使用umask命令。默認是允許。
實例:delete no anonymous:為了更好地管理FTP伺服器,一般情況下,我們不允許匿名用戶執行umask命令。
17. 格式:upload [根目錄] [上載目錄] [yes/no] [用戶] [許可權] [dirs/nodirs]
功能:對可以上載的目錄進行更加詳細的設置。
實例:upload /home/ftpd * no:表示在子目錄/home/ftpd下不允許上載;upload /home/ftpd /bin no:表示在子目錄/home/ftpd/bin下不允許上載;upload /home/ftpd /etc no:表示在子目錄/home/ftpd/etc下不允許上載;upload /home/ftpd /pub yes real 0644 dirs:允許用伺服器上的合法用戶在子目錄/home/ftpd/pub目錄下能上載許可權為0644(也就是-rw-r--r--)的文件,而且在這個目錄下可以新建子目錄。 upload /home/ftpd /incoming yes real guest anonymous 0644 dirs:允許所有的用戶在子目錄/home/ftpd/incoming下能上載許可權為0644的文件,而且在這個目錄下可以新建子目錄。
18. 格式:alias [目錄別名] [目錄名]
功能:給指定目錄設置一個別名,在切換目錄時就可以使用較短的目錄別名。
實例:alias inc: /incoming:為子目錄incoming設置一個別名inc:。
19. 格式:email [guest的E-Mail地址]
功能:只要將某些E-Mail地址設置在這個地方,那麼這些用戶登錄到FTP伺服器時,他的身份將為guest,一般許可權比real低一些,比anonymous高。
實例:email [email protected] email [email protected]:這里僅是一個示例,實際上可以包含多個符合規范的E-Mail地址。
20. 格式:deny [IP地址/域名] [說明文件]
功能:這個設置可以限制哪一些IP地址或域名的用戶無法登入FTP伺服器。
實例:deny *.com.tw /etc/ftpd/deny.msg:設置凡是域名是以「.com.tw」結束的域名,都禁止其訪問。而將/etc/ftpd/deny.msg的內容顯示給用戶看。
5.3.5 設置/etc/ftpuser,禁止某些用戶登錄
有時我們需要禁止一些用戶使用FTP服務。其實這個設置是十分簡單的,只需要將要禁止的用戶帳號寫入文件/etc/ftpuser中。由於從系統的安全考慮,一般我們是不希望許可權過大的用戶和一些與命令名相同的用戶進入FTP伺服器。所以在預設的配置中,一般以下用戶已經被列入了「黑名單」。
root uucp news bin adm nobody lp sync shutdown halt mail
5.3.6 設置/etc/ftphosts,禁止某些來自指定機器上的登錄
如果你需要拒絕來自某些主機的登錄,一種方法就是在/etc/ftpaccess中設置deny命令,另一種更加簡單的方法就是在/etc/ftphosts中寫入你要禁止的主機的IP地址或域名。
5.3.7 使新的配置生效
到此為止,我們已經能夠根據自己的需要對FTP伺服器配置進行必要的修改和調整。而讓我們重新配置後,就必須使其生效。一般的,對/etc/ftpaccess的配置是直接作用於設置後的下一次FTP服務進程。而其它的則要對inetd進程重新啟動。
5.4 wu-ftp相關的其他一些命令的使用
5.4.1 連接數統計命令ftpcount
我們可以使用ftpcount命令十分清楚地統計出當前連接到FTP伺服器上的用戶數目,並且同時列出上限。命令輸出如下所示:
Service class local 0 Users(20maximum)
Service class remote 5 Users(100maximum)
5.4.2 在線用戶查看命令ftpwho
我們可以使用ftpwho命令十分清楚地列出當前連接的用戶的詳細情況。
5.4.2 FTP關閉文件生成命令ftpshut
我們可以使用ftpshut命令生成一個在/etc/ftpaccess中設置的shut.msg文件,用於關機設定。ftpshut命令的格式為:
Ftpshut <-l min> <-d min> time <說明>
-l 這個參數設定在關閉FTP伺服器功能前多少分鍾時停止用戶的連接;
-d 這個參數設定在關閉FTP伺服器功能前多少分鍾時切斷用戶連接;
time 指定關閉FTP伺服器的時間。例如6:20分則寫為0620;
Ⅱ 怎麼樣在Redhat Linux 下配置FTP,Web,MySql服務(要具體的,最好完整的)
1,Linux下架FTP!!
Linux下一般最常用的工具wu-ftpd.
wu-ftpd的安裝非常容易,大多數版本的Linux中都包含了wu-ftpd的rpm軟體包,你可以在安裝Linux時指定裝入。如果你想自行編譯源代碼,也可以到ftp://ftp.wu-ftpd.org下載最新版本的源代碼包。
安裝好以後,可以用ckconfig命令來檢查是否已經正確安裝。在/etc/passwd中可以指定ftp用戶的登入目錄。
wu-ftpd主要有以下6個配置文件:
ftpaccess(主要配置文件,控制存取許可權)
ftpconvertions(配置文件壓縮/解壓縮轉換)
ftpgroups(設定ftp自己定義的群組)
ftphosts(設定個別的用戶許可權)
ftpservers(設定不同IP/Domain Name以對應到不同的虛擬主機)
ftpusers(設定哪些帳號不能用ftp連線)
下面我們來一一介紹。
⒈/etc/ftpaccess(wu-ftpd的主要配置文件)
class--定義群組,用法如下:
class<種類>;<用戶地址>;[<用戶地址>;……]
由class定義的群組用戶才可以連線進來,可以使用多層式的class來規范哪些群組的用戶能夠從哪些地方上來。這里有三個重要的種類,real、anonymous個guest。real如果沒有列在定義中,那麼這台機器中任何真實的一般用戶都無法用自己的帳號連上來。anonymous如果沒有在定義,就表示不讓沒有帳號的的人連上來。如果有定義guest,那麼guest群組的人就可以上來。另外<用戶地址>;是指ftp上來的用戶會用到的IP地址,則可自行設定。以下是一些例子:
class all real,guest,anonymous *
定義了一個名為all的class,包含三種人,所有IP的連線用戶(也就是所有人都包括了)
class local real localhost loopback
local這個class說,只有real的用戶可以從本機機器連上來
class remote guest,anonymous *
remote這個class包含了從任何地方上來的guest和anonymous用戶,但是real用戶不算
class rmtuser real !*.example.com
rmtuser這個class包含了從外面來的(除了example.com)真實用戶
autogroup--自動對應群組,用法如下:
autogroup[……]
當你定義好的那些同屬於一個class的用戶,一旦連線上來就會被對應到一個相應的群組下面,這樣你就可以用Unix的文件許可權對某一群人做限制。
deny--拒絕某些地址連線,用法如下:
deny<拒絕連線的地址>;<信息文件>;
禁止某些機器連線,並顯示<信息文件>;。例如:
deny 210.62.146.*:255.255.255.254 /etc/reject.msg
guestgroup--設定訪客群
guestuser--設定訪客帳號
realgroup--設定真實群組
realuser--設定真實帳號
nice--設定給某些class多少優先權,用法如下:
nice
在Linux中,nice的值是-20(最優先)到19(最後處理),這里你可以指定負的值來提高某class的優先順序。
defumask--設定某class的umask,用法如下:
defumask[]
umask是建立文件時該文件的的許可權掩碼
tcpwindow--設定tcpwindow的大小
keepalive--設定是否使用TCP SO_KEEPALIVE來控制斷線情形
timeout--設定連線超時,用法如下:
timeout accept<秒>;
接受連線超時,預設120秒
timeout connect<秒>;
連線建立超時,預設120秒
timeout data<秒>;
數據傳送超時,預設1200秒
timeout idle<秒>;
用戶發呆超時,預設900秒
file-limit--限制某class只能傳幾個文件,用法如下:
file-limit[][]
對某個class限制存取文件的數目,包含了in(上傳)、out(下載),total raw代表整個傳輸的結果,不光是數據文件。例如:
file-limit out 20 lvfour
限制lvfour這個class的用戶最多隻能下載20個文件
byte-limit--限制某class只能傳幾個位元組,用法跟file-limit相似
limit-time--限制一個連線只能持續多久,用法如下:
limit-time{*|anonymous|guest}<分鍾>;
為了避免有人掛在站上不下來,可以用這個方法限制用戶的上線時間,例如:
limit-time guest 5
讓guest帳號的用戶只能用5分鍾
limit--限制某class能同時幾人上線,用法如下:
limit<連線數目>;<時間區段>;<額滿信息文件>;
設定某個class在某一時間區段內最多能夠幾人同時上線,後面是當超過連線數目時要顯示的信息。例如:
limit all 32 Any /home/ftp/etc/toomanyuser.msg
限制所有連線在任何時間只能有32個用戶,超過則拒絕連線並顯示信息
limit levellone 5 Any2300-0600 /home/ftp/etc/toomanyuser.msg
限制levellone這個class的用戶在23:00到6:00這段時間內只能有5人連線
noretrieve--設定哪些文件不可下載
noretrieve[absolute/relative][class=]…[-][<文件名>;…]
absolute或relative指文件是用絕對路徑還是相對路徑
allow=retrieve--設定哪些文件可以下載
allow[absolute/relative][class=]…[-][<文件名>;…]
loginfails--設置登入錯誤可嘗試的次數
當用戶連線時可能打錯ID或密碼,這個設定可以讓他打錯幾次以後就斷線,避免有人用窮舉法猜測密碼。
private--設定線上是否可以執行SITE GROUP/SITE GPASS
當開放SITE GROUP與SITE GPASS指令時,可以用這兩個指令切換到/etc/ftpgroup的群組。一般而言我們不會用到這個功能,以避免安全漏洞。
greeting--顯示Server的版本信息,用法如下:
greeting
當用戶登入畫面顯示的server信息,full是預設值,包含版本號以及hostname,brief只有hostname,而terse只有「FTP server ready」的信息。
barnner--設定未進入Login畫面之前用戶看到的信息,用法如下:
banner<文件路徑>;
這里敘述了在用戶登入時,在還沒打ID/Password之前要出現的信息。文件路徑指的是相對於真實的路徑,而不是相對於ftp的根目錄。
host--設定ftp主機名
email--指定ftp管理者的email地址
message--信息文件的設定,用法如下:
message<文件>;{<何時>;{……}}
這里的文件的路徑是相對於ftp的根目錄的,「何時」是指當你做了什麼動作之後的反應,有幾個選擇:
login(登入時)
cwd=<目錄>;(進入某目錄時)
class 名稱是前面已經定義過的,允許你的信息只對哪些人發出。
而信息文件的內容除了文字以外,還可以使用以下一些事先定義好的代號:
%T(本機時間)
%F(目前分區所剩餘的空間)
%C(目前所在的目錄)
%E(管理者的E-mail)
%R(客戶端主機名稱)
%L(本機主機名稱)
%U(用戶名稱)
%M(與我相同class用戶允許多少人連線)
%N(與我相同class用戶目前有多少人連線)
%B(絕對磁碟限制大小,目前分區(單位blocks))
%b(preferred磁碟限制大小,目前分區(單位blocks))
%Q(目前已使用的blocks)
%I(最大可使用的inodes(+1))
%i(Preferred inodes限制)
%q(目前使用的indoes)
%H(超量使用磁碟空間的時間限制)
%h(超量使用文件數目的時間限制)
readme--通知用戶哪些README文件已經更新
log commands--記錄用戶所使用過的命令,用法如下:
log commands<用戶種類>;
log transfers--記錄用戶所傳輸的文件,用法如下:
log transfers<用戶種類>;<傳輸方向>;
設定有哪些類型的用戶傳輸文件需要記錄,包含了inbound(用戶上傳)和outbound(用戶下載),例如:
log transfers anonymous,guest inbound,outbound
log security--記錄安全性,用法如下:
log security<用戶種類>;
特別用於記錄某類用戶關於noretrive、notar等有關安全性的記錄
log syslog--記錄到系統的syslog文件
alias--設定目錄別名,用法如下:
alias<別名字元串>;<目錄>;
cdpath--設定cd更換目錄搜索順序
compress,tar--設定是否自動壓縮,用法如下:
compress[……]
tar[……]
定義哪些人可以執行壓縮以及tar
shutdown--通知用戶要關站了
shutdown<信息文件>;
如果信息文件存在的話,當這個文件指定的某時間以後,就會拒絕連線並切斷已有的連線,等時間一到就關機。這個信息文件的格式如下:
<年>;<月>;<日>;<時>;<分>;<拒絕倒數>;<斷線倒數>;<文字>;
daemon address--指定只監聽某個IP地址,用法如下:
daemon address
當你有許多IP的時候,使用這個選項將會取消其它任何虛擬FTP主機的設定。不設定的話,監聽所有IP。
virtual--設定虛擬FTP站台
wu-ftpd提供了虛擬主機的功能,也就是說,在同一台機器上提供了不同FTP站台,以主機名稱或IP來區分;當然你要用名稱的話,還需要跟DNS配合才行。virtual有很多個設定:
virtual
<路徑>;
可以是主機名或IP地址
root指的是ftp的根目錄,banner是歡迎信息,logfile指的是這個虛擬站台的log文件
以下是一些例子:
virtual virtual.com.bj root /home/ftp2
virtual virtual.com.bj banner /etc/vftpbanner.2
virtual virtual.com.bj logfile /etc/viftplog.2
virtual
<字母>;
用戶可以查到hostname跟管理者email,以下是一些例子:
virtual 210.62.146.50 hostname virtual.site.com.bj
virtual vritual.site.com.bj email [email protected]
virtual
allow<用戶>;[<用戶>;……]
virtual
deny<用戶>;[<用戶>;……]
很明顯,以上兩個選項是設定是否允許連線的,以下是一些例子:
virtual virtual.site.com.bj allow *
virtual virtual.site.com.bj deny badman
virtual
private
本虛擬站台拒絕anonymous用戶
defaultserver deny <用戶>;[<用戶>;……]
defaultserver allow <用戶>;[<用戶>;……]
當我們使用了虛擬主機,原先的deny,allow設定不知道要設哪個server,所以會無效,用defaultserver代表原來的主機
defaultserver private
主站台拒絕anonymous用戶
passive address--轉換IP數值
passive address<外部IP>;/cidr
passive ports--passive的ports范圍
passive ports
pasv-allow--允許使用pasv
pasv-allow[<地址>;……]
port-allow--允許使用port
port-allow[<地址>;……]
mailserver--指定Upload通知的mail伺服器
incmail--指定anonymous upload的email通知地址
virtual incmail--指定虛擬主機anonymous upload的email通知地址
defaultserver incmail--指定預設主機anonymous upload的email通知地址
mailfrom--通知的寄信人upload
virtual mailfrom--虛擬主機upload通知的寄信人
defaultserver mailfrom--預設主機upload通知的寄信人
chmod--設定是否可以改變文件許可權
delete--設定是否可以刪除文件
overwrite--覆蓋文件
rename--重命名文件
umask--允許設定umask
passwd-check--設定anonymous FTP的密碼檢查程度,用法如下:
passwd-check()
設定對anonymous ftp用戶的密碼是否檢查,none表示不檢查,trivial為包含@的任意密碼,rfc822則表示密碼要遵循RFC822格式,enforce表示密碼檢查不過不允許進入,warn表示密碼檢查不過只出現警告信息。
deny=email--拒絕特定的email當密碼
path-filer--攝定哪些文件名不可使用
path-filer<錯誤信息文件>;<允許字元>;<不允許字元>;
upload--設定upload許可權
upload[absloute/relative][class=]…[-]<設定的目錄>; >;[dirs/nodirs][d_mode]
用來對我們要設定的目錄做許可權設定:
absoulte/relative使用絕對路徑或是相對路徑
class=指定某個class
root-dir指的是對哪些root-dir的人,也就是chroot後的登入目錄,應用這個規則
設定的目錄指的就是我們要限制的目錄
yes/no指得是能否在此目錄下開新文件
owner,group指出是開出來的文件擁有者及群組
Mode指的是文件許可權
dirs/nodirs指的是能否開新目錄
d_mode設定建立新目錄時目錄的許可權,如果不設定會根據mode來設定
thoughput--控制下載速度
thoughput<子目錄列表>;<文件>;<遠端地址列表>;
對遠端的地址,控制他抓某個子目錄下的某些文件時的速度,例如:
thoughput /e/ftp * * oo - *
thoughput /e/ftp /sw* * 1024 0.5 *
thoughput /e/ftp sw* readme oo - *
thoughput /e/ftp sw* * oo - *.foo.com
以上的設定你是否能夠看出來呢?「oo」表示不限制bytes/sec,「-」或是「1.0」都是代表一倍。第一行的意思是說,在/e/ftp下面的文件不限制下載速度;第二行說,在/sw*下面的任何文件限速為1024bytes/sec*
0.5=512bytes/sec;第三行又把readme文件的限速取消;最後一行則對*.foo.com開放全速。
anonymous-root--對某class設定匿名用戶的根目錄
anonymous-root[]
guest-root--預設一個guest用戶根目錄
guest-root[]
其中用於指定uid的范圍
deny-uid,deny-gid--拒絕某段UID(GID)范圍
allow-uid,allow-gid--允許某段UID(GID)范圍
restricted-uid,restricted-gid--限制用戶不能離開他的登錄目錄
unrestricted-uid,unrestricted-gid--用戶可以離開他的登錄目錄
dns refuse_mismatch--設定DNS查到名稱與用戶設定不符的動作
dns refuse_mismatch<信息文件>;[override]
當用戶使用未注冊IP時,拒絕他的連線,override則是不理會錯誤而讓他連線,信息文件則是我們要給用戶看的。
dns refuse_no_reverse--設定無反查記錄拒絕連線
dns refuse_no_reverse<信息文件>;[override]
當用戶的IP反查無記錄時,拒絕他的連線
dns resolveoptions--設定DNS解析選項
dns resolveoptions[options]
這里可以設定DNS解析選項
⒉/etc/ftphosts
ftphosts文件其實跟ftpaccess裡面的access,deny很像,它是特別用來設定某些ID的連線,它沒有class定義,所以必須是真實用戶。
allow|deny<用戶>;<地址>;[<地址>;……]
以下是一些例子:
allow rose 140.0.0/8
deny jack 140.123.0.0:255.255.0.0
允許rose從140.*.*.*進來,拒絕jack從140.123.*.*上來
⒊/etc/ftpservers
這個文件控制了當你有不同的IP/hostname的時候,進來的連線使用哪一個配置文件。例如:
10.196.145.10 /etc/ftpd/ftpaccess.somedomain/
10.196.145.200 /etc/ftpd/ftpaccess.someotherdomain/
some.domain internal
10.196.145.20 /etc/ftpd/config/faqs.org/
ftp.some.domain /etc/ftpd/config/faqs.org/
⒋/etc/ftpusers
在這個文件里記錄的用戶禁止使用FTP
⒌/etc/ftpgroups
給SITE GROUP指令使用,線上切換group。SITE EXEC容易造成安全漏洞,一般我們都不開放。
⒍/etc/ftpconversions
用來做tar、compress、gzip等動作指令配置文件,只要用預設即可,如果你不開放即時壓縮打包,也可以把內容清除。
2,Linux操作系統近幾年有了蓬勃的發展,在整個世界范圍內得到了越來越多公司和團體的支持,尤其是最近IBM公司的鼎力支持,更是使Linux伺服器如虎添翼,更上一層樓
Linux操作系統近幾年有了蓬勃的發展,在整個世界范圍內得到了越來越多公司和團體的支持,尤其是最近IBM公司的鼎力支持,更是使Linux伺服器如虎添翼,更上一層樓。而在國內,Linux的應用也是方興未艾,眾多公司已經投入到Linux系統的研發和推廣工作中。一些優秀的Linux操作系統相繼出現,比如紅旗Linux等。但是我國的Linux應用水平還很低,熟悉Linux的人員嚴重缺乏,Linux專業人才的缺乏已成為Linux在國內應用和普及的瓶頸問題。據《開放系統世界》2003年第八期介紹,中國五年內Linux人才需求量將會超過120萬。而「1+1+1」工程的實施,也是間接地告訴我們這個問題的嚴重性。如此大好時機,我們干嗎還愣著不動呢!如果你是一位Linux愛好者,你可能已經掌握了基本的Linux的知識與操作,毫無疑問,你並不會去滿足這樣小小的成就。Linux為何如此的流行?其最大的特點莫過於功能強大,性能穩定的伺服器應用了。像WWW,MAIL,FTP,DNS和SMB等。在這篇文章中,我將以Redhat Linux 9為藍本,從Web伺服器的一些最基本的操作入手,從初學者使用的態度,讓讀者正確充分的認識Apache。好,現在就讓我們一起踏上征服Apache的自由之路吧。
Apache的主要特徵是:
. 可以運行上所有計算機平台;
. 支持最新的HTTP 1.1協議;
. 簡單而強有力的基於文件的配置;
. 支持通用網關介面CGI;
. 支持虛擬主機;
. 支持HTTP認證;
. 集成Perl腳本編程語言;
. 集成的代理伺服器;
. 具有可定製的伺服器日誌;
. 支持伺服器端包含命令(SSI)
. 支持安全Socket層(SSL)
. 用戶會話過程的跟蹤能力;
. 支持FastCGI;
. 支持Java Servlets。
安裝Apache
下面我們就開始漫漫征服Apache之旅,通過循序漸進的需求實例,一步步地學習使用Apache,從入門到精通。
系統需求
運行Apache不需要太多的計算資源。它在有6-10MB硬碟空間和8MB RAM的Linux系統上運行得很好。然而,只運行Apache可能不是你想做的事情。更可能的是,你想運行Apache來提供WWW服務、啟動CGI進程以及充分利用所有WWW能夠提供的令人驚奇的功能。在這種情況下,你需要提供反映負載要求的額外的磁碟空間和內存空間。也就是說,如果僅僅是啟動WWW服務並不需要太多的系統資源,但是想要能為大量的客戶提供服務就需要更多的系統資源。
獲取軟體
你可以在http://www.apache.org中獲得Apache的最新版。而幾乎所有的Linux發行版中均包含有Apache軟體包,你也可以直接使用它。
需要注意的是,Apache軟體包有兩種:一種是源代碼,下載後需要自己重新編譯;另一種是可執行文件,下載後只需解壓就可以使用。
安裝軟體
你可以通過以下三種方法安裝Apache伺服器。
1.如果你安裝的Linux版本中帶用Apache的話,就在選擇所要安裝的伺服器的時候,將httpd這個服務選上,Linux安裝程序將自動完成Apache的安裝工作,並做好基本的配置。
2.使用可執行文件軟體包,這比較適合那些對編譯工作不是太熟悉的初級用戶,因為它相對比較簡單。
下載軟體包apache_1.2.4.e.tar.gz
tar xvzf apache_1.2.4.e.tar.gz
這就完成了安裝工作,簡單吧!
如果你使用的是RedHat Linux的話,你也可以下載apache_1.2.4.rpm軟體安裝包,然後使用rpm -ivh apache_1.2.4.rpm命令安裝。
3.如果你想把Apache伺服器充分利用起來的話,就一定要自己編譯Apache定製其功能。
下載包含Apache源代碼的軟體包apache_1.2.4.tar.gz; 然後用tar命令將它解開; 將當前目錄改變為Apache源代碼發行版的src目錄; 將配置樣本文件(Configuration.tmpl)復制為Configuration文件;
編輯Configuration文件中的配置選項:
Makefile配置選項:一些編譯選項:
. "CC="一行指定用什麼編譯軟體編譯,一般為"CC=gcc";
. 如果需要將額外的標志(參數)指定給C編譯軟體,可以使用:
EXTRA_CFLAGS=
EXTRA_LFLAGS=
. 如果系統需要特殊的庫和包含文件,可以在這里指定它們:
EXTRA_LIBS=
EXTRA_INCLUDES=
. 如果你要改變代碼優化設置的話,你須將下面一句去掉注釋,然
後改成你所需要的值:
#OPTIM=-O2
Rule配置選項:用來決定需要什麼功能,一般情況下無需改變。
模塊配置:模塊是Apache的組成部分,它為Apache內核增加新功能。通過使用模塊配置,可以自定義在Apache伺服器中需要什麼功能,這個部分也是Apache靈活性的表現。模塊配置行如下所示:
AddMole moles/standard/mod_env.o
如果你需要Apache伺服器具備什麼功能,就將那個模塊用AddMole語句加到配置文件Configuration中去。
3,一、 MYSQL的基本概念
1、MYSQL的定義
MYSQL一種多用戶、多任務的資料庫伺服器軟體
2、MYSQL的特點
支持多平台,沒有內存漏洞,分布式處理
支持JAVA、PHP、PERL、支持數據類型
支持ODBC,支持SQL查詢
二、 安裝MYSQL的伺服器
1、 RPM方式MYSQL
#RPM –ivh MYSQL-3。23-3.i386.rpm
#RPM –ivh MYSQL-client-3.23-33.i386.rpm
#RPM-ivh MYSQL-Shared.3.23-33.i386.rpm
#Tpm -ivh MYSQL –server.3.23-33.i386.rpm
2.編譯安裝方式
#tar -xvzf mysql 3.23.tar.gz
# cd mysql-3.23
#/configure --prdfix=/usr/local
#make
#malke install
# cd/usr/local/bin/
#/mysql-install-db 初始資料庫系統。
系統庫作用:記錄伺服器的設置參數,存放用戶庫信息
安全選項
#safe-mysqld
Ⅲ 如何修改linux系統banner信息
Linux下登錄提示是記錄在/etc/issue和/etc/motd中,這兩者的區別是,前者是在用戶登錄前就顯示,而後者則是在用戶登錄後顯示。我們當然需要更改/etc/issue中的內容。而Linux在重新啟動過程中會執行一系列腳本,使更改的Banner恢復腳本定議的內容,用戶可以用#注釋掉相關腳本,用戶也可以在rc.local腳本中添加內容,這樣就可以在啟動過程中執行。在Arch上rc.local位於/etc/rc.local,而在Slackware中,其位於/etc/rc.d/rc.local。
知道了以上的信息後就不難辦了。使用管理員許可權修改rc.local文件的內容如下所示:
#!/bin/bash
ipaddr=$(ifconfig | sed -ne 's/ *inet
addr:([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}) *B.*/1/p')
echo $'x1bx5bx48x1bx5bx32x4ax0a''Arch
Linux ['$ipaddr'] ( ) (l)' > /etc/issue
以上需要說明的是第二行,是通過正則獲取ifconfig命令輸出的ip地址,最後一行是輸出信息到issue文件。
最後一行中前邊的字元串是用來清除終端顯示的,而issue文件中轉義字元也有不同的含義,可以通過man
agetty 8來獲取所有轉義字元的含義。
一,ftp服務Linux
Banner修改法:
wu-ftp修改
用十六進制文本編輯器修改/usr/sbin/in.ftpd文件,找到如下幾行:
/var/log/lastlog
Could
not write %.100s:%.100s
Version wu-2.6.1-16
改成:
Microsoft FTP
Service(Version.6.0)
或者:
Serv-U FTP Server v6.4 for WinSock ready...
通過上面的方法將自己的WU-FTP修改成SERV-U或IIS自帶的FTP,從而達到迷惑黑客的目的。
vsftpd的修改 編輯配置文件 vsftpd.conf 找到這行#ftpd_banner= 將#號刪除,把=號後面的修改成你要的名稱
我這里修改成了 ftpd_banner=Serv-U FTP Server v6.4 for WinSock ready...
二,Telnet Linux
Banner修改法:
編輯文件/etc/issue.net,找到類似這幾行(不同版本的Linux內容不太一樣):
Red
Hat Linux release 8.0(Psyche)
Kernel on an m
改成:
Microsoft Windows
Version 5.00(Build 2195)
Welcome to Microsoft Telnet Service
Telnet Server
Build
5.00.99206.1
由於issue.net重啟後會自動恢復,為了保護這些偽造的信息,還需要編輯文件/etc/rc.local,
在這些行前加「#」號,注釋掉恢復的功能:
#echo」」>/etc/issue
#echo」$R」>>/etc/issue
#echo
「Kernel $(uname –r) on $a $SMP$(umame
–m)」>>/etc/issue
#cp-f/etc/issue/etc/issue.net
#echo>>/etc/issue通過上面的方法將自己linux系統下的telnet服務修改成windows下的telnet服務,從而達到迷惑黑客的目的。
三,Apache Linux
Banner修改法:
在安裝Apache前,在源文件/src/include目錄下找到httpd.h頭文件。此文件定義了Apache的版本信息,Apache安裝時需要調用它。編輯http.h文件,找到如下幾行:
#define
Server_BASEVENDOR 「Apache Group」
#define Server_BASEPRODUCT
「Apache」
#define Server_BASEREVISION
「1.3.20」
可以根據自己的意願改成其他信息,筆者改的是Microsoft-IIS/5.0。
編輯文件/etc/ssh/sshd_config,找到這行:
Banner/etc/issue.net
在此行前加#進行注釋就可以不顯示SSH的Banner了。通過上面的方法將自己的APACHE
banner修改成windows下的IIS,從而達到迷惑黑客的目的。
四,Sendmail Linux
Banner修改法:
在sendmail.mc文件中去掉$v、$z這兩個宏,並包含下面的內容:
define(confSMTP_LOGIN_MSG』,$j
Sendmail
Sencure/Recure/Rabid;$b)
然後生成sendmail.cf文件
#m4/etc/mail/sendmail.mc>/etc/sendmail.cf
如果sendmail.mc中沒有include(『/usr/share/sendmail.cf/m4/cf.m4』)這一行就需要
和Sendmail
提供的預設的配置文件cf.m4一起使用來生成文件sendmail.cf:
#m4 /usr/share/sendmail-cf/m4/cf.m4
/etc/mail/sendmail.mc>/etc/sendmail.cf通過上面的方法有效的對sendmail服務的banner進行修改,從而達到迷惑黑客的目的。
五,修改linux機器的ttl值運行
echo 128 >
/proc/sys/net/ipv4/ip_default_ttl 將數字128寫入ip_default_ttl文件,128段通常為windows系統
可以將此語句寫入啟動,/etc/rc.local 這樣開機有自動修改了ttl數值了,保護了linux安全
總結:
經過上述的幾個步驟,Linux系統的基本安全性能就得到了很大的增強。我們成功的將黑客阻擋在入侵之外。當然要得到最大化的安全性能,當然還要根據實際需求配置Apache等,由於篇幅所限,這里就不詳細介紹了。
Ⅳ 傳輸協議FTP的工作原理和使用步驟
1、 簡介
在絕大多數的LINUX發行版本中都選用的是WashingtonUniversity FTP,它是一個著名的FTP伺服器軟體,一般簡稱為wu-ftp。它功能強大,能夠很好地運行於眾多的UNIX操作系統,例如:IBM AIX、FreeBSD、HP-UX、NeXTstep、Dynix、SunOS、Solaris等。所以Internet上的FTP伺服器,一大半以上採用了它。wu-ftp擁有許多強大的功能,很適於吞吐量較大的FTP伺服器的管理要求:
· 在用戶下載文件的同時對文件做自動的壓縮或解壓縮操作;
· 對不同網路上的機器做不同的存取限制;
· 記錄文件上載和下載時間;
· 顯示傳輸時的相關信息,方便用戶及時了解目前的傳輸動態;
· 設置最大連接數,提高了效率,有效地控制了負載。
2、 所需資源
2.2.1 所需包
RedHat6.2 伺服器安裝
2.2.2 所需配置文件
/etc/ftpusers
/etc/ftpaccess
/var/run/ftp.pids
/etc/ftpconversions
/var/log/xferlog
/etc/ftpgroups
/etc/ftphosts
2.2.3 相關命令
ftpd FTP伺服器程序
ftpshut 用於關閉FTP伺服器程序
ftpcount 顯示目前在線人數
ftpwho 查看目前FTP伺服器的連接情況
ckconfig 檢查FTP伺服器的設置是否正確
ftprestart 重新啟動FTP服務
2.2.4 相關目錄
/home/ftpd/bin 存放一些供FTP用戶使用的可執行文件
/home/ftpd/etc 存放一些供FTP用戶使用的配置文件
/home/ftpd/pub 存放供下載的信息
/home/ftpd/incoming 存放供上載信息的空間
3、 配置方案
/etc/ftpaccess
說明: ftp許可權配置文件
源文件:
guestuser weboa# FTP用戶class all real,guest,anonymous *class weboa guest *# 格式:class [類名] [real/guest/anonymous] [IP地址] 功能: 這個指令的功能設定FTP伺服器上用戶的類別。並可對客戶端的IP 地址進行限制,允許某部分的IP地址或全部的IP地址訪問。而在FTP 伺服器上的用戶基本上可以分為以下三類: real 在該FTP伺服器有合法帳號的用戶; guest 有記錄的匿名用戶; anonymous 許可權最低的匿名用戶 email [email protected] 5# 格式:loginfails [次數] 功能:設定當用戶登錄到FTP伺服器時,允許用戶輸錯密碼的次數。 readme README* loginreadme README* cwd=*message /welcome.msg loginmessage .message cwd=*# 格式:message [文件名稱] [指令] 功能:當用戶執行所指定的指令時,系統將指定的文件內容顯示出來。 compress yes all# 格式:compress [yes/no] [類別] 功能:設置哪一個類別的用戶可以使用compress(壓縮)功能。 tar yes all# 格式:tar [yes/no] [類別] 功能:設置哪一個類別的用戶可以使用tar(歸檔)功能。 chmod no guest,anonymous# 格式:chmod [yes/no] [real/anonymous/guest] 功能:設置是否允許指定用戶使用chmod命令更改文件許可權。默認是允許。delete yes all# 格式:delete [yes/no] [real/anonymous/guest] 功能:設置是否允許指定用戶使用delete命令刪除文件。默認是允許。overwrite yes guest# 格式:overwrite [yes/no] [real/anonymous/guest] 功能:設置是否允許指定用戶覆蓋同名文件。默認是允許。rename yes guest# 格式:rename [yes/no] [real/anonymous/guest] 功能:設置是否允許指定用戶使用rename命令來為文件改名。默認是允許。 log transfers anonymous,real inbound,outbound# 格式:log transfers [real/guest/anonymous] [inbound/outbound] 功能:設置哪些用戶的上載(inbound)和下載(outbound)操作做日誌。shutdown /etc/shutmsg# 格式:shutdown [文件名] 功能: FTP伺服器關閉的時間可以設置在後面所指定的文件中,當設 置的時間一到,便無法登錄FTP伺服器了,要恢復的話只有將 這個文件刪掉。而這個文件必 須由指令/bin/ftpshut來生成。 passwd-check rfc822 warn# 格式:passwd-check [none/trivial/rfc822] [enforce/warn] 功能:設定對匿名用戶anonymous的密碼使用方式。 none 表示不做密碼驗證,任何密碼都可以登錄; trival 表示只要輸入的密碼中含有字元"@"就可以登錄; rfc822 表示密碼一定要符合RFC822中所規定的E-Mail格式才 能登錄; enfore 表示輸入的密碼不符合以上指定的格式就不讓登錄; warn 表示密碼不符合規定時只出現警告信息,仍然能夠登錄。limit remote 32 Any /etc/ftpd/toomany.msg# 格式:limit [類別] [人數] [時間] [文件名] 功能:這個指令的功能為設置指定的時間內指定的類別允許連接的 指定人數上限。當達到上限的時候,顯示指定文件的內容。upload /home/ftpd * noupload /home/ftpd /pub yes anonymous 0644 dirs# 格式:upload [根目錄] [上載目錄] [yes/no] [用戶] [許可權] [dirs/nodirs] 功能:對可以上載的目錄進行更加詳細的設置。 alias incoming /home/ftp/incoming# 格式:alias [目錄別名] [目錄名] 功能:給指定目錄設置一個別名,在切換目錄時就可以使用較短的目錄別名。
/etc/ftpusers
說明:FTP用戶黑名單,為了安全考慮,需要禁止以下用戶使用FTP
源文件:
4、 小結
在眾多的網路應用中,FTP(File Transfer porotocol)有著非常重要的地位。在Internet中一個十分重要的資源就是軟體資源。而各種各樣的軟體資源大多數都是放在FTP伺服器中的。可以說,FTP與WEB服務幾乎占據了整個Internet應用的80%以上。
FTP服務可以根據服務對象的不同分為兩類:一類是系統FTP伺服器,它只允許系統上的合法用戶使用;另一類是匿名FTP伺服器,Anonymous FTP Server,它使用任何人都可以登錄到FTP伺服器上去獲取文件。
如果你在安裝LINUX系統的時候,在選擇啟動進程的時候選擇?quot;ftpd"這一項的話,安裝完LINUX系統後,它已經將一個默認的FTP伺服器安裝到系統中去了。我們已經可以利用它來實現系統FTP伺服器的功能了。我們只需在此基礎上根據我們的需要進行一些個性化設定就可以了。