天天看點

centos iptables_iptables詳解-4

[[email protected] ~]# iptables -nvL

INPUT 是防止進來的包 用的最多

-A 針對INPUT增加規則 是往後增加的 -I是增加規則往上增加 優先級最高

-D是删除

iptables -P //就是政策 預設是ACCEPT 就是預設所有的可以進來

Chain INPUT (policy ACCEPT 25 packets, 2370 bytes) //一共過濾了多少位元組 多少包

[[email protected] ~]# iptables -P INPUT DROP //這個不輕易做 如果DROP掉後 終端就斷開 因為我們遠端連着它 最好線上上環境用這個指令

[[email protected] ~]# vim 1.sh //現在有個需求 把所有的80端口開放 針對22端口指定的網段ip 開放21端口 把政策改為DROP 拒絕網段連接配接22端口除指定開放的網段ip

#!/bin/bash

ip="/sbin/iptables"

i=INPUT

A=ACCEPT

D=DROP

$ip -F

$ip -P INPUT DROP

$ip -P OUTPUT ACCEPT

$ip -P FORWARD ACCEPT

$ip -I $i -s 192.168.83.0/24 -p tcp --dport 22 -j $A

$ip -I $i -p tcp --dport 80 -j $A

$ip -I $i -p tcp --dport 21 -j $A

$ip -I $i -p tcp --dport 22 -j $A

[[email protected] ~]# iptables -nvL //檢視規則和政策

centos iptables_iptables詳解-4
---------------------------------------------------------------------------------------- 擴充學習 iptables 針對一個網段

iptables -I INPUT -m iprange --src-range 61.4.176.0-61.4.191.255 -j DROP //-m iprange --src-range 這個參數針對一個網段的

iptables中DNAT、SNAT和MASQUERADE的了解

這也就是說,我們要做的DNAT要在進入這個菱形轉發區域之前,也就是在PREROUTING鍊中做,比如我們要把通路202.103.96.112的通路轉發到192.168.0.112上:

iptables -t nat -A PREROUTING -d 202.103.96.112 -j DNAT --to-destination 192.168.0.112

這個轉換過程當中,其實就是将已經達到這台Linux網關(防火牆)上的資料包上的destination ip address從202.103.96.112修改為192.168.0.112然後交給系統路由進行轉發。

而SNAT自然是要在資料包流出這台機器之前的最後一個鍊也就是POSTROUTING鍊來進行操作

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 58.20.51.66

這個語句就是告訴系統把即将要流出本機的資料的source ip address修改成為58.20.51.66。這樣,資料包在達到目的機器以後,目的機器會将包傳回到58.20.51.66也就是本機。如果不做這個操作,那麼你的資料包在傳遞的過程中,reply的包肯定會丢失。

假如目前系統用的是ADSL/3G/4G動态撥号方式,那麼每次撥号,出口IP都會改變,SNAT就會有局限性。

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

重點在那個『 MASQUERADE 』!這個設定值就是『IP僞裝成為封包出去(-o)的那塊裝置上的IP』!不管現在eth0的出口獲得了怎樣的動态ip,MASQUERADE會自動讀取eth0現在的ip位址然後做SNAT出去,這樣就實作了很好的動态SNAT位址轉換。

iptables 實作centos内網機器通路外網

環境:一台帶外網和内網的機器,另一台隻有内網,預設不能上網。兩台機器都是centos系統

帶外網機器的外網ip為 123.221.20.11, 内網ip為 192.168.15.100

内網機器的内網ip為 192.168.15.101

設定方法很簡單:

1. 在帶外網的機器上設定iptables規則:

iptables -t nat -A POSTROUTING -s 192.168.15.101 -j SNAT --to 123.221.20.11

// 如果想讓整個内網的機器全部上網,隻需要把 -s 192.168.15.101 換成

-s 192.168.15.0/255.255.255.0 即可

2. 在帶帶外網機器上打開轉發

首先檢視是否已經打開

sysctl -a |grep 'net.ipv4.ip_forward'

如果值為1,則說明已經打開,否則需要修改配置檔案 /etc/sysctl.conf

打開該配置檔案,找到該參數,使其變為

net.ipv4.ip_forward = 1

然後運作 sysctl -p

3. 在内網機器上,設定其網關為 192.168.15.100

vim /etc/sysconfig/network-scripts/ifcfg-eth0

添加

GATEWAY=192.168.15.100

重新開機網絡服務即可。 service network restart

4. 測試内網機器是否可以上網。