Skip to content

Instantly share code, notes, and snippets.

@iamtakingiteasy
Created November 3, 2018 01:43
Show Gist options
  • Save iamtakingiteasy/3c66c7de73c3ee5480d25c46c68853b7 to your computer and use it in GitHub Desktop.
Save iamtakingiteasy/3c66c7de73c3ee5480d25c46c68853b7 to your computer and use it in GitHub Desktop.
255 local
254 main
253 default
0 unspec
250 myvpn
#!/bin/bash
dev=$1
ip=$4
gw=${ip%.*}.1
ports=(
80
443
)
nets=(
128.199.0.0/16
13.125.0.0/16
13.230.0.0/15
13.56.0.0/14
159.122.128.0/18
159.203.0.0/16
159.65.0.0/16
159.89.0.0/16
165.227.0.0/16
167.99.0.0/16
174.138.0.0/17
178.63.0.0/16
18.130.0.0/16
18.144.0.0/16
18.204.0.0/14
18.218.0.0/16
188.166.0.0/17
195.154.0.0/17
206.189.0.0/16
34.240.0.0/13
34.248.0.0/13
35.176.0.0/15
35.178.0.0/15
35.180.0.0/16
46.101.128.0/17
51.136.0.0/15
52.32.0.0/16
52.56.0.0/16
52.57.0.0/16
54.212.0.0/15
54.228.0.0/15
64.137.0.0/17
68.171.224.0/19
74.82.64.0/19
104.236.229.38/32
104.236.44.104/32
104.248.133.141/32
104.248.137.86/32
104.248.139.228/32
104.248.16.177/32
104.248.17.123/32
104.248.36.192/32
104.248.37.12/32
104.248.62.84/32
104.248.8.75/32
104.40.155.173/32
137.117.213.247/32
138.197.10.114/32
138.197.105.51/32
138.197.130.167/32
138.197.144.241/32
138.197.145.146/32
138.197.150.166/32
138.197.153.91/32
138.197.158.250/32
138.197.166.171/32
138.197.184.73/32
138.197.2.40/32
138.201.106.89/32
138.201.222.198/32
138.201.6.232/32
138.68.103.13/32
138.68.182.192/32
138.68.24.43/32
138.68.59.157/32
138.68.60.2/32
138.68.90.64/32
13.92.245.122/32
139.59.183.160/32
139.59.60.144/32
142.93.106.70/32
142.93.1.118/32
142.93.113.27/32
142.93.126.107/32
142.93.130.190/32
142.93.132.180/32
142.93.132.33/32
142.93.139.98/32
142.93.166.121/32
142.93.171.30/32
142.93.175.59/32
142.93.183.124/32
142.93.185.244/32
142.93.187.157/32
142.93.195.206/32
142.93.202.133/32
142.93.233.157/32
142.93.246.29/32
142.93.247.137/32
142.93.31.117/32
142.93.34.11/32
142.93.5.229/32
142.93.62.41/32
142.93.65.206/32
142.93.65.51/32
142.93.70.197/32
142.93.74.230/32
142.93.87.52/32
144.76.136.233/32
144.76.31.237/32
148.251.0.172/32
148.251.134.157/32
159.69.100.74/32
159.69.101.225/32
159.69.101.235/32
159.69.118.195/32
159.69.181.230/32
159.69.183.87/32
159.69.213.107/32
159.69.31.2/32
162.243.234.164/32
162.243.7.171/32
163.172.104.246/32
163.172.104.252/32
163.172.105.100/32
163.172.105.22/32
163.172.105.60/32
163.172.105.66/32
163.172.106.138/32
163.172.106.153/32
163.172.106.154/32
163.172.106.8/32
163.172.106.87/32
163.172.107.35/32
163.172.112.159/32
163.172.112.177/32
163.172.112.197/32
163.172.112.198/32
163.172.112.213/32
163.172.112.247/32
163.172.112.8/32
163.172.113.13/32
163.172.113.159/32
163.172.113.19/32
163.172.113.204/32
163.172.113.206/32
163.172.113.21/32
163.172.113.210/32
163.172.113.22/32
163.172.114.111/32
163.172.114.115/32
163.172.114.151/32
163.172.114.212/32
163.172.114.215/32
163.172.114.241/32
163.172.114.243/32
163.172.114.254/32
163.172.114.46/32
163.172.114.73/32
163.172.115.131/32
163.172.115.175/32
163.172.115.176/32
163.172.115.181/32
163.172.115.244/32
163.172.115.53/32
163.172.115.7/32
163.172.115.72/32
163.172.115.77/32
163.172.115.99/32
163.172.116.105/32
163.172.116.120/32
163.172.116.121/32
163.172.116.160/32
163.172.116.185/32
163.172.116.190/32
163.172.116.191/32
163.172.116.20/32
163.172.116.217/32
163.172.116.233/32
163.172.116.32/32
163.172.116.48/32
163.172.117.130/32
163.172.117.144/32
163.172.117.161/32
163.172.117.181/32
163.172.117.184/32
163.172.117.196/32
163.172.117.198/32
163.172.117.217/32
163.172.117.47/32
163.172.117.59/32
163.172.117.64/32
163.172.117.95/32
163.172.117.96/32
163.172.118.108/32
163.172.118.121/32
163.172.118.138/32
163.172.118.16/32
163.172.118.183/32
163.172.118.238/32
163.172.118.74/32
163.172.118.84/32
163.172.119.101/32
163.172.119.186/32
163.172.119.227/32
163.172.119.241/32
163.172.119.242/32
163.172.119.56/32
163.172.119.78/32
163.172.119.83/32
163.172.119.98/32
163.172.120.116/32
163.172.120.131/32
163.172.120.151/32
163.172.120.16/32
163.172.120.166/32
163.172.120.186/32
163.172.120.187/32
163.172.120.188/32
163.172.120.189/32
163.172.120.220/32
163.172.120.254/32
163.172.121.133/32
163.172.121.16/32
163.172.121.24/32
163.172.121.5/32
163.172.121.91/32
163.172.121.97/32
163.172.122.100/32
163.172.122.101/32
163.172.123.117/32
163.172.123.167/32
163.172.123.29/32
163.172.123.47/32
163.172.124.114/32
163.172.124.136/32
163.172.124.94/32
163.172.145.242/32
163.172.169.170/32
163.172.181.128/32
163.172.201.184/32
163.172.31.156/32
163.172.34.125/32
163.172.51.30/32
163.172.52.33/32
163.172.55.20/32
163.172.55.57/32
163.172.55.58/32
163.172.55.64/32
163.172.55.66/32
163.172.55.70/32
173.255.198.240/32
176.9.34.123/32
176.9.46.134/32
178.128.13.74/32
178.128.144.243/32
178.128.153.19/32
178.128.157.96/32
178.128.173.135/32
178.128.192.173/32
178.128.198.110/32
178.128.199.37/32
178.128.206.200/32
178.128.207.154/32
178.128.207.181/32
178.128.232.228/32
178.128.232.76/32
178.128.233.95/32
178.128.236.8/32
178.128.238.140/32
178.128.240.18/32
178.128.242.182/32
178.128.244.179/32
178.128.255.148/32
178.128.40.80/32
178.128.43.166/32
178.128.73.55/32
178.62.101.15/32
178.62.111.27/32
178.62.192.16/32
178.62.200.186/32
178.62.219.8/32
178.62.248.140/32
178.62.56.63/32
178.62.73.69/32
178.62.78.70/32
178.62.87.45/32
178.62.98.115/32
178.63.41.238/32
18.182.248.183/32
18.184.240.98/32
18.188.116.141/32
18.191.230.215/32
18.222.122.237/32
18.222.50.204/32
18.223.14.248/32
188.40.138.83/32
188.40.65.209/32
195.154.227.17/32
195.201.122.193/32
195.201.136.169/32
195.201.136.178/32
195.201.139.98/32
195.201.144.183/32
195.201.19.181/32
195.201.216.227/32
195.201.224.22/32
195.201.249.135/32
195.201.251.52/32
195.201.252.49/32
195.201.36.98/32
195.201.45.201/32
195.201.46.60/32
195.201.6.64/32
195.201.92.245/32
195.201.96.242/32
204.48.28.29/32
207.154.196.198/32
207.154.219.96/32
207.154.225.3/32
209.97.128.163/32
209.97.145.65/32
209.97.150.147/32
209.97.158.152/32
209.97.177.139/32
209.97.178.62/32
209.97.182.188/32
209.97.185.16/32
209.97.186.49/32
209.97.190.223/32
212.129.0.191/32
212.129.11.101/32
212.129.12.183/32
212.129.12.184/32
212.129.13.209/32
212.129.13.245/32
212.129.14.6/32
212.129.15.104/32
212.129.15.108/32
212.129.15.121/32
212.129.15.159/32
212.129.15.207/32
212.129.15.225/32
212.129.15.45/32
212.129.15.8/32
212.129.15.97/32
212.129.15.98/32
212.129.16.82/32
212.129.16.83/32
212.129.17.130/32
212.129.17.240/32
212.129.18.141/32
212.129.18.216/32
212.129.19.119/32
212.129.19.164/32
212.129.19.168/32
212.129.19.169/32
212.129.19.222/32
212.129.19.223/32
212.129.20.178/32
212.129.20.245/32
212.129.20.52/32
212.129.21.26/32
212.129.23.217/32
212.129.23.245/32
212.129.23.83/32
212.129.24.109/32
212.129.24.110/32
212.129.24.142/32
212.129.24.202/32
212.129.25.76/32
212.129.26.137/32
212.129.26.159/32
212.129.26.193/32
212.129.26.218/32
212.129.26.223/32
212.129.26.238/32
212.129.26.242/32
212.129.26.243/32
212.129.26.83/32
212.129.26.84/32
212.129.27.103/32
212.129.27.12/32
212.129.27.61/32
212.129.28.6/32
212.129.28.92/32
212.129.29.174/32
212.129.29.244/32
212.129.29.26/32
212.129.29.33/32
212.129.29.36/32
212.129.30.110/32
212.129.30.118/32
212.129.30.151/32
212.129.30.179/32
212.129.30.206/32
212.129.31.111/32
212.129.3.199/32
212.129.32.166/32
212.129.33.101/32
212.129.33.161/32
212.129.33.166/32
212.129.34.17/32
212.129.36.159/32
212.129.36.160/32
212.129.38.142/32
212.129.38.164/32
212.129.38.240/32
212.129.39.176/32
212.129.40.112/32
212.129.40.178/32
212.129.41.152/32
212.129.41.153/32
212.129.41.252/32
212.129.41.26/32
212.129.42.107/32
212.129.42.116/32
212.129.42.148/32
212.129.43.176/32
212.129.43.49/32
212.129.43.74/32
212.129.43.82/32
212.129.44.236/32
212.129.44.33/32
212.129.46.227/32
212.129.47.22/32
212.129.47.224/32
212.129.47.225/32
212.129.47.232/32
212.129.47.234/32
212.129.47.235/32
212.129.47.43/32
212.129.47.91/32
212.129.48.176/32
212.129.48.46/32
212.129.48.92/32
212.129.49.103/32
212.129.49.143/32
212.129.49.184/32
212.129.49.209/32
212.129.50.112/32
212.129.50.133/32
212.129.50.144/32
212.129.50.67/32
212.129.51.64/32
212.129.52.13/32
212.129.53.115/32
212.129.53.193/32
212.129.54.218/32
212.129.54.228/32
212.129.54.247/32
212.129.55.171/32
212.129.56.4/32
212.129.57.108/32
212.129.57.109/32
212.129.57.70/32
212.129.57.71/32
212.129.58.181/32
212.129.58.20/32
212.129.58.73/32
212.129.59.148/32
212.129.59.16/32
212.129.59.166/32
212.129.59.238/32
212.129.59.50/32
212.129.59.89/32
212.129.8.107/32
212.129.8.17/32
212.47.236.164/32
212.71.251.70/32
212.83.132.102/32
212.83.132.115/32
212.83.132.2/32
212.83.132.246/32
212.83.132.252/32
212.83.133.27/32
212.83.135.185/32
212.83.135.96/32
212.83.135.98/32
212.83.135.99/32
212.83.136.127/32
212.83.136.174/32
212.83.136.65/32
212.83.136.9/32
212.83.136.90/32
212.83.136.99/32
212.83.137.106/32
212.83.137.184/32
212.83.137.215/32
212.83.138.191/32
212.83.138.232/32
212.83.138.238/32
212.83.138.43/32
212.83.139.100/32
212.83.139.183/32
212.83.140.10/32
212.83.140.142/32
212.83.141.128/32
212.83.141.137/32
212.83.141.142/32
212.83.141.31/32
212.83.142.13/32
212.83.142.200/32
212.83.142.21/32
212.83.142.233/32
212.83.142.248/32
212.83.142.249/32
212.83.143.106/32
212.83.143.177/32
212.83.143.191/32
212.83.143.202/32
212.83.143.248/32
212.83.143.43/32
212.83.143.82/32
212.83.144.156/32
212.83.144.173/32
212.83.144.192/32
212.83.144.195/32
212.83.144.227/32
212.83.145.172/32
212.83.145.186/32
212.83.145.81/32
212.83.146.193/32
212.83.146.62/32
212.83.147.10/32
212.83.147.123/32
212.83.147.69/32
212.83.148.25/32
212.83.149.115/32
212.83.149.118/32
212.83.149.55/32
212.83.150.109/32
212.83.150.144/32
212.83.150.199/32
212.83.150.228/32
212.83.151.117/32
212.83.151.217/32
212.83.151.24/32
212.83.151.74/32
212.83.151.85/32
212.83.152.14/32
212.83.152.173/32
212.83.152.179/32
212.83.152.3/32
212.83.152.41/32
212.83.153.184/32
212.83.153.218/32
212.83.153.37/32
212.83.153.56/32
212.83.153.78/32
212.83.154.149/32
212.83.154.179/32
212.83.154.234/32
212.83.154.41/32
212.83.154.5/32
212.83.155.121/32
212.83.155.191/32
212.83.155.198/32
212.83.155.9/32
212.83.157.107/32
212.83.157.164/32
212.83.157.193/32
212.83.157.240/32
212.83.158.15/32
212.83.158.180/32
212.83.158.233/32
212.83.161.133/32
212.83.161.186/32
212.83.161.209/32
212.83.161.242/32
212.83.161.26/32
212.83.161.54/32
212.83.161.64/32
212.83.162.113/32
212.83.162.13/32
212.83.162.144/32
212.83.162.199/32
212.83.162.211/32
212.83.162.231/32
212.83.162.27/32
212.83.162.3/32
212.83.162.87/32
212.83.163.199/32
212.83.163.222/32
212.83.163.47/32
212.83.164.107/32
212.83.164.111/32
212.83.164.112/32
212.83.164.138/32
212.83.164.141/32
212.83.164.150/32
212.83.164.180/32
212.83.164.193/32
212.83.164.227/32
212.83.164.237/32
212.83.164.41/32
212.83.164.67/32
212.83.164.9/32
212.83.164.98/32
212.83.165.201/32
212.83.165.212/32
212.83.165.27/32
212.83.165.32/32
212.83.165.41/32
212.83.165.42/32
212.83.165.56/32
212.83.165.63/32
212.83.165.81/32
212.83.165.82/32
212.83.166.183/32
212.83.166.184/32
212.83.167.187/32
212.83.168.150/32
212.83.180.192/32
212.83.181.188/32
212.83.181.85/32
212.83.183.165/32
212.83.187.41/32
212.83.188.167/32
212.83.188.233/32
212.83.190.185/32
212.83.190.96/32
23.101.66.151/32
23.101.76.36/32
34.229.58.223/32
35.160.13.180/32
35.163.68.83/32
40.113.102.172/32
40.114.141.55/32
40.74.62.7/32
46.101.73.147/32
46.4.88.203/32
46.4.88.215/32
51.144.235.220/32
51.145.140.144/32
51.15.102.166/32
51.15.145.185/32
51.15.145.230/32
51.15.145.77/32
51.15.146.48/32
51.15.147.8/32
51.15.148.186/32
51.15.149.146/32
51.15.150.196/32
51.15.151.170/32
51.15.151.225/32
51.15.153.199/32
51.15.153.209/32
51.15.154.113/32
51.15.154.122/32
51.15.154.181/32
51.15.154.74/32
51.15.154.97/32
51.15.155.231/32
51.15.155.235/32
51.15.155.242/32
51.15.155.34/32
51.15.155.59/32
51.15.155.61/32
51.15.156.179/32
51.15.156.195/32
51.15.156.198/32
51.15.156.224/32
51.15.156.251/32
51.15.156.29/32
51.15.156.31/32
51.15.157.113/32
51.15.157.157/32
51.15.157.192/32
51.15.157.205/32
51.15.157.216/32
51.15.157.219/32
51.15.157.223/32
)
localnets=(
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
)
directdomains=(
)
selectors=()
for v in ${ports[@]}; do
selectors+=("dport $v table myvpn")
done
for v in ${nets[@]}; do
selectors+=("to $v table myvpn")
done
for v in ${localnets[@]}; do
selectors+=("to $v table main")
done
for v in ${directdomains[@]}; do
selectors+=("to $(dig "$v" +short) table main")
done
if ip link show $dev; then
iptables -A POSTROUTING -t nat -o $dev -j SNAT --to-source $ip
ip route add default via $gw dev $dev table myvpn
for v in "${selectors[@]}"; do
ip rule add $v
done
sysctl net.ipv4.ip_forward=1
sysctl net.ipv4.conf.all.rp_filter=0
sysctl net.ipv4.conf.$dev.rp_filter=0
else
for v in "${selectors[@]}"; do
ip rule del $v
done
ip route del default via $gw dev $dev table myvpn
iptables -D POSTROUTING -t nat -o $dev -j SNAT --to-source $ip
fi
ip route flush cache
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment