vsftpd架設(Super daemon)

由 Derek 發表於 五月 18, 2011 / 4 則評論

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架設(Super daemon-匿名登入)

由 Derek 發表於 五月 17, 2011 / 4 則評論

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-匿名用戶

若要了解匿名登入可參考此篇stand alone-實體用戶

 

 

匿名登入的設定方式

首先我們要先知道當用匿名登入時的目錄在那個地方。基本上都是放在預設/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_enableuserlist_deny』。

       如果說/etc/vsftpd.ftpusersPAM模組的抵擋設定項目,那麼這個/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架設(stand alone-實體用戶)

由 Derek 發表於 五月 16, 2011 / 1 則評論

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-實體用戶

若要了解匿名登入可參考此篇super daemon-匿名用戶

 

查詢是否有安裝vsftpd


[root@localhost ~]#  rpm -q vsftpd

vsftpd-2.0.5-16.el5_4.1

 


如果你的 CentOS 沒有安裝, 請利用 yum install vsftpd 來安裝他吧


 [root@localhost ~]# 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


 [root@localhost ~]# /etc/init.d/vsftpd start

正在啟動 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設定檔說明

由 Derek 發表於 五月 15, 2011 / 1 則評論

再來介紹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的意思相同。此項目填入群組名稱即可。

  繼續閱讀 »

Vsftd.conf設定說明

由 Derek 發表於 五月 14, 2011 / 5 則評論

首先,先說明一下幾個重要的設定檔案

    /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_enableuserlist_deny』。

       如果說/etc/vsftpd.ftpusersPAM模組的抵擋設定項目,那麼這個/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 設定值說明

在本身的/etc/vsftpd/vsftpd.conf就是一個詳細的設定檔。若想更加了解的可以使用【man 5 vsftpd.conf

查詢。這邊提供一些常用的參數說名。

 

Vsftpd.conf 設定值這邊分為四大區塊:

1.與主機較相關的設定值。

2.與實體用戶較相關的設定值。

3.匿名者登入的設定值。

4.關於系統安全方面的一些設定值

  繼續閱讀 »

vsftpd 500 OOPS:chroot

由 Derek 發表於 五月 13, 2011 / 1 則評論

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, locate, find的差別

由 Derek 發表於 五月 10, 2011 / 1 則評論

簡單的比較說明:

which 通常都是用來尋找『執行檔』

whereis 通常是用來尋找『特定檔案』

 

whersis】和【locate】搜尋時是以資料庫檔案裡的資料為主

find】搜尋時是以整個硬碟裡的資料為主

 

Linux下,find這個指令不常用到,因為不僅速度慢也很操硬碟。所以通常都是先使用whereis或是locate來檢查,最後真的找不到的話,才會使用到find來搜尋。

Whereislocate是利用資料庫來搜尋資料,並非實際搜尋硬碟。因此在找資料上的速度相當快速,也較省時間。

 

以下是各指令的說明

 

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 會將系統內所有的檔案都記錄在一個資料庫檔案裡面,當要使用whereislocate時,就會先以此資料庫檔案的內容為準。有時在使用這兩個執行檔的時後,會找到已經被殺掉的檔案。也有時後會找不到剛剛所建立的最新檔案,因為還沒有被記錄到此資料庫檔案中。

 

[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常見的壓縮打包指令

由 Derek 發表於 四月 29, 2011 / 3 則評論

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 最快!

 

繼續閱讀 »