85 lines
2.8 KiB
Bash
Executable File
85 lines
2.8 KiB
Bash
Executable File
#!/bin/bash
|
|
INTERFACE_VPN="tun0"
|
|
TABLE_ID=100
|
|
|
|
cat /ssh/key.pub > /root/.ssh/authorized_keys
|
|
ssh-keygen -A
|
|
exec /usr/sbin/sshd -D -e "$@" &
|
|
|
|
INTERFACE=$(route | grep '^default' | grep -o '[^ ]*$')
|
|
if [ "$HOSTNAME" = "wireguard1" ]
|
|
then
|
|
if [ $(cat /etc/wireguard/wg0.conf | wc -c) -eq 0 ]
|
|
then
|
|
PRIVATEKEY=$(wg genkey | tee /etc/wireguard/privatekey)
|
|
echo "[Interface]" > /etc/wireguard/wg0.conf
|
|
echo "PrivateKey = $PRIVATEKEY" >> /etc/wireguard/wg0.conf
|
|
echo "Address = $ADDRESS" >> /etc/wireguard/wg0.conf
|
|
echo "ListenPort = $WG1PORT" >> /etc/wireguard/wg0.conf
|
|
else
|
|
sed "s/ListenPort = [0-9]\+/ListenPort = $WG1PORT/" /etc/wireguard/wg0.conf > change_port
|
|
sed "s|Address = [0-9\.\/ ]\+|Address = $ADDRESS|" change_port > change_address
|
|
cat change_address > /etc/wireguard/wg0.conf
|
|
fi
|
|
else
|
|
if [ $(cat /etc/wireguard/wg0.conf | wc -c) -eq 0 ]
|
|
then
|
|
PRIVATEKEY=$(wg genkey | tee /etc/wireguard/privatekey)
|
|
echo "[Interface]" > /etc/wireguard/wg0.conf
|
|
echo "PrivateKey = $PRIVATEKEY" >> /etc/wireguard/wg0.conf
|
|
echo "Address = $ADDRESS" >> /etc/wireguard/wg0.conf
|
|
echo "ListenPort = $WGPORT" >> /etc/wireguard/wg0.conf
|
|
else
|
|
sed "s/ListenPort = [0-9]\+/ListenPort = $WGPORT/" /etc/wireguard/wg0.conf > change_port
|
|
sed "s|Address = [0-9\.\/ ]\+|Address = $ADDRESS|" change_port > change_address
|
|
cat change_address > /etc/wireguard/wg0.conf
|
|
fi
|
|
fi
|
|
iptables -t nat -A POSTROUTING --destination 10.10.0.5 -j ACCEPT
|
|
iptables -t nat -A POSTROUTING -o $INTERFACE -j MASQUERADE
|
|
ln -s /etc/wireguard/wg0.conf /etc/amnezia/amneziawg/wg0.conf
|
|
if [ "$HOSTNAME" = "wireguard1" ]
|
|
then
|
|
if [ $(cat /pac.json | jq .wg1_amnezia) -eq 1 ]
|
|
then
|
|
awg-quick up wg0
|
|
else
|
|
wg-quick up wg0
|
|
fi
|
|
if [ $(cat /pac.json | jq .wg1_blocktorrent) -eq 1 ]
|
|
then
|
|
sh /block_torrent.sh
|
|
fi
|
|
if [ $(cat /pac.json | jq .wg1_exchange) -eq 1 ]
|
|
then
|
|
sh /block_exchange.sh
|
|
fi
|
|
else
|
|
if [ $(cat /pac.json | jq .amnezia) -eq 1 ]
|
|
then
|
|
awg-quick up wg0
|
|
else
|
|
wg-quick up wg0
|
|
fi
|
|
if [ $(cat /pac.json | jq .blocktorrent) -eq 1 ]
|
|
then
|
|
sh /block_torrent.sh
|
|
fi
|
|
if [ $(cat /pac.json | jq .exchange) -eq 1 ]
|
|
then
|
|
sh /block_exchange.sh
|
|
fi
|
|
fi
|
|
|
|
ip tuntap add mode tun dev $INTERFACE_VPN || true
|
|
ip addr add 10.255.0.1/24 dev $INTERFACE_VPN || true
|
|
ip link set up dev $INTERFACE_VPN
|
|
ip rule add from $ADDRESS table $TABLE_ID || true
|
|
ip route add default dev $INTERFACE_VPN table $TABLE_ID || true
|
|
iptables -A FORWARD -i $INTERFACE_VPN -j ACCEPT
|
|
iptables -A FORWARD -o $INTERFACE_VPN -j ACCEPT
|
|
iptables -t nat -I POSTROUTING 1 -s $ADDRESS -j RETURN
|
|
tun2socks -device $INTERFACE_VPN -proxy socks5://xr:10808 &
|
|
|
|
tail -f /dev/null
|