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/24 20:55] – djbuldog | homerouteriv [2025/08/28 10:09] (aktuální) – upraveno mimo DokuWiki 127.0.0.1 | ||
|---|---|---|---|
| Řá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 120: | Řádek 112: | ||
| * musel jsem vytvořit vlastní firewall zónu. Když jsem použil WAN tak to nějak zahazovalo odesílané pakety a nenastal vůbec handshake | * musel jsem vytvořit vlastní firewall zónu. Když jsem použil WAN tak to nějak zahazovalo odesílané pakety a nenastal vůbec handshake | ||
| * pro aplikaci změn konfigurace lze použít ''/ | * pro aplikaci změn konfigurace lze použít ''/ | ||
| - | * logy lze zobrazit přes '' | ||
| * v konfiguraci wireguard lze zapnout debug | * v konfiguraci wireguard lze zapnout debug | ||
| * povolil jsem routování přes '' | * povolil jsem routování přes '' | ||
| Řádek 128: | Řádek 119: | ||
| option proto ' | option proto ' | ||
| option private_key ' | option private_key ' | ||
| - | list addresses '10.83.145.2/24' | + | list addresses '10.0.0.2/24' |
| config wireguard_wg0 | config wireguard_wg0 | ||
| - | option description 'pipi' | + | option description 'peer1' |
| option public_key ' | option public_key ' | ||
| option preshared_key ' | option preshared_key ' | ||
| - | list allowed_ips '10.83.145.1' | + | list allowed_ips '10.0.0.1' |
| list allowed_ips ' | list allowed_ips ' | ||
| option route_allowed_ips ' | option route_allowed_ips ' | ||
| - | option endpoint_host 'pipi.bari2.eu' | + | option endpoint_host 'peer1.example.com' |
| option persistent_keepalive ' | option persistent_keepalive ' | ||
| option endpoint_port ' | option endpoint_port ' | ||
| </ | </ | ||
| - | ===== HTTPS proxy ===== | + | ===== ACME ===== |
| - | FIXME - vyzkoušet | + | * pro testování je vhodně použít staging |
| + | * používám ověření webroot s cestou /www/acme | ||
| + | * konfiguroval jsem přes uci | ||
| - | * nastavit fw 80/443 z pipi na gw wireguard | + | < |
| - | * to uz je vlastne nastaveno tim, ze jsem prehodil ip :) | + | config cert 'wiki' |
| - | * 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 | + | option validation_method ' |
| - | | + | option webroot '/ |
| - | | + | </ |
| - | * jak zajistit default location | + | * vypnul jsem notifikaci nginx při změně cert.. |
| - | * a) uhttpd spustim jen nad 10.10.11.1 a ngix pobezi nad wg0 IP | + | * 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 |
| - | * nevyhoda je, ze zmnou IP prijdu o pristup do admin prostredi.. ale mam jeste ssh :) | + | * později lze klidně zapnout |
| - | * vyhoda je jednoduchost :) | + | |
| - | * b) firewall pravidlo, co pristup na 80/443 z wg0 posle na ngix port 8080,8081 | + | |
| - | * 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 | + | |
| - | * libi se mi reseni b) :D | + | |
| - | * udalal jsem: | + | * logy lze číst |
| - | * rozjel jsem acme a ngix fw pro min, reality, wiky a default | + | |
| - | * chyby acme / ngins jsou v logrotate.. hodne uzitecne | + | ===== HTTPS proxy ===== |
| - | * default server jde do /www/acme .. kde je index.html, prazdny | + | |
| - | * tri domeny jdou na pi, je tam redirect na https a je tam platny cert z acme | + | |
| - | * 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 :D on to totiz presune a restart nginx pak nenajde cert a nenabehne :D | + | |
| - | * mam port forwarding na obejidit nginx.. ale jsou disablovana | + | |
| - | * nginx jsem konfiguroval pres conf.. vypnul jsem podporu uci.. neslo | + | |
| - | * TODO | + | |
| - | * kdyz si udelam vlastni domenu.. neco jako domov.bari2.eu.. tak to muzu pres proxy a certifikat posilat na 8123 .. | + | |
| - | * nebo muzu nechat aj ten port.. ale klicove je, at to ma platny cert :D | + | |
| - | * cfg se dost opakuje.. slo by asi pres includy? nebo nejake shared sekce | + | |
| - | * chybi mi domeny lktb, teplo, tv... | + | |
| - | * je na zvazeni, zda potrebuji ssl u min, reality.. doma... mozna by stacilo to jen z venku :) obdobne HA.. mohl by byt bez z domaci site.. | + | |
| - | * kdybych mel hvezdickovy certifikat, tak muzu mit jen jeden config pro nekolik domen | + | |
| - | * hvezdicckovy se musi overtovat pres dns chanalange.. ale wedos api a skript pro acme by to meli dat | + | |
| < | < | ||
| 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.1727204137.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)
