Portál AbcLinuxu, 2. listopadu 2025 20:09
Řešení dotazu:
Vím jenom, že se u routerů řeší extra propustnost pro VPNky, tak zda nemůže nastat nějaký problém právě kvůli tomu, že to běží na portu VPNky a ne běžné 80tce, FTP, SSH, nebo třeba telnetu. Jestli plácám kraviny, tak sorry, právě proto jsem se přišel zeptat na nejvhodnější řešení
To jsou porty, které nemusí být vždy otevřené.Takže všechny. Ale osobně bych sázel na tcp/443, akorát mi docela vadí to, že TCP VPN jsou zoufale neefektivní a zvlášť trpí na sebemenší problémy na síti. Nicméně jakákoli TCP VPN se dá provozovat na jakémkoli TCP portu a stejnětak jakákoli UDP VPN se dá provozovat na jakémkoli UDP portu. IPsec se dá provozovat přímo nad IP nebo přes UDP. I proto má Microsoft SSTP jako výchozí transport tcp/443. Nenarazil jsem na situaci, kdy by bylo potřeba namísto tcp/443 použít tcp/80, ale stát se to může. O ostatních silně pochybuju. Jinak největší záběr a ještě podstatně horší výkon mají DNS tunely, které fungují i za spoustou captive portálů. :D
je nastaveno aby pri spojeni se pustil sleep na hodne dlouho, povoleno jen presmerovani pozadovaneho portu a ruzne dalsi omezeni
no dobra...
cd /home/uzivatel_na_serveru/.ssh/ # pokud neni, tak vytvorit authorized_keys touch authorized_keys # nastavil bezpecne prava chmod 600 authorized_keys # do souboru vlozis publik klic od klienta a pred nej (na zacatek radku s klicem) vlozis: command="/bin/sleep 4294967201",no-agent-forwarding,no-pty,no-user-rc,no-X11-forwarding,permitopen="localhost:22201"na klientu: # skript co kontroluje spojeni a kdyz neni, tak ho nahodi, auto spousteni muzes pridat do cronu
#!/bin/sh
sshcmd="ssh -f uzivatel_na_serveru@server -R 22201:localhost:22 sleep 3"
if [ "$(ps aux|grep "${sshcmd}"|grep -v grep)" = "" ]; then
# pokud ma spojeni aktivovat bezny uzivatel:
su -c "${sshcmd}" jmeno_uzivatele_na_klientu
# nebo pokud by mel spojeni aktivovat primo root:
"${sshcmd}"
fi
ze serveru se pak pripojis pomoci (port je definovan na klientu i serveru, zmen oboje pokud chces jinej):ssh -p 22201 localhostpokud by se spojeni kouslo, muzes na serveru vyvolat preruseni pomoci zabiti procesu sleep, jehoz cislo zjistis pres:
ps aux | grep 4294967201nebo naprasaka, pokud vis ze jinej sleep bezet nemuze, tak:
killall sleepa nasledne pockas nez klientuv cron nenahodi skriptem spojeni znovu...
Da se to nejak zaridit?
Ano, dá. Připoj se k tomu stroji přes IPv6. Pak nebude za NATem.
Jiná možnost: ssh -f -N -R 22222:[::1]:22 server.s.veřejně.dostupnou.ip
Pak stačí připojit se na SSH -p 22222 server.s.veřejně.dostupnou.ip
Všechny podrobnosti jsou v manuálových stránkách. Ale je lepší si tenhle voser ušetřit a použít prostě IPv6.
Pokud jde o automatický SSH tunel, unit file pro přesně takovou službu může na tom RPi vypadat takto:
[Unit]
Description=SSH in SSH tunnel to Whoknowswhere
After=network-online.target
Requires=network.target
[Service]
Restart=always
StartLimitInterval=0
Type=forking
ExecStart=/usr/bin/ssh \
-i /root/.ssh/id_rsa.lojza -f -C -N \
-o ConnectTimeout=10 \
-o ServerAliveInterval=15 \
-o ServerAliveCountMax=2 \
-R [::1]:22222:[::1]:22 \
-R [2a01:xxxx:yyyy:zzzz::1]:22222:[::1]:22 \
-R [2a01:xxxx:yyyy:zzzz:1::1]:22222:[::1]:22 \
-R [2a01:xxxx:yyyy:zzzz:2::1]:22222:[::1]:22 \
lojza@server.blabla.ble
[Install]
WantedBy=multi-user.target
Nevýhoda je, že v souboru ~root/.ssh/id_rsa.lojza musí být nešifrovaný soukromý klíč uživatele lojza přijímaný serverem server.blabla.ble. Ale jinak to má jenom samé výhody. A lojza může mít hooodně omezená práva; do toho účtu se beztak nikdy nikdo neloguje.
After=network-online.target je samo o sobě špatně, patří k němu ještě Wants=network-online.target, oproti tomu Requires=network.target tam vůbec nepatří, to je target ve smyslu klasického runlevelu. Ale nepopírám, že to může na některém systému v některé konfiguraci fungovat, jen se pak lidi diví, když to fungovat přestane.
to vyzkouším, díky za tip. Postupem času stejně bude potřeba vytvořit internet v internetu, protože ten oficiální začíná stát dost za houby
1) Zkusit si tvůj skript a využít SSH jako tunel. 2) Že je možné použít TOR jako jednoduchý tunel 3) Začít se zajímat o IPv6, které můj provider neposkytuje, takže nějaké tunelování...Všechno je to na pár hodin samostudia
Vychází mi z toho, že OpenSSH je pro většinu aplikací naprosto vyhovující. A pokud chce mít někdo jistotu, nechť to zpřístupní jen přes OpenVPN.IPsec. Ten kernelový. Tam by se v případě bugu v ESP, security policies a security associations alespoň nemuseli dohadovat, jestli se chyba počítá jako chyba v linuxu. :)
...OpenSSH je pro většinu aplikací naprosto vyhovující. A pokud chce mít někdo jistotu, nechť to zpřístupní jen přes OpenVPN.Kdysi jsem tady někomu psal, že to tak někde používám. A obdržel jsem víceméně dehonestující komentáře, že je to "security by obscurity" a že jsem tudíž lama, která si na něco hraje.
Takže nakonec je to zase jen o tom, co nejvíce to zamotat, aby se to útočníkovi zkomplikovalo. Alias security by obscurity absolutně vede, dokud bude ten linux samá díra
No, časem se dopracujeme k tomu, že nbusr123 je rozumný poměr mezi bezpečím a pohodlím. Je pravda, že docela často používám heslo 123456
Je pravda, že docela často používám heslo 123456... což u dementa tvého kalibru nikoho nepřekvapí ...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.