Posts Tagged ‘ssh’

Yubico Yubikey tvåstegsverifiering via SSH inloggning i Ubuntu…

Tuesday, December 10th, 2013

Denna guide kommer beskriva hur man i ubuntu konfiguerar så man får tvåstegsverifiering (two facto authentication) via SSH. Exemplet nedan är utfört på en Ubuntu 12.04 server installation tillsammans med en yubikey standard.

Steg 1: Installera nödvändiga paket


För att detta ska fungera måste man installera några paket för att kunna använda yubikeyn se nedan.

sudo apt-get install libpam-yubico libykclient3

Verifiera nu att paketen installerats korekt och kolla så du har filen enligt nedan exempel

ls -la /lib/security/pam_yubico.so
-rw-r–r– 1 root root 35416 Feb 15 2012 /lib/security/pam_yubico.so

Har du filen kan du gå vidare till nästa steg.

Steg 2: Koppla användare till yubikey inloggning


Innan vi konfigurerar SSH ska vi konfigurerar användare för yubikey. Gör enligt nedan exempel men använd korekt användarnamn.

mkdir /home/username/.yubico/
touch /home/username/.yubico/authorized_yubikeys
chmod 700 /home/username/.yubico

Nu ska vi lägga in användare i filen och koppla till din yubikey. Gå in i filen vi skapade ovan med en texteditor se nedan

nano /home/username/.yubico/authorized_yubikeys

Syntaxen i filen är enligt nedan exempel
username:yubikey id
Vill man ha flera yubikeys kopplade på samma användare gör man enligt nedan
username:yubikey id:yubikey id

Exempel

ubuntu:ccccccbdefgh
För flera yubikeys på samma användare
ubuntu:ccccccbdefgh:ccccccbddfef

Yubikey ID får man av att ta en OTP från sin yubikey och ta dom första 12 tecknen i OTPn det är ID:t.
Gör ovan steg för dom användare som ska köra yubikey.

Steg 3: Konfigurera SSH pam.d för yubikey


Nu måste vi konfigurera SSH att använda yubikey PAM modul. Gå in i filen med valfri editor /etc/pam.d/sshd
Lägg till en ny rad i början av filen som ska likna nedan exempelrad.

Exempel (OBS! detta är en rad inte två så se till att det blir rätt i filen)

auth required pam_yubico.so id=2458 key=ure8aX7mdExlmO0q44idqEICIuE= url=http://api.yubico.com/wsapi/2.0/verify?id=%d&otp=%s

Notera att man måste byta ut key värdet alltså det efter key= och id= till det som motsvarar det som hör till din yubikey. För att skaffa ett yubikey id / key så går man in på nedan URL.
https://upgrade.yubico.com/getapikey/

Note:
I exemplet ovan använder jag required och det betyder att man måste logga in med yubikey OTP + lössenord alltså tvåstegsverifiering. Man kan använda sufficient istället då krävs bara att man anger yubikey OTP och inget lössenord krävs alltså envägsverifiering.

Steg 4: Konfigurera SSHd


Vi måste ändra tre värden i /etc/ssh/sshd_config se nedan

PermitEmptyPasswords no
ChallengeResponseAuthentication yes
UsePAM yes

Det finns dock några olika kombinationer för olika typer av inloggning se nedan.

Nedan två är tänkta att användas med sufficient för pam_yubikey från steg 3.
1: Envägsverifiering med yubikey med lössenord avstängt

PasswordAuthentication no

2: Envägsverifiering med yubikey ELLER lössenord

PasswordAuthentication yes

Detta kräver att man använder sig av required i pam_yubikey för sshd från steg 3.
3: Tvåstegsverifiering med yubikey OCH lössenord

PasswordAuthentication yes

Steg 5: Starta om SSHd


För att nu aktivera detta så måste vi starta om SSHd gör det med nedan kommando.

sudo service ssh restart

Steg 6: Testa löseningen


Nu återstår bara att testa om det fungerar som det ska. Anslut med ssh mot din server och se om det du konfigurerat fungerar se exempel nedan.

username1@host1:~$ ssh username2@host2
Yubikey for `username2′:
Password:
Welcome to Ubuntu 12.04.3 LTS (GNU/Linux 3.2.0-57-generic x86_64)

Last login: Tue Dec 10 13:20:39 2013 from host1
username2@host2:~$

Ovan ser man att man först får skicka in en Yubikey OTP och sedan även ange lössenord för username2 användaren.

Slutsats:


Nu om allt fungerar som det ska är nu tvåstegsverifiering aktiverat via SSH på din Ubuntu server. Undrar ni något eller har synpunkter så lämna en komentar eller maila mig.

Källor:


https://github.com/Yubico/yubico-pam/wiki/YubikeyAndSSHViaPAM
http://forum.yubico.com/viewtopic.php?t=822

Uppdatera/installera saker till wordpress via SSH…

Sunday, December 8th, 2013

Denna guide kommer beskriva hur man på linux (Ubuntu) lägger till så man kan uppdatera / installera saker till wordpress via SSH istället för det traditionella FTP/FTPS som inte är särskilt säkert.
Detta fungerar både för att installera nya plugins / teman samt även för den automatiska updateringsfunktion som finns i wordpress. Stödet för automatisk uppdatering kom i wordpress 2.7 så jag utgår från att man har den eller nyare version för att detta ska fungera. Denna guide bygger på att man kör apache som webbserver.

Steg 1: Backup
Börja med att ta en backup av din wordpress installation och databas innan du gör något annat (ta gärna en fullbackup av hela din server om du har hand om den själv för säkerhetskull bättre ha för mycket backup än ingen alls.)

Steg 2: Installera SSH modul för PHP
För att få stöd för SSH(SCP/SFTP) måste man installera några paket för att PHP ska stöda detta. Kör nedan komando på servern som hostar din wordpress blogg.

sudo apt-get install libssh2-1-dev libssh2-php

När dessa paket installerats så kan man testa om php nu har stöd för ssh med nedan komando (OBS! kräver att man har php-cli installerat)

php -m | grep ssh2

Får man nu tillbaka ssh2 så fungerar det som det är tänkt.

Steg 3: Starta om apache
För att nu aktivera detta via webbservern måste man starta om den för att ladda in stödet via PHP det gör man med nedan kommando

sudo service apache2 restart

När detta körts bör nu wordpress ha ett nytt val när du ska installera / uppdatera som heter SSH2.

Steg 4: Konfigurera WordPress för SSH vid installation / uppgradering med användare/lössenord
För att använda SSH nu så fins det några olika sätt man kan göra det med. Nedan är en exempelbild på hur en konfiguration kan se ut.

Nu ska man fylla i anslutnings information i ovan exempel ansluter vi till localhost som användare test001 med ett lössenord. Det kan vara så att localhost inte fungerar då får man köra på DNS namn eller IP. Kör man inte SSH på standardporten som är 22 så kan man skriva : exempelvis localhost:2231.

Alternativt steg 4: Konfigurera WordPress för SSH vid installation / uppgradering med användare och ssh nyckel
Man kan om man vill använda sig av så kallade ssh nyckel för att ansluta med via ssh. Då kan du ha både nyckel + ett lössenord kopplat på ditt konto.
Exempel nedan visar hur det kan se ut i wordpress nät man använder det

Jag kommer inte gå igenom här hur man sätter upp detta hänvisar hit för detta.

Slutsats:
Nu ska din blogg stöda att logga in och updatera via SFTP/SCP via SSH vilket är krypterat till skilnad från traditionell FTP där allt grå i klartext. Har ni några frågor är det bara att höra av er med en komentar eller maila mig.

Källor:
http://tombevers.me/2012/02/25/update-wordpress-via-sshscp/
http://wp.tutsplus.com/articles/tips-articles/quick-tip-upgrade-your-wordpress-site-via-ssh/