Linux Internet Server安全和配置教程(2

Linux OpenSSH OpenSSL 黑客 技術互聯網 2017-05-27

SSH:(安全Shell)

網絡連接工具的SSH協議套件用於加密互聯網上的連接。SSH加密所有流量,包括登錄和密碼,以有效消除網絡嗅探,連接劫持和其他網絡級攻擊。在常規telnet會話中,密碼通過Internet進行未加密傳輸。

Linux上的SSH指的是OpenSSH安全shell終端和sftp / scp文件傳輸連接。SSH也是商業產品,但可從SSH通信安全(http://www.ssh.com/)免費提供非商業用途 。有兩個版本可用,SSH1(現在很老)和SSH2(當前)。SSH的商業版本可以從其網站購買和/或下載。請注意,SSH1確實存在重大漏洞問題。“woot-project”網站破解和劫持幫派使用此漏洞。 不要使用SSH1協議!!!!! (“woot-project”exploit / attack description / recovery)

OpenSSH由 OpenBSD項目開發,可免費提供。OpenSSH與SSH1和SSH2兼容。OpenSSH依賴於加密通信層的OpenSSL項目。Linux的當前版本隨OpenSSH / OpenSSL。

鏈接:

  • OpenSSH.org - Shell。支持SSH1和SSH2協議。

  • OpenSSL.org - 加密網絡層

  • FreeSSH.org - 其他平臺的SSH

  • SSH:

  • SSh.com - 安全外殼

  • FreeSSH.org - 其他平臺的SSh

  • 安全殼IETF工作組 - (Internet Engineering Task Force)狀態

OpenSSH的:

  • 下載:注意:SSH和SSL包含在Red Hat Linux 7.0+中

  • 下載OpenSSH RPM(sourceforge) - 與OpenSSL 0.9.5靜態鏈接 - 選擇一個可以輕鬆完成RPM安裝

  • 下載OpenSSH source(tgz)

  • Red Hat Linux 6.x打開SSL RPM下載(redhat.com)(僅限SSL)

  • 安裝:

  • 紅帽/ Fedora / CentOS:

  • 客戶端和服務器通用

Linux Internet Server安全和配置教程(2

Ubuntu/Debian:

Linux Internet Server安全和配置教程(2

客戶:

  • 紅帽/ Fedora / CentOS:

Linux Internet Server安全和配置教程(2

Ubuntu/Debian:

Linux Internet Server安全和配置教程(2

服務器:

  • 紅帽/ Fedora / CentOS:

Linux Internet Server安全和配置教程(2

Ubuntu/Debian:

Linux Internet Server安全和配置教程(2

  • 如果從SSH1升級,您可能必須使用RPM選項--force。

    rpm將安裝適當的二進制文件,配置文件和openssh-server將安裝init腳本/etc/rc.d/init.d/sshd ,以便sshd將在系統引導時啟動。

  • 組態:

  • 客戶端配置文件/ etc / ssh / ssh_config :(默認)

Linux Internet Server安全和配置教程(2

  • 更改行:#協議2,1

    到: 協議2

    這將消除使用SSH1協議。

    取消評論所需的選項或接受硬編碼的默認值。OpenSSH客戶端的硬編碼默認值與SSH1客戶端文件和sshd服務器兼容。升級到OpenSSH客戶端不需要對$ HOME / .ssh /中的文件進行任何更改。

  • 服務器配置文件/ etc / ssh / sshd_config:

    默認值:

Linux Internet Server安全和配置教程(2

Linux Internet Server安全和配置教程(2

Linux Internet Server安全和配置教程(2


  • 如果對配置文件進行更改,請重新啟動“sshd”守護程序以接收新配置:

    Ubuntu:/etc/init.d/ssh restart

    Red Hat:/etc/init.d/sshd restart或service sshd restart

  • Ssh協議版本1不是安全的,鍵入密碼不應該需要10分鐘,如果有人以root身份登錄,而不是以特定用戶身份登錄,那麼如果有多個管理員,則可能會丟失可追溯性,因此更改為以上建議。

  • 設置“PermitRootLogin no”要求遠程登錄使用不確定的用戶登錄。這可以從可用的字典攻擊列表中刪除root,這是所有Linux系統上的已知登錄名。

  • 更改“橫幅”是一個好主意,以便向用戶呈現登錄問候語和法定免責聲明。即將文件/etc/issue.net內容更改為:

    訪問權限僅授予Mega公司的授權人員。

    默認情況下,/ etc/issue.net消息向黑客提供OS名稱,內核版本和可用於確定潛在漏洞的信息。

  • [潛在的陷阱]:慢ssh登錄 - 如果快速獲得“登錄”提示,但是“密碼”提示需要30秒到一分鐘,那麼您有DNS查詢延遲。在配置文件/ etc / ssh / sshd_config中設置UseDNS否,然後重新啟動sshd。eth0(或使用的NIC)的IP地址也應該在/ etc / hosts中引用您自己的主機名

  • 生成系統密鑰:/ etc / ssh /

      • / sbin / restorecon /etc/ssh/ssh_host_rsa_key.pub

      • / sbin / restorecon /etc/ssh/ssh_host_dsa_key.pub

      • ssh-keygen -q -t rsa -f / etc / ssh / ssh_host_rsa_key -C“'-N”

      • ssh-keygen -q -t dsa -f / etc / ssh / ssh_host_dsa_key -C“-N”

      • 私鑰生成:chmod 600 / etc / ssh / ssh_host_dsa_key / etc / ssh / ssh_host_rsa_key

      • 公鑰生成:chmod 644 /etc/ssh/ssh_host_dsa_key.pub /etc/ssh/ssh_host_rsa_key.pub

      • 對於SELinux:

      • 生成用戶密鑰:

      • 客戶端:

        使用命令:/ usr / bin / ssh-keygen -t rsa

      Linux Internet Server安全和配置教程(2

      生成的文件:

      Linux Internet Server安全和配置教程(2

      • 將文件$ HOME /.ssh/id_rsa.pub FTP FTP 到服務器

      • cd $ HOME / .ssh /

      • cat id_rsa.pub >> authorized_keys2

      • -t rsa(協議版本2)

      • -t dsa(協議版本2)

      • -t rsa1(協議版本1)

      • -b 2048(以比特為單位指定密鑰長度)

      • 命令選項:

      • 服務器:

      • 使用ssh:在客戶端使用以下命令和登錄,通常使用telnet會話:

        ssh 名稱服務器

        首次使用ssh時,它將發出以下消息:

      Linux Internet Server安全和配置教程(2

      • 回答是的。不會再問了。

        要為登錄使用不同的用戶名,請在命令行中註釋: ssh -l username name-of server

      注意:現在,您還可以使用sftp命令使用ssh進行安全的ftp文件傳輸。

      OpenSSH手冊頁:

      • ssh - OpenSSH SSH客戶端(遠程登錄程序)

      • sshd - OpenSSH ssh守護進程

      • ssh-keygen - 用於創建RSA密鑰(主機密鑰和用戶認證密鑰)

      • ssh_config - OpenSSH SSH客戶端配置文件

      • sshd_config - OpenSSH SSH守護程序配置文件

      • ssh-add - 為身份驗證代理添加了RSA或DSA身份。用於與代理註冊新的密鑰。

      • scp - 安全副本(遠程文件複製程序)

      • ssh-agent - 認證代理可以用於保存RSA密鑰進行認證。

      • sftp - 安全的文件傳輸程序

      • sftp-server - SFTP服務器子系統

      其他OpenSSH鏈接:

      • 紅帽打開SSH指南 - 還有scp,sftp,Gnome ssh代理

      • Linux日誌:OpenSSH第一部分

      SSH備註:

      • 由於在初始化時執行計算所需的時間,sshd不應該使用xinetd / inetd啟動。

      • ssh客戶端將suid to root。服務器上的sshd以root身份運行。需要根權限才能在低於1024的端口上進行通信。-p選項可用於在不同端口上運行SSH。

      • RSA用於密鑰交換,常規密碼(默認Blowfish)用於加密會話。

      • 加密在認證之前啟動,沒有密碼或其他信息被清除。

      • 驗證:

      • 用戶調用登錄。客戶端告訴服務器用戶希望用於認證的公鑰。

      • 然後服務器檢查此公共密鑰是否可以接受。

        如果是,則生成隨機數並使用公鑰對其進行加密,並將該值發送給客戶端。

      • 然後,客戶端使用其私鑰對數字進行解密,並計算校驗和。校驗和被髮送回服務器

      • 服務器從數據中計算校驗和並比較校驗和。

      • 如果校驗和匹配,則接受認證。

      • SSH將使用$ HOME / .rhosts(或$ HOME / .shosts)

      • 要在另一個TCP端口上建立安全網絡連接,請使用ssh命令使用“tunneling”選項:指定低於1024的端口將需要根訪問。

        FTP打開各種端口,因此不是一個好的候選人。端口21僅用於建立連接。

      • 將TCP本地端口轉發到遠程主機上的hostport:

        ssh remote-host -L port:localhost:hostport命令

      手冊頁:

      • ssh - 安全shell客戶端(遠程登錄程序)

      • sshd - 安全shell守護進程(服務器)

      • ssh-keygen - 用於創建RSA密鑰(主機密鑰和用戶認證密鑰)

      • ssh-keyscan - 收集ssh公鑰

      • ssh-add - 為身份驗證代理添加身份用於向代理註冊新密鑰。

      • scp - 安全副本(遠程文件複製程序)

      • s登錄

      • sftp - 安全文件傳輸程序客戶端。

      • sftp-server - 安全文件傳輸程序服務器。

      • ssh-agent - 認證代理。這可以用於保存RSA密鑰進行身份驗證。

      • telnet - TELNET協議的用戶界面

      文檔:

      • 的/ usr /共享/ DOC / openssh的-XXX /

      • 的/ usr /共享/ DOC / OpenSSH的-askpass-XXX /

      • /usr/share/doc/openssl-0.XXX/

      測試:

      網絡嗅探器Ethereal(現在的Wireshark)用於嗅探客戶端和服務器之間的telnet和ssh網絡傳輸,具有以下結果:

      • 測試telnet明文登錄:(端口23)

      Linux Internet Server安全和配置教程(2

      • 客戶端發送的文本是黑色背景上的綠色文本。

        文本的其餘部分由服務器傳輸。

        請注意,抓取了登錄(“JoeUser”)和密碼(“超級密碼”)。

      • 測試ssh加密登錄:(端口22)

      Linux Internet Server安全和配置教程(2

      請注意,整個登錄和密碼交換已加密。

      Fail2ban:塊重複失敗登錄

      公共互聯網上的任何網站都將遭受字典密碼攻擊,不斷嘗試來自受損服務器的自動攻擊程序的新詞,單詞和ASCII序列。使用fail2ban阻止這些嘗試。Fail2ban將檢查日誌文件以查找重複的失敗登錄嘗試,並臨時或永久阻止攻擊系統的IP地址。fail2ban的默認配置查看sshd日誌文件/ var / log / secure以查找攻擊系統,並在阻止600秒(10分鐘)之前允許5次失敗的登錄嘗試。

      Fail2ban可以配置為監視以下進程:

      • sshd

      • smtp

      • Apache httpd

      • lighttp

      • vsftpd

      • postfix

      • bind9 named

      • mysqld

      • asterisk

      • ...

      安裝:

      • 紅帽:yum安裝fail2ban

      • Ubuntu:sudo apt-get install fail2ban

      組態:

      • /etc/fail2ban/fail2ban.conf

      Linux Internet Server安全和配置教程(2

      /etc/fail2ban/jail.conf(通常複製到jail.local併為本地指令編輯)

      Linux Internet Server安全和配置教程(2

      注意:如果您的服務器受到攻擊,則fail2ban可能會傳送大量電子郵件。您可能要刪除sendmail-whois語句。

      [DEFAULT]指令:

      指示描述
      ignoreipIP地址從不禁止,如您的網關係統。多個IP由空格隔開。這是你的白名單。默認127.0.0.1(localhost)
      findtime發生故障的時間段。例如600是指在該發現時間期間發生的故障的最大數量將被禁止。默認600秒
      maxretry指定IP被禁止之前的故障次數。默認3
      bantimeIP被禁用的秒數
      啟用true =監視器指定的進程。假無監測。默認值僅適用於sshd

      進行配置更改後重新啟動:sudo服務fail2ban重新啟動

      配置init啟動時啟動fail2ban:sudo chkconfig --level 345 fail2ban on

      另請參閱日誌文件:/ var / log / messages

      驗證黑客的阻止:

      顯示失敗的登錄生成的防火牆規則:

      Linux Internet Server安全和配置教程(2

      驗證fail2ban狀態:

      顯示sshd fail2ban狀態:

      Linux Internet Server安全和配置教程(2

      下期:Linux Internet Server安全和配置教程(3)

      PS。如果您喜歡這篇文章,請使用分享按鈕在社交網絡上與朋友分享,或者僅在下面留下回復。謝謝。

      相關推薦

      推薦中...