pfsense связь офисов – точка точка

несколько примеров настройки.

Отличие от типичной конфигурации что – из одной сети доступен 2-й офис или магазин и с точностью до наоборот тоже.

Если не работает то читаем здесь и делаем еще раз.

В 3-м примере клиент openvpn это просто отдельная машинка с FreeBSD 13 используется как сервер и серьезный веб сайт. она в подземном хранилище.

Да , тип соединения openvpn shared key то есть ключ одинаковый у всех.

Если не получается ни в какую – тут есть связь офисов просто через 2 сервера виндоуз. Работает так же надежно, полгода вообще не трогал было дело. Но я считаю что FreeBSD надежнее. Диск жесткий только магнитный например Hitachi 7200 4tb. Да ssd побыстрее но чаще дохнут.

Все начинается с установки системы. Два варианта – виртуалбокс (в настройках сети разрешить все) или гипер-ви . да еще и третий = поставить на выделенный сервер. Скачать тогда не образ dvd а образ флешки – сейчас система FreeBSD а она в основе сборки ставится как windows 10 с usb флешки. Записать ее из линукса или через Rufus например.

статья исправляется

Сначала результат а не как лазить по меню и какую кнопку нажимать. Ключ на устройстве заменил но его можно и оставить а лучше сделать новый..

Есть 2 рабочих места в офисе и 2 в другом и

они работают как будто в одной комнате и с одним сервером. А между ними 800 км. (Первый рабочий вариант делал Москва Минск и это был 2000 сервер и потом 2003 ). На роутере microsoft windows server. Routing (Firewall) Remote Access (server 2003 – 2008 -2012 – 2016 2019) / там то же самое настраивается и работает. Смотрим здесь запись.

Блок настроек сервера (/cf/conf/config.xml)

<?xml version="1.0"?>
<pfsense>
        <version>22.0</version>
        <lastchange></lastchange>
        <system>
                <optimization>normal</optimization>
                <hostname>pfSense</hostname>
                <domain>home.arpa</domain>
                <dnsserver></dnsserver>
                <dnsallowoverride></dnsallowoverride>
                <group>
                        <name>all</name>
                        <description><![CDATA[All Users]]></description>
                        <scope>system</scope>
                        <gid>1998</gid>
                </group>
                <group>
                        <name>admins</name>
                        <description><![CDATA[System Administrators]]></description>
                        <scope>system</scope>
                        <gid>1999</gid>
                        <member>0</member>
                        <priv>page-all</priv>
                </group>
                <user>
                        <name>admin</name>
                        <descr><![CDATA[System Administrator]]></descr>
                        <scope>system</scope>
                        <groupname>admins</groupname>
...
                <ssh>
                        <enable>enabled</enable>
                        <sshdagentforwarding>enabled</sshdagentforwarding>
                        <port>429</port>
                </ssh>
** 429 port not 22
..

                <pkg_repo_conf_path>/usr/local/share/pfSense/pkg/repos/pfSense-repo-devel.
conf</pkg_repo_conf_path>

** pkg install mc (update all first) Enable Freebsd - disable before update
..
       <interfaces>
                <wan>
                        <enable></enable>
                        <if>em0</if>
                        <descr><![CDATA[WAN]]></descr>
                        <spoofmac></spoofmac>
                        <ipaddr>192.168.0.250</ipaddr>
                        <subnet>24</subnet>
                        <gateway>WANGW</gateway>
                </wan>
                <lan>
                        <descr><![CDATA[LAN1]]></descr>
                        <if>ovpns1</if>
                        <spoofmac></spoofmac>
                        <enable></enable>
                </lan>
        </interfaces>
        <staticroutes></staticroutes>

..
        <filter>
                <rule>
                        <id></id>
                        <tracker>1630599946</tracker>
                        <type>pass</type>
                        <interface>wan</interface>
                        <ipprotocol>inet</ipprotocol>
                        <tag></tag>
                        <tagged></tagged>
                        <max></max>
                        <max-src-nodes></max-src-nodes>
                        <max-src-conn></max-src-conn>
                        <max-src-states></max-src-states>
                        <statetimeout></statetimeout>
                        <statetype><![CDATA[keep state]]></statetype>
                        <os></os>
                        <protocol>tcp</protocol>
                        <source>
                                <any></any>
                        </source>
                        <destination>
                                <any></any>
                        </destination>
                        <descr></descr>
                     <created>

..
                       </created>
                </rule>
                <rule>
                        <id></id>
                        <tracker>0100000101</tracker>
                        <type>pass</type>
                        <interface>wan</interface>
                        <ipprotocol>inet</ipprotocol>
                        <tag></tag>
                        <tagged></tagged>
                        <max></max>
                        <max-src-nodes></max-src-nodes>
                        <max-src-conn></max-src-conn>
                        <max-src-states></max-src-states>
                        <statetimeout></statetimeout>
                        <statetype><![CDATA[keep state]]></statetype>
                        <os></os>
                        <source>
                                <any></any>
                        </source>
                        <destination>
                                <any></any>
                        </destination>
                    
                        <descr><![CDATA[Default allow LAN to any rule]]></descr>
   **
                <rule>
                        <id></id>
                        <tracker>1630599992</tracker>
                        <type>pass</type>
                        <interface>openvpn</interface>
                        <ipprotocol>inet</ipprotocol>
                        <tag></tag>
                        <tagged></tagged>
                        <max></max>
                        <max-src-nodes></max-src-nodes>
                        <max-src-conn></max-src-conn>
                        <max-src-states></max-src-states>
                        <statetimeout></statetimeout>
                        <statetype><![CDATA[keep state]]></statetype>
                        <os></os>
                        <protocol>tcp</protocol>
                        <source>
                                <any></any>
                        </source>
                        <destination>
                                <any></any>
                        </destination>
                        <descr></descr>
                        <updated>
                <separator>
                        <wan></wan>
                        <openvpn></openvpn>
                        <lan></lan>
                </separator>
        </filter>
** исправлено все на * any to any
...

        <openvpn>
                <openvpn-server>
                        <vpnid>1</vpnid>
                        <mode>p2p_shared_key</mode>
                        <protocol>TCP4</protocol>
                        <dev_mode>tun</dev_mode>
                        <interface>wan</interface>
                        <ipaddr></ipaddr>
                        <local_port>62317</local_port>
                        <description><![CDATA[meow]]></description>
                        <custom_options>push &quot;route 10.13.13.0 255.255.255.0&quot;pus
h &quot;route 192.168.0.0 255.255.255.0&quot;</custom_options>
                        <shared_key>Iw0KIyAyMDQ4IGJpdCBPcGVuVlBOIHN0YXRpYyBrZXkNCiMNCi0tLS
0tQkVHSU4gT3BlblZQTiBTdGF0aWMga2V5IFYxLS0tLS0NCjkzY2FiOGExOWYyZDQ5ZWNlYjZiYzEyM2UxNDk0MmRi
DQoxYTQzODExZTI3YjQ5NmU5Nzg4MGZiNDlmZTA3ZDg5Mg0KMGQ2YjM5YmFkODA2MWEzNmEyZWZjNzE5YmEwOGY4Nz
gNCjQwMjRmNzFkN2NmNWY5MGZiOGQxZDQyMTNlMTY4MzE5DQowZmVlN2FlYzRiOTQ5MjRiZDZkOWRlMzA1MWY0YWRj
MA0KODE5YTQzZTZmZGFmNjk0MjdkZDQ1Mjg3ZmU0MTIwZjYNCjA0MDgzNmI2NzM2ZjYyNWVmYjhjYWZiNDU5YTEyZD
I5DQphODUwYmQ5ZDg4NjI5OGNmNmRjNDg2NWFiZWZlYTVhOA0KYzkxZTkzMzY4M2UyYWNiMzJkYjJiOTFiMWY2NWUw
ZWINCmMyMGY5NDM3YmY3OThmMTUzNWY1MjNiZGY5OWU5ZjA2DQoyNDk0ZmZmZWU1NTkyOWNjOGZkODg1NjE0M2Y0MG
I1ZQ0KOThjZDQ0OGIyZWUwYzdmYzgwMjA0YzgyZjY1YmZiNTgNCjZlNDg4MDQ3Yjk2ZDIyYzY2YjkxN2U5MzA1NGRh
YmFlDQplYzZiZGY5MjM3NjYxYTE3MGUyMDgyODlhODJhMmVkNA0KNGI5NzhkYmQwZWU3NGQ5MTdhNTA5NzEzOWUyYj
JiMjINCmNmMDcwZWZhMDAzZGNkM2NiYzg2YzI4YzhkMmNhM2VlDQotLS0tLUVORCBPcGVuVlBOIFN0YXRpYyBrZXkg
VjEtLS0tLQ0M</shared_key>
                        <data_ciphers_fallback>AES-256-CBC</data_ciphers_fallback>
                        <digest>SHA256</digest>
                        <engine>none</engine>
                        <tunnel_network>10.13.13.0/24</tunnel_network>
                        <tunnel_networkv6></tunnel_networkv6>
                        <remote_network>192.168.178.0/24,192.168.40.0/24</remote_network>
                        <remote_networkv6></remote_networkv6>
                        <gwredir></gwredir>
                        <gwredir6></gwredir6>
                        <local_network></local_network>
                        <local_networkv6></local_networkv6>
                        <maxclients>3</maxclients>
                        <allow_compression>asym</allow_compression>
                        <compression>lz4-v2</compression>
                        <compression_push></compression_push>
                        <passtos>yes</passtos>
                        <client2client>yes</client2client>
                        <dynamic_ip></dynamic_ip>
                        <topology>subnet</topology>
                        <serverbridge_dhcp></serverbridge_dhcp>
                        <serverbridge_interface>none</serverbridge_interface>
                        <serverbridge_routegateway></serverbridge_routegateway>
                        <serverbridge_dhcp_start></serverbridge_dhcp_start>
                        <serverbridge_dhcp_end></serverbridge_dhcp_end>
                        <username_as_common_name><![CDATA[disabled]]></username_as_common_
name>
                        <sndrcvbuf>2097152</sndrcvbuf>
                        <netbios_enable></netbios_enable>
                        <netbios_ntype>0</netbios_ntype>
                        <netbios_scope></netbios_scope>
                        <create_gw>v4only</create_gw>
                        <verbosity_level>5</verbosity_level>
                        <data_ciphers>AES-256-GCM,AES-128-CBC,CHACHA20-POLY1305</data_ciph
ers>
                        <ncp_enable>enabled</ncp_enable>
                        <ping_method>keepalive</ping_method>
                        <keepalive_interval>10</keepalive_interval>
                        <keepalive_timeout>60</keepalive_timeout>
                        <ping_seconds>10</ping_seconds>
                        <ping_push></ping_push>
                        <ping_action>ping_restart</ping_action>
                        <ping_action_seconds>60</ping_action_seconds>
                        <ping_action_push></ping_action_push>
                        <inactive_seconds>0</inactive_seconds>
                </openvpn-server>
** добавлен маршрут и client2client адрес внутренней сети у известного модема Акадо телеком
** дополнительные команды прописываются в окошке через веб конфигуратор, при настройке можно напрямую в файл


---------
напрямую настройка сервера удаленного доступа (FreeBSD 12 - 13 или Ubuntu 20+) openvpn server
... config.ovpn  chmod 644
dev ovpns1
verb 5
dev-type tun
dev-node /dev/tun1
writepid /var/run/openvpn_server1.pid
#user nobody
#group nobody
script-security 3
daemon
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
proto tcp4-server
auth SHA256
up /usr/local/sbin/ovpn-linkup
down /usr/local/sbin/ovpn-linkdown
local 192.168.178.34
ifconfig 10.11.11.1 10.11.11.2
lport 62319
management /var/etc/openvpn/server1/sock unix
max-clients 3
route 192.168.0.0 255.255.255.0
route 192.168.40.0 255.255.255.0
secret /var/etc/openvpn/server1/secret
data-ciphers AES-256-GCM:AES-128-CBC:CHACHA20-POLY1305:AES-256-CBC
data-ciphers-fallback AES-256-CBC
allow-compression asym
compress lz4-v2
passtos
sndbuf 2097152
rcvbuf 2097152
push "route 10.11.11.0 255.255.255.0"
push "route 192.168.178.0 255.255.255.0"
#client-connect /usr/local/sbin/openvpn.attributes.sh
#client-disconnect /usr/local/sbin/openvpn.attributes.sh
#tls-server
#server 10.11.11.0 255.255.255.0
#client-config-dir /var/etc/openvpn/server1/csc
#username-as-common-name
#plugin /usr/local/lib/openvpn/plugins/openvpn-plugin-auth-script.so /usr/local/sbin/ovpn_auth_verify_async user XXX= false server2 51094
#tls-verify "/usr/local/sbin/ovpn_auth_verify tls 'MEOOW' 1"
#duplicate-cn
#capath /var/etc/openvpn/server1/ca
#cert /var/etc/openvpn/server1/cert.
#key /var/etc/openvpn/server1/key.
#dh /etc/dh-parameters.2048
#tls-auth /var/etc/openvpn/server1/tls-auth 0
#persist-remote-ip
#float
#topology subnet

это настройка по паролю - shared key - и соединяется только 1 клиент - другой сервер
строки снизу # - настройка по ключам и сертификатам, может подключаться много клиентов
(remote access server)

 


 

этот блок на втором сервере – он клиент

                <openvpn-client>
                        <auth_user></auth_user>
                        <auth_pass></auth_pass>
                        <proxy_user></proxy_user>
                        <proxy_passwd></proxy_passwd>
                        <vpnid>1</vpnid>
                        <protocol>TCP4</protocol>
                        <dev_mode>tun</dev_mode>
                        <interface>wan</interface>
                        <ipaddr></ipaddr>
                        <local_port></local_port>
                        <server_addr>194.85.15.198</server_addr>
                        <server_port>62317</server_port>
                        <proxy_addr></proxy_addr>
                        <proxy_port></proxy_port>
                        <proxy_authtype>none</proxy_authtype>
                        <description><![CDATA[bridge-site2]]></description>
                        <mode>p2p_shared_key</mode>
                        <topology>subnet</topology>
                        <custom_options></custom_options>
                        <shared_key>Iw0KIyAyMDQ4IGJpdCBPcGVuVlBOIHN0YXRpYyBrZXkNCiMNCi0tLS0tQkVHSU4gT3BlblZQTiBTdGF0aWMga2V5IFYxLS0tLS0NCjkzY2FiOGExOWYyZDQ5ZWNlYjZiYzEyM2UxNDk0MmRiDQoxYTQzODExZTI3YjQ5NmU5Nzg4
MGZiNDlmZTA3ZDg5Mg0KMGQ2YjM5YmFkODA2MWEzNmEyZWZjNzE5YmEwOGY4NzgNCjQwMjRmNzFkN2NmNWY5MGZiOGQxZDQyMTNlMTY4MzE5DQowZmVlN2FlYzRiOTQ5MjRiZDZkOWRlMzA1MWY0YWRjMA0KODE5YTQzZTZmZGFmNjk0MjdkZDQ1Mjg3ZmU0MTIwZjYNCjA0MDgz
NmI2NzM2ZjYyNWVmYjhjYWZiNDU5YTEyZDI5DQphODUwYmQ5ZDg4NjI5OGNmNmRjNDg2NWFiZWZlYTVhOA0KYzkxZTkzMzY4M2UyYWNiMzJkYjJiOTFiMWY2NWUwZWINCmMyMGY5NDM3YmY3OThmMTUzNWY1MjNiZGY5OWU5ZjA2DQoyNDk0ZmZmZWU1NTkyOWNjOGZkODg1NjE0
M2Y0MGI1ZQ0KOThjZDQ0OGIyZWUwYzdmYzgwMjA0YzgyZjY1YmZiNTgNCjZlNDg4MDQ3Yjk2ZDIyYzY2YjkxN2U5MzA1NGRhYmFlDQplYzZiZGY5MjM3NjYxYTE3MGUyMDgyODlhODJhMmVkNA0KNGI5NzhkYmQwZWU3NGQ5MTdhNTA5NzEzOWUyYjJiMjINCmNmMDcwZWZhMDAz
ZGNkM2NiYzg2YzI4YzhkMmNhM2VlDQotLS0tLUVORCBPcGVuVlBOIFN0YXRpYyBrZXkgVjEtLS0tLQ0M</shared_key>
                        <data_ciphers_fallback>AES-256-CBC</data_ciphers_fallback>
                        <digest>SHA256</digest>
                        <engine>none</engine>
                        <tunnel_network>10.13.13.0/24</tunnel_network>
                        <tunnel_networkv6></tunnel_networkv6>
                        <remote_network>192.168.0.0/24</remote_network>
                        <remote_networkv6></remote_networkv6>
                        <use_shaper></use_shaper>
                        <allow_compression>asym</allow_compression>
                        <compression>lz4-v2</compression>
                        <auth-retry-none></auth-retry-none>
                        <passtos>yes</passtos>
                        <udp_fast_io></udp_fast_io>
                        <exit_notify></exit_notify>
                        <sndrcvbuf>2097152</sndrcvbuf>
                        <route_no_pull></route_no_pull>
                        <route_no_exec></route_no_exec>
                        <dns_add></dns_add>
                        <verbosity_level>5</verbosity_level>
                        <create_gw>v4only</create_gw>
                        <data_ciphers>AES-256-CBC,AES-128-CBC,CHACHA20-POLY1305</data_ciphers>
                        <ncp_enable>enabled</ncp_enable>
                        <ping_method>keepalive</ping_method>
                        <keepalive_interval>10</keepalive_interval>
                        <keepalive_timeout>60</keepalive_timeout>
                        <ping_seconds>10</ping_seconds>
                        <ping_action>ping_restart</ping_action>
                        <ping_action_seconds>60</ping_action_seconds>
                        <inactive_seconds>0</inactive_seconds>
                </openvpn-client>
** any to any pass * все интерфейсы добавлены и там прописано то же самое!

 

маршруты на сервере и клиенте

pFirewall

это обозначает отключить к **#@@%* *@$%* <beep>

Но не перестараться – именно firewall управляет маршрутами.

еще один комп (freebsd) – только одновременно 2 компьютера соединены сервер и клиент – если надо 3 то можно на 3-м еще прописать сервер и на 2-м еще один клиент. Адреса внутренние изменить на вторых записях. (а на винде – маршрутизация и удаленный доступ система понимает 3 точки.. но встречные соединения надо)

. Это просто установлен Openvpn и скопирована пара скриптов от pfsense – не обязательно и дописано 2 для запуска. ./pusk .. соединение .. killall openvpn разъединение.

openvpn-client config.ovpn (это содержимое файла pusk) chmod 777 (+X)

./openvpn-client config (команда)

...

#!/bin/sh

exec /usr/local/sbin/openvpn --script-security 2 \
    --up /usr/local/libexec/openvpn-client.up \
    --plugin openvpn-plugin-down-root.so /usr/local/libexec/openvpn-client.down \
    --config "$@"

... в файл openvpn-client chmod +X

igb0 (в файл interface) исправить правильно какой там на компе

...  config.ovpn
#dev ovpnc1
dev tun1
verb 7
log /var/log/openvpn.log
dev-type tun
dev-node /dev/tun1
#dev-node /dev/ovpnc1
writepid /var/run/openvpn_client1.pid
#user nobody
#group nobody
script-security 3
daemon
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
proto tcp4-client
auth SHA256
up /usr/local/sbin/ovpn-linkup
down /usr/local/sbin/ovpn-linkdown
local 192.168.178.34
lport 0
management /var/etc/openvpn/client1/sock unix
remote 194.85.15.198 62317 tcp4-client
ifconfig 10.13.13.3 10.13.13.1
#route 192.168.40.0 255.255.255.0
route 192.168.0.0 255.255.255.0
secret /var/etc/openvpn/client1/secret
data-ciphers AES-128-GCM:AES-256-CBC
data-ciphers-fallback AES-256-CBC
allow-compression asym
compress lz4-v2
passtos
resolv-retry infinite
sndbuf 2097152
rcvbuf 2097152

... config.ovpn xwost
/var/etc/openvpn/client1/secret                                                                                                                                                         657/657               100%
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
93cab8a19f2d49eceb6bc123e14942db
1a43811e27b496e97880fb49fe07d892
0d6b39bad8061a36a2efc719ba08f878
4024f71d7cf5f90fb8d1d4213e168319
0fee7aec4b94924bd6d9de3051f4adc0
819a43e6fdaf69427dd45287fe4120f6
040836b6736f625efb8cafb459a12d29
a850bd9d886298cf6dc4865abefea5a8
c91e933683e2acb32db2b91b1f65e0eb
c20f9437bf798f1535f523bdf99e9f06
2494fffee55929cc8fd8856143f40b5e
98cd448b2ee0c7fc80204c82f65bfb58
6e488047b96d22c66b917e93054dabae
ec6bdf9237661a170e208289a82a2ed4
4b978dbd0ee74d917a5097139e2b2b22
cf070efa003dcd3cbc86c28c8d2ca3ae
-----END OpenVPN Static key V1-----

v fail secret

 

с настройкой через ssh ну да там в линуксе вот такая команда – ( ssh user@host -p 422 ) это уже может подходить под заголовок сайта. Не просто подсказка сисадмину – изучить на английском соединение через командную строку, а там и с одного на другой совсем просто соединиться и есть ключ и пароль или только ключ или только пароль.