Linux系統裏面iptables命令使用

#開啓DHCP上網
#dhcpd eth0
#加載相關的內核模塊
/sbin/modprobe ip_tables
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
# 清除預設表 filter 中,所有規則鏈中的規則 
/sbin/iptables -F 
# 清除nat表中,所有規則鏈中的規則   
/sbin/iptables -F -t nat
# 清除預設表 filter 中,使用者自訂鏈中的規則 
/sbin/iptables -X
#將封包計數器歸零。封包計數器是用來計算同一封包出現次數,是過濾阻斷式攻擊不可或缺的工具
/sbin/iptables -Z
# 清除mangle表中,所有規則鏈中的規則 
#iptables -F -t mangle 
# 清除mangle表中,使用者自訂鏈中的規則 
#iptables -t mangle -X 
# 清除nat表中,使用者自訂鏈中的規則 
#iptables -t nat -X 
#定義鏈的規則(設定預設規則)
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P FORWARD DROP
/sbin/iptables -P OUTPUT ACCEPT
# 打開 forward 功能 (或在/etc/sysconfig/network 中添加 FORWARD_IPV4=yes 打開轉發功能,實現各網段互訪)
echo "1"> /proc/sys/net/ipv4/ip_forward
# IP轉發
#echo "1">/proc/sys/net/ipv4/ip_forward
#echo "1">/proc/sys/net/ipv4/icmp_echo_ignore_all
#echo "8184000">/proc/sys/net/ipv4/ip_conntrack_max
#echo "1024">/proc/sys/net/ipv4/neigh/default/gc_thresh1
#echo "2048">/proc/sys/net/ipv4/neigh/default/gc_thresh2
#echo "4096">/proc/sys/net/ipv4/neigh/default/gc_thresh3
#將返回給CERNET DNS客戶數據包的源端口(53端口)僞裝成53端口,只要正確的改這裏,下面的機器可以改成任意的dns。
iptables -t nat -A PREROUTING -p udp -d 0.0.0.0/0 --dport 53 -j DNAT --to 218.30.19.40:53


#iptables -t nat -A PREROUTING -p udp -d 192.168.1.1 --dport 53 -j DNAT --to 61.134.1.9:53
#IP 僞裝(SNAT應用) 
#使內網的封包經過僞裝之後,使用對外的 eth0 網卡當作代理號,對外連線,進行IP地址僞裝,使得內部的主機的數據包能通過服務器與外界聯繫!
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -A FORWARD -s 0/0 -d 0/0 -j ACCEPT
#禁止ping
#ping
#iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP
#iptables -A INPUT -p icmp --icmp-type 0 -s 0/0 -j ACCEPT
# 設置icmp闊值 ,並對攻擊者記錄在案,小型的防火牆!
iptables -A INPUT -p icmp -m limit --limit 3/s -j LOG --log-level INFO --log-prefix "ICMP packet IN: "
iptables -A INPUT -p icmp -m limit --limit 6/m -j ACCEPT
iptables -A INPUT -p icmp -j DROP
# 打開 syncookie (輕量級預防 DOS 攻擊)
sysctl -w net.ipv4.tcp_syncookies=1 &>/dev/null 
# 設置默認 TCP 連接癡呆時長爲 3800 秒(此選項可以大大降低連接數)
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=3800 &>/dev/null
# 設置支持最大連接樹爲 30W(這個根據內存和 iptables 版本來,每個 connection 需要 300 多個字節)
#sysctl -w net.ipv4.ip_conntrack_max=300000 &>/dev/null
# 允許要轉向的包
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -i eth0 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# 防止SYN攻擊 輕量
iptables -N syn-flood
iptables -A INPUT -p tcp --syn -j syn-flood
iptables -A syn-flood -p tcp -m limit --limit 3/s --limit-burst 6 -j RETURN

iptables -A syn-flood -j REJECT
# 對於不管來自哪裏的ip碎片都進行控制,允許每秒通過100個碎片 
iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT 
# icmp包通過的控制,防止icmp黑客攻擊
iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
# 丟棄壞的TCP包
iptables -A FORWARD -p TCP ! --syn -m state --state NEW -j LOG --log-prefix "New not syn:"
iptables -A FORWARD -p TCP ! --syn -m state --state NEW -j DROP
#drop pp poco(禁止PP POCO)
iptables -I FORWARD -p tcp -s 0/0 --dport 2881 -j DROP
iptables -I FORWARD -p tcp -s 0/0 --dport 5354 -j DROP
iptables -I FORWARD -p tcp -s 0/0 --dport 9099 -j DROP
iptables -I FORWARD -p udp -s 0/0 --dport 8094 -j DROP
iptables -I OUTPUT -d 61.145.118.224 -j REJECT
iptables -I OUTPUT -d 210.192.122.147 -j REJECT

iptables -I OUTPUT -d 207.46.196.108 -j REJECT
#drop QQLive(禁止QQLive)
iptables -I FORWARD -p udp --dport 13000:14000 -j DROP
#drop www(禁止網頁)
#iptables -I FORWARD -d www.baidu.com -j DROP 
# dorp mac(通過禁止mac禁止上網)
#iptables -t nat -I PREROUTING -m mac --mac-source 00:14:78:30:3E:DE -j DROP
#drop ip(通過禁止ip禁止上網)
#iptables -I FORWARD -s 192.168.1.35 -j DROP
#accept all(允許某個ip上網)
#iptables -I INPUT -s 192.168.1.6 -j ACCEPT
#iptables -I FORWARD -s 192.168.1.6 -j ACCEPT
#端口映射
#movie
iptables -t nat -A PREROUTING -d 124.114.130.178 -p tcp -m tcp --dport 25001 -j DNAT --to-destination 192.168.100.3:3389
iptables -t nat -A POSTROUTING -d 192.168.100.3 -p tcp -m tcp --dport 3389 -j SNAT --to-source 192.168.100.1 
#game
iptables -t nat -A PREROUTING -d 124.114.130.178 -p tcp -m tcp --dport 25002 -j DNAT --to-destination 192.168.100.252:3389
iptables -t nat -A POSTROUTING -d 192.168.100.252 -p tcp -m tcp --dport 3389 -j SNAT --to-source 192.168.100.1
#ftp
iptables -t nat -A PREROUTING -d 124.114.130.178 -p tcp -m tcp --dport 1021 -j DNAT --to-destination 192.168.100.3:21
iptables -t nat -A POSTROUTING -d 192.168.100.3 -p tcp -m tcp --dport 21 -j SNAT --to-source 192.168.100.1
iptables -t nat -A PREROUTING -d 124.114.130.178 -p tcp -m tcp --dport 1022 -j DNAT --to-destination 192.168.100.252:21
iptables -t nat -A POSTROUTING -d 192.168.100.252 -p tcp -m tcp --dport 21 -j SNAT --to-source 192.168.100.1
#flim
#iptables -t nat -A PREROUTING -d 124.114.130.178 -p tcp -m tcp --dport 8088 -j DNAT --to-destination 192.168.1.251:80
#iptables -t nat -A POSTROUTING -d 192.168.1.251 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.100.1 

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