#開(kāi)啟DHCP上網(wǎng) 第一學(xué)習(xí)網(wǎng) www.d1xxw.com 第一學(xué)習(xí)網(wǎng) www.d1xxw.com 本文來(lái)自第一學(xué)習(xí)網(wǎng) www.d1xxw.com
#dhcpd eth0
#加載相關(guān)的內(nèi)核模塊
/sbin/modprobe ip_tables
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
# 清除預(yù)設(shè)表 filter 中,所有規(guī)則鏈中的規(guī)則
/sbin/iptables -F
# 清除nat表中,所有規(guī)則鏈中的規(guī)則
/sbin/iptables -F -t nat
# 清除預(yù)設(shè)表 filter 中,使用者自訂鏈中的規(guī)則
/sbin/iptables -X
#將封包計(jì)數(shù)器歸零。封包計(jì)數(shù)器是用來(lái)計(jì)算同一封包出現(xiàn)次數(shù),是過(guò)濾阻斷式攻擊不可或缺的工具
/sbin/iptables -Z
# 清除mangle表中,所有規(guī)則鏈中的規(guī)則
#iptables -F -t mangle
# 清除mangle表中,使用者自訂鏈中的規(guī)則
#iptables -t mangle -X
# 清除nat表中,使用者自訂鏈中的規(guī)則
#iptables -t nat -X
#定義鏈的規(guī)則(設(shè)定預(yù)設(shè)規(guī)則) 本文來(lái)自第一學(xué)習(xí)網(wǎng) www.d1xxw.com
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P FORWARD DROP
/sbin/iptables -P OUTPUT ACCEPT
# 打開(kāi) forward 功能 (或在/etc/sysconfig/network 中添加 FORWARD_IPV4=yes 打開(kāi)轉(zhuǎn)發(fā)功能,實(shí)現(xiàn)各網(wǎng)段互訪)
echo "1"> /proc/sys/net/ipv4/ip_forward
# IP轉(zhuǎn)發(fā)
#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客戶(hù)數(shù)據(jù)包的源端口(53端口)偽裝成53端口,只要正確的改這里,下面的機(jī)器可以改成任意的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應(yīng)用)
#使內(nèi)網(wǎng)的封包經(jīng)過(guò)偽裝之后,使用對(duì)外的 eth0 網(wǎng)卡當(dāng)作代理號(hào),對(duì)外連線(xiàn),進(jìn)行IP地址偽裝,使得內(nèi)部的主機(jī)的數(shù)據(jù)包能通過(guò)服務(wù)器與外界聯(lián)系!
/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
# 設(shè)置icmp闊值 ,并對(duì)攻擊者記錄在案,小型的防火墻!
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
# 打開(kāi) syncookie (輕量級(jí)預(yù)防 DOS 攻擊)
sysctl -w net.ipv4.tcp_syncookies=1 &>/dev/null 第一學(xué)習(xí)網(wǎng) www.d1xxw.com
# 設(shè)置默認(rèn) TCP 連接癡呆時(shí)長(zhǎng)為 3800 秒(此選項(xiàng)可以大大降低連接數(shù))
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=3800 &>/dev/null
# 設(shè)置支持最大連接樹(shù)為 30W(這個(gè)根據(jù)內(nèi)存和 iptables 版本來(lái),每個(gè) connection 需要 300 多個(gè)字節(jié))
#sysctl -w net.ipv4.ip_conntrack_max=300000 &>/dev/null
# 允許要轉(zhuǎn)向的包
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
# 對(duì)于不管來(lái)自哪里的ip碎片都進(jìn)行控制,允許每秒通過(guò)100個(gè)碎片
iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
# icmp包通過(guò)的控制,防止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(禁止網(wǎng)頁(yè))
#iptables -I FORWARD -d www.baidu.com -j DROP
# dorp mac(通過(guò)禁止mac禁止上網(wǎng))
#iptables -t nat -I PREROUTING -m mac --mac-source 00:14:78:30:3E:DE -j DROP
#drop ip(通過(guò)禁止ip禁止上網(wǎng))
#iptables -I FORWARD -s 192.168.1.35 -j DROP
#accept all(允許某個(gè)ip上網(wǎng))
#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 第一學(xué)習(xí)網(wǎng) www.d1xxw.com
#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 第一學(xué)習(xí)網(wǎng) www.d1xxw.com
本文來(lái)自第一學(xué)習(xí)網(wǎng) www.d1xxw.com
第一學(xué)習(xí)網(wǎng) www.d1xxw.com
本文來(lái)自第一學(xué)習(xí)網(wǎng) www.d1xxw.com
===============================
有兩點(diǎn)我們要注意.
-conntrack最大數(shù)量.叫做conntrack_max
-存儲(chǔ)這些conntrack的hash表的大小,叫做hashsize
當(dāng)conntrack入口數(shù)大于conntrack_max時(shí),在hash表中每一個(gè)conntrack list中的存儲(chǔ)的入口將不可控.(conntrack_mark/hashsize 為每個(gè)list所能存儲(chǔ)的入口的數(shù)量)
hash表存在于固定的的不可swap的內(nèi)存中. conntrack_mark決定占用多少這些不可swap的內(nèi)存.
缺省的hashsize
--------------------------------
conntrack_max=hashsize*8
i386中 hashsize=conntrack_max/8=ramsize(in bytes)/131072=ramsize(in MegaBytes)*8.
所以32位pc,512M內(nèi)存可以存512*1024^2/128/1024=512*8=4096(連接池list)
但是正確的算法是:
hashsize=conntrack_max/8=ramsize(in bytes)/131072/(x/32)
x表示使用的指針類(lèi)型是(32位還是64的)
----------------------------\
讀取conntrack_max值
cat /proc/sys/net/ipv4/ip_conntrack_max
讀取hashsize值
cat /proc/sys/net/ipv4/netfilter/ip_conntrack_buckets 本文來(lái)自第一學(xué)習(xí)網(wǎng) www.d1xxw.com
------------------------------
你可修改這兩個(gè)值以適應(yīng)高負(fù)載的netfilter的應(yīng)用
系統(tǒng)默認(rèn)為conntrack_max:hashsize是8:1,你可以設(shè)成1:1以提高性能.
-------------------------
設(shè)置conntrack_max
echo $CONNTRACK_MAX > /proc/sys/net/ipv4/ip_conntrack_max
設(shè)置hashsize
如果(netfilter conntrack靜態(tài)編譯在內(nèi)核中),2.4中可以在編譯時(shí)設(shè)置,2.6可以在啟動(dòng)中(boot時(shí))加入ip_conntrack.hashsize=$hashsize
如果為modules,則可以使用 modprobe ip_conntrack hashsize=$hashsize
--------------------------
conntrack使用的內(nèi)存計(jì)算
size_of_mem_used_by_conntrack (in bytes) =
CONNTRACK_MAX * sizeof(struct ip_conntrack) +
HASHSIZE * sizeof(struct list_head)
其中sizeof(struct ip_conntrack)大概在192-352字節(jié)之間.
sizeof(struct list_head) = 2 * size_of_a_pointer(i386中為4字節(jié))
一個(gè)例子512m內(nèi)存,使用384m來(lái)用于conntrack則
384*1024*1024/(352+8)(使用它是保守計(jì)算) =~1143901 (此為conntrack:hashszie為1:1,352為sizeof(ip_conntrack),8為sizeof(list_head).
本文來(lái)自第一學(xué)習(xí)網(wǎng) www.d1xxw.com
本文來(lái)自第一學(xué)習(xí)網(wǎng) www.d1xxw.com
相關(guān)修改:
echo "1024 65000" > /proc/sys/net/ipv4/ip_local_port_range
echo "100 1200 128 512 15 5000 500 1884 2">/proc/sys/vm/bdflush
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo "1048576" > /proc/sys/net/ipv4/netfilter/ip_conntrack_max
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "268435456" >/proc/sys/kernel/shmall
echo "536870912" >/proc/sys/kernel/shmmax
echo "600" > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
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
echo "52428800" > /proc/sys/net/ipv4/route/max_size
echo "1" > /proc/sys/net/ipv4/conf/all/proxy_arp 本文來(lái)自第一學(xué)習(xí)網(wǎng) www.d1xxw.com
echo "1" > /proc/sys/net/ipv4/tcp_window_scaling 第一學(xué)習(xí)網(wǎng) www.d1xxw
聯(lián)系客服