Zabezpečení
např.
http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-prakticke-rady-pro-zabezpeceni-ssh
Vzdálené připojení souborového systému do adresáře
sudo apt-get install sshfs
sshfs user@server.cz:/home/dir/ /home/user/dir
pokud chci zachovat symbolické linky...
sshfs -o transform_symlinks -o follow_symlinks martyn@new.operacni-systemy.eu:/home /home/martyn/work/www-ftp/new
Rychle prihlaseni s klientskymi klici SSH
vezkratce
ssh-keygen -t rsa
scp id_rsa.pub test@99.99.99.88:.ssh
na serveru
cat martyn_diana.pub >> ~/.ssh/authorized_keys
podrobně
- cim vic prace venujeme prihlaseni do nejakeho pocitace, tim mene myslenek mame na vlastni reseni problemu
- nejdrive je nutne na serveru vygenerovat dvojici verejneho a privatniho klice (kdyz se na neco zepta tak staci stisknout Enter a pak dvakrat Enter), vytvori se tak dva soubory ~/.ssh/id_rsa a ~/.ssh/id_rsa.pub
% ssh-keygen -t rsa
nebo
% ssh-keygen -t dsa
- nyni je musime dostat do provozu (pote se staci prihlasit "ssh bobina" a bude fungovat i s prikazem "scp")
- u kazdeho je nutne jeste jednou zadat heslo, ale pak prihlasenim "ssh bobina" uz by to melo fungovat
- nutne je aby v /etc/hosts byl tento server zadan
- soubory ~/ssh/* a server:~/.ssh/* by meli mit opravneni 0600 a mel by byt ulozen jen na lokalnim pocitaci, zatimco vsechny ostatni soubory by mely mit opravneni 0655 nebo vyssi
% ssh bobina "mkdir .ssh; chmod 0700 .ssh"
% scp .ssh/id_rsa.pub server:.ssh/authorized_keys2
- dalsim zjednodusenim je vytvoreni skriptu (napr. "ssh
- to"), pomoci ktereho se rovnou prihlasime a vykonavame prikazy
#!/bin/sh
ssh `basename $0` $*
vytvorim linky
% cd /bin
% ln -s ssh-to server1
% ln -s ssh-to server2
% ln -s ssh-to server3
nyni staci zapsat pro vyvolani nejakeho prikazu ze vzdalenoho serveru
% server1 uptime
jeste vylepseni
% alias a='ssh astra'
% alias b='ssh bobina'
% alias c='ssh cecilka'
pokud nekdo ziska kopii privatniho klice, ziska pristup ke vsem serverum,mnohem horsi vsak je, kdyz kazdy den a nekolikrat denne zadavam do shellu heslo pri kazdem prihlaseni (stejne hesla jsou casto vsude stejna), soubor "authorized_keys2" nepredstavuje zadne bezpecnosti riziko, dulezite je pouze chranit privatni klice na lokalnim pocitaci (princip kryptografie)
SSH Agent
SSH-AGENT
- zajistuje spravu privatnich klicu a podle potreby predava nase prihlasovaci informace
- pokud mame na pocitaci spravne spusteny agent a spravne nakonfigurovane klienty, muzeme se pres ssh prihlasit na ruzne pocitace, aniz bychom na kazdy z nich museli kopirovat privatni klic (nebo do kazdeho spojeni zapisovat heslo)
- nejdrive je nutne mit autorizovany klic ssh a ze jej mame nainstalovan na pocitacich astra, bobina, cecilka
musi fungovat napr. % ssh astra
% exit
- ale pokud se chci na pocitac bobina pripojit primo z astra, tak mohu na lokalnim pocitaci spustit ssh
- agent, pak pridame vychozi klice
% eval `ssh-agent`
% ssh-add
- na pocitacich astra,bobina,cecilka musi byt povolen predavani pozadavku agenta (defaultne je vypnuta)
~/.ssh/config nebo /usr/local/etc/ssh_config ... "ForwardAgent yes" nebo z prikazove radky s prepinacem "-A"
SSH-AGENT v X-Window
- "eval `ssh
- agent` je nutne zavolat uplne na zacatku (pred spustenim prostredi s okny)
- vlozit napr. do ~/.bash_login nebo ~/.login (to ale neni idealni)
- abych nemusel v kazdem okne spoustet agenta, tak lze pouzit tento skriptu
- skript udrzuje v souboru ~/.agent.env promennou systemoveho prostredi, ktera ukazuje na aktualne spousteny ssh
- agent
- dojde
- li k jeho ukonceni, spusti se pri otevreni noveho terminaloveho okna automaticky novy agent (a navic skript prida i platne klice)
if [ -f ~/.agent.env ]; then
. ~/.agent.env > /dev/null
if ! kill -0 $SSH_AGENT_PID > /dev/null 2> then
echo "Nalezen nepouzivany agent. Spoustim novy agent..."
eval `ssh-agent | tee ~/.agent.env`
ssh-add
fi
else
echo "Spoustim ssh-agent..."
eval `ssh-agent | tee ~/.agent.env`
fi
X-Window nad SSH
- muzu spoustet vzdalene X aplikace
- pracuju s nema jako s lokalnima (prenos je sifrovany!!!) ale soubory system atd. je vzdaleny (napr. quanta)
- nutnost povolit predavani X11 (konfiguracni soubor sshd_config a restart sshd)
X11Forwarding yes
- nutnost povolit predavani X11 (konfiguracni soubor ~/.ssh/config), pak nemusim davat prepinac "
- X"
ForwardX11 yes
pr.
% ssh -X bobina
bobina% quanta
pr.
% bobina ethereal & (pobezi i pri ukonceni ssh)
pr.
% ssh -X bobina quanta
vyhody napr. u
ethereal - provadi zachycovani paketu a vizualni analyzu na zadanem serveru
vnc
gkrellm - zobazuje grafickou podobu stavu systemu v danem serveru nebo na nekolika serverech soucasne
Predavani portu nad SSH
- SSH se pri lokalnim predavani navaze na lokalni port, provede sifrovani, odesle sifrovana data na vzdaleny konec spojeni ssh a pote je desifruje a odesle do zadaneho vzdaleneho hostitele a zadaneho cisla portu
- tunel SSH se da vyvolat prepinacem "
- L"
- je nutne vypnout lokalne spusteny POP (port 110), ten vyuzivam pro odeslani
- prepinac
- f vyjadruje "fork" (vetveni ssh na pozadi)
- prepinac
- N na vzdalenem konci nebude spoustet zadny prikaz a bude se pouze predavat komunikace
- pomoci prepinace
- C lze vyvolat kompresy data
- vhodne vyuzit sifrovani pro jakoukoliv postu napr. u bezdratovych siti
- viz. trik 71
% ssh -f -N L110:bobina.monstav.com:110 -l martyn bobina.monstav.com
% ssh -f -N L110:bobina:110 -L25:bobina:25 -l martyn bobina