1. 程式人生 > >Linux啟動與禁止SSH使用者及IP的登入

Linux啟動與禁止SSH使用者及IP的登入

下面就針對SSH方面討論一下,如果有人特別關注Linux環境的安全性,第一就從login方面來進行討論

1:Linux啟動或禁止SSH root使用者的登入

2:Linux限制SSH使用者

其實這些東西就是修改一個系統的配置檔案

  1. [[email protected] ~]# vi /etc/ssh/sshd_config  

我們可以檢視

  1. #PermitRootLogin yes

把前面的#號去掉,yes修改為no即可

yes 就是可以使用SSH方式的root登入

no就是禁止使用SSH方式的root登入

  1. login 
    as: root  
  2. [email protected]'s password:  
  3. Access denied  
  4. [email protected]'s password:  

另外如果需要限制SSH方式的使用者登入 修改如下引數

  1. AllowUsers arcsde  

arcsde是我作業系統的使用者,如果沒有使用者可以手動新增AllowUsers

這樣的話,只能arcsde登入了

其他使用者登入不了了(oracle)

  1. login as: oracle  
  2. [email protected]'s password:  
  3. Access denied  
  4. [email protected]'s password:  

以上修改完配置檔案,必須重新啟動SSH服務才能生效

  1. [[email protected] ~]# /etc/init.d/sshd restart  
  2. Stopping sshd:                                             [  OK  ]  
  3. Starting sshd:                                             [  OK  ]  

可能會有人會問到如果我設定了,每次都是Access denied,有沒有一些可以進行資訊的提示,這肯定可以啊

我們可以修改如下檔案

  1. [[email protected] ~]# vi /etc/issue.net  

然後新增如下資訊

  1. ###############################################################
  2. #                    Welcome to redhatserver                                    #
  3. #          All connections are monitored and recorded                            #
  4. #  Disconnect IMMEDIATELY if you are not an authorized user!                    #
  5. #                       Please tel 400-819-2881
  6. ###############################################################

我們仍然需要修改sshd_config裡面的引數

  1. Banner /etc/issue.net  

後面對應的就是相關檔案的路徑,重啟服務即可

然後我們測試一下

  1. login as: root  
  2. Red Hat Enterprise Linux Server release 5.5 (Tikanga)  
  3. Kernel \r on an \m  
  4. ###############################################################
  5. #                    Welcome to redhatserver                                    #
  6. #          All connections are monitored and recorded
  7.  #
  8. #  Disconnect IMMEDIATELY if you are not an authorized user!                    #
  9. #Please tel 400-819-2881
  10. ###############################################################
  11. [email protected]'s password:  

當我們輸入root使用者,系統就自動提示了。另外也可以在輸入密碼的時候提示,如果是這樣的話,我們修改如下檔案即可

  1. vi /etc/motd  

啟動或禁止使用者IP登入

除了可以禁止某個使用者登入,我們還可以針對固定的IP進行禁止登入,這裡面其實就是修改了配置檔案

檢視 /etc/hosts.allow配置檔案,設定允許登入的IP

  1. [[email protected] ~]# more /etc/hosts.allow  
  2. #  
  3. # hosts.allow   This file describes the names of the hosts which are  
  4. #               allowed to use the local INET services, as decided  
  5. #               by the '/usr/sbin/tcpd' server.  
  6. #  
  7. sshd:192.168.220.164:allow  

檢視/etc/hosts.deny檔案,設定sshd:ALL

  1. [[email protected] ~]# more /etc/hosts.deny  
  2. #  
  3. # hosts.deny    This file describes the names of the hosts which are  
  4. #               *not* allowed to use the local INET services, as decided  
  5. #               by the '/usr/sbin/tcpd' server.  
  6. #  
  7. # The portmap line is redundant, but it is left to remind you that  
  8. # the new secure portmap uses hosts.deny and hosts.allow.  In particular  
  9. # you should know that NFS uses portmap!  
  10. sshd:ALL  

也就是說,我們禁止所有IP,但是允許相關IP登入。

另外,如果對sshd_config檔案中的配置引數感興趣可以參考:http://doc.licess.org/openssh/sshd_config.html

  1. SSHD_CONFIG(5)            OpenBSD Programmer's Manual           SSHD_CONFIG(5)  
  2. 名稱  
  3.      sshd_config - OpenSSH SSH 伺服器守護程序配置檔案  
  4. 大綱  
  5.      /etc/ssh/sshd_config  
  6. 描述  
  7.      sshd(8) 預設從 /etc/ssh/sshd_config 檔案(或通過 -f 命令列選項指定的檔案)讀取配置資訊。  
  8.      配置檔案是由"指令 值"對組成的,每行一個。空行和以'#'開頭的行都將被忽略。  
  9.      如果值中含有空白符或者其他特殊符號,那麼可以通過在兩邊加上雙引號(")進行界定。  
  10.      [注意]值是大小寫敏感的,但指令是大小寫無關的。  
  11.      當前所有可以使用的配置指令如下:  
  12.      AcceptEnv  
  13.              指定客戶端傳送的哪些環境變數將會被傳遞到會話環境中。[注意]只有SSH-2協議支援環境變數的傳遞。  
  14.              細節可以參考 ssh_config(5) 中的 SendEnv 配置指令。  
  15.              指令的值是空格分隔的變數名列表(其中可以使用'*''?'作為萬用字元)。也可以使用多個 AcceptEnv 達到同樣的目的。  
  16.              需要注意的是,有些環境變數可能會被用於繞過禁止使用者使用的環境變數。由於這個原因,該指令應當小心使用。  
  17.              預設是不傳遞任何環境變數。  
  18.      AddressFamily  
  19.              指定 sshd(8) 應當使用哪種地址族。取值範圍是:"any"(預設)、"inet"(僅IPv4)、"inet6"(僅IPv6)。  
  20.      AllowGroups  
  21.              這個指令後面跟著一串用空格分隔的組名列表(其中可以使用"*""?"萬用字元)。預設允許所有組登入。  
  22.              如果使用了這個指令,那麼將僅允許這些組中的成員登入,而拒絕其它所有組。  
  23.              這裡的"組"是指"主組"(primary group),也就是/etc/passwd檔案中指定的組。  
  24.              這裡只允許使用組的名字而不允許使用GID。相關的 allow/deny 指令按照下列順序處理:  
  25.              DenyUsers, AllowUsers, DenyGroups, AllowGroups  
  26.      AllowTcpForwarding  
  27.              是否允許TCP轉發,預設值為"yes"。  
  28.              禁止TCP轉發並不能增強安全性,除非禁止了使用者對shell的訪問,因為使用者可以安裝他們自己的轉發器。  
  29.      AllowUsers  
  30.              這個指令後面跟著一串用空格分隔的使用者名稱列表(其中可以使用"*""?"萬用字元)。預設允許所有使用者登入。  
  31.              如果使用了這個指令,那麼將僅允許這些使用者登入,而拒絕其它所有使用者。  
  32.              如果指定了 [email protected] 模式的使用者,那麼 USER 和 HOST 將同時被檢查。  
  33.              這裡只允許使用使用者的名字而不允許使用UID。相關的 allow/deny 指令按照下列順序處理:  
  34.              DenyUsers, AllowUsers, DenyGroups, AllowGroups  
  35.      AuthorizedKeysFile  
  36.              存放該使用者可以用來登入的 RSA/DSA 公鑰。  
  37.              該指令中可以使用下列根據連線時的實際情況進行展開的符號:  
  38.              %% 表示'%'、%h 表示使用者的主目錄、%u 表示該使用者的使用者名稱。  
  39.              經過擴充套件之後的值必須要麼是絕對路徑,要麼是相對於使用者主目錄的相對路徑。  
  40.              預設值是".ssh/authorized_keys"。  
  41.      Banner  
  42.              將這個指令指定的檔案中的內容在使用者進行認證前顯示給遠端使用者。  
  43.              這個特性僅能用於SSH-2,預設什麼內容也不顯示。"none"表示禁用這個特性。  
  44.      ChallengeResponseAuthentication  
  45.              是否允許質疑-應答(challenge-response)認證。預設值是"yes"。  
  46.              所有 login.conf(5) 中允許的認證方式都被支援。  
  47.      Ciphers  
  48.              指定SSH-2允許使用的加密演算法。多個演算法之間使用逗號分隔。可以使用的演算法如下:  
  49.              "aes128-cbc""aes192-cbc""aes256-cbc""aes128-ctr""aes192-ctr""aes256-ctr",  
  50.              "3des-cbc""arcfour128""arcfour256""arcfour""blowfish-cbc""cast128-cbc"
  51.              預設值是可以使用上述所有演算法。  
  52.      ClientAliveCountMax  
  53.              sshd(8) 在未收到任何客戶端迴應前最多允許傳送多少個"alive"訊息。預設值是 3 。  
  54.              到達這個上限後,sshd(8) 將強制斷開連線、關閉會話。  
  55.              需要注意的是,"alive"訊息與 TCPKeepAlive 有很大差異。  
  56.              "alive"訊息是通過加密連線傳送的,因此不會被欺騙;而 TCPKeepAlive 卻是可以被欺騙的。  
  57.              如果 ClientAliveInterval 被設為 15 並且將 ClientAliveCountMax 保持為預設值,  
  58.              那麼無應答的客戶端大約會在45秒後被強制斷開。這個指令僅可以用於SSH-2協議。  
  59.      ClientAliveInterval  
  60.              設定一個以秒記的時長,如果超過這麼長時間沒有收到客戶端的任何資料,  
  61.              sshd(8) 將通過安全通道向客戶端傳送一個"alive"訊息,並等候應答。  
  62.              預設值 0 表示不傳送"alive"訊息。這個選項僅對SSH-2有效。  
  63.      Compression  
  64.              是否對通訊資料進行加密,還是延遲到認證成功之後再對通訊資料加密。  
  65.              可用值:"yes""delayed"(預設), "no"。  
  66.      DenyGroups  
  67.              這個指令後面跟著一串用空格分隔的組名列表(其中可以使用"*""?"萬用字元)。預設允許所有組登入。  
  68.              如果使用了這個指令,那麼這些組中的成員將被拒絕登入。  
  69.              這裡的"組"是指"主組"(primary group),也就是/etc/passwd檔案中指定的組。  
  70.              這裡只允許使用組的名字而不允許使用GID。相關的 allow/deny 指令按照下列順序處理:  
  71.              DenyUsers, AllowUsers, DenyGroups, AllowGroups  
  72.      DenyUsers  
  73.              這個指令後面跟著一串用空格分隔的使用者名稱列表(其中可以使用"*""?"萬用字元)。預設允許所有使用者登入。  
  74.              如果使用了這個指令,那麼這些使用者將被拒絕登入。  
  75.              如果指定了 [email protected] 模式的使用者,那麼 USER 和 HOST 將同時被檢查。  
  76.              這裡只允許使用使用者的名字而不允許使用UID。相關的 allow/deny 指令按照下列順序處理:  
  77.              DenyUsers, AllowUsers, DenyGroups, AllowGroups  
  78.      ForceCommand  
  79.              強制執行這裡指定的命令而忽略客戶端提供的任何命令。這個命令將使用使用者的登入shell執行(shell -c)。  
  80.              這可以應用於 shell 、命令、子系統的完成,通常用於 Match 塊中。  
  81.              這個命令最初是在客戶端通過 SSH_ORIGINAL_COMMAND 環境變數來支援的。  
  82.      GatewayPorts  
  83.              是否允許遠端主機連線本地的轉發埠。預設值是"no"。  
  84.              sshd(8) 預設將遠端埠轉發繫結到loopback地址。這樣將阻止其它遠端主機連線到轉發埠。  
  85.              GatewayPorts 指令可以讓 sshd 將遠端埠轉發繫結到非loopback地址,這樣就可以允許遠端主機連線了。  
  86. 相關推薦

    Linux啟動禁止SSH使用者IP登入

    下面就針對SSH方面討論一下,如果有人特別關注Linux環境的安全性,第一就從login方面來進行討論 1:Linux啟動或禁止SSH root使用者的登入 2:Linux限制SSH使用者 其實這些東西就是修改一個系統的配置檔案 [[email

    Linux啟動禁止SSH使用者IP登入

    啟動或禁止SSH使用者登入一般情況下,在使用Linux作業系統都不會去機房來操作機器,都是使用一些第三方的工具來操作。比如使用SSH Secure File Transfer Client工具來傳輸檔案,利用Putty來操作,利用Xmanger綜合操作等,那麼最常見的連線型別

    Linux學習筆記——遠端ssh(putty)登入linux + wifi配置靜態ip設定

    最近學習了一段時間linux的基本操作,但在pc機上使用虛擬機器學習比較麻煩。在實驗室找到了塊樹莓派zero w,它的作業系統是raspbian,是一種基於debian的linux作業系統,於是嘗試利用樹莓派學習linux。利用putty遠端登入raspbian

    linux redhat6.5 構建SSH服務SSH構建密鑰對驗證

    SSH SSH構建密鑰對驗證SSH 為 Secure Shell 的縮寫,由 IETF 的網絡小組(Network Working Group) SSH是一種網絡協議,用於計算機之間的加密登錄。如果一個用戶從本地計算機,使用SSH協議登錄另一臺遠程計算機,我們就可以認為,這種登錄是安全的,即使被中途截獲,

    Linux網路配置,ssh服務相關命令

    一.ip地址 1.檢視當前計算機ip地址: ip addr show(紅帽7以後版本推薦) ifconfig 2.更改虛擬機器ip: 輸入nm-connection-editor 點選System eth0,然後點選Delete。之後add。 點選Save。

    Linux結構其中的使用者

    Linux的倒樹形結構 linux是一個倒樹型結構,最大的目錄名稱叫“/” (根目錄),下面有著很多的二級目錄存放著不同的配置檔案(什麼…你說你把根目錄刪了…emmm…跑路吧,祝福你) linux系統中的二級目錄 /bin ## 二進位制可執行檔案,系統常規命令 /boot ##

    教你如何配置linux使用者實現禁止ssh登陸機器但可用sftp登入

    構想和目標 最近有個這樣的訴求:基於對線上伺服器的保密和安全,不希望開發人員直接登入線上伺服器,因為登入伺服器的許可權太多難以管控,如直接修改程式碼、系統配置,並且也直接連上mysql。因此希望能限制開發人員ssh登入機器,但是通過ftp/sftp上傳程式碼檔案。 在

    Linux啟動程序:前臺程序和後臺程序

    作業系統中,前臺程序和後臺程序有什麼區別?特徵是什麼? 後臺程式基本上不和使用者互動,優先級別稍微低一點 前臺的程式和使用者互動,需要較高的響應速度,優先級別稍微高一點 直接從後臺手工啟動一個程序用得比較少一些,除非是該程序甚為耗時,且使用者也不急著需要結果的時候。假

    linux入門系列14--ssh服務主機遠端管理

    通過前面十餘篇文章的介紹,相信已經初步入門Linux本地管理的基本方法了,後續的文章將介紹Linux中常用的服務部署以及如何為外部提供相應的服務。 系列文章第三篇“linux入門系列3--linux遠端登陸工具”初步介紹了幾款用於Linux遠端登入管理的工具,本文再來詳細講解下SSH協議以及對應的服務配置,從

    Linux網路篇,ssh原理應用

    一、對稱加密與非對稱加密    對稱加密: 加密和解密的祕鑰使用的是同一個.    非對稱加密: 非對稱加密演算法需要兩個金鑰:公開金鑰(publickey)和私有金鑰;簡稱公鑰和私鑰對稱加密     對稱加密的密碼強度高、較

    linux啟動後出現桌面背景但無登入介面解決辦法

    (1)同時按下Ctrl  Alt  F2  進入命令列介面。 (2)root登入進去。  (3)執行init 3  (啟動級別:init 0,1,2,3,4,5,6  0:停機 1:單使用者形式,只root進行維護 2:多使用者,不能使用net file syst

    Linux啟動telnet服務,Windows通過telnet遠端登入linux伺服器

    一、安裝telnet軟體包(通常要兩個)。 1、 telnet-client (或 telnet),這個軟體包提供的是 telnet 客戶端程式; 2、是 telnet-server 軟體包,這個才是真正的 Telnet server 軟體包! 安裝之前先檢測是否這些軟體包

    關於 Ubuntu Linux 16.04的 root 許可權桌面登入問題

        新接觸 Ubuntu 的朋友大多會因為安裝中沒有提示設定 root 密碼而不太清楚是什麼原因。     起初 Ubuntu 團隊希望安裝儘可能的簡單. 不使用 root , 在安裝期間的兩個使用者互動步驟可以省略. (科林·沃森)      更進一步, 如果在安裝中使用 root, 使用者將被

    Linux日常之允許或禁止指定使用者或IP進行SSH登入

    目錄 Linux之 允許或禁止指定使用者或IP進行SSH登入 1. 使用者 SSH登入 2. IP SSH登入 Linux之 允許或禁止指定使用者或IP進行SSH登入 暫時只瞭解到了hosts.allow和hos

    Linux啟動引數實現 __setupearly_param(講的不錯,轉載)

    #define __setup_param(str, unique_id, fn, early)            /     static char

    linux下oracle11g R2的啟動關閉監聽、數據庫

    source app var copy time lac started success let 一、啟動監聽與數據庫 1、啟動監聽: [html] view plain copy [[email protected]/* */ oracle]# s

    Linux 下方便的ssh非交互工具sshpass的安裝使用

    password 使用 1.0 x86 pan logs epel txt key 1. 下載sshpass包並安裝 wget https://mirrors.ustc.edu.cn/epel/6/x86_64/sshpass-1.06-1.el6.x86_64.rpm

    [svc]linux啟動過程級別

    cve 內核線程 當前 pos 可用 crc 開機啟動流程 中斷機制 rtu Unix目錄結構的來歷 Linux 的啟動流程 Linux 引導過程內幕 嵌入式系統 Boot Loader 技術內幕 1.簡單口述 1.開機BIOS自檢 2.MBR引導 3.grub引導菜單 4

    linux啟動內核管理

    開機啟動一:Linux 系統系統的組成 Linux由kernel和rootfs組成,那麽什麽是kernel,什麽是rootfs呢?kernel:操作系統內核,操作系統內核是指大多數操作系統的核心部分。kernel用於進程管理、內存管理、網絡管理、驅動程序、文件系統、安全功能rootfs:程序和glibc。ro

    Linux文件系統損壞導致無法正常啟動fsck修復工具

    linux 運維 文件系統損壞 fsck 問題:今天在打開自己的虛擬機學習的時候,發現在文件系統檢查過程中出現以下的報錯:/dev/mapper/VolGroup-lv_root:UNEXPECTED INCONSISTENCY;RUN fsck MANUALLY.