На роутере выполняем команды:
Code:
# mkdir /tmp/local/opt
# mount -o bind /usr/local/opt /opt
# ipkg.sh update; ipkg.sh install opkg; opkg update; opkg install openvpn
Создаем файлики:
(1)
/opt/etc/openvpn/server.conf
Code:
proto tcp-server
dev tun0
port 443
ifconfig 10.8.0.2 10.8.0.1
keepalive 10 120
secret static.key
(2)
/usr/local/sbin/post-boot
Code:
#!/bin/sh
# keep opkg repository in flash memory
mount -o bind /usr/local/opt /opt
# OpenVPN
/sbin/insmod tun
/opt/bin/openvpn --daemon --cd /opt/etc/openvpn --config server.conf
(3)
/usr/local/sbin/post-firewall
Code:
#!/bin/sh
vpnPort=443
vpnProto=tcp
vpnDevice=tun0
iptables -P INPUT DROP
iptables -D INPUT -j DROP
iptables -A INPUT -p $vpnProto --dport $vpnPort --tcp-flags FIN,SYN,RST,ACK SYN -j BRUTE
iptables -A INPUT -p $vpnProto --dport $vpnPort -j ACCEPT
iptables -I INPUT -i $vpnDevice -j ACCEPT
iptables -I FORWARD -i $vpnDevice -j ACCEPT
iptables -I FORWARD -o $vpnDevice -j ACCEPT
iptables -I OUTPUT -o $vpnDevice -j ACCEPT
(4)
/opt/etc/openvpn/static.key
(генерируется на сервере или на клиенте командой
Code:
# openvpn --genkey --secret static.key
содержимое копипастится через ssh без всяких scp)
устанавливаем права на файлы:
Code:
# chmod 0755 "/usr/local/sbin/post-boot"
# chmod 0755 "/usr/local/sbin/post-firewall"
пишем сделанное во флеш и перегружаемся с молитвой:
Code:
# flashfs save && flashfs commit && flashfs enable
# reboot
конфиг для клиента:
Code:
proto tcp-client
dev tun0
port 443
ifconfig 10.8.0.1 10.8.0.2
secret static.key
redirect-gateway
remote 213.24.76.23
Нюансы:
(1) фаерволом прикрыл OpenVPN от брутфорса;
(2) пишу лог в сислог, чтобы не париться с ротацией, и чтобы проще было глянуть через веб-интерфейс;
(3) если хочется управлять отдельным скриптом в /opt/etc/init.d/ , то нужно искать rc.unslung .
PS: Спасибо за новый репозиторий!