Day07 系統安全防護&防火墻(Enginner01)
1.1 概述
Security-Enhanced Linux
由美國NSA主導開發,一套增強Linux系統安全的強制訪問控制體系
集成到Linux內核(2.6及以上)中運行
RHEL7基於SELinux體系針對用戶、進程、目錄和文件提供了預設的保護策略以及管理工具
1.2 三種運行模式
enforcing:強制,發現危險行為直接禁止
permissive:寬松,發現危險行為做記錄,極端危險行為也會直接禁止
disabled:徹底不用SELinux
1.3 查看及臨時切換模式
getenforce #查看SELinux運行模式
setenforce 0 #臨時修改成permissive模式
1.4 /etc/selinux/config
SELinux的配置文件,修改SELINUX=permissive,這樣就設置了電腦下次啟動時的SELinux狀態為permissive
二、配置高級連接
2.1 配置team(聚合連接、鏈路聚合、網卡綁定)
2.1.1 定義
和HSRP的功能類似,team的主要功能是對網卡設備進行備份。由多塊網卡(team-slave)一起組建的虛擬網卡,即組隊
man nmcli-examples可以看配置示例
2.1.2 配置方式
輪詢(roundrobin)
熱備份(activebackup):可以man teamd.conf,查找example,在第二個examle裏面能看到"runner": {"name": "activebackup"}
2.1.3 配置步驟
2.1.3.1 添加team
nmcli connection add type team con-name team0 ifname team0 config ‘{"runner":{"name":"activebackup"}}‘
2.1.3.2 添加team-slave
nmcli connection add type team-slave ifname eth1 master team0
nmcli connection add type team-slave ifname eth2 master team0
2.1.3.3 為team配IP地址
nmcli connection modify team0 ipv4.method manual ipv4.addresses ‘172.16.3.25/24‘ connection.autoconnect yes
2.1.3.4 激活team-slave
nmcli connection up team-slave-eth1
nmcli connection up team-slave-eth2
2.1.3.5 激活team
nmcli connection up team0
2.1.3.6 查看team狀態
teamdctl team0 state
2.1.4 驗證
ifconfig down eth1
teamdctl team0 state
三、配置IPV6
3.1 格式
128個二進制,8組用冒號分隔的十六進制數。每段內連續的前置0可省略、128個0為::
表示IPV6的任意地址
3.2 配置IP
nmcli connection modify ‘System eth0‘ ipv6.method manual ipv6.addresses ‘2003:ac18::305/64‘ connection.autoconnect yes
四、環境配置文件
4.1 ~/.bashrc
只影響指定用戶的bash解釋器環境,每次開啟bash終端後生效
4.2 /etc/bashrc
影響所有用戶的bash解釋器環境,每次開啟bash終端後生效
五、防火墻服務基礎
5.1 準備工作-搭建基本web服務
服務端:Apache(組織)寫出了httpd(軟件)
5.1.1 yum -y install httpd
安裝httpd軟件包
5.1.2 systemctl restart httpd && systemctl enable httpd
啟動httpd並設置為開機啟動
5.1.3 /var/www/html
apache默認網站的網頁文件根目錄
5.1.4 index.html
apache默認主頁文件名
5.2 準備工作-搭建ftp服務器
FTP主動/被動模式
數據:tcp/21 ftp控制命令
數據連接端口:tcp/20 上傳/下載
主動模式:客戶端主動向服務器的21端口發起連接,身份驗證通過後,客戶端打開一個高於1024的隨機端口,假設是6666。客戶端會用PORT命令告知服務器“我打開了6666端口,你可以來連接我。”。然後服務器用20端口與客戶端的6666端口建立連接,開始數據的傳輸。這裏的主動是指服務器主動把數據給客戶端。
被動模式:當客戶端所在網絡使用了防火墻的時候,主動模式下服務器企圖與客戶端的隨機高端口建立連接的行為很有可能被客戶端的防火墻阻塞掉。這時客戶端會做兩件事情:
1.主動向服務器的21端口發起連接進行身份驗證。
2.主動向服務器發送PASV命令,服務器會打開一個高於1024的隨機端口,假設是7777端口。打開端口後會向客戶端發PORT 7777命令,等於告訴客戶端“我打開了7777端口,你可以來連接我。”,客戶端會主動與7777端口連接,開始數據的傳輸。
主動FTP對FTP服務器的管理有利,但對客戶端的管理不利。因為FTP服務器企圖與客戶端的高位隨機端口建立連接,而這個端口很有可能被客戶端的防火墻阻塞掉。被動FTP對FTP客戶端的管理有利,但對服務器端的管理不利。因為客戶端要與服務器端建立兩個連接,其中一個連到一個高位隨機端口,而這個端口很有可能被服務器端的防火墻阻塞掉。
5.2.1 yum -y install vsftpd
安裝vsftp軟件包
5.2.2 systemctl restart vsftpd systemctl enable vsftpd
啟動vsftpd並設置為開機啟動
5.2.3 /var/ftp/
默認共享目錄路徑
5.3 firewalld防火墻
防火墻最大的作用是隔離。阻止入站,允許出站。
管理工具:firewall-cmd、firewall-config(圖形界面)
服務名稱:firewalld
強大的地方:
-可以檢測tcp協議三次握手中的標識位(SYN,ACK,FIN),如果有客戶端一直發SYN,但是沒建立連接;可以判斷在嘗試密碼,可以丟入規則比較嚴格的區域;如果還是發SYN,則會丟入block區域;如果還發SYN,那麽就丟入drop區域
-可以流量檢測,設置流量優先級,比如百度流量優先
5.4 預設安全區域(security zone)
根據所在的網絡場所區分,預設保護規則集。
必須記住的安全區域
public:僅允許訪問本機的sshd等少數幾個服務
trusted:允許任何訪問
block:拒絕任何來訪的請求
drop:丟棄任何來訪的數據包。(生產環境常用)
......
5.4.1 firewall-cmd --get-default-zone
查看默認安全區域
5.4.2 firewall-cmd --zone=public --list-all
查看public區域的所有規則
5.5 防火墻判斷的基本規則
查看客戶端的請求當中的源IP地址,匹配所有區域中的策略,如果有策略則放該請求進入該區域;如果沒有策略則放請求進入默認區域。策略匹配則停止
5.6 firewall-cmd --zone=public --add-service=http
為public區域添加允許訪問http服務。因為firewalld可以識別7層的數據包,所以可以寫協議名稱
5.7 firewall-cmd --permanent
設置的規則永久寫入到防火墻配置文件中
5.8 firewall-cmd --reload
重新加載防火墻配置文件,使通過--permanent寫入的規則生效
5.9 firewall-cmd --set-default-zone=
修改默認區域,直接是永久生效的,不需要加--permanent選項
5.10 firewall-cmd --permanent --zone=public --add-source=172.25.0.0/24
添加信任的IP網段為172.25.0.0/24
5.11 firewall-cmd --permanent --zone=public --add-forward-port=port=5423:proto=tcp:toport=80
設置端口轉發,在public區域裏面對tcp/5423端口轉發到tcp/80端口
Day07 系統安全防護&防火墻(Enginner01)