|
|
#!/bin/bash |
|
|
|
|
|
set -e |
|
|
|
|
|
|
|
|
|
|
|
modprobe wireguard || true |
|
|
|
|
|
|
|
|
sysctl -w net.ipv4.ip_forward=1 |
|
|
sysctl -w net.ipv6.conf.all.forwarding=1 |
|
|
|
|
|
|
|
|
if [ ! -f /etc/wireguard/wg0.conf ]; then |
|
|
python3 /usr/local/bin/generate_wireguard_config.py |
|
|
fi |
|
|
|
|
|
|
|
|
iptables -t nat -C POSTROUTING -o eth0 -j MASQUERADE 2>/dev/null || \ |
|
|
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE |
|
|
|
|
|
|
|
|
iptables -C FORWARD -i wg0 -o eth0 -j ACCEPT 2>/dev/null || \ |
|
|
iptables -A FORWARD -i wg0 -o eth0 -j ACCEPT |
|
|
iptables -C FORWARD -i eth0 -o wg0 -m state --state RELATED,ESTABLISHED -j ACCEPT 2>/dev/null || \ |
|
|
iptables -A FORWARD -i eth0 -o wg0 -m state --state RELATED,ESTABLISHED -j ACCEPT |
|
|
|
|
|
|
|
|
netfilter-persistent save || true |
|
|
|
|
|
|
|
|
wg-quick up wg0 |
|
|
|
|
|
|
|
|
while true; do |
|
|
sleep 60 |
|
|
if ! ip link show wg0 | grep -q 'state UP'; then |
|
|
echo "[WARN] wg0 is down, restarting..." |
|
|
wg-quick down wg0 || true |
|
|
wg-quick up wg0 |
|
|
fi |
|
|
done |
|
|
|
|
|
|
|
|
|