homerouteriv
Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Obě strany předchozí revizePředchozí verzeNásledující verze | Předchozí verze | ||
| homerouteriv [2024/09/20 08:00] – [HTTPS proxy] djbuldog | homerouteriv [2025/08/28 10:09] (aktuální) – upraveno mimo DokuWiki 127.0.0.1 | ||
|---|---|---|---|
| Řádek 1: | Řádek 1: | ||
| ====== HomeRouter IV ====== | ====== HomeRouter IV ====== | ||
| - | ==== Požadavky ==== | + | ===== Požadavky |
| * aktualizovat openwrt na rspro | * aktualizovat openwrt na rspro | ||
| Řádek 10: | Řádek 10: | ||
| * web server, tvheadend ... mam uz na PI | * web server, tvheadend ... mam uz na PI | ||
| * možná by se hodil tcpdump, iftop, aircrack | * možná by se hodil tcpdump, iftop, aircrack | ||
| - | * [[# | + | * [[# |
| - | ==== Plán ==== | + | ===== Základ |
| - | + | ||
| - | * udelat zalohu celeho routeru (pres pravidelny backup) | + | |
| - | * vytahnout sd kartu a udelat zalohu sd karty | + | |
| - | * nahrat default openwrt img do routeru | + | |
| - | * doinstalovat balicky pro extroot | + | |
| - | * nabootovat extroot (ext4) | + | |
| - | + | ||
| - | ==== Realizace | + | |
| Základní image | Základní image | ||
| Řádek 108: | Řádek 100: | ||
| * nebo ručně v / | * nebo ručně v / | ||
| - | ==== HTTPS proxy ==== | + | ===== Wireguard ===== |
| - | FIXME - vyzkoušet | + | * instalace |
| - | * rozjet wireguard na gw | + | <code> |
| - | * funguje, ale když je v zóně LAN (ne WAN) => zalozit vlastni zonu | + | opkg install luci-proto-wireguard |
| - | * nastavit fw 80/443 z pipi na gw wireguard | + | opkg install |
| - | * to uz je vlastne nastaveno tim, ze jsem prehodil ip :) | + | </ |
| - | * spustit ngix reverzni proxy na rpi a rpi4 z domen *.bari2.eu | + | |
| - | * wiki, min, reality na pi | + | |
| - | * doma, z2m, data(nextcloud) na pi4 | + | |
| - | * forwardovat acme location slozku na lokalni storage | + | |
| - | * obsluhovat https certifikaty | + | |
| - | * default location | + | |
| - | * pristup z non LAN IP bude bila stranka (ochrana) | + | |
| - | * pristup z LAN IP bude bude admin luci rozhrani | + | |
| - | * pro ip lze pouzit map, ale neumi CIDR. Pak je tam nejaky geo... | + | |
| - | * iface neumi, ale lze pouzit server IP a dat listen jen na tu IP.. to je asi nej | + | |
| - | * jak zajistit default location | + | * konfiguraci jsem provedl přes uci set, výsledek je v ''/ |
| - | * a) uhttpd spustim jen nad 10.10.11.1 | + | * musel jsem vytvořit vlastní firewall zónu. Když jsem použil WAN tak to nějak zahazovalo odesílané pakety |
| - | * nevyhoda je, ze zmnou IP prijdu o pristup do admin prostredi.. ale mam jeste ssh :) | + | * pro aplikaci změn konfigurace lze použít ''/ |
| - | * vyhoda je jednoduchost :) | + | * v konfiguraci wireguard lze zapnout debug |
| - | * b) firewall pravidlo, co pristup na 80/443 z wg0 posle na ngix port 8080,8081 | + | * povolil jsem routování přes '' |
| - | * tohle pravidlo muze byt vlastne uz i na pipi | + | |
| - | * kdybych presel z pipi na verejnou ip, tak bych pravidlo musel dostat do gw | + | |
| - | * c) nginx bude rozhodovat posilat na utthpd bezici na jinem portu | + | |
| - | * nevyhoda je, ze pro pristup na web admin musim zadavat port | + | |
| - | * libi se mi reseni b) :D | + | |
| - | * udalal jsem: | + | < |
| - | * rozjel jsem acme a ngix fw pro min, reality, wiky a default | + | config interface ' |
| - | * chyby acme / ngins jsou v logrotate.. hodne uzitecne | + | |
| - | * default server jde do / | + | option private_key '*****' |
| - | * tri domeny jdou na pi, je tam redirect na https a je tam platny cert z acme | + | list addresses '10.0.0.2/ |
| - | * vsehcny tri maji acme location.. aby fungovala verifikace | + | |
| - | * vypnul jsem notifikaci nginx pri zmene cert.. protoze jsem mel velky problem pri prechodu ze staging.. je mozne zapnout pozdeji.. ale nesmim mit nic staging | + | config wireguard_wg0 |
| - | * mam port forwarding na obejidit nginx.. ale jsou disablovana | + | |
| - | * nginx jsem konfiguroval | + | option public_key '*****' |
| - | * TODO | + | |
| - | * kdyz si udelam vlastni domenu.. neco jako domov.bari2.eu.. tak to muzu pres proxy a certifikat posilat na 8123 .. | + | list allowed_ips '10.0.0.1' |
| - | * nebo muzu nechat aj ten port.. ale klicove je, at to ma platny cert :D | + | list allowed_ips '172.17.17.0/ |
| - | * cfg se dost opakuje.. slo by asi pres includy? nebo nejake shared sekce | + | option route_allowed_ips ' |
| - | * chybi mi domeny lktb, teplo, tv... | + | option endpoint_host 'peer1.example.com' |
| - | * je na zvazeni, zda potrebuji ssl u min, reality.. doma... mozna by stacilo | + | option persistent_keepalive ' |
| - | * kdybych mel hvezdickovy certifikat, tak muzu mit jen jeden config pro nekolik domen | + | option endpoint_port ' |
| - | * hvezdicckovy se musi overtovat pres dns chanalange.. ale wedos api a skript pro acme by to meli dat | + | </ |
| + | |||
| + | ===== ACME ===== | ||
| + | |||
| + | * pro testování | ||
| + | * používám ověření webroot s cestou /www/acme | ||
| + | * konfiguroval jsem přes uci | ||
| + | |||
| + | < | ||
| + | config cert ' | ||
| + | option use_staging ' | ||
| + | option keylength ' | ||
| + | option update_nginx ' | ||
| + | option update_haproxy ' | ||
| + | option enabled ' | ||
| + | list domains 'wiki.bari2.eu' | ||
| + | | ||
| + | | ||
| + | | ||
| + | </ | ||
| + | |||
| + | | ||
| + | * měl jsem problém při přechodu ze staging, kdy po zpracování prvního certifikátu poslal notifikaci a nginx už nenastartoval, protože acme na začátku přesunul všechny nastavené staging certifikáty a nginx to už nenašel | ||
| + | * později lze klidně zapnout | ||
| + | |||
| + | * logy lze číst v '' | ||
| + | |||
| + | ===== HTTPS proxy ===== | ||
| < | < | ||
| opkg install nginx-ssl luci-app-acme acme-dnsapi | opkg install nginx-ssl luci-app-acme acme-dnsapi | ||
| </ | </ | ||
| + | |||
| + | * vypnout konfiguraci přes luca, protože nemá takové možnosti | ||
| < | < | ||
| - | erver { | + | vim / |
| - | | + | config main global |
| - | | + | |
| + | </ | ||
| - | ssl_certificate / | + | * využít luca template jako základní konfigurák |
| - | ssl_certificate_key / | + | |
| - | location / { | + | < |
| - | | + | cp /etc/nginx/uci.conf.template / |
| - | | + | </ |
| - | | + | |
| - | | + | * změnil jsem v něm akorát root na /www/acme, ve kterém jsem vytvořil prázdný index.html |
| - | proxy_set_header X-Forwarded-Proto $scheme; | + | * pro každý web jsem vytvořil následující config v / |
| - | } | + | |
| - | } | + | |
| < | < | ||
| server { | server { | ||
| - | listen 443 ssl; | ||
| - | server_name doma.example.com; | ||
| - | ssl_certificate /etc/acme/doma.example.com/fullchain.pem; | + | |
| - | ssl_certificate_key /etc/acme/doma.example.com/privkey.pem; | + | server_name wiki.bari2.eu; |
| + | |||
| + | | ||
| + | ssl_certificate_key /etc/acme/wiki.bari2.eu/ | ||
| + | |||
| + | include conf.d/ | ||
| + | include conf.d/ | ||
| + | |||
| + | } | ||
| + | |||
| + | server { | ||
| + | |||
| + | listen 7777; | ||
| + | server_name wiki.bari2.eu; | ||
| + | |||
| + | include conf.d/ | ||
| + | include conf.d/location-https-fwd.inc; | ||
| - | location / { | ||
| - | proxy_pass https:// | ||
| - | proxy_set_header Host $host; | ||
| - | proxy_set_header X-Real-IP $remote_addr; | ||
| - | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||
| - | proxy_set_header X-Forwarded-Proto $scheme; | ||
| - | } | ||
| } | } | ||
| </ | </ | ||
| + | * location-acme.inc - slouží ke zpřístupněni adresáře, kam acme dává dočasné soubory pro ověření vlastnictví domény. Pro každou doménu mám stejnou složku, protože se to ověřuje vždy sekvenčně a navzájem se neovlivňuje. | ||
| + | |||
| + | < | ||
| + | location / | ||
| + | default_type " | ||
| + | root /www/acme/; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | * location-https-fwd.inc - slouží k přesměrování http požadavku na https. Má cenu jen pro domény, kterým spravuji certifikáty. | ||
| + | |||
| + | < | ||
| + | location / { | ||
| + | | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | * location-pi-fwd.inc - přesměrování na pi s weby, na https port. | ||
| + | |||
| + | < | ||
| + | location / { | ||
| + | proxy_pass https:// | ||
| + | proxy_set_header Host $host; | ||
| + | proxy_set_header X-Real-IP $remote_addr; | ||
| + | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||
| + | proxy_set_header X-Forwarded-Proto $scheme; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | * weby, kterým nespravuji certifikát, | ||
| + | |||
| + | < | ||
| server { | server { | ||
| - | listen | + | listen |
| - | server_name | + | server_name |
| - | | + | |
| - | | + | |
| - | root /www/acme; # Adresář, kde ACME klient uloží soubory pro ověření | + | |
| - | } | + | |
| - | # Nastavení reverzní proxy na jiný stroj v síti | + | # mohl bych sem dat acme include, aby to umelo overit jakoukoliv domenu |
| - | | + | |
| - | | + | } |
| - | | + | |
| - | | + | # pokud zadny server name nema exact mach (nebo regular/wildcard) |
| - | | + | # vezme prvni unmatched server_name na tom portu |
| - | | + | # takze zalezi na poradi |
| - | } | + | # hodnota " |
| + | |||
| + | server { | ||
| + | listen 8080; | ||
| + | | ||
| + | |||
| + | # vse co neznam poslu na pi | ||
| + | include conf.d/ | ||
| } | } | ||
| </ | </ | ||
| + | |||
| + | * naslouchám záměrně na jiném portu, protože 80/443 je obsazen OpenWRT webui | ||
| + | * šlo to vyřešit i tak, že bych webui spustil jen nad určitou IP adresou rozhraní, ale tohle je více robustní na změnu IP adresy | ||
| + | * na druhé straně wireguard tunelu se požadavky na 80/443 směřují na nové porty. | ||
| + | * šlo to vyřešit i tak, že by změnu portu dělal firewall na gw | ||
| + | |||
| + | |||
homerouteriv.1726812012.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)
