linux工程師技術-01 -SElinux、配置高級連接、防火牆管理策略

Security-Enhanced Linux(SElinux)

– 美國NSA國家安全局主導開發,一套增強Linux系統安全的強制訪問控制體系   

目的:強制訪問控制體系


– 集成到Linux內核(2.6及以上)中運行

– RHEL7基於SELinux體系針對用戶、進程、目錄和文件提供了預設的保護策略,以及管理工具


SELinux的運行模式

– enforcing(強制)、permissive(寬鬆)

– disabled(徹底禁用)


切換運行模式

-臨時切換(當前切換):setenforce  1/0    #0表示降級,1表示升級

-固定配置(下次重啓才生效):vim /etc/selinux/config



[root@server0 ~]# getenforce     #查看當前SELinux狀態

 Enforcing

[root@server0 ~]# setenforce 0   #設置當前SELinux狀態

[root@server0 ~]# getenforce 

 Permissive


enforcing、permissive與disabled之間的切換必須到vim固定配置重啓才能生效


固定配置:

[root@server0 ~]# vim /etc/selinux/config 

.. ..

SELINUX=permissive


[root@server0 ~]#reboot   #重啓系統切換模式


補充:vim  命令模式   

            C(大寫):刪除光標之後到行尾,並且進入插入模式

-------------------------------------------------------------------------------------------

配置高級連接 

配置聚合連接(網卡綁定)

和HSRP相似

HSRP:備份網關設備 


                                     路由器1             路由器2

                                192.168.1.254     192.168.1.253

                                      活躍                     備份

     

                                             虛擬路由器

                                           192.168.1.200

      

聚合連接:備份網卡設備 


                      eth1            eth2

                192.168.1.1/24     192.168.1.2/24        

                              team

                           192.168.1.10




team,聚合連接(也稱爲鏈路聚合)

– 由多塊網卡(team-slave)一起組建而成的虛擬網卡,即“組隊”

– 作用1:輪詢式(roundrobin)的流量負載均衡

– 作用2:熱備份(activebackup)連接冗餘



熱備份配置:  {"runner":{"name":"activebackup"}}

熱備份配置字符複雜可以用:man幫助輔助記憶

輸入man teamd.conf進入幫助界面

輸入  /example            #全文查找example

 再按n                    #按n 跳轉下一個匹配

找到並複製 {"runner":{"name":"activebackup"}}


[root@server0 ~]# man teamd.conf

          /example   #全文查找example

                     #按n 跳轉下一個匹配


一、添加team團隊設備

# nmcli connection add type team 

con-name team0  ifname  team0 

config '{"runner": {"name": "activebackup"}}'


# cat /etc/sysconfig/network-scripts/ifcfg-team0

# ifconfig  team0


二、添加成員

# nmcli connection add type team-slave 

ifname eth1 master team0 


# nmcli connection add type team-slave 

ifname eth2 master team0


三、配置team0的IP地址

# nmcli connection modify team0       

 ipv4.method manual 

 ipv4.addresses 192.168.1.1/24     

 connection.autoconnect yes


四、激活team0

# nmcli connection up team-slave-eth1   #激活從設備eth1

# nmcli connection up team-slave-eth2   #激活從設備eth2

# nmcli connection up team0            #激活主設備team0     


五、驗證

# teamdctl team0 state    #專用於查看team信息

setup:

  runner: activebackup

ports:

  eth1

    link watches:

      link summary: up             

      instance[link_watch_0]:

        name: ethtool

        link: up                #狀態已激活

  eth2

    link watches:

      link summary: up

      instance[link_watch_0]:

        name: ethtool

        link: up                #狀態已激活

runner:

  active port: eth1        #指定活躍網卡爲eth1



注意:前面有輸入錯誤的地方不要重新輸一遍正確的,不會覆蓋,最好刪除網卡組成員

刪除命令:

# nmcli connection delete team-slave-eth1 

# nmcli connection delete team-slave-eth2

# nmcli connection delete team0


在客戶端desktop虛擬機上按照server0重新配置一遍,配置IP地址爲192.168.1.2/24    

都配置完後可以Ping驗證  

若將其中一個網卡eth1或eth2端口關閉,命令:ifconfig eth1/eth2 down也會ping通,因爲有備份,兩個都關閉則ping失敗


-------------------------------------------------------------------------------------------

 配置IPv6地址

IPv6 地址表示

– 128個二進制位,冒號分隔的十六進制數

– 每段內連續的前置 0 可省略、連續的多個 : 可簡化爲 ::


# nmcli connection modify 'System eth0' 

ipv6.method manual 

ipv6.addresses 2003:ac18::305/64 

connection.autoconnect yes


# nmcli connection up 'System eth0'


# ifconfig eth0


# ping6  2003:ac18::305


-------------------------------------------------------------------------------------------

alias別名設置

查看已設置的別名

– alias [別名名稱]

定義新的別名

– alias 別名名稱= '實際執行的命令行'

取消已設置的別名

– unalias [別名名稱]




用戶個性化配置文件

影響指定用戶的 bash 解釋環境

– ~/.bashrc,每次開啓 bash 終端時生效


全局環境配置

影響所有用戶的 bash 解釋環境

– /etc/bashrc,每次開啓 bash 終端時生效


[root@server0 ~]# vim /root/.bashrc      #影響root文件

.. ..

    alias hello='echo hello'  


[root@server0 ~]# vim /home/student/.bashrc #影響student文件

.. ..

    alias hi='echo hi'

  

[root@server0 ~]# vim /etc/bashrc    #全局配置文件        

.. ..

    alias haha='echo xixi'


 退出遠程登陸,重新遠程server0驗證

[root@server0 ~]# hello        #成功

[root@server0 ~]# hi           #失敗

[root@server0 ~]# haha         #成功

[root@server0 ~]# su - student

[student@server0 ~]$ hello      #失敗

[student@server0 ~]$ hi    #成功

[student@server0 ~]$ haha       #成功

[student@server0 ~]$ exit

-------------------------------------------------------------------------------------------

防火牆策略管理(firewall)


 一、搭建基本Web服務

利用服務端的軟件(httpd)爲客戶端提供Web服務


  服務端:  httpd(軟件)由Apache組織開發

  1.server0上安裝httpd軟件

  2.server0啓動httpd服務,設置開機自起

    默認情況下:Apache沒有提供任何頁面

虛擬機登陸firefox頁面必須將真機的所有firefox頁面程序關閉


    默認Apache網頁文件存放路徑:/var/www/html

    默認Apache網頁文件名稱:index.html


[root@server0 ~]# yum -y install httpd    #安裝軟件

[root@server0 ~]# systemctl restart httpd  #設置開機自啓

[root@server0 ~]# systemctl enable httpd


[root@server0 ~]# vim /var/www/html/index.html  #進入編輯頁面


 <marquee><font color=green><h1>My First Web   

#字體滾動,字體顏色,字體大小後面輸入頁面顯示內容



[root@server0 ~]# firefox 172.25.0.11

前面沒寫服務就默認http服務



二、FTP服務的搭建    ftp:文件傳輸協議

  服務端:  vsftpd(軟件)

  1.server0上安裝 vsftpd軟件

  2.server0啓動 vsftpd服務,設置開機自起

     默認共享的位置:/var/ftp


可以創建文檔文件:

e.g:

[root@server0 ~]# touch /var/ftp/1.txt

[root@server0 ~]# touch /var/ftp/2.txt


測試

[root@server0 ~]# firefox ftp://172.25.0.11


   

-------------------------------------------------------------------------------------------

 防火牆策略管理(firewall)


 作用:隔離外網和內網

       阻止外網(WAN)入站,允許內網(LAN)出站


   系統服務:firewalld

   管理工具:firewall-cmd(命令)、firewall-config(圖形)


 查看防火牆服務狀態

[root@server0 ~]# systemctl status firewalld.service



根據所在的網絡場所區分,預設保護規則集

– public(默認的區域):僅允許訪問本機的sshd等少數幾個服務

– trusted:允許任何訪問

– block:拒絕任何來訪請求(客戶端請求會迴應並拒絕)

– drop:丟棄任何來訪的數據包(直接拒絕沒有任何迴應)


 防火牆判斷的規則:匹配及停止

  1.首先看請求(客戶端)當中的源IP地址,所有區域中是否有對於該IP地址的策略,如果有則該請求進入該區域

  2.進入默認區域



虛擬機desktop0:

# firefox http://172.25.0.11  #訪問失敗,因爲沒有添加http服務

# firefox ftp://172.25.0.11   #訪問失敗,因爲沒有添加ftp服務

虛擬機server0:

# firewall-cmd --get-default-zone       #查看默認區域爲public

# firewall-cmd --zone=public --list-all #查看區域規則信息

public (default, active)

  interfaces: eth0 eth1 eth2 team0

  sources: 

  services: dhcpv6-client ssh    #支持的服務

  ports: 

  masquerade: no

  forward-ports: 

  icmp-blocks: 

  rich rules: 

# firewall-cmd --zone=public --add-service=http #添加服務

# firewall-cmd --zone=public --list-all   #查看區域規則信息

public (default, active)

  interfaces: eth0 eth1 eth2 team0

  sources: 

  services: dhcpv6-client http ssh   #已添加http服務

  ports: 

  masquerade: no

  forward-ports: 

  icmp-blocks: 

  rich rules: 

虛擬機desktop0:

# firefox http://172.25.0.11  #訪問成功

# firefox ftp://172.25.0.11   #訪問失敗

虛擬機server0:

# firewall-cmd --zone=public --add-service=ftp

# firewall-cmd --zone=public --list-all 

public (default, active)

  interfaces: eth0 eth1 eth2 team0

  sources: 

  services: dhcpv6-client ftp http ssh

  ports: 

  masquerade: no

  forward-ports: 

  icmp-blocks: 

  rich rules: 

虛擬機desktop0:

# firefox ftp://172.25.0.11   #訪問成功

-------------------------------------------------------------------------------------------

  --permanent選項:實現永久設置


虛擬機server0:


# firewall-cmd --reload   #重新加載防火牆,關閉之前添加的服務

# firewall-cmd --zone=public --list-all  #重新後之前設置的服務會消失 


# firewall-cmd --permanent --zone=public  --add-service=ftp

# firewall-cmd --permanent --zone=public --add-service=http


# firewall-cmd --reload   #重新加載防火牆

# firewall-cmd --zone=public --list-all 


-------------------------------------------------------------------------------------------

 修改默認的區域,不需要加上--permanent


虛擬機desktop0:

# ping 172.25.0.11     #可以通信

虛擬機server0:

# firewall-cmd --set-default-zone=block   #修改默認區域爲block

# firewall-cmd --get-default-zone         #查看默認區域


虛擬機desktop0:

# ping 172.25.0.11   #不可以通信


虛擬機server0:

# firewall-cmd --set-default-zone=drop    #修改默認區域爲drop

# firewall-cmd --get-default-zone

虛擬機desktop0:

# ping 172.25.0.11   #通信無反饋


-------------------------------------------------------------------------------------------

虛擬機server0: 

# firewall-cmd --permanent --zone=public --add-source=172.25.0.10    #添加客戶端desktop源IP


# firewall-cmd --zone=public --list-all 

# firewall-cmd --reload 

# firewall-cmd --zone=public --list-all


虛擬機desktop0:

# firefox http://172.25.0.11


-------------------------------------------------------------------------------------------

實現本機的端口映射

本地應用的端口重定向(端口1 --> 端口2)

– 從客戶機訪問 端口1 的請求,自動映射到本機 端口2

– 比如,訪問以下兩個地址可以看到相同的頁面:


虛擬機desktop0:

# firefox http://172.25.0.11:5423-------》172.25.0.11:80


虛擬機server0: 

# firewall-cmd --permanent --zone=public 

--add-forward-port=port=5423:proto=tcp:toport=80 


# firewall-cmd --reload 


# firewall-cmd --zone=public --list-all



虛擬機desktop0: 

# firefox http://172.25.0.11:5423









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章