Вчера только пришлось заморочиться, пока заметки еще под рукой..
На роутере выполняем команды:
# 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
(2) /usr/local/sbin/post-bootCode:proto tcp-server dev tun0 port 443 ifconfig 10.8.0.2 10.8.0.1 keepalive 10 120 secret static.key
(3) /usr/local/sbin/post-firewallCode:#!/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
(4) /opt/etc/openvpn/static.keyCode:#!/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
(генерируется на сервере или на клиенте командой
# openvpn --genkey --secret static.key
содержимое копипастится через ssh без всяких scp)
устанавливаем права на файлы:
# chmod 0755 "/usr/local/sbin/post-boot"
# chmod 0755 "/usr/local/sbin/post-firewall"
пишем сделанное во флеш и перегружаемся с молитвой:
# 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: Спасибо за новый репозиторий!
PPS: поправлено.


Reply With Quote


