Difference between revisions of "Jumpgate"
Helikopter (talk | contribs) m (→Screen) |
Helikopter (talk | contribs) |
||
Line 2: | Line 2: | ||
==Grundläggande== | ==Grundläggande== | ||
− | Grundläggande för en jumpgate är att ha en kompetent terminal multiplexer | + | Grundläggande för en jumpgate är att ha en kompetent terminal multiplexer, t.ex [[Tmux]]. |
===Screen=== | ===Screen=== | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
sudo apt-get update && sudo apt-get upgrade && sudo apt-get -y install screen | sudo apt-get update && sudo apt-get upgrade && sudo apt-get -y install screen | ||
+ | |||
cat <<'__EOF__'>> .screenrc | cat <<'__EOF__'>> .screenrc | ||
defscrollback 10000 | defscrollback 10000 | ||
Line 34: | Line 35: | ||
===Tmux=== | ===Tmux=== | ||
− | |||
sudo apt-get update && sudo apt-get upgrade && sudo apt-get -y install tmux | sudo apt-get update && sudo apt-get upgrade && sudo apt-get -y install tmux | ||
− | |||
Attacha automatiskt till din tmux session vid inloggning. | Attacha automatiskt till din tmux session vid inloggning. | ||
Line 57: | Line 56: | ||
==SSH Autentisering== | ==SSH Autentisering== | ||
− | För att göra inloggning mot andra maskiner smidigare kan man använda sig av SSH-nycklar som autentisering. | + | För att göra inloggning mot andra maskiner smidigare kan man använda sig av SSH-nycklar som autentisering. Och för att göra det mindre smidigt se [[Google_Authenticator|Google Authenticator]]. |
Först måste man skaffa sig ett nyckelpar man kan distribuera till övriga hostar. Detta görs endast en gång. | Först måste man skaffa sig ett nyckelpar man kan distribuera till övriga hostar. Detta görs endast en gång. | ||
Line 97: | Line 96: | ||
.bashrc är en fil som körs varje gång bash laddas. I denna filen kan du skriva egna kommandon som du kan köra i kommandoprompten. | .bashrc är en fil som körs varje gång bash laddas. I denna filen kan du skriva egna kommandon som du kan köra i kommandoprompten. | ||
− | + | '''Extract''' <br/> | |
Skriv <code>extract <filnamn></code> för att packa upp en fil. | Skriv <code>extract <filnamn></code> för att packa upp en fil. | ||
extract () { | extract () { |
Revision as of 12:45, 22 June 2016
En jumpgate kan användas för att öka säkerheten men också för att förenkla maskinhantering genom att ha ett enda ställe man loggar in på och kan managera övriga resurser.
Grundläggande
Grundläggande för en jumpgate är att ha en kompetent terminal multiplexer, t.ex Tmux.
Screen
sudo apt-get update && sudo apt-get upgrade && sudo apt-get -y install screen
cat <<'__EOF__'>> .screenrc
defscrollback 10000
termcapinfo xterm* ti@:te@
nethack on
hardstatus alwayslastline
shelltitle 'bash'
hardstatus string '%{gk} %H [%{wk}%?%-Lw%?%{=b kR}(%{W}%n*%f %t%?(%u)%?%{=b kR})%{= w}%?%+Lw%?%? %{g} ] %{W}'
__EOF__
Ännu mer grundläggande är att ha en automagisk screen som alltid ställer upp vid login.
cat <<'__EOF__'>> .bashrc
if [ -z "$STARTED_SCREEN" ] && [ -n "$SSH_TTY" ]
then
case $- in
(*i*)
STARTED_SCREEN=1; export STARTED_SCREEN
mkdir -p -- "$HOME/lib/screen-logs"
screen -R -D -S main ||
echo "Screen failed! continuing with normal bash startup"
esac
fi
__EOF__
Tmux
sudo apt-get update && sudo apt-get upgrade && sudo apt-get -y install tmux
Attacha automatiskt till din tmux session vid inloggning.
if -z "$TMUX" ; then
tmux has-session &> /dev/null
if [ $? -eq 1 ]; then
exec tmux new
exit
else
exec tmux attach
exit
fi
fi
Keep-Alive
Håll SSH-sessioner vid liv genom att skicka ett litet paket med jämna mellanrum.
echo " ServerAliveInterval 120" | sudo tee -a /etc/ssh/ssh_config
SSH Autentisering
För att göra inloggning mot andra maskiner smidigare kan man använda sig av SSH-nycklar som autentisering. Och för att göra det mindre smidigt se Google Authenticator.
Först måste man skaffa sig ett nyckelpar man kan distribuera till övriga hostar. Detta görs endast en gång.
ssh-keygen -t rsa
Sedan skicka ut nyckeln till hostarna med:
ssh-copy-id 192.168.0.10
Om ssh-copy-id ej finns tillgängligt
cat ~/.ssh/id_rsa.pub | ssh user@192.168.0.10 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Alternativt skicka med den vid automatiserad PXE-installation.
Användarnamn
För att slippa skriva olika användarnamn beroende på host kan man lägga in dem så de autoanvänds vid anslutning.
dd of=~/.ssh/config << EOF Host server1 User root Host 192.168.0.1 User elnacho Host fw02 User admin ServerAliveInterval 60 EOF
Bastion
En bastion fungerar som en reverse proxy för SSH-servrar. Komponenten som behövs är SSH Agent Forwarding och finns inbyggt i OpenSSH. För att göra hoppet genom proxyn transparent måste SSH-nycklar användas för autentisering. DNS-uppslag på alla maskiner måste fungera.
nano ~/.ssh/config Host inside-server ProxyCommand ssh user@bastion -W %h:%p Host bastion IdentityFile ~/.ssh/rsa_private_key ForwardAgent yes
.bashrc
.bashrc är en fil som körs varje gång bash laddas. I denna filen kan du skriva egna kommandon som du kan köra i kommandoprompten.
Extract
Skriv extract <filnamn>
för att packa upp en fil.
extract () { if [ -f $1 ] ; then case $1 in *.tar.bz2) tar xvjf $1 ;; *.tar.gz) tar xvzf $1 ;; *.bz2) bunzip2 $1 ;; *.rar) unrar x $1 ;; *.gz) gunzip $1 ;; *.tar) tar xvf $1 ;; *.tbz2) tar xvjf $1 ;; *.tgz) tar xvzf $1 ;; *.zip) unzip $1 ;; *.Z) uncompress $1 ;; *.7z) 7z x $1 ;; *) echo "don't know how to extract '$1'..." ;; esac else echo "'$1' is not a valid file!" fi }