FreeBSD, OpenWRT, себе на память

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35066
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

FreeBSD, OpenWRT, себе на память

Непрочитанное сообщение Alex Keda » 2018-07-26 21:57:16

создано по каким-то статьям из интернетов
задача - связать машинку в инетах и роутер (сеть) дома.
===========================
ставим на фряхе

Код: Выделить всё

pkg install openvpn-2.4.6_1
дальше, шлём в жопу (да-да, именно в жопу!) все мутные статьи где генерят кучу ключей и рисуют мутные многостраничные конфиги.

создаём директорию под конфиги, ходим в неё, генерим ключ. один, блин, ключ, а не пачку =)

Код: Выделить всё

bkp0# mkdir /usr/local/etc/openvpn
bkp0# mkdir /usr/local/etc/openvpn
bkp0# cd /usr/local/etc/openvpn
bkp0# openvpn --genkey --secret static.key
openvpn: Команда не найдена.
bkp0# rehash 
bkp0# openvpn --genkey --secret static.key
bkp0# 
рисуем конфиг:

Код: Выделить всё

bkp0# cat /usr/local/etc/openvpn/openvpn.conf
# устройство
dev tun0
# IP адреса туннеля
ifconfig 192.168.111.1 192.168.111.2
# ключ шифрования
secret /usr/local/etc/openvpn/static.key
# маршрут домой, добавляемый при поднятии туннеля
route 192.168.254.0 255.255.255.0
добавляем openvpn в автозапуск

Код: Выделить всё

bkp0# tail -2  /etc/rc.conf
openvpn_enable="YES"
смотрим лог, ifconfig

Код: Выделить всё

bkp0# tail -20 /var/log/messages
Jul 26 21:24:35 bkp0 pkg: easy-rsa-3.0.4 installed
Jul 26 21:24:36 bkp0 pkg: openvpn-2.4.6_1 installed
Jul 26 21:24:36 bkp0 pkg: lame upgraded: 3.99.5_2 -> 3.100
Jul 26 21:34:00 bkp0 openvpn[5032]: disabling NCP mode (--ncp-disable) because not in P2MP client or server mode
Jul 26 21:34:00 bkp0 openvpn[5032]: OpenVPN 2.4.6 amd64-portbld-freebsd11.1 [SSL (OpenSSL)] [LZO] [LZ4] [MH/RECVDA] [AEAD] built on Jun 26 2018
Jul 26 21:34:00 bkp0 openvpn[5032]: library versions: OpenSSL 1.0.2k-freebsd  26 Jan 2017, LZO 2.09
Jul 26 21:34:00 bkp0 openvpn[5033]: WARNING: INSECURE cipher with block size less than 128 bit (64 bit).  This allows attacks like SWEET32.  Mitigate by using a --cipher with a larger block size (e.g. AES-256-CBC).
Jul 26 21:34:00 bkp0 openvpn[5033]: WARNING: INSECURE cipher with block size less than 128 bit (64 bit).  This allows attacks like SWEET32.  Mitigate by using a --cipher with a larger block size (e.g. AES-256-CBC).
Jul 26 21:34:00 bkp0 openvpn[5033]: TUN/TAP device /dev/tun0 opened
Jul 26 21:34:00 bkp0 kernel: tun0: link state changed to UP
Jul 26 21:34:00 bkp0 openvpn[5033]: do_ifconfig, tt->did_ifconfig_ipv6_setup=0
Jul 26 21:34:00 bkp0 openvpn[5033]: /sbin/ifconfig tun0 192.168.111.1 192.168.111.2 mtu 1500 netmask 255.255.255.255 up
Jul 26 21:34:00 bkp0 openvpn[5033]: Could not determine IPv4/IPv6 protocol. Using AF_INET6
Jul 26 21:34:00 bkp0 openvpn[5033]: setsockopt(IPV6_V6ONLY=0)
Jul 26 21:34:00 bkp0 openvpn[5033]: UDPv6 link local (bound): [AF_INET6][undef]:1194
Jul 26 21:34:00 bkp0 openvpn[5033]: UDPv6 link remote: [AF_UNSPEC]
bkp0# 
bkp0# ifconfig tun0
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
        options=80000<LINKSTATE>
        inet6 fe80::225:90ff:fe29:f58f%tun0 prefixlen 64 scopeid 0x4 
        inet 192.168.111.1 --> 192.168.111.2  netmask 0xffffffff 
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
        groups: tun 
        Opened by PID 5033
bkp0# 

ругается на слабое шифрование? да и фиг с ним, один хрен я туда по ssh буду ходить.

топаем на OpenWRT, у меня Chaos Calmer.
обновляем список пакетов, ставим openvpn

Код: Выделить всё

root@RT-N13U:~# opkg update
root@RT-N13U:~# opkg install openvpn-openssl
создаём директорию под конфиг и ключ:

Код: Выделить всё

root@RT-N13U:~# mkdir -p /etc/openvpn/
копируем ключ, я ленивый, поэтому на свою машину а с неё на OpenWRT:

Код: Выделить всё

HP$ scp bkp0.host-food.ru:/tmp/static.key /tmp/
static.key                           100%  636     0.6KB/s   00:00    
HP$ scp /tmp/static.key root@192.168.254.1:/etc/openvpn/
static.key                           100%  636     0.6KB/s   00:00    
HP$ 
рисуем конфиг

Код: Выделить всё

root@RT-N13U:~# cat /etc/openvpn/tun0.conf 
# server
remote bkp0.host-food.ru
# interface
dev tun0
# tunnel IP addresses
ifconfig 192.168.111.2 192.168.111.1
# key
secret /etc/openvpn/static.key
# ping remote IP
keepalive 60 120
проверяем что получилось, запускаем ручками на OpenWRT:

Код: Выделить всё

root@RT-N13U:~# openvpn --config /etc/openvpn/tun0.conf 
Thu Jul 26 21:47:34 2018 OpenVPN 2.3.6 mipsel-openwrt-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [MH] [IPv6] built on Jul 25 2015
Thu Jul 26 21:47:34 2018 library versions: OpenSSL 1.0.2g  1 Mar 2016, LZO 2.08
Thu Jul 26 21:47:34 2018 WARNING: file '/etc/openvpn/static.key' is group or others accessible
Thu Jul 26 21:47:34 2018 TUN/TAP device tun0 opened
Thu Jul 26 21:47:34 2018 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Thu Jul 26 21:47:34 2018 /sbin/ifconfig tun0 192.168.111.2 pointopoint 192.168.111.1 mtu 1500
Thu Jul 26 21:47:34 2018 UDPv4 link local (bound): [undef]
Thu Jul 26 21:47:34 2018 UDPv4 link remote: [AF_INET]91.227.16.22:1194
c FreeBSD пробуем пингануть второй конец туннеля:

Код: Выделить всё

bkp0# ping 192.168.111.1
PING 192.168.111.1 (192.168.111.1): 56 data bytes
64 bytes from 192.168.111.1: icmp_seq=0 ttl=64 time=0.057 ms
64 bytes from 192.168.111.1: icmp_seq=1 ttl=64 time=0.058 ms
64 bytes from 192.168.111.1: icmp_seq=2 ttl=64 time=0.060 ms
64 bytes from 192.168.111.1: icmp_seq=3 ttl=64 time=0.064 ms
^C
--- 192.168.111.1 ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.057/0.060/0.064/0.003 ms
bkp0# 
срослось. перекур, и запускаем, а затем и ставим OpenVPN в автозапуск на OpenWRT:

Код: Выделить всё

root@RT-N13U:~# /etc/init.d/openvpn start
root@RT-N13U:~# /etc/init.d/openvpn enable
root@RT-N13U:~# 
тут же выясняется что за что боролись - того пока не достигли - машина в удалённой сети всё ещё недоступна:

Код: Выделить всё

bkp0# ping 192.168.254.254
PING 192.168.254.254 (192.168.254.254): 56 data bytes
92 bytes from 192.168.111.2: Destination Port Unreachable
Vr HL TOS  Len   ID Flg  off TTL Pro  cks      Src      Dst
 4  5  00 0054 3b91   0 0000  3f  01 50c7 192.168.111.1  192.168.254.254 

92 bytes from 192.168.111.2: Destination Port Unreachable
Vr HL TOS  Len   ID Flg  off TTL Pro  cks      Src      Dst
 4  5  00 0054 fd16   0 0000  3f  01 8f41 192.168.111.1  192.168.254.254 

^C
--- 192.168.254.254 ping statistics ---
3 packets transmitted, 0 packets received, 100.0% packet loss
bkp0# 
дописываем в rc.local на OpenWRT правила файрволла

Код: Выделить всё

root@RT-N13U:~# tail -8 /etc/rc.local 

# tunnel forwarding
iptables -I INPUT -i tun0 -j ACCEPT
iptables -I FORWARD -i tun0 -j ACCEPT
iptables -I OUTPUT -o tun0 -j ACCEPT
iptables -I FORWARD -o tun0 -j ACCEPT

exit 0
root@RT-N13U:~# 
ребутаем или говорим

Код: Выделить всё

root@RT-N13U:~# sh /etc/rc.local
root@RT-N13U:~# 
пинги пошли:

Код: Выделить всё

bkp0# ping 192.168.254.254
PING 192.168.254.254 (192.168.254.254): 56 data bytes
64 bytes from 192.168.254.254: icmp_seq=0 ttl=63 time=56.021 ms
64 bytes from 192.168.254.254: icmp_seq=1 ttl=63 time=47.977 ms
64 bytes from 192.168.254.254: icmp_seq=2 ttl=63 time=52.506 ms
^C
--- 192.168.254.254 ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 47.977/52.168/56.021/3.293 ms
bkp0# 
Убей их всех! Бог потом рассортирует...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35066
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

FreeBSD, OpenWRT, себе на память

Непрочитанное сообщение Alex Keda » 2018-07-27 21:16:58

скорость маловата показалась (128k!). похоже провайдер udp режет, причём именно туннель. напрямую выдаются заявленные мегабиты
в итоге конфиги такие, закомментированные опции никакого влияния на скорость не оказывают

Код: Выделить всё

bkp0# cat /usr/local/etc/openvpn/openvpn.conf
# устройство
dev tun0
# IP адреса туннеля
ifconfig 192.168.111.1 192.168.111.2
# ключ шифрования
secret /usr/local/etc/openvpn/static.key
# маршрут домой, добавляемый при поднятии туннеля
route 192.168.254.0 255.255.255.0
# ping remote IP
keepalive 60 120

# tmp, test
#sndbuf 393216
#rcvbuf 393216
comp-lzo no
proto tcp-server
#tcp-nodelay
#fast-io

Код: Выделить всё

root@RT-N13U:~# cat /etc/openvpn/tun0.conf 
# server
remote bkp0.host-food.ru
# interface
dev tun0
# tunnel IP addresses
ifconfig 192.168.111.2 192.168.111.1
# key
secret /etc/openvpn/static.key
# ping remote IP
keepalive 60 120

# test
comp-lzo no
proto tcp-client
#sndbuf 393216
#rcvbuf 393216
про

Код: Выделить всё

comp-lzo no
не уверен, надо тестить на реальных данных, iprf выдал с ним

Код: Выделить всё

backup# iperf -c 192.168.111.1
------------------------------------------------------------
Client connecting to 192.168.111.1, TCP port 5001
TCP window size: 33.3 KByte (default)
------------------------------------------------------------
[  3] local 192.168.254.254 port 39539 connected with 192.168.111.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  9.75 MBytes  8.16 Mbits/sec
и без него

Код: Выделить всё

backup# iperf -c 192.168.111.1
------------------------------------------------------------
Client connecting to 192.168.111.1, TCP port 5001
TCP window size: 33.3 KByte (default)
------------------------------------------------------------
[  3] local 192.168.254.254 port 48236 connected with 192.168.111.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.1 sec  10.4 MBytes  8.61 Mbits/sec
backup# 
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35066
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

FreeBSD, OpenWRT, себе на память

Непрочитанное сообщение Alex Keda » 2018-07-27 21:25:51

отключение шифрования опцией

Код: Выделить всё

cipher none
в обоих конфигах, даёт + 3 мегабита и загрузка проца на точке не 100% а около 60%

Код: Выделить всё

backup# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 64.0 KByte (default)
------------------------------------------------------------
[  4] local 192.168.254.254 port 5001 connected with 192.168.111.1 port 42165
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.1 sec  13.0 MBytes  10.8 Mbits/sec
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35066
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

FreeBSD, OpenWRT, себе на память

Непрочитанное сообщение Alex Keda » 2018-07-27 21:36:39

добавление

Код: Выделить всё

auth none
в оба конфига +0.5 мегабит

Код: Выделить всё

backup# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 64.0 KByte (default)
------------------------------------------------------------
[  4] local 192.168.254.254 port 5001 connected with 192.168.111.1 port 42165
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.1 sec  13.0 MBytes  10.8 Mbits/sec
[  5] local 192.168.254.254 port 5001 connected with 192.168.111.1 port 42200
[  5]  0.0-10.2 sec  13.8 MBytes  11.3 Mbits/sec
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35066
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

FreeBSD, OpenWRT, себе на память

Непрочитанное сообщение Alex Keda » 2018-07-27 21:42:23

Код: Выделить всё

tun-mtu 1500
mssfix
ещё чутка добавило +0.3 мегабиат

Код: Выделить всё

backup# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 64.0 KByte (default)
------------------------------------------------------------
[  4] local 192.168.254.254 port 5001 connected with 192.168.111.1 port 42165
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.1 sec  13.0 MBytes  10.8 Mbits/sec
[  5] local 192.168.254.254 port 5001 connected with 192.168.111.1 port 42200
[  5]  0.0-10.2 sec  13.8 MBytes  11.3 Mbits/sec
[  4] local 192.168.254.254 port 5001 connected with 192.168.111.1 port 42234
[  4]  0.0-10.2 sec  14.1 MBytes  11.6 Mbits/sec
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35066
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

FreeBSD, OpenWRT, себе на память

Непрочитанное сообщение Alex Keda » 2018-07-27 21:56:40

про

Код: Выделить всё

sndbuf 393216
rcvbuf 393216
соврал, дало прирост +0.6 мегабита

Код: Выделить всё

backup# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 64.0 KByte (default)
------------------------------------------------------------
[  4] local 192.168.254.254 port 5001 connected with 192.168.111.1 port 42165
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.1 sec  13.0 MBytes  10.8 Mbits/sec
[  5] local 192.168.254.254 port 5001 connected with 192.168.111.1 port 42200
[  5]  0.0-10.2 sec  13.8 MBytes  11.3 Mbits/sec
[  4] local 192.168.254.254 port 5001 connected with 192.168.111.1 port 42234
[  4]  0.0-10.2 sec  14.1 MBytes  11.6 Mbits/sec
[  5] local 192.168.254.254 port 5001 connected with 192.168.111.1 port 42253
[  5]  0.0-10.1 sec  14.9 MBytes  12.3 Mbits/sec
а опция

Код: Выделить всё

tcp-nodelay
на сервере дала ещё +0.4 мегабита

Код: Выделить всё

backup# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 64.0 KByte (default)
------------------------------------------------------------
[  4] local 192.168.254.254 port 5001 connected with 192.168.111.1 port 42165
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.1 sec  13.0 MBytes  10.8 Mbits/sec
[  5] local 192.168.254.254 port 5001 connected with 192.168.111.1 port 42200
[  5]  0.0-10.2 sec  13.8 MBytes  11.3 Mbits/sec
[  4] local 192.168.254.254 port 5001 connected with 192.168.111.1 port 42234
[  4]  0.0-10.2 sec  14.1 MBytes  11.6 Mbits/sec
[  5] local 192.168.254.254 port 5001 connected with 192.168.111.1 port 42253
[  5]  0.0-10.1 sec  14.9 MBytes  12.3 Mbits/sec
[  4] local 192.168.254.254 port 5001 connected with 192.168.111.1 port 42272
[  4]  0.0-10.2 sec  15.4 MBytes  12.7 Mbits/sec
итого, пока остановился на таких конфигах:

Код: Выделить всё

bkp0# cat /usr/local/etc/openvpn/openvpn.conf
# устройство
dev tun0
# IP адреса туннеля
ifconfig 192.168.111.1 192.168.111.2
# ключ шифрования
secret /usr/local/etc/openvpn/static.key
# маршрут домой, добавляемый при поднятии туннеля
route 192.168.254.0 255.255.255.0
# ping remote IP
keepalive 60 120

# for speed
sndbuf 393216
rcvbuf 393216
comp-lzo no
proto tcp-server
tcp-nodelay
cipher none
auth none
tun-mtu 1500
mssfix

bkp0# 

Код: Выделить всё

root@RT-N13U:~# cat /etc/openvpn/tun0.conf
# server
remote bkp0.host-food.ru
# interface
dev tun0
# tunnel IP addresses
ifconfig 192.168.111.2 192.168.111.1
# key
secret /etc/openvpn/static.key
# ping remote IP
keepalive 60 120

# for speed
comp-lzo no
proto tcp-client
sndbuf 393216
rcvbuf 393216
cipher none
auth none
tun-mtu 1500
mssfix

root@RT-N13U:~# 
Убей их всех! Бог потом рассортирует...

RAGNAR
ст. прапорщик
Сообщения: 530
Зарегистрирован: 2009-07-10 22:12:06
Откуда: Ржев
Контактная информация:

FreeBSD, OpenWRT, себе на память

Непрочитанное сообщение RAGNAR » 2018-09-12 2:27:15

Здравствуйте. можете подсказать или помочь решить задачу. За помощь могу отблагодарить рублями.

VPS сервер ubunt 16, с белым ip , на нем OpenVPN настроено через ключи.
Клиент OpenWRT 15.05.01 серый адрес, туннель tun0 подымается весь трафик заворачивается, все работает. но вот с VPS я не могу достучатся до локального адреса самого роутера.

Что собственно нужно и для чего. Нет возможности подключить белый IP

Есть ротер с OpenWRT к нему подключен видеорегистратор , так как нет возможности ip белый подключить, нужно трафик перенаправить через OpenVPN туннель на VPS на котором есть белый ip, а Wi-Fi на роутере должен ходить напрямую , не через VPN туннель, что бы скорость не резалась.
... Да освятится имя твое и pасшиpение твое, Господи...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35066
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

FreeBSD, OpenWRT, себе на память

Непрочитанное сообщение Alex Keda » 2018-09-12 14:23:12

до какого из адресов?
есть адрес роутера, есть адрес на конце туннеля

RAGNAR
ст. прапорщик
Сообщения: 530
Зарегистрирован: 2009-07-10 22:12:06
Откуда: Ржев
Контактная информация:

FreeBSD, OpenWRT, себе на память

Непрочитанное сообщение RAGNAR » 2018-09-12 14:55:07

тунель подымается, на убунте сервере 10.0.0.1 на роутере 10.0.0.6 пинг ходит, за роутером сеть 192.168.1.0/24 (мост роутера 192.168.1.1)

вот с убунты 10.0.0.6 пингуется а 192.168.1.1 нет.
... Да освятится имя твое и pасшиpение твое, Господи...

RAGNAR
ст. прапорщик
Сообщения: 530
Зарегистрирован: 2009-07-10 22:12:06
Откуда: Ржев
Контактная информация:

FreeBSD, OpenWRT, себе на память

Непрочитанное сообщение RAGNAR » 2018-09-12 15:06:04

можете сами посмотреть vps тестовый? подключение по ssh? пароль в личку
vps 46.29.165.29
openwrt 10.0.0.6 root пароль 1
... Да освятится имя твое и pасшиpение твое, Господи...

RAGNAR
ст. прапорщик
Сообщения: 530
Зарегистрирован: 2009-07-10 22:12:06
Откуда: Ржев
Контактная информация:

FreeBSD, OpenWRT, себе на память

Непрочитанное сообщение RAGNAR » 2018-09-12 22:11:17

задача решена, прописыванием маршрутов на сервере и на клиенте в конфиге сервера. Осталась пробросить порт 80 на за оенвпн клиента .

запрос http://46.29.165.29 --> { 46.29.165.29 OpenVPN Server 10.0.0.1 } <--> { 10.0.0.6 192.168.1.0/24 } <-->videorecorder 192.168.1.11

C VPS 46.29.165.29 ping 192.168.1.11 проходит, а вот редирект нет. Пните в нужную сторону.

Это не помогает
iptables -t nat -A PREROUTING -p tcp -d 46.29.165.29 --dport 80 -j DNAT --to-destination 192.168.1.11:80
iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.11 --dport 80 -j SNAT --to-source 46.29.165.29
... Да освятится имя твое и pасшиpение твое, Господи...

RAGNAR
ст. прапорщик
Сообщения: 530
Зарегистрирован: 2009-07-10 22:12:06
Откуда: Ржев
Контактная информация:

FreeBSD, OpenWRT, себе на память

Непрочитанное сообщение RAGNAR » 2018-09-13 1:20:01

вопрос решон
... Да освятится имя твое и pасшиpение твое, Господи...