Sshuttle: Difference between revisions

From ICO wiki
Jump to navigationJump to search
 
(28 intermediate revisions by the same user not shown)
Line 1: Line 1:
=Sissejuhatus=
=Sissejuhatus=
[https://sshuttle.readthedocs.io/en/stable/index.html sshuttle] on programm mis käitub kui läbipaistev proxy (''ingl. transparent proxy'') ja VPN klient.
[https://sshuttle.readthedocs.io/en/stable/index.html sshuttle] on programm mis käitub kui läbipaistev puhverserver (''ingl. transparent proxy'') ja VPN klient.




Programm on sobiv juhul kui<ref>[https://sshuttle.readthedocs.io/en/stable/overview.html sshuttle overview]</ref>:
Programm on sobiv juhul kui<ref>[https://sshuttle.readthedocs.io/en/stable/overview.html sshuttle overview]</ref>:


- Klientmasin töötab Linux, FreeBSD või MacOS operatsioonisüsteemil.
- Klientmasin töötab GNU/Linux, FreeBSD või macOS operatsioonisüsteemil.


- Teisse võrku on SSH ligipääs, kusjuures see ei pea olema admin õigustega.
- Teise võrku on SSH ligipääs, kusjuures see ei pea olema admin õigustega.


- Kasutaja ei taha või ei saa teha võrgus pordisuunamisi.
- Kasutaja ei taha või ei saa teha võrgus pordisuunamisi.
Line 50: Line 50:


Ühendumiseks serverisse ning kogu kliendi liikluse suunamine sellesse<ref>[https://sshuttle.readthedocs.io/en/stable/usage.html Usage]</ref>:
Ühendumiseks serverisse ning kogu kliendi liikluse suunamine sellesse<ref>[https://sshuttle.readthedocs.io/en/stable/usage.html Usage]</ref>:
  sshuttle --dns -r kasutajanimi@sshserver 0.0.0.0/0
  sshuttle --dns -x server -r kasutajanimi@server 0.0.0.0/0
<code>--dns</code> - saada DNS päringud läbi serveri;
<code>--dns</code> - saada DNS päringud läbi serveri;


<code>-r</code> - näitab, et edasi tuleb serveri kasutaja ja aadress;
<code>-x</code><ref>[https://www.reddit.com/r/archlinux/comments/7kxdvw/trouble_running_sshuttle_these_days/ r/archlinux]</ref> - ära edastada SSH serverit kuhu ühendutakse (Ubuntu 18.04 LTS ja uuemad);


<code>0.0.0.0/0</code> - suuna kogu liiklus läbi serveri. Lühendina võib kasutada <code>0/0</code>.
<code>-r</code> - SSH server kuhu ühendutakse ja seal serveris toimiv kasutaja;
 
<code>0.0.0.0/0</code> - suuna kogu liiklus läbi etteantud SSH serveri. Lühendina võib kasutada <code>0/0</code>.




Line 65: Line 67:


Ubuntu näitel lisa <code>~/.bash_aliases</code> faili rida:
Ubuntu näitel lisa <code>~/.bash_aliases</code> faili rida:
  alias aliase_nimi='sudo sshuttle --dns -r kasutajanimi@server 0.0.0.0/0'
  alias aliase_nimi='sudo sshuttle --dns -x server -r kasutajanimi@server 0.0.0.0/0'


Muudetud aliaste fail lugeda uuesti sisse <code>source ~/.bash_aliases</code> ning sisesta vastloodud alias käsuna.
Muudetud aliaste fail lugeda uuesti sisse <code>source ~/.bash_aliases</code> ning sisesta vastloodud alias käsuna.
Line 71: Line 73:
Näide koos võtmefaili kasutamisega:
Näide koos võtmefaili kasutamisega:


<code>alias vpn='sudo sshuttle --dns -Nvr kasutajanimi@server 0.0.0.0/0 -e "ssh -i /full/path/.ssh/key user@server"'</code>
<code>alias vpn='sudo sshuttle --dns -x server -e "ssh -i /home/kasutaja/.ssh/voti" -Nvr kasutajanimi@server 0.0.0.0/0'</code>
 
Asendada "kasutajanimi", "server", "kasutaja", "voti" tegelike väärtustega.
 
"vpn" asemel võib ka mõnda teist aliase nime kasutada.
 
Kui lisada ka -H parameeter siis skaneeritakse ka sihtkoha masinate nimed ja lisatakse /etc/hosts faili. Ühenduse katkestamisel taastatakse esialgne seis:


Asendada "user", "server" tegelike väärtustega.
<code>alias vpn='sudo sshuttle --dns -x server -e "ssh -i /home/kasutaja/.ssh/voti" -HNvr kasutajanimi@server 0.0.0.0/0'</code>


Aliase käivitamiseks piisab käsureale ''vpn'' sisestamisest ja ''Enter'' vajutamisest. Kui SSH võtmefail sisaldab salasõna siis tuleb see sisestada. Lisaks tuleb ''sudo'' puhul salasõna sisestada, millest saab lahti [https://help.ubuntu.com/community/Sudoers sudoers] mehhanismi kasutades.
Aliase käivitamiseks piisab käsureale ''vpn'' sisestamisest ja ''Enter'' vajutamisest. Kui SSH võtmefail sisaldab salasõna siis tuleb see sisestada või kasutada agenti, et see sessiooni vältel meeles hoida. Lisaks tuleb ''sudo'' puhul salasõna sisestada, millest saab lahti [https://help.ubuntu.com/community/Sudoers sudoers] mehhanismi kasutades:
<pre>
sudo nano /etc/sudoers.d/permissions #failinimi permissions võib asendada millega iganes
username ALL=(ALL) NOPASSWD: /usr/bin/sshuttle #asendada username reaalse kasutajanimega ja seejärel fail salvestada
</pre>
Kui soovitakse kõikidele kasutajatele lubada:
<pre>
ALL ALL=(ALL) NOPASSWD: /usr/bin/sshuttle
</pre>


=Autor=
=Autor=
Line 83: Line 99:


Täiendanud:
Täiendanud:
Edmund Laugasson, EIK õppejõud
[https://wiki.itcollege.ee/index.php/User:Edmund Edmund Laugasson]


=Kasutatud materjal=
=Kasutatud materjal=
<references />
<references />
* https://github.com/sshuttle/sshuttle
* https://github.com/sshuttle/sshuttle
* [https://sshuttle.readthedocs.io/en/stable/windows.html sshuttle'i kasutamisest MS Windowsis]


[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]

Latest revision as of 18:36, 21 May 2020

Sissejuhatus

sshuttle on programm mis käitub kui läbipaistev puhverserver (ingl. transparent proxy) ja VPN klient.


Programm on sobiv juhul kui[1]:

- Klientmasin töötab GNU/Linux, FreeBSD või macOS operatsioonisüsteemil.

- Teise võrku on SSH ligipääs, kusjuures see ei pea olema admin õigustega.

- Kasutaja ei taha või ei saa teha võrgus pordisuunamisi.

Nõuded

Klient

sudo või root ligipääs masinale;

Python 2.7 või Python 3.5[2].


Server

Python 2.7 või Python 3.5.

Paigaldamine

  • APT:
sudo apt-get update && sudo apt-get -y install sshuttle && sudo apt-get clean


  • PyPI:
sudo pip install sshuttle


  • Kloonimine Git'ist:
git clone https://github.com/sshuttle/sshuttle.git
sudo ./setup.py install


  • Sshuttle paigaldamine macOS'is:
brew install sshuttle

Kasutamine

Peale edukat paigaldust saab hakata programmi kasutama.

Ühendumiseks serverisse ning kogu kliendi liikluse suunamine sellesse[3]:

sshuttle --dns -x server -r kasutajanimi@server 0.0.0.0/0

--dns - saada DNS päringud läbi serveri;

-x[4] - ära edastada SSH serverit kuhu ühendutakse (Ubuntu 18.04 LTS ja uuemad);

-r - SSH server kuhu ühendutakse ja seal serveris toimiv kasutaja;

0.0.0.0/0 - suuna kogu liiklus läbi etteantud SSH serveri. Lühendina võib kasutada 0/0.


Võidakse küsida klientmasina root parooli, et saada sudo õigused ja seejärel SSH serveri kasutaja parooli.


Alias

Kiiremaks ühendamiseks võib luua süsteemi vastava aliase.

Ubuntu näitel lisa ~/.bash_aliases faili rida:

alias aliase_nimi='sudo sshuttle --dns -x server -r kasutajanimi@server 0.0.0.0/0'

Muudetud aliaste fail lugeda uuesti sisse source ~/.bash_aliases ning sisesta vastloodud alias käsuna.

Näide koos võtmefaili kasutamisega:

alias vpn='sudo sshuttle --dns -x server -e "ssh -i /home/kasutaja/.ssh/voti" -Nvr kasutajanimi@server 0.0.0.0/0'

Asendada "kasutajanimi", "server", "kasutaja", "voti" tegelike väärtustega.

"vpn" asemel võib ka mõnda teist aliase nime kasutada.

Kui lisada ka -H parameeter siis skaneeritakse ka sihtkoha masinate nimed ja lisatakse /etc/hosts faili. Ühenduse katkestamisel taastatakse esialgne seis:

alias vpn='sudo sshuttle --dns -x server -e "ssh -i /home/kasutaja/.ssh/voti" -HNvr kasutajanimi@server 0.0.0.0/0'

Aliase käivitamiseks piisab käsureale vpn sisestamisest ja Enter vajutamisest. Kui SSH võtmefail sisaldab salasõna siis tuleb see sisestada või kasutada agenti, et see sessiooni vältel meeles hoida. Lisaks tuleb sudo puhul salasõna sisestada, millest saab lahti sudoers mehhanismi kasutades:

sudo nano /etc/sudoers.d/permissions #failinimi permissions võib asendada millega iganes
username ALL=(ALL) NOPASSWD: /usr/bin/sshuttle #asendada username reaalse kasutajanimega ja seejärel fail salvestada

Kui soovitakse kõikidele kasutajatele lubada:

ALL ALL=(ALL) NOPASSWD: /usr/bin/sshuttle

Autor

Vahur Lepvalts

AK21

Täiendanud: Edmund Laugasson

Kasutatud materjal