34 lines
989 B
Bash
34 lines
989 B
Bash
#!/bin/sh
|
|
|
|
echo "Which port do you want to open?"
|
|
read PORT
|
|
|
|
echo "Which type of port? tcp OR udp?"
|
|
read TYPE
|
|
|
|
echo "For which client? | This is the list:"
|
|
ifconfig | grep -E -o "(192[\.]168[\.]4[2-3][\.][0-9]{2,3})"
|
|
read CLIENT_IP
|
|
|
|
#PORT=8080
|
|
#TYPE=tcp
|
|
#CLIENT_IP=192.168.42.10
|
|
VPN_L2TP=192.168.42.1
|
|
VPN_XAUTH=192.168.43.1
|
|
|
|
def_iface=$(route 2>/dev/null | grep -m 1 '^default' | grep -o '[^ ]*$')
|
|
|
|
iptables -D FORWARD -j DROP
|
|
iptables -A FORWARD -i $def_iface -o ppp+ -p $TYPE --dport $PORT -j ACCEPT
|
|
iptables -A FORWARD -j DROP
|
|
iptables -t nat -A PREROUTING -i $def_iface -p $TYPE --dport $PORT -j DNAT --to-dest $CLIENT_IP:$PORT
|
|
|
|
if [ $(echo "$CLIENT_IP" | grep -c 192.168.42) -eq 1 ]; then
|
|
iptables -t nat -A POSTROUTING -d $CLIENT_IP -p $TYPE --dport $PORT -j SNAT --to-source $VPN_L2TP
|
|
fi
|
|
|
|
if [ $(echo "$CLIENT_IP" | grep -c 192.168.43) -eq 1 ]; then
|
|
iptables -t nat -A POSTROUTING -d $CLIENT_IP -p $TYPE --dport $PORT -j SNAT --to-source $VPN_XAUTH
|
|
fi
|
|
|
|
echo "Done"
|