|
|
exit 0 | exit 0 |
;; | ;; |
autoconf) | autoconf) |
if [ -f /proc/net/ip_conntrack ] ; then |
if [ -f /proc/net/ip_conntrack -o -f /proc/net/nf_conntrack ] ; then |
echo yes | echo yes |
exit 0 | exit 0 |
else | else |
|
|
| |
# Do the work, perform the deed | # Do the work, perform the deed |
| |
# INPUT: |
# INPUT /proc/net/ip_conntrack: |
# tcp 6 225790 ESTABLISHED src=10.0.0.4 dst=198.144.194.12 sport=48580 dport=6667 src=198.144.194.12 dst=80.111.68.163 sport=6667 dport=48580 [ASSURED] use=1 | # tcp 6 225790 ESTABLISHED src=10.0.0.4 dst=198.144.194.12 sport=48580 dport=6667 src=198.144.194.12 dst=80.111.68.163 sport=6667 dport=48580 [ASSURED] use=1 |
# tcp 6 431918 ESTABLISHED src=10.0.0.2 dst=209.58.150.153 sport=33018 dport=6667 src=209.58.150.153 dst=80.111.68.163 sport=6667 dport=33018 [ASSURED] use=1 | # tcp 6 431918 ESTABLISHED src=10.0.0.2 dst=209.58.150.153 sport=33018 dport=6667 src=209.58.150.153 dst=80.111.68.163 sport=6667 dport=33018 [ASSURED] use=1 |
# tcp 6 123109 ESTABLISHED src=10.0.0.5 dst=198.144.194.12 sport=33846 dport=6667 [UNREPLIED] src=198.144.194.12 dst=80.111.68.163 sport=6667 dport=33846 use=1 | # tcp 6 123109 ESTABLISHED src=10.0.0.5 dst=198.144.194.12 sport=33846 dport=6667 [UNREPLIED] src=198.144.194.12 dst=80.111.68.163 sport=6667 dport=33846 use=1 |
# udp 17 53 src=80.111.68.163 dst=62.179.100.29 sport=34153 dport=53 src=62.179.100.29 dst=80.111.68.163 sport=53 dport=34153 [ASSURED] use=1 | # udp 17 53 src=80.111.68.163 dst=62.179.100.29 sport=34153 dport=53 src=62.179.100.29 dst=80.111.68.163 sport=53 dport=34153 [ASSURED] use=1 |
# | # |
|
# INPUT /proc/net/nf_conntrack: |
|
# ipv4 2 tcp 6 424416 ESTABLISHED src=192.168.1.53 dst=196.203.198.11 sport=1584 dport=22146 packets=13659 bytes=5426603 src=196.203.198.11 dst=83.24.222.252 sport=22146 dport=1584 packets=14757 bytes=15342572 [ASSURED] mark=0 use=1 |
| |
cat /proc/net/ip_conntrack | awk ' |
if [ -f /proc/net/ip_conntrack ]; then |
|
cat /proc/net/ip_conntrack | awk ' |
BEGIN { STATE["ESTABLISHED"]=STATE["FIN_WAIT"]=STATE["TIME_WAIT"]=0; | BEGIN { STATE["ESTABLISHED"]=STATE["FIN_WAIT"]=STATE["TIME_WAIT"]=0; |
ASSURED=NOREPLY=NATED=STATE["SYN_SENT"]=STATE["UDP"]=0; } | ASSURED=NOREPLY=NATED=STATE["SYN_SENT"]=STATE["UDP"]=0; } |
/^tcp/ { STATE[$4]++; } | /^tcp/ { STATE[$4]++; } |
|
|
print "nated.value " NATED; | print "nated.value " NATED; |
print "total.value " TOTAL; | print "total.value " TOTAL; |
}' | }' |
|
else |
|
cat /proc/net/nf_conntrack | awk ' |
|
BEGIN { STATE["ESTABLISHED"]=STATE["FIN_WAIT"]=STATE["TIME_WAIT"]=0; |
|
ASSURED=NOREPLY=NATED=STATE["SYN_SENT"]=STATE["UDP"]=0; } |
|
/ tcp / { STATE[$6]++; } |
|
/ udp / { STATE["UDP"]++; } |
|
/ASSURED/ { ASSURED++; } |
|
{ |
|
TOTAL++; |
|
src1 = substr($7, 5); src2 = substr($14, 5); |
|
dst1 = substr($8, 5); dst2 = substr($15, 5); |
|
if (src1 != dst2 || dst1 != src2) NATED++; |
|
} |
|
END { print "established.value " STATE["ESTABLISHED"]; |
|
print "fin_wait.value " STATE["FIN_WAIT"]; |
|
print "time_wait.value " STATE["TIME_WAIT"]; |
|
print "syn_sent.value " STATE["SYN_SENT"]; |
|
print "udp.value " STATE["UDP"]; |
|
print "assured.value " ASSURED; |
|
print "nated.value " NATED; |
|
print "total.value " TOTAL; |
|
}' |
|
fi |
| |
# Hum, the total.value should be possible to do as a cdef. | # Hum, the total.value should be possible to do as a cdef. |
| |
|
|
| |
| |
if [ "$1" = "autoconf" ]; then | if [ "$1" = "autoconf" ]; then |
if ( cat /proc/net/ip_conntrack 2>/dev/null >/dev/null ); then |
if [ -f /proc/net/ip_conntrack -o -f /proc/net/nf_conntrack ] ; then |
echo yes | echo yes |
exit 0 | exit 0 |
else | else |
if [ $? -eq 127 ] | if [ $? -eq 127 ] |
then | then |
echo "no (ipconntrack not found)" |
echo "no (ip_conntrack or nf_conntrack not found)" |
exit 1 | exit 1 |
else | else |
echo no | echo no |
|
|
exit 0 | exit 0 |
fi | fi |
| |
|
if [ -f /proc/net/ip_conntrack ]; then |
|
_conntrack_file=/proc/net/ip_conntrack |
|
else |
|
_conntrack_file=/proc/net/nf_conntrack |
|
fi |
perl -ne ' | perl -ne ' |
BEGIN { $forward=0; $local=0; } | BEGIN { $forward=0; $local=0; } |
| |
|
|
} | } |
} | } |
END { print "forward.value $forward\nlocal.value $local\n" } | END { print "forward.value $forward\nlocal.value $local\n" } |
' </proc/net/ip_conntrack |
' < $_conntrack_file |
| |