商務經營與雲端整合上課補充教材


Chapter 3:伺服器的防火牆設定與觀察
  1. 一個封包要進入本機基本上需要通過如下圖示的相關流程才行:
    1. 先要通過 TCP/IP 的相關規範才能夠連線到本機的網路門口
    2. 要先通過防火牆的規則管制,才可以進入到本機使用本機的服務
    3. 能否取得服務與這個服務是否啟用與相關設定有關 (發生問題可以查登錄檔)
    4. 能否實際存取資料,首先要看有沒有啟動 SELinux 這個細部權限設定項目?目前建議直接取消此項工作。
    5. 全部都放行後,最後能不能存取資料,還是跟資料檔案的權限 (rwx) 有關!
  2. 防火牆有沒有用?軟體升級有沒有用?
    1. 從前一個項目的圖示來看,如果你是 WWW 伺服器,那一定就是要放行 port 80,因此,若 port 80 出問題, 那你的防火牆當然一點用處也沒有。
    2. 但,如果你的服務中,例如 ssh 的服務,僅放行給部份的來源 IP 位址,則此時防火牆保護危險的服務,就很有用處了!
    3. 一般來說,軟體如果沒有問題,或沒有加入新功能,是不會隨意升級的。因此,如果官網有公告最新的軟體升級資訊, 當然最好就是一定要升級到最新!至少能夠預防一大堆可能的系統漏洞
  3. 伺服器本機的防護:升級到官方最新的軟體版本
    1. 使用 yum -y update 自動進行全系統升級
    2. 若有升級到核心或重要的函式庫,最好重新開機,才能使用到最新的核心與函式庫功能。
    3. 練習:
      • 建立一隻每天 2 點會執行的腳本,該腳本會每天持續更新系統
  4. 放行伺服器本機的SELinux:
    1. 使用 getenforce 查看,應該是要出現 Permissive 的狀態才對!
    2. 如果不是,請修改 /etc/selinux/config
    3. 除了重新開機之外,可以透過 setenforce 0 來暫時更改到 permissive 的環境下!
  5. 伺服器本機的防護:減少網路服務
    1. 如果對方想要連接到你的 port 80,但是你的 port 80 根本就沒有啟用埠口在監聽,那麼對方無論如何是無法連接到你的服務的! 所以減少網路服務是很重要的!
    2. 可使用 netstat -utlnp 來查詢自己本機所啟動的服務
    3. 練習:
      • 先用 netstat 檢查一下本機有啟動的網路埠口共有哪些?
      • 先自己分析一下,哪些是需要的埠口?哪些是不需要的埠口?
      • 透過 systemctl 關閉不要的埠口,且下次開機,這些埠口也不會啟用!
  6. 實際觀察與設定防火牆:
    1. 透過 firewall-cmd --list-all 列出目前的狀態
      [root@localhost ~]# firewall-cmd --list-all
      public (default, active)
        interfaces: eth0
        sources:
        services: dhcpv6-client ssh
        ports:
        masquerade: no
        forward-ports:
        icmp-blocks:
      
    2. 透過 firewall-cmd --get-services 來了解目前系統認識的服務有哪些?
    3. 透過 firewall-cmd --permanent --add-service=??? 來加入放行某個服務
    4. 透過 firewall-cmd --permanent --add-port=??? 來加入放行某個服務
    5. 練習:
      • 加入 http 以及 hhtps 的服務支援
      • 加入 port 533 的埠口放行
Top
HOME