selinux 防火牆
getenforce 檢視防火牆狀态
setenforce 0 臨時關閉 (0關閉 1開啟)
#狀态
enforcing:強制模式,代表 SELinux 運作中,且已經正确的開始限制 domain/type 了;
permissive:寬容模式:代表 SELinux 運作中,不過僅會有警告訊息并不會實際限制 domain/type 的存取。這種模式可以運來作為 SELinux 的 debug 之用;
disabled:關閉,SELinux 并沒有實際運作。
關閉SELinux的方法:
修改/etc/selinux/config檔案中的SELINUX="" 為 disabled ,然後重新開機。
如果不想重新開機系統,使用指令setenforce 0
注:
setenforce 1 設定SELinux 成為enforcing模式
setenforce 0 設定SELinux 成為permissive模式
在lilo或者grub的啟動參數中增加:selinux=0,也可以關閉selinux
firewalld 、netfilter
firewalld 、netfilter 這兩個 統稱 iptables
注: centos7 之前使用的是netfilter centos7之後使用的firewalld
centos7上預設使用的firewalld netfilter是預設沒有開啟的
如何在centos7上使用netfilter
例:
systemctl disable firewalld 關閉開機啟動firewalld服務
systemctl stop firewalld 關閉firewalld服務
yum -y install iptables-services 安裝iptables 安裝後會産生一個服務
systemctl enable iptables 設定iptables服務開啟自啟動
systemctl start iptables 啟動iptables服務 (即開啟了netfilter)
iptables -nvL 可以檢視iptables的預設規則
(可了解為firewalld 和 netfilter 名字是防火牆,iptables隻是一個工具)
netfilter常用的兩個表
filter表用于過濾包,最常用的表,有INPUT、FORWARD、OUTPUT三個鍊
nat表用于網絡位址轉換,有PREROUTING、OUTPUT、POSTROUTING三個鍊
防火牆-netfilter
iptables -nvL 檢視規則 如圖所示
cat /etc/sysconfig/iptables 檢視這個檔案可看到預設規則儲存的資訊 如圖二所示
llinux 防火牆(selinux 防火牆、firewalld 、netfilter (iptables))及iptables 規則備份和恢複
llinux 防火牆(selinux 防火牆、firewalld 、netfilter (iptables))及iptables 規則備份和恢複 iptables -F 清空所有規則
使用iptables -nvL 檢視預設規則不會再有,當時檢視/etc/sysconfig/iptables檔案
檔案中儲存的規則還是存在
service iptables restart 重新開機服務之後 還是會把它加載出來
service iptables save 儲存規則至/etc/sysconfig/iptables檔案中
(iptables防火牆規則以/etc/sysconfig/iptables檔案中儲存的為準,重新開機之後就會加載該檔案資訊)
iptables -t nat -t指定nat表
iptables -Z (大寫的Z) 清零計數器
llinux 防火牆(selinux 防火牆、firewalld 、netfilter (iptables))及iptables 規則備份和恢複 iptables -A INPUT -s 192.168.44.128 -p tcp --sport 123 -d 192.168.44.131 --dport 80 -j DROP
指定規則 不加-t指定 預設是filter表
-A 增加一個規則 (放到後面去) 或者使用-I 表示插入 -D 删除
INPUT 表示針對的是 INPUT 鍊
-s 指定來源ip -p指定協定(這裡是tcp協定)(tcp、udp……)
--sport 來源ip的端口 123
-d 指定目标ip --dport 目标ip的端口 80
-j 指定DEOP 或者 REJECT
iptables -nvL 檢視 如圖所示
快捷友善删除iptables規則的方法
iptables -nvL --line-numbers 列出所有規則的序号 如圖所示
iptables -D INPUT 1 使用數字進行删除
iptables -P OUTPUT ACCEPT 大寫的-P指定 OUTPUT表為 ACCEPT
icmp示例
iptables -I INPUT -p icmp --icmp-type 8 -j DROP
使用這條指令可以讓别人無法ping通自己這個ip位址(禁ping)
需求:放行80、21、22端口 且22端口指定一個IP段都能通路别的ip無法通路。
以shell腳本形式完成
#!/bin/bash
a="/usr/sbin/iptables" 定義變量
$a -F 清空虧則
$a -P INPUT DROP 禁掉 INPUT 表
$a -P OUTPUT ACCEPT 指定OUTPUT FORWARD表為ACCEPT
$a -P FORWARD ACCEPT
$a -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 使用-m指定 state(狀态)指定 --state RELATED,ESTABLISHED 為ACCEPT狀态
$a -A INPUT -s 192.168.44.0/24 -p tcp --dport 22 -j ACCEPT -s放行這個ip段 通路22端口
$a -A INPUT -p tcp --dport 80 -j ACCEPT 放行80、21端口
$a -A INPUT -p tcp --dport 21 -j ACCEPT
執行腳本如圖所示
iptables 規則備份和恢複
iptables-save > beifen.txt
表示将/etc/sysconfig/iptables 檔案中的iptables規則導入到 beifen.txt
iptables-restore < beifen.txt 使用restore 恢複