ssh黑白名單如何配置
1、兩個deamon
要實現ssh和sftp分離,分別監聽不同的埠,可以通過創建兩個『/usr/sbin/sshd』後台程序,一個監聽22埠(ssh),一個監聽20022埠(sftp),為了區分ssh和sftp服務的後台程序,這里將ssh服務的後台程序保持為/usr/sbin/sshd,而將sftp服務的後台程序改為/usr/sbin/sftpd。/usr/sbin/sftpd是/usr/sbin/sshd的一個鏈接,其內容完全相同(ln
-sf /usr/sbin/sshd /usr/sbin/sftpd)。
2、兩個service
SLES12使用systemd管理系統服務,ssh服務對應/usr/lib/systemd/system/sshd.service文件,實現sftp服務時可以將/usr/lib/systemd/system/sshd.service
復制到
/etc/systemd/system/sftpd.service,然後修改sftpd.service文件內容。(使用修改好的sftpd.service文件即可)
3、其他文件
系統的ssh服務是通過安裝openssh實現的,可以通過rpm -ql openssh查看該rpm包含哪些文件。總結實現ssh和sftp分離的相關的文件有:
ssh服務 sftp服務
/usr/lib/systemd/system/sshd.service /etc/systemd/system/sftpd.service
(通過修改/usr/lib/systemd/system/sshd.service文件得到)
/etc/pam.d/sshd /etc/pam.d/sftpd (通過復制 /etc/pam.d/sshd文件得到)
/etc/ssh/sshd_config /etc/ssh/sftpd_config (通過復制/etc/ssh/sshd_config文件得到)
/usr/sbin/rcsshd /usr/sbin/rcsftpd (ln -sf /usr/sbin/service /usr/sbin/rcsftpd)
/usr/sbin/sshd /usr/sbin/sftpd (ln -sf /usr/sbin/sshd /usr/sbin/sftpd)
/etc/sysconfig/ssh /etc/sysconfig/sftp (通過修改/etc/sysconfig/ssh文件得到)
至此,我們已經實現了兩個服務。
但是,ssh服務和sftp服務並沒有真正的分離,此時已然可以通過22號埠使用ssh服務和sftp服務,而新開的20022埠也可以使用ssh服務(ssh
-p 20022 username@serverip )和sftp服務(sftp -o Port=20022
username@serverip )。
4、關閉22號埠下的sftp服務
編輯/usr/sbin/sshd的配置文件/etc/ssh/sshd_config文件,將Subsystem參數注釋掉,然後重啟sshd
同時也可以設置可訪問22號埠的用戶白名單:
編輯/etc/ssh/sshd_config文件,設置AllowGroups參數(假設設置為AllowGroups sshonly),限制僅AllowGroups組內的用戶可通過22號埠ssh登錄系統(對於需要ssh登錄系統的用戶可通過usermod -A sshonly <username>將其加入到AllowGroups組內)
5、「關閉20022號埠下的ssh服務」
sftp作為一個子服務,它的開啟依賴於ssh服務,因此不能從本質上關閉ssh服務而只開啟sftp服務。
可以用以下方式來規避:
/usr/sbin/sftpd的配置文件/etc/ssh/sftpd_config中包含Subsystem參數配置(推薦使用Subsystem sftp internal-sftp -l INFO -f AUTH)
/etc/ssh/sftpd_config中包含AllowGroups參數(假設為AllowGroups sftponly),限制僅AllowGroups組內的用戶可以訪問20022埠
將AllowGroups組內的用戶的shell改為/bin/false(usermod -s /bin/false <username>),使AllowGroups組內的用戶僅能sftp登錄系統(如果一個用戶即需要ssh,又需要sftp,則不能將其shell改為/bin/false)
6、用戶白名單配置
配置之後,需將系統內需要ssh訪問系統的用戶加入到sshonly組內,需將系統內需要sftp訪問系統的用戶加入到sftponly組,同時需要ssh和sftp的用戶則sshonly和sftponly組都要加入。
7、 重啟ssh服務和sftp服務,並設置開機啟動
service sshd restart
service sftpd restart
B. SSH登陸方式,基本配置
SSH只是一種協議,存在多種實現,既有商業實現,也有開源實現。本文主要介紹OpenSSH免費開源實現在Ubuntu中的應用,如果要在Windows中使用SSH,需要使用另一個軟體PuTTY。
SSH之所以能夠保證安全,原因在於它採用了非對稱加密技術(RSA)加密了所有傳輸的數據。
傳統的網路服務程序,如FTP、Pop和Telnet其本質上都是不安全的;因為它們在網路上用明文傳送數據、用戶帳號和用戶口令,很容易受到中間人(man-in-the-middle)攻擊方式的攻擊。就是存在另一個人或者一台機器冒充真正的伺服器接收用戶傳給伺服器的數據,然後再冒充用戶把數據傳給真正的伺服器。
但並不是說SSH就是絕對安全的,因為它本身提供兩種級別的驗證方法:
口令登錄非常簡單,只需要一條命令
還要說明的是,SSH服務的默認埠是22,也就是說,如果你不設置埠的話登錄請求會自動送到遠程主機的22埠。我們可以使用 -p 選項來修改埠號,比如:
首先使用ssh-keygen命令生成密鑰對
然後根據提示一步步的按enter鍵即可,執行結束以後會在 /home/當前用戶 目錄下生成一個 .ssh 文件夾,其中包含私鑰文件 id_rsa 和公鑰文件 id_rsa.pub 。
(其中有一個提示是要求設置私鑰口令passphrase,不設置則為空,如果為了免密登陸可以不設置。)
使用 ssh--id 命令將公鑰復制到遠程主機
ssh--id會將公鑰寫到遠程主機的 /root/ .ssh/authorized_key 文件中
使用ssh--id命令登陸哪個用戶就會存放在哪個用戶的home目錄下。
也可以手動復制到authorized_key文件當中。
第一次登錄時,會提示用戶
意思是無法驗證用戶的公鑰,是否正確,詢問用戶是否要繼續。
ECDSA key給出了遠程主機公鑰的SHA256編碼過的值,一般在遠程主機的網站會告示公鑰的值,
用戶可以將這個公鑰和網站上的公鑰進行比對,正確則表明是遠程主機。
輸入yes之後,系統會將公鑰加入到已知的主機列表,如下所示,已知列表中的主機,下次不會再詢問。
SSH的配置文件通常在 /etc/ssh/sshd_config
配置文件中有非常詳盡的注釋,一般在工作中主要用到的幾個配置
C. 虛擬機的Linux安裝的SSH,怎麼配置吖,求詳細的方法,詳細
(SSH是一個用來替代TELNET、FTP以及R命令的工具包,主要是想解決口令在網上明文傳輸的問題。為了系統安全和用戶自身的權益,推廣SSH是必要的。SSH有兩個版本,我們現在介紹的是版本2。) 安裝SSH 具體步驟如下: 獲得SSH軟體包。 ( ftp://ftp.pku.e.cn :/pub/unix/ssh-2.3.0.tar.gz ) 成為超級用戶(root). # gzip ?cd ssh-2.3.0.tar.gz |tar xvf ? # cd ssh-2.3.0 # ./configure 注意,如果你希望用tcp_wrappers來控制SSH,那麼在configure時需要加上選項「--with-libwrap=/path/to/libwrap/」, 用來告訴SSH關於libwrap.a 和tcpd.h的位置。 # make # make install 和SSH有關的程序都放置在/usr/local/bin下,包括ssh,sftp,sshd2, ssh-keygen等。 二、配置 SSH的配置文件在/etc/ssh2下,其中包括sshd2的主機公鑰和私鑰:hostkey和hostkey.pub。這兩個文件通常是在安裝SSH時自動生成的。你可以通過下面的命令重新來生成它們: # rm /etc/ssh2/hostkey* # ssh-keygen2 ?P /etc/ssh2/hostkey 而ssh2_config 文件一般情形下無需修改。 三、啟動sshd2 每個要使用SSH的系統都必須在後台運行sshd2。用手工啟動: # /usr/local/sbin/sshd2& 可以在「/etc/rc2.d/SArrayArraylocal」中加入該命令,這樣系統每次啟動時會自動啟動sshd2。 四、用tcp_wrappers控制SSH 安裝SSH的站點可以用tcp_wrappers來限制哪些IP地址可以通過ssh來訪問自己。比如,在/etc/hosts.allow中加入 sshd,sshd2: 10.0.0.1 那麼只有10.0.0.1可以通過ssh來訪問該主機。 以上都是系統管理員完成的工作。下面我們說說普通用戶如何使用SSH。 五、基本應用 每個用戶在使用SSH之前,都要完成以下步驟: 在本地主機(比如,local.pku.e.cn)上生成自己的ssh公鑰和私鑰。命令如下: local# ssh-keygen Generating 1024-bit dsa key pair 1 oOo.oOo.o Key generated. 1024-bit dsa, teng@ns, Fri Oct 20 2000 17:27:05 Passphrase :************ /*在此輸入你的口令,以後訪問這台主機時要用。 Again :************ /* Private key saved to /home1/teng/.ssh2/id_dsa_1024_a Public key saved to /home1/teng/.ssh2/id_dsa_1024_a.pub 生成的私鑰和公鑰(id_dsa_1024_a和id_dsa_1024_a.pub)存放在你家目錄的~/.ssh2目錄下。和用戶相關的SSH配置文件都在~/.ssh2下。私鑰由用戶保存在本地主機上,而公鑰需傳送到遠地主機的你自己的帳號的~/.ssh2下,如果你要用ssh2訪問本地主機的話。 在~/.ssh2下創建「identification」文件用來說明進行身份認證的私鑰。命令如下: local:~/.ssh2# echo "IdKey id_dsa_1024_a" > identification 3.同樣地,在遠地主機(比如,remote.pku.e.cn)上完成上面步驟。 4.將本地(local.pku.e.cn)下你自己(這里是「teng」)的公鑰(id_dsa_1024_a.pub)拷貝到遠地主機(remote.pku.e.cn)上你自己家目錄下的.ssh2目錄下,可命名為「local.pub」,一般用ftp上傳即可。 在遠地主機上,你自己家目錄的.ssh2目錄下,創建「authorization」文件,其中指定用來進行身份認證的公鑰文件。命令如下: remote:~/.ssh2# echo 「Key local.pub」 > authorization 現在你可以從本地用ssh2登錄到遠地系統了。命令如下: local# ssh remote.pku.e.cn Passphrase for key "/home1/teng/.ssh2/id_dsa_1024_a" with comment "1024-bit dsa, teng@ns, Fri Oct 20 2000 17:27:05":*********** 這時會要你輸入你的ssh口令(Passphrase)。驗證通過後,即登錄到remote主機上。 ################################################################################ 1、環境: 因為我們選用的SSH伺服器是 http://www.ssh.com 的SSH Secure Shell for unix類產品,所以我們主要介紹一下此類的Ssh伺服器的安裝過程。(SSH有兩個版本,我們現在介紹的是版本2;Openssh就不介紹了,大家有興趣的話可以參考一下網上文章) 2、編譯安裝 我們前面介紹過,現在的Ssh server for unix 類的最新版本是ssh-3.2.Array-1,我建議大家用官方提供的TAR包,當然,如果你不熟悉編譯過程,用RPM等安裝方式也是可以的。如果用RPM安裝,請先下載ssh-3.2.Array-1.i386.rpm , 大家可以到以下地址下載: http://ftp.ssh.com/priv/secureshell/32Arraywks+srv-lt4Arrayldrk/linux/ssh-3.2.Array-1.i386.rpm 安裝時請用管理員許可權 # rpm ?ivh ssh-3.2.Array-1.i386.rpm 如果是升級安裝那參數就用 ?Uvh 而3.2.Array-1的TAR包大家可以到 http://downloads.planetmirror.com/pub/ssh/ssh-3.2.Array.1.tar.gz 下載。安裝時也使用管理員許可權: # tar xzvf ssh-3.2.Array.1.tar.gz # cd ssh-3.2.Array.1 # ./configure (這里我們要說明一下,原來有些文檔寫如果你希望用tcp_wrappers來控制SSH,那麼在configure時需要加上選項「--with-libwrap=/path/to/libwrap/」, 用來告訴SSH關於libwrap.a 和tcpd.h的位置,但3.2.0以上的SSH已經不需要這么麻煩了,它們已經內置了控制訪問許可權的功能。) # make ; make install ; make clean 這樣就結束了安裝。 3、簡單配置Ssh server 無論你是用RPM或TAR包安裝的ssh server,它的配置文件都在/etc/ssh2/sshd2_config,安裝完後一般不用配置它,但如果你的22埠在安裝ssh server之前已經被其他程序佔用,那麼你需要簡單的配置一下這個文件,執行 vi /etc/ssh2/sshd2_config,找到第27行,Port 22 ,把22改成其他的埠就可以了。 4、啟動Ssh server Ssh server 的默認啟動文件是/usr/local/sbin/sshd2,而安裝程序自動做了一個連接到這個文件的名字為sshd的文件,我們只要在/usr/local/sbin/目錄中執行 ./sshd & 就可以簡單的啟用Ssh server,然後我們執行 # netstat ?na 會看見22埠已經被監聽了(你的可能是其他埠,具體看你在sshd2_config文件中的設置了。)但我們不想每次都要手動啟動Ssh server,那麼我們可以修改一下/etc/rc.d/rc.local文件,在這個文件的最後加入以下內容: #start ssh /usr/local/sbin/sshd & 其中第一行為注釋內容,第二行為啟動SSH伺服器並作為後台守護進程運行。 這樣就好了,系統重起時可以自動啟動SSH服務,但是啟動後你如果在伺服器端插上 顯示器 ,會在最後該登陸的時候看到一行字,意思就是Ssh server 服務啟動了,我比較挑剔,不想看到這個提示,而且我想把Ssh服務放到LINUX服務啟動過程中,這樣比較美觀一點。那麼我們就不能修改/etc/rc.d/rc.local文件,我們要進入/etc/init.d/中建立一個SHELL文件,名字就叫sshd 內容如下: #!/bin/bash cd /usr/local/sbin ./sshd & 然後給這個文件加上可執行許可權 # chmod +x sshd 然後進入/etc/rc3.d,做一個軟鏈接文件 # cd /etc/rc3.d # ln -s ../init.d/sshd S13sshd 這樣就達到了我的要求,好了,Ssh server的安裝就介紹到這里吧,安裝是很簡單的,希望大家編譯安裝成功。
D. H3C交換機SSH配置方法
H3C交換機SSH配置方法
SSH為建立在應用層和傳輸層基礎上的安全協議。那麼用h3c交換機怎麼配置ssh呢?下面為大家介紹最簡單的配置方法,歡迎閱讀!
使用SSH+密碼認證(基本SSH配置方法)
註:在用戶使用SSH登錄交換機時,交換機對所要登錄的用戶使用密碼對其進行身份驗證
生成RSA和DSA密鑰對
[H3C]public-key local create rsa
[H3C]public-key local create dsa
設置用戶介面上的認證模式為AAA,並讓用戶介面支持SSH協議
[H3C]user-interface vty 0 4
[H3C-ui-vty0-4]authentication-mode scheme
[H3C-ui-vty0-4]protocol inbound ssh
創建用戶luwenju-juzi,設置認證密碼為luwenju-!@# 登錄協議為SSH,能訪問的命令級別為3
[H3C]local-user luwenju-juzi
[H3C-luser-luwenju-juzi]password cipher luwenju-!@#
[H3C-luser-luwenju-juzi]service-type ssh level 3
指定用戶luwenju-juzi的'認證方式為password
[H3C]ssh user luwenju-juzi authentication-type password
一個基本的SSH配置就結束了,配置完成後即可使用SSH登錄工具進行連接交換機
使用SSH+密鑰、密碼認證(高級SSH配置方法)
註:客戶端在使用SSH工具登錄交換機時,交換機同時使用密鑰和密碼對所要登錄的用戶實行身份驗證
生成RSA和DSA密鑰對
[H3C]public-key local create rsa
[H3C]public-key local create dsa
設置用戶介面上的認證模式為AAA認證,並在介面上開啟SSH協議,並設置用戶能訪問的命令級別為3
[H3C]user-interface vty 0 4
[H3C-ui-vty0-4]authentication-mode scheme
[H3C-ui-vty0-4]protocol inbound ssh
[H3C-ui-vty0-4]user privilege level 3
創建用戶,並指定認證方式為公鑰認證,用戶名為luwenju-juzi,密碼為luwenju-!@#
[H3C]local-user luwenju-juzi
[H3C-luser-luwenju-juzi]password cipher luwenju-!@#
[H3C-luser-luwenju-juzi]service-type ssh level 3
[H3C]ssh user luwenju-juzi authentication-type password-publickey
客戶端生成公鑰和私鑰
用puttygen.exe生成公私鑰對,然後放到某個文件夾下,在此,我們生成的公鑰叫luwenjukey私鑰為luwenju.ppk,然後我們把公鑰文件luwenjukey上傳到FTP伺服器,然後登錄交換機,將luwenjukey下載到交換機
ftp 202.106.0.20
[ftp]get luwenjukey
為用戶生成公鑰,在交換機上把文件luwenjukey中導入客戶端的公鑰,公鑰名為luwenju-juzikey 註:luwenju-juzikey是為用戶生成的公鑰
[H3C]public-key peer luwenju-juzikey import sshkey luwenjukey
為用戶luwenju-juzi指定公鑰luwenju-juzikey
[H3C]ssh user luwenju-juzi assign publickey luwenju-juzikey
然後打開SSH登錄工具,導入私鑰luwenju.ppk,然後輸入交換機的IP地址登錄即可
;