1. 程式人生 > >日常運維2

日常運維2

2.2 firewalld&iptables

permissive,遇到真正需要阻斷時不會真正阻斷,只會提醒

setenforce 0/1 disable/enable enforcing 臨時更改

####如何永久關閉selinux (編輯/etc/selinux/config 將SELINUX值改為disabled/permissive)

####同樣也可以用sed命令永久關閉  sed ­i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config 

2.2.1 firewalld、iptables和netfilter之間的關係

在centos6上,我們用的是iptables服務,而在centos7上,我們用的是firewalld服務。  同樣的,centos6上安裝的是iptables包,而centos7上安裝的是firewalld包。 

不管是centos6還是centos7,核心其實都是netfilter,netfilter是linux的一個核心模組,iptables 命令是linux核心自帶的。 

centos6上的iptables服務和centos7上的firewalld服務,其實都是用來定義防火牆規則功能的防 火牆管理工具。  它們都是將定義好的規則交由核心中的netfilter即網路過濾器來讀取,從而真正實現防火牆 功能,  所以其實在配置規則的思路上是完全一致的。  

由於好多服務受限於selinux,並且開啟selinux會增大運營成本, 所以大多時候會處於關閉狀態

在centos7中 firewalld是預設開啟的,下圖顯示如何開啟netfilter關閉firewalld

2.2.2 netfilter

2.2.2.1 netfilter5表5鏈介紹

 1.filter表——三個鏈:INPUT、FORWARD、OUTPUT   作用:過濾資料包    核心模組:iptables_filter.  

2.Nat表——三個鏈:PREROUTING、POSTROUTING、OUTPUT   作用:用於網路地址轉換(IP、埠)   核心模組:iptable_nat  

3.Mangle表——五個鏈:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD  作用:修改資料包的服務型別、TTL、並且可以配置路由實現QOS  核心模組:iptable_mangle(別看這個表這麼麻煩,咱們設定策略時幾乎都不會用到它)  

4.Raw表——兩個鏈:OUTPUT、PREROUTING   作用:決定資料包是否被狀態跟蹤機制處理    核心模組:iptable_raw  

5.Security表——三個鏈:INPUT、OUTPUT和FORWARD  作用:Security表在centos6中並沒有,用於強制訪問控制(MAC)的網路規則   核心模組:iptable_security

netfilter的5個鏈 

PREROUTING:資料包進入路由表之前  INPUT:通過路由表後目的地為本機  FORWARD:通過路由表後,目的地不為本機 OUTPUT:由本機產生,向外發出 

POSTROUTING:傳送到網絡卡介面之前

nat表用於實現路由器,共享上網埠對映

2.2.3 iptables 語法

2.2.3.1 iptables一般語法格式:

iptables的命令格式較為複雜,一般的格式如下: 

 iptables  [­t  table] 命令 [chain] [rules] [­j target]  

###格式說明:     

 table————指定表名,iptables內建包括filter表、nat表、mangle、raw表和security表。     

 命令—————對鏈的操作命令      

chain————鏈名      

rules————匹配規則     

 target————動作如何進行

###操作命令選項說明 

     命令                          說明  

­P或–policy  <鏈名>:定義預設策略 

 ­L或–list    <鏈名>:檢視iptables規則列表 

 ­A或—append  <鏈名>:在規則列表的後增加1條規則 

 ­I或–insert  <鏈名>:在指定的位置插入1條規則 

 ­D或–delete  <鏈名>:從規則列表中刪除1條規則  

­R或–replace <鏈名>:替換規則列表中的某條規則  

­F或–flush   <鏈名>:刪除表中所有規則  

­Z或–zero    <鏈名>:將表中資料包計數器和流量計數器歸零

###規則選項說明

­i或–in­interface <網路介面名>:指定資料包從哪個網路介面進入,如ppp0、eth0和eth1等  ­

o或–out­interface <網路介面名>:指定資料包從哪塊網路介面輸出,如ppp0、eth0和eth1等 

­p或—proto協議型別 < 協議型別>:指定資料包匹配的協議,如TCP、UDP和ICMP等  ­

s或–source <源地址或子網>:指定資料包匹配的源地址  –sport <源埠號>:指定資料包匹配的源埠號,可以使用“起始埠號:結束埠號”的格式 指定一個範圍的埠  ­

d或–destination <目標地址或子網>:指定資料包匹配的目標地址  

dport <目標埠號>:指定資料包匹配的目標埠號,可以使用“起始埠號:結束埠號”的 格式指定一個範圍的埠

###動作選項說明 

ACCEPT:接受資料包 

DROP:丟棄資料包 

REDIRECT:與DROP基本一樣,區別在於它除了阻塞包之外, 還向傳送者返回錯誤資訊。 

SNAT:源地址轉換,即改變資料包的源地址 

DNAT:目標地址轉換,即改變資料包的目的地址 

MASQUERADE:      IP偽裝,即是常說的NAT技術,      MASQUERADE只能用於ADSL等撥號上網的IP偽裝,也就是主機的IP是由ISP分配動態 的;      如果主機的IP地址是靜態固定的,就要使用SNAT 

LOG日誌功能,將符合規則的資料包的相關資訊記錄在日誌中,以便管理員的分析和排錯

iptables (-t nat/filter) -nvL 預設規則--保存於 /etc/sysconfig/iptables

iptables -F 清空規則(但卻無法清空配置檔案的規則,重啟後會載入service iptables restart)

iptables -Z 清零 

下例命令為jp阻斷 封掉, DRPO可以用REJECT命令代替

如何刪除新加入規則 (雖然 iptables -D INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP亦能實現刪除 但是input過於繁瑣,推薦使用以下方式)

iptalbes -nvL --llne-number

iptables -D INPUT 8(the line that you want to delete)

iptables -P INPUT DROP 清除全部規則 (輕易不要用)///// iptables -P OUTPUT ACCEPT

2.2.3.2 iptables nat 表應用

##準備環境pre-work

1.準備個workstations 編輯虛擬機器設定

2. 新增網絡卡

3.將網路連線模式改成區段(為了確保實驗環境,網絡卡2不連線window而是連線某區段)

4.配置另一個workstations(fred linux 克隆)的網絡卡,選擇Lan區段

5.新增成功,並嘗試給新網絡卡ens37設定ip

可以通過下命令手動設定ip、埠(重啟之後就會沒有了,如果想要一直存在就要更改配置檔案)

6.同理,配置fred 克隆workstation ens37網絡卡

7.測試是否ping的通

##調配

需求1

1. A機器上開啟路由轉發 (此預設值是0,意為關閉)

cat /proc/sys/net/ipv4/ip_forward

開啟埠轉發 echo "1" > /proc/sys/net/ipv4/ip_forward

2. 增加一條實現上網的規則

iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE

3.克隆機機器上設定閘道器為192.168.100.1

實現克隆機聯網

4.設定dns

vi /etc/resolv.confvi 

需求2(埠對映)

1. A機器上開啟埠轉發

echo "1" > /proc/sys/net/ipv4/ip_forward

2. 增加iptables 規則(先刪除之前的規則 以免影響接下來的實驗)---此為進去的操作

iptables -t nat -A PREROUTING-d 192.168.88.128 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22

從88.128進來通過埠1122 轉發到100.100的22埠

之後設定出去的埠

iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.88.128

3.克隆機器新增閘道器

克隆機機器上設定閘道器為192.168.100.1

實驗成功

2.2.3.3 iptables規則備份和恢復