Posts by Derek
WinSCP結合了幾個自由軟體,算是強大的Public Key Authebtication方式登入SSHD
本篇教學使用到的軟體有:
PuTTY : A Free Telnet/SSH Client
WinSCP : Freeware SFTP and SCP client for windows
PuTTYgen : 包含在WinSCP的安裝裡 也可到這邊下載
Pageant : 包含在WinSCP的安裝裡 也可到這邊下載
雖然說WinSCP中文化的方式在官網有教,這邊還是提一下。
首先先安裝英文版,到WinSCP下載並選【Installation package】
先安裝winscp432,請用英文版安裝。
安裝完成後,解壓縮ch.zip
然後把解壓縮出來的WinSCP.ch語言檔,放到winscp432的安裝資料夾內(就是安裝的目的地)
放進去後執行WinSCP.exe
然後點【Languages】選擇【Chinese (Traditional)-中文(繁體,台灣)這樣就可以完成中文化了。
先到PuTTY官方網站下載【PuTTYgen】
執行PuTTYgen
先看下方的紅框,在這個地方可以選擇要產生什麼種類的金鑰。
選則好金鑰種類後,右下方有一個1024,這個主要是密碼的複雜度,可修改為1024、2048等…..
設定好後請點選【Generate】
金鑰種類 :
1. RSA1 : 此種金鑰屬於舊系統在做使用的,如(FreeBSD 4及以前的版本,都是為SSH Protocol1,
所以都使用RSA1這種金鑰。)
2. RSA2及DSA : 屬於較新的系統在做使用的,(如FreeBSD 5及之後的版本或Linux其他版本。
都是使用RSA2或DSA這兩種金鑰。)
Identity.ppk=SSH-1(RSA)、Id_dsa.ppk=SSH-2(DSA)、Id_rsa.ppk=SSH-2(RSA)
點選【Generate】後,此時滑鼠要在紅框的範圍隨意滑動,如此才會產生金鑰。
因為他是利用滑鼠在紅框的不同的位置來產生金鑰的。所以每次產生的金鑰都會不一樣。
在開始設定PuTTY免密碼登入前,請先在產生金鑰。金鑰的產生方式可參考
【SSH 免密碼登入(產生金鑰和把公開金鑰放到主機)】或【PuTTYgen(Windows使用)】
從剛剛所產生好的主機上取得私密金鑰(identity, id_rsa 與 id_dsa),可以使用FTP
或WinSCP有官WinSCP的使用方式可參考此篇【WinSCP使用教學】 :相關軟體將檔案下載。
可儲存於自己好管理的地方。而我是在D槽建立一個KEYS的資料夾。
下載好後,更改私鑰的名稱,把這個三的私鑰副檔名改為ppk
請先到 PuTTY官網下載【PuTTYgen】
接下來請開啟puttygen.exe點選【Load】,把剛剛修改好副檔名的ppk金鑰,選取所要的讀取進來。
按下Load後,請選擇要設定的私鑰(請選副檔名為ppk的)
選好後按開啟會出現下圖,請輸入當初在產生金鑰時所設定的Passphrase的密碼,
如果當初沒設定的話就不會出現下圖
這個是提醒視窗。按確定就好了
前言 :
登入Linux的方式,大部份都是使用SSH登入或PuTTY(Windows登入),一般的使用者大部份都是
輸入帳號密碼來做登入,但是在輸入帳號密碼的同時也增加了被竊取帳密的可能性。為了降低被
竊取的可能性,可以使用公開金鑰(Public Key)和私密金鑰(Private Key)對應的方式,近而做到
免密碼的登入,來降低風險。
金鑰的種類可分為三種 : (RSA1、RSA2、DSA)。
SSH可分為 : (Protocol1和Protocol2)
1. RSA1 : 此種金鑰屬於舊系統在做使用的,如(FreeBSD 4及以前的版本,都是為SSHProtocol1
,所以都使用RSA1這種金鑰。)
2. RSA2及DSA : 屬於較新的系統在做使用的,(如FreeBSD 5及之後的版本或Linux其他版本。
都是使用RSA2或DSA這兩種金鑰。)
Passphrase :
Passphrase可設也可不設,若有設定可以增加主機的資安保護,才不至於一旦被別人拿走私鑰時
就可直接登入主機。但也增加了每次登入主機都要輸入Passphrase。此部份在SSH時是可以使用
ssh-agent機制來解決,而在PuTTY(Windows登入)時可用Pageant,來解決每次都要輸入
Passphrase的問題。
如何產生金鑰 :
如何產生金鑰,金鑰的產生方式有兩種,一種是下面要說到的【本機端產生】,另一種就是使用
【PuTTYgen(Windows使用)】來產生。不管使用那種方式,會建議一次就把三種金鑰都產生好。
可省下不同系統,不同金鑰的問題。
二、 key的設定方式
1. 產生金鑰(Key)
1.1 產生RSA1金鑰
[root@localhost ~]# ssh-keygen -t rsa1 Generating public/private rsa1 key pair. Enter file in which to save the key (/root/.ssh/identity): #詢問金鑰要放在那邊,按Enrer就可 Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): #輸入Passphrase (可設也可不設,最少9碼) Enter same passphrase again: #再輸入一次Passphrase Your identification has been saved in /root/.ssh/identity. Your public key has been saved in /root/.ssh/identity.pub. The key fingerprint is: 52:e2:d5:58:fb:fa:3e:43:88:5c:4b:6c:bb:a5:d7:f7 root@localhost.localdomain |
產生identity、identity.pub這兩把RSA1的金鑰
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的意思相同。此項目填入群組名稱即可。
近期迴響