流量分析與限制

流量分析與限制

最近整理之前看Real 的 blog 把一些東西整理了一下 流量分析的部份有稍做修改 簡單的流量分析 1. 列出每個連線 IP 的連線數量: netstat -nta | fgrep "ESTABLISHED" | awk {print \$5} | cut -d ':' -f1 | sort | uniq -c | sort -n -r –key=1,7 | head -25 2. 列出每個 IP 的 SYN_RECV 連線數量: netstat -nta | fgrep "SYN_RECV" | awk {print \$5} | cut -d ':' -f1 | sort | uniq -c | sort -n -r –key=1,7 | head -25 3. 列出 connection state 的連線數量: netstat -nta | fgrep ":" | awk {print \$6} | sort | uniq -c 限制本機頻寬 Linux 裡,要限制您的 Linux 主機的本機頻寬 套件名稱:shaperd apt-get install shaperd 然後在 /etc/shaperd/shaperd.conf 中設定頻寬限制範圍,例: log level = warning packet forwarding = ipq daemon = yes class all_up { bandwidth = 96 kbit/s ipv4 classifier out_if=ppp0 daddr=0/0 queue limits = 0 kb 180 packets } class all_down { bandwidth = 1000 kbit/s ipv4 classifier inp_if=ppp0 saddr=0/0 queue limits = 0 kb 150 packets } 接下來,設定 iptables,將規則為 ACCEPT 的皆改為 QUEUE,例: # 預設上不接受任何連線 itables -P INPUT DROP iptables -P OUTPUT DROP # 本機 lo 連線不受管控 iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT # 不回應來自 ppp0 介面的 ping 封包 iptables -A INPUT -i ppp0 -p icmp --icmp-type echo-request -j DROP iptables -A INPUT -i ppp0 -p icmp -j ACCEPT # 不接受任何來自 ppp0 的連線 iptables -A INPUT -i ppp0 -m state --state NEW,INVALID -j DROP # 所有的連線皆要接受頻寬控管 iptables -A INPUT -i ppp0 -p all -j QUEUE iptables -A OUTPUT -o ppp0 -p all -j QUEUE 然後,請記得載入 ip_queue 模組(建議將其寫在 /etc/modules 裡),否則所有設定為 QUEUE 的 iptables 規則將會無法生效,且會在 /var/log/daemon.log 裡留下以下的錯誤訊息: shaperd: can't open /proc/sys/net/ipv4/ip_queue_maxlen (is ip_queue loaded? is /proc mounted? how are babies made? :) you can try 'mount /proc' and/or 'modprobe ip_queue' {config.cpp:1551} 最後,重新啟動 shaperd 讓新的設定生效後,您的 Linux 主機就擁有限制本機頻寬的功能了。 REF.1 Linux 流量分析的指令 REF.2 使用 Shaperd 來限制本機頻寬!

convert from Thomas blog post id 46 old convert log: ./210200/tag%3E2007%2001%20linux)

@2007 @01 @linux

Comments