CentOS下iptable常見設定介紹

來源:互聯網
上載者:User

基本格式

1.  iptable  [-t  表]  命令選項  [連名]   匹配條件   [-j 動作]
2.常用命令選項如下:
-A 【append】 在指定的連的結尾添加規則
-D 【delete】刪除指定連中的規則,可以按規則號或規則內容匹配
-I 【insert】插入一條新規則,預設是在最前面
-R 【replace】 替換某一條規則
-L 【list】列出所有規則
-F 【flush】清空所有規則
-N 【new】自訂一條規則連
-X 【--delete-chain】 刪除使用者自訂規則連
-P 【policy】設定預設策略
-n 【numeric】以數字方式顯示,如:顯示ip,但不顯示主機名稱
-v 【verbose】顯示詳細資料
-V 【version】查看iptable的版本資訊
--line-number  查看規則連是,顯示列表號
-Z   清空計數器值


舉例

# iptable -t filter -F【清空filter表中所有規則】
# iptable -t filter -Z【清空filter表中的計數器值】
#iptable -t filter  -X 【清除filter表中自訂連】
# iptable -t filter -P INPUT DROP 【設定INPUT連預設策略為DROP】
# iptable -t filter -P OUTPUT DROP
# iptable -t filter -P FORWROD DROP
# iptable -t filter -A INPUT -p tcp -j ACCEPT 【在INPUT連最後添加一條允許tcp協議的資料包進入的規則】
# iptable -t filter -R INPUT 1 -p tcp -j DROP 【替換INPUT連的第1條規則為拒絕tcp資料包進入】
# iptable -t nat -vnL  --line-number  【以詳細的、數位格式列出nat表中的所有規則】
# iptable -t nat -D POSTROUTING 1  【刪除nat表POSTROUTING 連中的第1條規則】


條件匹配

1. 協議匹配:用於檢查資料包使用的協議,符合規則就允許,反之拒絕。允許使用的協議名在/etc/protocols檔案中。
  常用的協議有tcp,udp,icmp,ip 和all。【  -p  協議名 】
# iptable -I INPUT -p icmp  -j REJECT 【拒絕進入防火牆本身的icmp資料包】
# iptable -A FORWARD -p udp -j ACCEPT  【允許轉寄udp的所有資料包】
2. 地址匹配:用於檢查資料包的地址是否符合規則,包括源地址和目的地址。【-s  源地址, -d  目的地址】
# iptable -A FORWARD -s 10.0.0.0/8   -j DROP  【拒絕轉寄來自10.0.0.0/8 網段的資料包】

# iptable -A FORWARD -d 80.0.0.0/8   -j DROP  【 拒絕轉寄目的是80.0.0.0/8 網段的資料包】

3.連接埠匹配:用於檢查資料包的tcp或udp連接埠,需要和 “-p 協議類型” 一起使用【-sport  源連接埠,-dport 目的連接埠】
# iptables -A FORWARD -s 10.0.0.0/8  -p tcp  --dport  80    -j ACCEPT 【允許轉寄來自10.0.0.0/8網段,目的連接埠是80的資料包】
# iptables -I FORWARD -s 10.0.0.0/8  -p tcp  --sport 21     -j ACCEPT【允許轉寄來自10.0.0.0/8網段,源連接埠是21的資料包】
4.介面匹配:用於檢查資料包從防火牆那個介面進入或出去,來判斷是否允許。
# iptables -A FORWARD  -i eth0 -s 10.0.0.0/8 -p tcp --dport 80  -j ACCEPT
【允許轉寄從eth0進入,來自10.0.0.0/8網段,使用tcp 協議,目的連接埠椒80的資料包】
# iptables -A INPUT -i eth0  -s 80.0.0.0/8  -j DORP 【拒絕從eth0進入,來自80.0.0.0/8的資料包】
5.SNAT轉換:一般linux充當閘道伺服器時使用
SNAT只能用在nat表的POSTROUTING連,用於對源地址進行轉換。要結合 --to 使用。
# iptables -t nat -A POSTROUTING -s 10.0.0.0/8  -j SNAT  --to 202.106.1.1
【將來自10.0.0.0/8網段的所有資料包的源地址轉為202.106.1.1】
# iptables -t nat -A POSTROUTING  -i eth0  -s 80.0.0.0/8  -p tcp --dport 25 -j SNAT  --to 202.106.1.1

6.DNAT轉換:只能用在nat表中的PREROUTING連,用於對目的地址或連接埠進行轉換。
# iptables -t nat -A PREROUTING -i eth1 -d 202.106.1.1  -p tcp --dport  80 -j DNAT --to 10.0.0.10
【將從eth1 進入,目的地址是202.106.1.1,使用tcp 協議,目的連接埠是80的資料包的目的地址轉為10.0.0.1】
7.MASQUERADE:偽裝,是SNAT的特例。
# iptables  -t nat  -A POSTROUTING -s 10.0.0.0/8 -o eth1  -j MASQUERADE
【將來自10.0.0.0/8網段,從eth1出去的資料包的源地址偽裝為eth1介面地址】

拓展模組

1.按來源MAC地址匹配
# iptables -t filter -A FORWARD -m --mac-source  00:02:b2:03:a5:f6  -j DROP
【拒絕轉寄來自該MAC地址的資料包】
2.按多連接埠或連續連接埠匹配
  20:      表示20以後的所有連接埠
  20:100   表示20到100的連接埠
  :20     表示20之前的所有連接埠
  -m  multiport [--prots, --sports,--dports]
#  iptables -A INPUT -p tcp -m  multiport  --dports 21,20,25,53,80  -j ACCEPT 【多連接埠匹配】
#  iptables -A INPUT -p tcp -dport  20:    -j ACCEPT
#  iptables -A INPUT -p tcp  -sport 20:80   -j ACCEPT
#  iptables -A INPUT -p tcp  -sport  :80    -j ACCEPT
3.還可以按資料包速率和狀態匹配
-m  limit  --limit 匹配速率   如: -m  limit --limit 50/s  -j ACCEPT
-m  state  --state  狀態     如: -m  state --state INVALID,RELATED  -j ACCEPT


其他常用操作

iptables -F /* 清除所有規則 */
iptables -A INPUT -p tcp --dport 22 -j ACCEPT /*允許包從22連接埠進入*/
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT /*允許從22連接埠進入的包返回*/
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT /* 網域名稱解析連接埠,一般不開 */
iptables -A INPUT -p udp --sport 53 -j ACCEPT /* 網域名稱解析連接埠,一般不開 */
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT /*允許本機訪問本機*/
iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 --dport 80 -j ACCEPT /*允許所有IP訪問80連接埠*/
iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
iptables-save > /etc/sysconfig/iptables /*儲存配置*/
iptables -L /* 顯示iptables列表 */

vi /etc/sysconfig/iptables

添加:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -j ACCEPT

或者

CentOS 防火牆開啟80,22,3306連接埠操作

/sbin/iptables -I INPUT -p tcp –dport 80 -j ACCEPT
/sbin/iptables -I INPUT -p tcp –dport 22 -j ACCEPT
/sbin/iptables -I INPUT -p tcp –dport 3306 -j ACCEPT
然後儲存:
/etc/rc.d/init.d/iptables save

查看開啟的連接埠:

/etc/init.d/iptables status

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.