於 Linux 分類下的文章
vsftpd 的全名是『Very Secure FTP Daemon 』
vsftpd 擁有兩種啟動的方式,分別是一直在監聽的【stand alone】 ,
一種則是透過 xinetd 這個 【super daemon】 來管理的方式。
在CentOS上預設都是用Stand alone來啟動的。
兩種vsftpd的使用時機為 :
【stand alone】: 如果你的ftp伺服器是提供給整個網際網路來進行大量下載的任務,例如公
家機關,或各大學校的 FTP 伺服器,那建議你使用stand alone 的方式,
服務的速度上會比較好
【super daemon】: 如果只是提供給公司內部人員使用的FTP,那使用super daemon來
管理就可以了
在【stand alone】中又可分為【stand alone-實體用戶】和【super daemon-匿名用戶】
這邊先介紹【super daemon】
一開始先檢查是否有安裝vsftp
[root@localhost ~]# rpm -q vsftpd vsftpd-2.0.5-16.el5_4.1 |
如果你的 CentOS 沒有安裝, 請利用 yum install vsftpd 來安裝他
【Super daemon】的設定方式
如果FTP較少在使用的情況下,可考慮使用Super daemon,在Super daemon管理部份就要自行修改設定檔。
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf #找到這一行 listen=YES #把YES改成NO listen=NO |
接下來修改設定檔,但是底下設定檔必須要自己新增才行。(基本設定)
有關設定檔內容的部份可參考【Super daemon設定檔語法說明 】
[root@localhost ~]# vi /etc/xinetd.d/vsftpd service ftp { socket_type = stream wait = no user = root server = /usr/sbin/vsftpd log_on_success += DURATION USERID log_on_failure += USERID nice = 10 disable = no } |
vsftpd 的全名是『Very Secure FTP Daemon 』
vsftpd 擁有兩種啟動的方式,分別是一直在監聽的【stand alone】 ,
一種則是透過 xinetd 這個 【super daemon】 來管理的方式。
在CentOS上預設都是用Stand alone來啟動的。
兩種vsftpd的使用時機為 :
【stand alone】: 如果你的ftp伺服器是提供給整個網際網路來進行大量下載的任務,例如公
家機關,或各大學校的 FTP 伺服器,那建議你使用stand alone 的方式,
服務的速度上會比較好
【super daemon】: 如果只是提供給公司內部人員使用的FTP,那使用super daemon來
管理就可以了
在【stand alone】中又可分為【stand alone-實體用戶】和【super daemon-匿名用戶】
這邊先介紹【super daemon-匿名用戶】
匿名登入的設定方式
首先我們要先知道當用匿名登入時的目錄在那個地方。基本上都是放在預設/var/ftp/目錄當中。
首先,先說明一下幾個重要的設定檔案
● /etc/vsftpd/vsftpd.conf
簡單來說,整個 vsftpd 的設定檔就只有這個檔案!是用『參數=設定值』來設定的, 等號兩邊不
能有空白喔!詳細的vsftpd.conf說明可用『man 5 vsftpd.conf 』查看。
● /etc/pam.d/vsftpd
這個是 vsftpd 使用 PAM 模組時的相關設定檔。主要用來作為身份認證之用,還有一些使用者
身份的抵擋功能, 也是透過這個檔案來達成的。
● /etc/vsftpd.ftpusers
和/etc/pam.d/vsftpd有關係,也就是PAM模組(/etc/pam.d/vsftpd_ 所指定的那個無法登入的使用
者設定檔。這個檔案的設定很簡單,只要將『不想讓他登入的帳號』寫入這個檔案就可以。一行
一個帳號。
● /etc/vsftpd.user_list
這個檔案能否生效與vsftpd.conf內的兩個參數有關,分別是『userlist_enable和userlist_deny』。
如果說/etc/vsftpd.ftpusers是PAM模組的抵擋設定項目,那麼這個/etc/vsftpd.user_list 則是 vsftpd
自訂的抵擋項目。事實上這個檔案與/etc/vsftpd.ftpusers幾乎一模一樣,在預設的情況下,你可
以將不希望可登入vsftpd的帳號寫入這裡。不過這個檔案的功能會依據vsftpd.conf設定檔內的
userlist_deny=(YES/NO) 而不同
● /etc/vsftpd.chroot_list
這個檔案預設是不存在的,所以必須要手動自行建立。這個檔案的主要功能是可以將某些帳號的
使用者chroot在家目錄下。但這個檔案要生效與vsftpd.conf內的『 chroot_list_enable,
chroot_list_file 』兩個參數有關。如果想要將某些實體用戶限制在家目錄下而不許到其他目錄去,
可以啟動這個設定項目喔
● /usr/sbin/vsftpd
這是 vsftpd 的主要執行檔,vsftpd只有這一個執行檔
● /var/ftp/
這是vsftpd預設匿名者登入的根目錄
建立vsftpd.conf的設定資料
雖然說可以同時開啟【stand alone-實體用戶】和【super daemon-匿名用戶 】,不過基於
安全性考量還是建議針對單一種身份來設定會比較安全一些。這邊就來介紹匿名登入的
設定方式
可依照個人的需求來設定vsftpd.conf,以下是一些基本的設定可參考看看。
至於其它Vsftd.conf詳細說明,可以參考【Vsftd.conf設定說明】
vsftpd 的全名是『Very Secure FTP Daemon 』
vsftpd 擁有兩種啟動的方式,分別是一直在監聽的【stand alone】 ,
一種則是透過 xinetd 這個 【super daemon】 來管理的方式。
在CentOS上預設都是用Stand alone來啟動的。
兩種vsftpd的使用時機為 :
【stand alone】: 如果你的ftp伺服器是提供給整個網際網路來進行大量下載的任務,例如公
家機關,或各大學校的 FTP 伺服器,那建議你使用stand alone 的方式,
服務的速度上會比較好
【super daemon】: 如果只是提供給公司內部人員使用的FTP,那使用super daemon來
管理就可以了
在【stand alone】中又可分為【stand alone-實體用戶】和【super daemon-匿名用戶】
這邊先介紹【stand alone-實體用戶】
查詢是否有安裝vsftpd
[root@localhost ~]# rpm -q vsftpd vsftpd-2.0.5-16.el5_4.1 |
如果你的 CentOS 沒有安裝, 請利用 yum install vsftpd 來安裝他吧
Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * addons: centos.ustc.edu.cn * base: centos.ustc.edu.cn * extras: centos.ustc.edu.cn * updates: centos.ustc.edu.cn addons | 951 B 00:00 base | 2.1 kB 00:00 #中間內容略過。 Is this ok [y/N]: y 中間過程會有兩次需要輸入y(確定) Is this ok [y/N]: y Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Updating : vsftpd 1/2 Cleanup : vsftpd 2/2 Updated: vsftpd.x86_64 0:2.0.5-16.el5_5.1 Complete! #這樣就安裝完了 |
先來啟動vsftp
正在啟動 vsftpd 中的 vsftpd: [ 確定 ] [root@localhost ~]# netstat -tulnp| grep 21 tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 4804/vsftpd #確定vsftp服務是否有起來,並且是以vsftp所啟動的 |
再來介紹Super daemon各種語法的功能和說明
一般設定項目:服務的識別、啟動與程式
● disable(啟動與否)
設定值:[yes|no],預設 disable = yes
disable為取消的意思,此值可設定該服務是否要啟動。預設所有的super daemon
管理的服務都不啟動的。若要啟動就得要設定為『disable = no』
● id(服務識別)
設定值:[服務的名稱]
雖然服務在設定檔開頭『service服務名稱』已經指定了,不過有時後會有重
複的設定值,此時可以用id來取代服務名稱。可以參考一下
/etc/xinetd.d/time-stream來思考一下原理
● server(程式檔名)
設定值:[program 的完整檔名]
這個就是指出這個服務的啟動程式。例如/usr/bin/rsync為啟動rsync服務的指令,
所以這個設定值就會成為:『server = /usr/bin/rsync』
● server_args(程式參數)
設定值:[程式相關的參數]
這裡應該輸入的就是server那裡需要輸入的一些參數。例如rsync需要
加入 –daemon,所以這裡就設定:『server_args = –daemon』。與上面server
搭配,最終啟動服務的方式『/usr/bin/rsync –daemon』
● user(服務所屬UID)
設定值:[使用者帳號]
如果 xinetd 是以 root 的身份啟動來管理的,那麼這個項目可以設定為其他使用
者。此時這個daemon將會以此設定值指定的身份來啟動該服務的程序喔!舉
例來說,你啟動rsync時會以這個設定值作為該程序的UID。
● group
跟user的意思相同。此項目填入群組名稱即可。
首先,先說明一下幾個重要的設定檔案
● /etc/vsftpd/vsftpd.conf
簡單來說,整個 vsftpd 的設定檔就只有這個檔案!是用『參數=設定值』來設定的, 等號兩邊不
能有空白喔!詳細的vsftpd.conf說明可用『man 5 vsftpd.conf 』查看。
● /etc/pam.d/vsftpd
這個是 vsftpd 使用 PAM 模組時的相關設定檔。主要用來作為身份認證之用,還有一些使用者
身份的抵擋功能, 也是透過這個檔案來達成的。
● /etc/vsftpd.ftpusers
和/etc/pam.d/vsftpd有關係,也就是PAM模組(/etc/pam.d/vsftpd_ 所指定的那個無法登入的使用
者設定檔。這個檔案的設定很簡單,只要將『不想讓他登入的帳號』寫入這個檔案就可以。一行
一個帳號。
● /etc/vsftpd.user_list
這個檔案能否生效與vsftpd.conf內的兩個參數有關,分別是『userlist_enable和userlist_deny』。
如果說/etc/vsftpd.ftpusers是PAM模組的抵擋設定項目,那麼這個/etc/vsftpd.user_list 則是 vsftpd
自訂的抵擋項目。事實上這個檔案與/etc/vsftpd.ftpusers幾乎一模一樣,在預設的情況下,你可
以將不希望可登入vsftpd的帳號寫入這裡。不過這個檔案的功能會依據vsftpd.conf設定檔內的
userlist_deny=(YES/NO) 而不同
● /etc/vsftpd.chroot_list
這個檔案預設是不存在的,所以必須要手動自行建立。這個檔案的主要功能是可以將某些帳號的
使用者chroot在家目錄下。但這個檔案要生效與vsftpd.conf內的『 chroot_list_enable,
chroot_list_file 』兩個參數有關。如果想要將某些實體用戶限制在家目錄下而不許到其他目錄去,
可以啟動這個設定項目喔
● /usr/sbin/vsftpd
這是 vsftpd 的主要執行檔,vsftpd只有這一個執行檔
● /var/ftp/
這是vsftpd預設匿名者登入的根目錄
在本身的/etc/vsftpd/vsftpd.conf就是一個詳細的設定檔。若想更加了解的可以使用【man 5 vsftpd.conf】
查詢。這邊提供一些常用的參數說名。
Vsftpd.conf 設定值這邊分為四大區塊:
1.與主機較相關的設定值。
2.與實體用戶較相關的設定值。
3.匿名者登入的設定值。
4.關於系統安全方面的一些設定值
FTP登入的時後出現【vsftpd 500 OOPS:chroot】錯誤訊息。
錯誤代碼為 : vsftpd 500 OOPS:chroot
解決辦法 :
關閉selinux
修改vi /etc/sysconfig/selinux
把原先的SELINUX=enforcing改為SELINUX=distable儲存後重開機
這樣一來就可以解決這個問題了
[root@localhost ~]# vi /etc/sysconfig/selinux # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing – SELinux security policy is enforced. # permissive – SELinux prints warnings instead of enforcing. # disabled – SELinux is fully disabled. # SELINUX=enforcing SELINUX=distable # SELINUXTYPE= type of policy in use. Possible values are: # targeted – Only targeted network daemons are protected. # strict – Full SELinux protection. SELINUXTYPE=targeted [root@localhost ~]# reboot |
簡單的比較說明:
【which】 通常都是用來尋找『執行檔』
【whereis】 通常是用來尋找『特定檔案』
【whersis】和【locate】搜尋時是以資料庫檔案裡的資料為主
【find】搜尋時是以整個硬碟裡的資料為主
在Linux下,find這個指令不常用到,因為不僅速度慢也很操硬碟。所以通常都是先使用whereis或是locate來檢查,最後真的找不到的話,才會使用到find來搜尋。
Whereis和locate是利用資料庫來搜尋資料,並非實際搜尋硬碟。因此在找資料上的速度相當快速,也較省時間。
以下是各指令的說明
which
這個指令是根據『PATH』這個環境變數所規範的路徑,去搜尋『執行檔』的檔名,而且which後面接的是『完整檔名』。若加上 -a 選項,則可以列出所有的可以找到的同名執行檔,而非僅顯示第一個!
[root@www ~]# which [-a] command
選項或參數:
-a :將所有由 PATH 目錄中可以找到的指令均列出,而不止第一個被找到的指令名稱
範例一:分別用root與一般帳號搜尋 ifconfig 這個指令的完整檔名
[root@www ~]# which ifconfig
/sbin/ifconfig <==用 root 可以找到正確的執行檔名喔!
[root@www ~]# su – derek <==切換身份成為 derek 去!
[derek@www ~]$ which ifconfig
/usr/bin/which: no ifconfig in (/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin
:/home/derek/bin) <==竟然一般身份帳號找不到!
# 因為 which 是根據使用者所設定的 PATH 變數內的目錄去搜尋可執行檔的!
# 不同的 PATH 設定內容所找到的指令當然不一樣啦!因為 /sbin 不在 derek 的
# PATH 中,找不到也是理所當然的啊!瞭乎?
whereis
為什麼whereis的搜尋速度會比find快這麼多呢?
因為Linux 會將系統內所有的檔案都記錄在一個資料庫檔案裡面,當要使用whereis和locate時,就會先以此資料庫檔案的內容為準。有時在使用這兩個執行檔的時後,會找到已經被殺掉的檔案。也有時後會找不到剛剛所建立的最新檔案,因為還沒有被記錄到此資料庫檔案中。
[root@www ~]# whereis [-bmsu] 檔案或目錄名
選項與參數:
-b :只找可執行檔( binary )格式的檔案
-m :只找在說明檔 manual 路徑下的檔案
-s :只找 source 來源檔案
-u :搜尋不在上述三個項目當中的其他特殊檔案
如果不加任何選項的話,那麼就將所有的資料列出來囉!
範例一:請用不同的身份找出 ifconfig 這個檔名
[root@www ~]# whereis ifconfig
ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
[root@www ~]# su – derek <==切換身份成為 derek
[derek@www ~]$ whereis ifconfig <==找到同樣的結果喔!
ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
[derek@www ~]$ exit <==回歸身份成為 root 去!
# 注意看,明明 which 一般使用者找不到的 ifconfig 卻可以讓 whereis 找到!
# 這是因為系統真的有 ifconfig 這個『檔案』,但是使用者的 PATH 並沒有加入 /sbin
# 所以,未來你找不到某些指令時,先用檔案搜尋指令找找看再說!
Linux 系統常見的壓縮指令
*.Z compress 程式壓縮的檔案
*.gz gzip 程式壓縮的檔案
*.bz2 bzip2 程式壓縮的檔案
*.tar tar 程式打包的資料,並沒有壓縮過
*.tar.gz tar 程式打包的檔案,其中並且經過 gzip 的壓縮
*.tar.bz2 tar 程式打包的檔案,其中並且經過 bzip2 的壓縮
由於compress有點年紀了,現在也沒什麼人在使用因此不做特別說明。想了解的可以自行玩玩
*.gz gzip 程式壓縮的檔案
壓縮方式:
[root@www ~]# gzip [ 參數] 檔名
解壓縮方式:
[root@www ~]# gzip -d[參數] 檔名.gz
只讀取檔案不解開:
[root@www ~]# zcat 檔名.gz
參數的使用說明:
-c :將壓縮的資料輸出到螢幕上,可透過資料流重導向來處理
-d :解壓縮的參數
-t :可以用來檢驗一個壓縮檔的一致性~看看檔案有無錯誤
-v :可以顯示出原檔案/壓縮檔案的壓縮比等資訊
-# :壓縮等級,-1 最快,但是壓縮比最差、-9 最慢,但是壓縮比最好!預設是 -6
*.bz2 bzip2 程式壓縮的檔案
壓縮方式:
[root@www ~]# bzip2 -z [ 參數] 檔名
解壓縮方式:
[root@www ~]# bzip2 -d[參數] 檔名.bz2
只讀取檔案不解開:
[root@www ~]# bzcat 檔名.bz2
參數的使用說明:
-c :將壓縮的過程產生的資料輸出到螢幕上!
-d :解壓縮的參數
-k :保留原始檔案,而不會刪除原始的檔案喔!
-z :壓縮的參數
-v :可以顯示出原檔案/壓縮檔案的壓縮比等資訊;
-# :與 gzip 同樣的,都是在計算壓縮比的參數, -9 最佳, -1 最快!
近期迴響