Linux的iptables常用配置範例(2)

iptables -F   #清除所有規則
iptables -X  #清除所有自定義規則
iptables -Z   #各項計數歸零
iptables -P INPUT DROP  #將input鏈默認規則設置爲丟棄
iptables -P OUTPUT DROP  #將output鏈默認規則設置爲丟棄
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT #對運行在本機迴環地址上的所有服務放行
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT  #把這條語句插在input鏈的最前面(第一條),並且對狀態爲ESTABLISHED,RELATED的連接放行。
iptables -A OUTPUT -p tcp –dport 80 -j ACCEPT  #允許本機訪問其他80服務
iptables -A OUTPUT -p udp –dport 53 -j ACCEPT #允許本機發送域名請求
iptables -A OUTPUT -p icmp -j ACCEPT  #對本機出去的所有icmp協議放行,其實如果僅僅只是允許本機ping別的機器,更爲嚴謹的做法是將此語句修改爲:
iptables -A OUTPUT -p icmp  –icmp-type  echo-request -j ACCEPT

對狀態爲ESTABLISHED和RELATED的包放行,簡單的說,就是說對允許出去的包被對方主機收到後,對方主機迴應進來的封包放行。這條語句很重 要,可以省去寫很多iptables語句,尤其是在有ftp服務器的場合。你理解了這個意思,就應該知道,有了這條語句,第6條語句其實是可以省略的。

封網站:
iptables -F
iptables -X
iptables -Z
iptables -P OUTPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -p udp –dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp -s 192.168.1.10 -d www.qq.com -j DROP(禁止網站)
iptables -A FORWARD -p tcp -s 192.168.1.11/24 -d www.qq.com -o eth0 -j DROP(禁止網段)
iptables -A FORWARD -p tcp -s 192.168.1.12 -d 192.168.1.13  -o eth0 -j DROP(禁止IP)
iptables -A OUTPUT -p tcp –dport 80 -j ACCEPT (這條寫在禁止網站的下面)

#安全規則類似windows防火牆
iptables -A INPUT -p tcp –dport 1:1024 -j DROP
iptables -A INPUT -p udp –dport 1:1024 -j DROP   這兩條可以防止nmap探測
iptables -A INPUT -p tcp –dport ** -j ACCEPT  (要開放的端口)
#允許的端口,相對協議改一下就可以了,                         (端口過慮)
============================================

iptables架設安全的vsftp服務器

在實際工作中,可用以下腳本架設一臺很的內部FTP;當然也可以配合Wireshark理解 vsftpd的被動與主動的區別,以本機192.168.0.10爲例,腳本如下:

#!/bin/bash
-F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
#開啓ip轉發功能
echo “1″ > /proc/sys/net/ipv4/ip_forward
#加載ftp需要的一些模塊功能
modprobe ip_conntrack_ftp
modprobe ip_conntrack-tftp
modprobe ip_nat_ftp
modprobe ip_nat_tftp
#爲了更安全,將OUTPUT默認策略定義爲DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD ACCEPT
#開放本機的lo環回口,建議開放,不開放的會出現些莫名其妙的問題
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#下面的腳本是架設安全的vsftpd關健,後二句腳本是放行服務器向客戶端作迴應的和已建立連接的數據包,因被動FTP比較複雜,六次握手,所以這裏採用狀態來做
iptables -A INPUT -s 192.168.0.0/24 -p tcp –dport 21 -j ACCEPT
iptables -A OUTPUT -d 192.168.0.0/24 -p tcp –sport 21 -j ACCEPT
iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state –state RELATED,ESTABLISHED -j ACCEPT

=====================================
內網web服務器 適用於中小型公司有內網服務器發佈的IPT
=====================================

防止攻擊掃描
防止同步包洪水(Sync Flood)
# iptables -A FORWARD -p tcp –syn -m limit –limit 1/s -j ACCEPT
也有人寫作
#iptables -A INPUT -p tcp –syn -m limit –limit 1/s -j ACCEPT
–limit 1/s 限制syn併發數每秒1次,可以根據自己的需要修改
防止各種端口掃描
# iptables -A FORWARD -p tcp –tcp-flags SYN,ACK,FIN,RST RST -m limit –limit 1/s -j ACCEPT
Ping洪水攻擊(Ping of Death)
# iptables -A FORWARD -p icmp –icmp-type echo-request -m limit –limit 1/s -j ACCEPT
# Null Scan(possibly)XiKc.om
iptables -A INPUT -i eth0 -p tcp –tcp-flags ALL NONE -j DROP

#ubuntu保存與開機加載
iptables-save > iptables.up.rules
cp iptables.up.rules /etc/
vi /etc/network/interfaces

iptables-save > iptables.up.rules cp iptables.up.rules /etc/ vi /etc/network/interfaces

#在interfaces末尾加入
pre-up iptables-restore < /etc/iptables.up.rules
pre-up iptables-restore < /etc/iptables.up.rules

#也可以設置網卡斷開的rules。
post-down iptables-restore < /etc/iptables.down.rules
post-down iptables-restore < /etc/iptables.down.rules

#保存
service iptables save
強制所有的客戶機訪問192.168.1.100這個網站
iptables -t nat -I PREROUTING -i eth0 -p tcp –dport 80 -j DNAT –to-destination 192.168.1.100 (PREROUTING和DNAT一起使用,POSTROUTING和SNAT一起使用)
發佈內網的web服務器192.168.1.10
iptables -t nat -I PREROUTING -p tcp –dport 80 -j DNAT –to-destination 192.168.1.10
端口映射到內網的3389
iptables -t nat -I PREROUTING -p tcp –dport 3389 -j DNAT –to-destination 192.168.1.10:3389

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章