nat_router.sh (2193B)
1 #!/bin/bash 2 dirname=$(dirname "$0") 3 PREFIX=$3 4 echo start $2 >> timeout_$PREFIX.log 5 if [ $2 -eq 1 ] 6 then 7 if [ ! -d /tmp/netjail_scripts ] 8 then 9 mkdir /tmp/netjail_scripts 10 fi 11 if [ -f timeout_$PREFIX.out ] 12 then 13 rm timeout_$PREFIX.out 14 fi 15 touch timeout_$PREFIX.out 16 if [ -f timeout_$PREFIX.log ] 17 then 18 rm timeout_$PREFIX.log 19 fi 20 touch timeout_$PREFIX.log 21 timeout=6000000000 22 $dirname/timeout.sh $timeout $PREFIX & 23 echo gaga >> timeout_$PREFIX.log 24 timeout_pid=$! 25 conntrack -E -e NEW -s 192.168.15.1 -d 92.68.150.1/24 | while read line 26 do 27 protocol=$(echo $line|awk '{printf $2"\n"}'|awk '{printf $1"\n"}') 28 dst=$(echo $line|awk -Fdst= '{printf $2"\n"}'|awk '{printf $1"\n"}') 29 src=$(echo $line|awk -Fdst= '{printf $1"\n"}'|awk -Fsrc= '{printf $2"\n"}') 30 port=$(echo $line|awk -Fdport= '{printf $2"\n"}'|awk '{printf $1"\n"}') 31 echo dnat >> timeout_$PREFIX.log 32 now=$(date +%s%N) 33 kill -TSTP $timeout_pid 34 if [ $(wc -l < timeout_$PREFIX.out) -eq 0 ] 35 then 36 iptables-nft -t nat -A PREROUTING -p $protocol -s $dst -d 92.68.150.$PREFIX -j DNAT --to $src 37 # echo iptables-nft -t nat -A PREROUTING -p $protocol -s $dst -d 92.68.150.1 -j DNAT --to $src >> timeout_$PREFIX.out 38 echo forwarding >> timeout_$PREFIX.log 39 fi 40 # echo $line >> timeout_$PREFIX.out 41 echo $now $protocol $dst $src $port >> timeout_$PREFIX.out 42 kill -CONT $timeout_pid 43 done 44 echo gigi >> timeout_$PREFIX.log 45 rm timeout_$PREFIX.out 46 else 47 #echo "find -L /proc/[1-9]*/task/*/ns/net -samefile /run/netns/$1|while read x" >> timeout_$PREFIX.log 48 #find -L /proc/[1-9]*/task/*/ns/net -samefile /run/netns/$1|while read x 49 #do 50 #if [ "" != "$(ps aux|grep $x|grep conntrack)" ] 51 #then 52 echo kill conntrack >> timeout_$PREFIX.log 53 killall conntrack #$x 54 #fi 55 #if [ "" != "$(ps aux|grep $x|grep timeout)" ] 56 #then 57 echo kill timeout >> timeout_$PREFIX.log 58 killall timeout.sh #$x 59 echo kill getmsg >> timeout_$PREFIX.log 60 killall getmsg.sh 61 #fi 62 #done 63 fi