成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux服務器安全簡明指南

系統 Linux 服務器
保持最新的軟件是你可以在任何操作系統上采取的最大的安全預防措施。軟件更新的范圍從關鍵漏洞補丁到小 bug 的修復,許多軟件漏洞實際上是在它們被公開的時候得到修補的。有一些用于服務器上自動更新的參數。Fedora 的 Wiki 上有一篇很棒的剖析自動更新的利弊的文章,但是如果你把它限制到安全更新上,自動更新的風險將是最小的。

[[180731]]

現在讓我們強化你的服務器以防止未授權訪問。

經常升級系統

保持最新的軟件是你可以在任何操作系統上采取的最大的安全預防措施。軟件更新的范圍從關鍵漏洞補丁到小 bug 的修復,許多軟件漏洞實際上是在它們被公開的時候得到修補的。

自動安全更新

有一些用于服務器上自動更新的參數。Fedora 的 Wiki 上有一篇很棒的剖析自動更新的利弊的文章,但是如果你把它限制到安全更新上,自動更新的風險將是最小的。

自動更新的可行性必須你自己判斷,因為它歸結為你在你的服務器上做什么。請記住,自動更新僅適用于來自倉庫的包,而不是自行編譯的程序。你可能會發現一個復制了生產服務器的測試環境是很有必要的。可以在部署到生產環境之前,在測試環境里面更新來檢查問題。

添加一個受限用戶賬戶

到目前為止,你已經作為 root 用戶訪問了你的服務器,它有無限制的權限,可以執行任何命令 - 甚至可能意外中斷你的服務器。 我們建議創建一個受限用戶帳戶,并始終使用它。 管理任務應該使用 sudo 來完成,它可以臨時提升受限用戶的權限,以便管理你的服務器。

不是所有的 Linux 發行版都在系統上默認包含 sudo,但大多數都在其軟件包倉庫中有 sudo。 如果得到這樣的輸出 sudo:command not found,請在繼續之前安裝 sudo。

要添加新用戶,首先通過 SSH 登錄到你的服務器。

CentOS / Fedora

1、 創建用戶,用你想要的名字替換 example_user,并分配一個密碼:

  1. useradd example_user && passwd example_user 

2、 將用戶添加到具有 sudo 權限的 wheel 組:

  1. usermod -aG wheel example_user 

Ubuntu

1、 創建用戶,用你想要的名字替換 example_user。你將被要求輸入用戶密碼:

  1. adduser example_user 

2、 添加用戶到 sudo 組,這樣你就有管理員權限了:

  1. adduser example_user sudo 

Debian

1、 Debian 默認的包中沒有 sudo, 使用 apt-get 來安裝:

  1. apt-get install sudo 

2、 創建用戶,用你想要的名字替換 example_user。你將被要求輸入用戶密碼:

  1. adduser example_user 

3、 添加用戶到 sudo 組,這樣你就有管理員權限了:

  1. adduser example_user sudo 

創建完有限權限的用戶后,斷開你的服務器連接:

  1. exit 

重新用你的新用戶登錄。用你的用戶名代替 example_user,用你的服務器 IP 地址代替例子中的 IP 地址: 

  1. ssh example_user@203.0.113.10 

現在你可以用你的新用戶帳戶管理你的服務器,而不是 root。 幾乎所有超級用戶命令都可以用 sudo(例如:sudo iptables -L -nv)來執行,這些命令將被記錄到 /var/log/auth.log 中。

加固 SSH 訪問

默認情況下,密碼認證用于通過 SSH 連接到您的服務器。加密密鑰對更加安全,因為它用私鑰代替了密碼,這通常更難以暴力破解。在本節中,我們將創建一個密鑰對,并將服務器配置為不接受 SSH 密碼登錄。

創建驗證密鑰對

1、這是在你本機上完成的,不是在你的服務器上,這里將創建一個 4096 位的 RSA 密鑰對。在創建過程中,您可以選擇使用密碼加密私鑰。這意味著它不能在沒有輸入密碼的情況下使用,除非將密碼保存到本機桌面的密鑰管理器中。我們建議您使用帶有密碼的密鑰對,但如果你不想使用密碼,則可以將此字段留空。

Linux / OS X

如果你已經創建了 RSA 密鑰對,則這個命令將會覆蓋它,這可能會導致你不能訪問其它的操作系統。如果你已創建過密鑰對,請跳過此步驟。要檢查現有的密鑰,請運行 ls〜/ .ssh / id_rsa *。

  1. ssh-keygen -b 4096 

在輸入密碼之前,按下 回車使用 /home/your_username/.ssh 中的默認名稱 id_rsa 和 id_rsa.pub。

Windows

這可以使用 PuTTY 完成,在我們指南中已有描述:使用 SSH 公鑰驗證。

2、將公鑰上傳到您的服務器上。 將 example_user 替換為你用來管理服務器的用戶名稱,將 203.0.113.10 替換為你的服務器的 IP 地址。

Linux

在本機上:

  1. ssh-copy-id example_user@203.0.113.10 

OS X

在你的服務器上(用你的權限受限用戶登錄): 

  1. mkdir -p ~/.ssh && sudo chmod -R 700 ~/.ssh/ 

在本機上:

  1. scp ~/.ssh/id_rsa.pub example_user@203.0.113.10:~/.ssh/authorized_keys 

如果相對于 scp 你更喜歡 ssh-copy-id 的話,那么它也可以在 Homebrew 中找到。使用 brew install ssh-copy-id 安裝。

Windows

  • 選擇 1:使用 WinSCP 來完成。 在登錄窗口中,輸入你的服務器的 IP 地址作為主機名,以及非 root 的用戶名和密碼。單擊“登錄”連接。

一旦 WinSCP 連接后,你會看到兩個主要部分。 左邊顯示本機上的文件,右邊顯示服務區上的文件。 使用左側的文件瀏覽器,導航到你已保存公鑰的文件,選擇公鑰文件,然后點擊上面工具欄中的“上傳”。

系統會提示你輸入要將文件放在服務器上的路徑。 將文件上傳到 /home/example_user/.ssh /authorized_keys,用你的用戶名替換 example_user。

  • 選擇 2:將公鑰直接從 PuTTY 鍵生成器復制到連接到你的服務器中(作為非 root 用戶): 
  1. mkdir ~/.ssh; nano ~/.ssh/authorized_keys 

上面命令將在文本編輯器中打開一個名為 authorized_keys 的空文件。 將公鑰復制到文本文件中,確保復制為一行,與 PuTTY 所生成的完全一樣。 按下 CTRL + X,然后按下 Y,然后回車保存文件。

最后,你需要為公鑰目錄和密鑰文件本身設置權限:

  1. sudo chmod 700 -R ~/.ssh && chmod 600 ~/.ssh/authorized_keys 

這些命令通過阻止其他用戶訪問公鑰目錄以及文件本身來提供額外的安全性。有關它如何工作的更多信息,請參閱我們的指南如何修改文件權限。

3、 現在退出并重新登錄你的服務器。如果你為私鑰指定了密碼,則需要輸入密碼。

SSH 守護進程選項

1、 不允許 root 用戶通過 SSH 登錄。 這要求所有的 SSH 連接都是通過非 root 用戶進行。當以受限用戶帳戶連接后,可以通過使用 sudo 或使用 su - 切換為 root shell 來使用管理員權限。

  1. # Authentication: 
  2. ... 
  3. PermitRootLogin no 

2、 禁用 SSH 密碼認證。 這要求所有通過 SSH 連接的用戶使用密鑰認證。根據 Linux 發行版的不同,它可能需要添加 PasswordAuthentication 這行,或者刪除前面的 # 來取消注釋。

  1. # Change to no to disable tunnelled clear text passwords 
  2. PasswordAuthentication no 

如果你從許多不同的計算機連接到服務器,你可能想要繼續啟用密碼驗證。這將允許你使用密碼進行身份驗證,而不是為每個設備生成和上傳密鑰對。

3、 只監聽一個互聯網協議。 在默認情況下,SSH 守護進程同時監聽 IPv4 和 IPv6 上的傳入連接。除非你需要使用這兩種協議進入你的服務器,否則就禁用你不需要的。 這不會禁用系統范圍的協議,它只用于 SSH 守護進程。

使用選項:

  • AddressFamily inet 只監聽 IPv4。
  • AddressFamily inet6 只監聽 IPv6。

默認情況下,AddressFamily 選項通常不在 sshd_config 文件中。將它添加到文件的末尾:

echo 'AddressFamily inet' | sudo tee -a /etc/ssh/sshd_config

4、 重新啟動 SSH 服務以加載新配置。

如果你使用的 Linux 發行版使用 systemd(CentOS 7、Debian 8、Fedora、Ubuntu 15.10+)

  1. sudo systemctl restart sshd 

如果您的 init 系統是 SystemV 或 Upstart(CentOS 6、Debian 7、Ubuntu 14.04):

  1. sudo service ssh restart 

使用 Fail2Ban 保護 SSH 登錄

Fail2Ban 是一個應用程序,它會在太多的失敗登錄嘗試后禁止 IP 地址登錄到你的服務器。由于合法登錄通常不會超過三次嘗試(如果使用 SSH 密鑰,那不會超過一個),因此如果服務器充滿了登錄失敗的請求那就表示有惡意訪問。

Fail2Ban 可以監視各種協議,包括 SSH、HTTP 和 SMTP。默認情況下,Fail2Ban 僅監視 SSH,并且因為 SSH 守護程序通常配置為持續運行并監聽來自任何遠程 IP 地址的連接,所以對于任何服務器都是一種安全威懾。

有關安裝和配置 Fail2Ban 的完整說明,請參閱我們的指南:使用 Fail2ban 保護服務器。

刪除未使用的面向網絡的服務

大多數 Linux 發行版都安裝并運行了網絡服務,監聽來自互聯網、回環接口或兩者兼有的傳入連接。 將不需要的面向網絡的服務從系統中刪除,以減少對運行進程和對已安裝軟件包攻擊的概率。

查明運行的服務

要查看服務器中運行的服務:

  1. sudo netstat -tulpn 

如果默認情況下 netstat 沒有包含在你的 Linux 發行版中,請安裝軟件包 net-tools 或使用 ss -tulpn 命令。

以下是 netstat 的輸出示例。 請注意,因為默認情況下不同發行版會運行不同的服務,你的輸出將有所不同:

  1. Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name 
  2. tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      7315/rpcbind 
  3. tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      3277/sshd 
  4. tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      3179/exim4 
  5. tcp        0      0 0.0.0.0:42526           0.0.0.0:*               LISTEN      2845/rpc.statd 
  6. tcp6       0      0 :::48745                :::*                    LISTEN      2845/rpc.statd 
  7. tcp6       0      0 :::111                  :::*                    LISTEN      7315/rpcbind 
  8. tcp6       0      0 :::22                   :::*                    LISTEN      3277/sshd 
  9. tcp6       0      0 ::1:25                  :::*                    LISTEN      3179/exim4 
  10. udp        0      0 127.0.0.1:901           0.0.0.0:*                           2845/rpc.statd 
  11. udp        0      0 0.0.0.0:47663           0.0.0.0:*                           2845/rpc.statd 
  12. udp        0      0 0.0.0.0:111             0.0.0.0:*                           7315/rpcbind 
  13. udp        0      0 192.0.2.1:123           0.0.0.0:*                           3327/ntpd 
  14. udp        0      0 127.0.0.1:123           0.0.0.0:*                           3327/ntpd 
  15. udp        0      0 0.0.0.0:123             0.0.0.0:*                           3327/ntpd 
  16. udp        0      0 0.0.0.0:705             0.0.0.0:*                           7315/rpcbind 
  17. udp6       0      0 :::111                  :::*                                7315/rpcbind 
  18. udp6       0      0 fe80::f03c:91ff:fec:123 :::*                                3327/ntpd 
  19. udp6       0      0 2001:DB8::123           :::*                                3327/ntpd 
  20. udp6       0      0 ::1:123                 :::*                                3327/ntpd 
  21. udp6       0      0 :::123                  :::*                                3327/ntpd 
  22. udp6       0      0 :::705                  :::*                                7315/rpcbind 
  23. udp6       0      0 :::60671                :::*                                2845/rpc.statd 

netstat 告訴我們服務正在運行 RPC(rpc.statd 和 rpcbind)、SSH(sshd)、NTPdate(ntpd)和Exim(exim4)。

TCP

請參閱 netstat 輸出的 Local Address 那一列。進程 rpcbind 正在偵聽 0.0.0.0:111 和 :::111,外部地址是 0.0.0.0:* 或者 :::* 。這意味著它從任何端口和任何網絡接口接受來自任何外部地址(IPv4 和 IPv6)上的其它 RPC 客戶端的傳入 TCP 連接。 我們看到類似的 SSH,Exim 正在偵聽來自回環接口的流量,如所示的 127.0.0.1 地址。

UDP

UDP 套接字是無狀態的,這意味著它們只有打開或關閉,并且每個進程的連接是獨立于前后發生的連接。這與 TCP 的連接狀態(例如 LISTEN、ESTABLISHED和 CLOSE_WAIT)形成對比。

我們的 netstat輸出說明 NTPdate :1)接受服務器的公網 IP 地址的傳入連接;2)通過本地主機進行通信;3)接受來自外部的連接。這些連接是通過端口 123 進行的,同時支持 IPv4 和 IPv6。我們還看到了 RPC 打開的更多的套接字。

查明該移除哪個服務

如果你在沒有啟用防火墻的情況下對服務器進行基本的 TCP 和 UDP 的 nmap 掃描,那么在打開端口的結果中將出現 SSH、RPC 和 NTPdate 。通過配置防火墻,你可以過濾掉這些端口,但 SSH 除外,因為它必須允許你的傳入連接。但是,理想情況下,應該禁用未使用的服務。

  • 你可能主要通過 SSH 連接管理你的服務器,所以讓這個服務需要保留。如上所述,RSA 密鑰和 Fail2Ban 可以幫助你保護 SSH。
  • NTP 是服務器計時所必需的,但有個替代 NTPdate 的方法。如果你喜歡不開放網絡端口的時間同步方法,并且你不需要納秒精度,那么你可能有興趣用 OpenNTPD 來代替 NTPdate。
  • 然而,Exim 和 RPC 是不必要的,除非你有特定的用途,否則應該刪除它們。

本節針對 Debian 8。默認情況下,不同的 Linux 發行版具有不同的服務。如果你不確定某項服務的功能,請嘗試搜索互聯網以了解該功能是什么,然后再嘗試刪除或禁用它。

卸載監聽的服務

如何移除包取決于發行版的包管理器:

Arch

  1. sudo pacman -Rs package_name 

CentOS

  1. sudo yum remove package_name 

Debian / Ubuntu

  1. sudo apt-get purge package_name 

Fedora

  1. sudo dnf remove package_name 

再次運行 sudo netstat -tulpn,你看到監聽的服務就只會有 SSH(sshd)和 NTP(ntpdate,網絡時間協議)。

配置防火墻

使用防火墻阻止不需要的入站流量能為你的服務器提供一個高效的安全層。 通過指定入站流量,你可以阻止入侵和網絡測繪。 最佳做法是只允許你需要的流量,并拒絕一切其他流量。請參閱我們的一些關于最常見的防火墻程序的文檔:

  • iptables 是 netfilter 的控制器,它是 Linux 內核的包過濾框架。 默認情況下,iptables 包含在大多數 Linux 發行版中。
  • firewallD 是可用于 CentOS/Fedora 系列發行版的 iptables 控制器。
  • UFW 為 Debian 和 Ubuntu 提供了一個 iptables 前端。

接下來

這些是加固 Linux 服務器的最基本步驟,但是進一步的安全層將取決于其預期用途。 其他技術可以包括應用程序配置,使用入侵檢測或者安裝某個形式的訪問控制。

現在你可以按你的需求開始設置你的服務器了。 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2017-12-04 10:03:45

2019-02-15 08:51:22

2017-03-23 09:54:17

CentOS 7FirewallD指南

2012-02-08 09:38:33

2023-01-27 14:50:45

2021-03-15 08:18:10

Web安全黑客漏洞

2011-08-08 18:43:26

2012-12-31 10:58:12

2018-01-31 11:20:48

2016-02-01 10:12:22

網頁設計移動端

2009-09-18 13:00:20

2009-09-24 17:37:23

2021-02-07 09:57:54

正則表達式字符串Linux

2010-08-06 15:44:11

Linux服務器

2011-03-23 15:30:53

2012-05-08 13:59:23

2017-03-29 15:12:43

2018-08-07 14:49:55

2009-07-04 14:37:12

2013-03-25 09:19:10

Linux服務器故障排查
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品国产欧美一区二区三区不卡 | 日本不卡一区 | 欧美一区 | 97久久精品| 日日欧美| 亚洲不卡在线视频 | 亚洲国产精品va在线看黑人 | 日韩成人免费在线视频 | 一区二区视频在线观看 | 91亚洲国产成人久久精品网站 | 日韩欧美国产一区二区三区 | 乱码av午夜噜噜噜噜动漫 | 亚洲国产成人精品女人 | 91亚洲国产成人久久精品网站 | 色视频免费 | 台湾佬久久 | 日日夜夜狠狠操 | 91在线精品视频 | 久久久青草婷婷精品综合日韩 | 国产精品久久久久久妇女 | 国产精品久久久精品 | 一区二区视频在线 | 婷婷福利视频导航 | 欧美精品久久 | 亚洲成人一区二区在线 | 玖玖色在线视频 | 不卡一区 | 色综合久久天天综合网 | 国产午夜精品理论片a大结局 | 免费久| 日韩免费在线观看视频 | 成av在线 | 亚洲视频免费一区 | 中文字幕在线视频免费观看 | 无码日韩精品一区二区免费 | 日韩二三区 | 国产精品久久九九 | 欧美日韩在线一区二区三区 | 亚洲第1页| 亚洲高清在线播放 | 国产精品久久久久久久白浊 |