Администрация

Достъп отвън: програмата от вкъщи и от телефона - безопасно, с VPN или CloudflareДостъп отвън: програмата от вкъщи и от телефона - безопасно, с VPN или Cloudflare

Програмата работи на компютър в магазина и по подразбиране се вижда само в неговата мрежа. Как да я отворите от вкъщи, от телефона или докато сте на почивка - безопасно.

Никога не пренасочвайте порт 8080/8443 от рутера директно към сървъра („port forwarding“). Тогава всеки в интернет вижда екрана за вход и може да опитва пароли. Използвайте един от двата начина по-долу.

Двата начина накратко

VPN (WireGuard на MikroTik)Cloudflare Tunnel
Какво е„Таен тунел“ от телефона/лаптопа до рутера в магазина - устройството става все едно е в магазина. Програмата се вижда на ваш адрес (напр. multiflow.firma.bg), но само след като Cloudflare провери, че сте вие (код на имейла).
НужноРутер MikroTik (RouterOS 7), приложение WireGuard на телефона/лаптопаДомейн в Cloudflare (безплатен план), малка програма на сървъра
Отваря порт на рутераЕдин UDP порт само за VPN-аНе - тунелът тръгва отвътре навън
УдобствоВключвате VPN-а и отваряте адреса както в магазинаПросто отваряте адреса в браузъра
КогаИмате MikroTik и искате всичко да е при васНямате подходящ рутер или искате най-лесно

Начин 1: VPN с WireGuard на MikroTik

Какво значи VPN: телефонът ви и рутерът в магазина си правят защитен, шифриран канал през интернет. Докато е включен, телефонът „седи“ в мрежата на магазина и отваря програмата на същия адрес, както касата (напр. https://192.168.88.10:8443). Без ключа на вашето устройство рутерът не отговаря на никого.

Примерът е с мрежа на магазина 192.168.88.0/24 (стандартната на MikroTik), сървър 192.168.88.10 и VPN мрежа 10.10.10.0/24. Командите се пишат в Winbox → New Terminal (RouterOS 7). Сменете адресите с вашите.

  1. Публичен адрес на рутера. Ако нямате статичен IP от доставчика, включете безплатното име на MikroTik:
    /ip cloud set ddns-enabled=yes
    /ip cloud print
    Запишете dns-name (нещо като abc123.sn.mynetname.net) - това е адресът на магазина отвън.
  2. VPN интерфейс на рутера:
    /interface wireguard add name=wg-home listen-port=13231
    /ip address add address=10.10.10.1/24 interface=wg-home
    /interface list member add interface=wg-home list=LAN
    /interface wireguard print
    От последната команда запишете public-key на рутера.
  3. Пропуснете VPN порта през защитната стена (най-отгоре):
    /ip firewall filter add chain=input protocol=udp dst-port=13231 action=accept comment="WireGuard" place-before=0
  4. Приложение на телефона/лаптопа: инсталирайте WireGuard (Android, iPhone, Windows, Mac) → „+“ → „Създай от нулата“. Приложението прави ключ - копирайте неговия публичен ключ. Попълнете:
    [Interface]
    Address = 10.10.10.2/32
    DNS = 192.168.88.1
    
    [Peer]
    PublicKey = (public-key на рутера от стъпка 2)
    Endpoint = abc123.sn.mynetname.net:13231
    AllowedIPs = 192.168.88.0/24, 10.10.10.0/24
    PersistentKeepalive = 25
  5. Разрешете устройството на рутера (публичният ключ от приложението):
    /interface wireguard peers add interface=wg-home allowed-address=10.10.10.2/32 public-key="(ключът от телефона)" comment="Телефон на Иван"
    За второ устройство: адрес 10.10.10.3, нов ред с неговия ключ.
  6. Проба: на телефона изключете Wi-Fi (за да сте наистина отвън), включете VPN-а и отворете https://192.168.88.10:8443.
Изгубен телефон: на рутера /interface wireguard peers remove [find comment="Телефон на Иван"] - и телефонът вече не може да влезе. „AllowedIPs“ с мрежата на магазина пуска през VPN-а само трафика към магазина; останалият интернет на телефона си върви както обикновено.

Начин 2: Cloudflare Tunnel (без отваряне на портове)

Какво значи: малка програма (cloudflared) на сървъра сама се свързва навън към Cloudflare. Когато отворите вашия адрес, Cloudflare първо иска да докажете, че сте вие (код на имейла), и чак тогава ви пуска до програмата. Рутерът не се пипа.

  1. Домейн в Cloudflare: регистрирайте се на cloudflare.com (безплатен план) и добавете вашия домейн (напр. firma.bg) - Cloudflare ще каже кои „nameservers“ да сложите при регистратора на домейна. Изчакайте да стане „Active“.
  2. Тунел: в Cloudflare → Zero Trust → Networks → Tunnels → Create a tunnel → тип Cloudflared → име „MultiFlow“. Изберете Windows - Cloudflare показва команда с дълъг ключ. Изтеглете cloudflared за Windows и пуснете в команден ред като администратор:
    cloudflared.exe service install (дългият ключ от Cloudflare)
    Тунелът става услуга на Windows и тръгва сам с компютъра. В Cloudflare трябва да светне „Healthy“.
  3. Адрес: в същия тунел → Public Hostname → Subdomain multiflow, Domain firma.bg, Service HTTPS → localhost:8443. В „Additional application settings → TLS“ включете No TLS Verify (сертификатът на програмата е собствен). Запишете.
  4. Само за вас (задължително): Zero Trust → Access → Applications → Add an application → Self-hosted, адрес multiflow.firma.bg. Правило (Policy): Allow, Include → Emails → вашите имейли. Метод на вход: One-time PIN. Така преди екрана на програмата Cloudflare праща код на имейла и пуска само изброените адреси.
  5. Проба: от телефона (без Wi-Fi на магазина) отворете https://multiflow.firma.bg → имейл → код → екранът за вход на MultiFlow.
Програмата вижда истинския адрес на посетителя и през тунела - защитата при грешна парола, разрешените IP адреси на оператора и известията за спрян вход работят както в магазина.

И в двата случая

  • Влизайте с отделен оператор за отвън, със силна парола; не давайте „Оператори“ и „Настройки“ на служители, които ще влизат отвън.
  • За собственика на телефона е удобна страницата Табло → „На телефона“ - оборот, каси, неплатени, съмнителни действия.
  • Сървърът трябва да е включен и програмата да работи - отвън виждате същото, което е в магазина в момента.
Сигурност: двуфакторен вход, разрешени адреси и пароли
Сигурност: двуфакторен вход, разрешени адреси и пароли