NATin/palomuurin takana olevan koneen etähallinta (oli: Käänteinen SSH-tunneli)

  • Keskustelun aloittaja Keskustelun aloittaja Grazer
  • Aloitettu Aloitettu

Grazer

Make ATK Great Again
Liittynyt
30.10.2016
Viestejä
1 817
Tuossa kun virittelen mökille vanhoista romuista kameravalvontaa ja totesin Moi Mobiilin julkisen IP-osoitepoolin melko pieneksi ja lease timen vain muutaman tunnin pituiseksi, jonka jälkeen yhteys pätkäisee ja käytännössä joka kerta IP-osoitekin vaihtuu, niin totesin että olkoot NATin takana. Etävalvontaan riittää reverse SSH -tunneli omalle palvelimelle (ja backuppina on Teamviewerin unattended access).

Tunneli on helppo tehdä ja toimii, mutta varmuuden vuoksi viisaammilta kysyn, miten tuo kannattaa fiksuiten tehdä niin että tunneli aukeaa tallenninkoneen bootissa ja myös pysyy auki/aukeaa uudestaan jos sattuu pätkäisemään?

Ehkä kirjoittelen tästä tuonne diy-puolelle jonkun artikkelin, mutta nice-to-knowna, setuppi siis pari vanhaa IP-kameraa, debian-kone, jossa pyörii ftp ja laitenetillä varustettu 4G-modeemi. Kamerat tallentavat liikettä havaitessaan ftp:llä stillkuvia koneelle, joka ajaa vartin välein rsyncillä kuvat omalle palvelimelle.
 
Mulla on vastaava viritys käytössä. Kotona Proxmoxin päällä pyörii virtuaalikone, joka avaa ton ssh-putken. Tein vain servicen joka pitää tota yllä. Ainakin toistaiseksi on toipannut sähkökatkoista, 5g pätkimisestä kuin suunnitelluistakin buuteista.

Täyttänyt mun kotitarpeen kun on reissusta tarvinnu joku service buutata tms pikkuviilausta.
 
Automaattinen käynnistys:
Jos kyseessä on linux-pannu niin crontabiin @reboot /polku/kaynnistysskriptiin.sh > /mun/valvonta.log

Uudelleen yhdistäminen:
Koska ssh-tunnelin pitää nousta pystyyn automaattisesti kun yhteys katkeaa (esim ip:n vaihdossa) --> käyttäisin autossh:ta. Tunneloinnin parametrit taitaa olla autossh:ssa ihan samalla tavalla kuin ssh -komennollakin
 
Autossh:n manuskasta:
> Periodically (by default every 10 minutes), autossh attempts to pass traffic on the monitor forwarded port. If this fails, autossh will kill the child ssh process (if it is still running) and start a new one;

Tätä saa halutessaan kontrolloitua asettamalla ympäristömuuttujan AUTOSSH_POLL haluamakseen; esim komento
AUTOSSH_POLL=60 autossh -N -R 2222:localhost:22 (etäkoneen käyttäjä)@(etäkoneen ip)
nostaa tarvittaessa tunnelin pystyyn 60 sekunnin välein
 
Toinen vaihtoehto laittaa kasaan joku hinnat alkaen pfsense/opensense, ja konffia siihen L2L dialup ssl-vpn tai ipsec-vpn himaan. Kolmas vaihtoehto käyttää jotain dynaamista DNSää. Tämä toki vaatii että NATtia ei niin olisi, mutta taklaa tuota IPn vaihtumista.
 
Laittaisin itse varmaan wireguardin mielummin. Siinä saa systemd palvelut käynnistämiseen.
 
Itselläkin oli aikanaan tuollainen SSH-tunneli käytössä yhdessä hommassa ja toimi kyllä ihan hienosti. Tuo saattoi olla jopa tuolla autossh:lla toteutettu mutta näin yhtäkkiä mietittynä ei tuo yhteyden monitorointi ja ssh:n uudelleen ylös nostaminen kovin monimutkainen temppu ole ihan jollain bash-skriptilläkään.

Sitten tuli sinne etäpäähän vähän enemmän asioita niin laitoin sinne päähän VPN-clientin joka otti koti-VPN-serveriin yhteyden niin oli vähän kätevämpi käyttää. Ainakin OpenVPN osasi kätellä yhteyden uusiksi jos se jostain syystä katkesi, varmaan muutkin vastaavat VPN:t. Tuo OpenVPN vaan on itselleni tutuin.
 
Mites netbird, tailscale tai vastaava vpn? Ei tarvitse suoria yhteyksiä mihinkään eikä tarvitse välittää mikä julkinen ip on.
 
Mites netbird, tailscale tai vastaava vpn? Ei tarvitse suoria yhteyksiä mihinkään eikä tarvitse välittää mikä julkinen ip on.
Ai tällaisiakin kaikenlaisia on nykyään tarjolla. Sitä kun ei ole IT-alalla niin ei tiedä uusimpia metkuja. Täytyykin joskus tutustua.

Autossh:lla näkyy ainakin toimivan ja kun yhteyden katkaisi ottamalla verkkokaapelin irti ja pisti takaisin, niin palautui automaattisesti.

Muokkasin ketjun otsikkoa kun vaihtoehtoina tuli jo muitakin kuin vain reverse ssh niin auttaa ehkä muitakin.

Ehkä virittelen tämän hienommin tekemällä servicen joka käynnistyy koneen käynnistyessä, mutta alkuun pääsee laittamalla croniin @reboot. Authentikointi on passkeyllä
Bash:
autossh -M 0 -o "ExitOnForwardFailure=yes" -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -N -f -R 11155:localhost:22 -p 9986 $user@$host.ddns.net
 
Viimeksi muokattu:
Ai tällaisiakin kaikenlaisia on nykyään tarjolla. Sitä kun ei ole IT-alalla niin ei tiedä uusimpia metkuja. Täytyykin joskus tutustua.

Autossh:lla näkyy ainakin toimivan ja kun yhteyden katkaisi ottamalla verkkokaapelin irti ja pisti takaisin, niin palautui automaattisesti.

Muokkasin ketjun otsikkoa kun vaihtoehtoina tuli jo muitakin kuin vain reverse ssh niin auttaa ehkä muitakin.

Ehkä virittelen tämän hienommin tekemällä servicen joka käynnistyy koneen käynnistyessä, mutta alkuun pääsee laittamalla croniin @reboot. Authentikointi on passkeyllä
Bash:
autossh -M 0 -o "ExitOnForwardFailure=yes" -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -N -f -R 11155:localhost:22 -p 9986 $user@$host.ddns.net
Juu, tuo reverse SSH on ihan toimiva tapa jos haluaa vain SSH-yhteyden tai yksittäisiä portteja forwardata mutta tosiaan jos tekee oikean VPN-tunnelin niin etäkohdetta voi käyttää ihan kuin se olisi omassa lähiverkossa eli kaikki HTTP, HTTPS, SSH, FTP sun muut toimii kuin itsestään eikä tarvitse forwardoida mitään portteja tai tehdä muita kikkoja.

Toisaalta erillinen VPN tuo oman tietoturvakerroksen tuohon yhteyteen kun VPN itsessään on (ainakin yleensä) salattu ja sen sisällä SSH:n ajaminen vaatii myös tunnukset tai publickeyn eli jos jompikumpi vuotaa niin toisen suojaus vielä estää tietoturvareiän muodostumisen.

Itse teen muunmuassa noita VPN-tunneleita työkseni ja käytän paljon kaikenlaisia etäkäyttöjä SSH:n, RDP:n sun muiden yli ja en kyllä noita SSH:ta, RDP:tä sun muita ilman VPN:ää julkiseen verkkoon päästäisi, sen verran lokeissa näkyy noihin pommitusta.
 
Tailscale näyttää olevan ihan näppärä myös. Helppo ottaa käyttöön ja harrastelijoille veloitukseton (max. kolme käyttäjää ja sata laitetta). Rekisteröinnin jälkeen Debianissa
Bash:
curl -fsSL https://tailscale.com/install.sh | sh
Bash:
sudo tailscale up
ja autentikoi selaimella koneen omaan tiliin.

SSH:n saa käyttöön
Bash:
sudo tailscale up --ssh

Tämä ei toki sinänsä lisäturvaa tuonut, kun tuo mökin kone on sekä palomuurin että CG-NATin takana, mutta on toki helpompi käyttää kun ei tarvitse ottaa kotiserveriin ensin Puttylla kiinni ja sitten sieltä mökille.

Itsellä pyörii kotona palomuurina IPFire, niin tuo rsync+ssh-liikennekin on mahdollista siirtää kulkemaan OpenVPN:llä tai IPSecillä.

Itse teen muunmuassa noita VPN-tunneleita työkseni ja käytän paljon kaikenlaisia etäkäyttöjä SSH:n, RDP:n sun muiden yli ja en kyllä noita SSH:ta, RDP:tä sun muita ilman VPN:ää julkiseen verkkoon päästäisi, sen verran lokeissa näkyy noihin pommitusta.
Business-puolella kun joutunee käytännön syistä käyttämään oletusportteja, varmaan vaara on paljon suurempi. Kyllä itsekin joskus kokeillut että kun julkiseen verkkoon lykkää palvelimen, jossa on portti 22 auki, niin auth.logista saa seurata kun kaikenlaista kokeilijaa koputtelee että pääsisikö roottina tahi adminina sisälle, mutta tuossa kohtaa homelab-virityksissä saa paljon lisäsuojaa, kun vaihtaa oletusportiksi jonkun muun vaikka jostain 10000:n tienoolta.
 
Viimeksi muokattu:
Business-puolella kun joutunee käytännön syistä käyttämään oletusportteja, varmaan vaara on paljon suurempi. Kyllä itsekin joskus kokeillut että kun julkiseen verkkoon lykkää palvelimen, jossa on portti 22 auki, niin auth.logista saa seurata kun kaikenlaista kokeilijaa koputtelee että pääsisikö roottina tahi adminina sisälle, mutta tuossa kohtaa homelab-virityksissä saa paljon lisäsuojaa, kun vaihtaa oletusportiksi jonkun muun vaikka jostain 10000:n tienoolta.
Kyllähän tuo oletusportista johonkin muuhun muuttaminen auttaa jo jonkun verran mutta kyllä niitä koputtelijoita sinne epästandardiin porttiinkin vaan alkaa jossain vaiheessa tulemaan. Itselläkin oli joskus varmaan reilu 10v sitten ssh jossakin olikohan 22222-portissa ja kyllä siihenkin koputtelua tuli, ehkäpä dekadia vähemmin mutta kuitenkin. Toisaalta, kun salasanalla ei päässyt sisään vaan käytössä oli publickey-auth niin riski ei ollut ihan hirveä.

Ja tosiaan kun noiden verkkojen, palomuurien, VPN-yhteyksien sun muiden kanssa on töissä tottunut touhuilemaan niin oikeastaan automaattisesti kotilaitteisiinkin rakentelee kerroksittaisen suojauksen eli pitää päästä jo monesta asiasta läpi ennenkuin alkaa pääsemään mihinkään sisään.
 
Asentelin palvelimeenkin Tailscalen niin sai ottaa tuon ssh-porttiohjauksen palomuurista pois.

Itsellä on koko setuppi sellainen että vanhemmilla pyörii palvelin ja itselläni pyörii palvelin. Nämä kotiverkot on IPFire-purkeilla suojattu ja IPSecillä toisissaan kiinni. Lisäsin nyt tuohon vanhempien palvelimeen Tailscalen. Mökin kamerapalvelimessa on myös Tailscale, ja tuo lataa kuvat rsync+ssh:lla vanhempien servulle. Pikkusiskon ja lankomiehen pihalle lupasin ja viritellä pari kameraa ja noita varten itseltäni yli jäänyt HP Microserver heille pyörimään. Tuolta en kuvia lähetä minnekään, mutta laittanen tuohonkin vastaavasti Tailscalen etähallintaa varten.
 
Enemmän auttaa kun laittaa esim. geoblokkauksen tai peräti whitelistaa vain tietyt hostit
Juu, itselläkin on geoblokkaus käytössä, niin että sisääntulevat yhteydet eivät pääse kuin kotimaisista osoitteista sisään ja ulkoa sisälle tulevista porteista kaikki muut on blokattu paitsi VPN koska mitään julkisia servereitä minulla ei ole kotiverkossa ajossa.
 

Uusimmat viestit

Statistiikka

Viestiketjuista
257 000
Viestejä
4 465 826
Jäsenet
73 879
Uusin jäsen
Torvelo

Hinta.fi

Back
Ylös Bottom