OpenSSH á Ubuntu Að setja upp SSH server á Ubuntu er afskaplega einfalt með OpenSSH pakkanum. Til þess að gera það almennilega þarf þó að hafa nokkra hluti við hendina
a) Tölvu sem virkar (má vera gömul)
b) Linux kerfi (þessi grein gerir ráð fyrir Ubuntu)
c) Nettengingu (duh)
d) Router sem með DMZ, einhverju svoleiðis, þannig hægt sé að forwarda portum fyrir sérstakar vélar. SpeedTouch routerar hafa þetta, ég veit ekki með þessa frá Tal/Vodafone/etc.

Server setup
Í fyrsta lagi þurfum við að sækja OpenSSH pakkann
sudo apt-get install openssh
Í raun er þetta tilbúið núna. En til þess að gera þetta öruggara þá skulum við stilla þetta smávegis.
sudo gedit /etc/ssh/sshd_config
sshd_config er config file fyrir SSH serverinn (SSH Deamon). Þarna eru nokkrir valmöguleikar. Að mínu mati er alveg nauðsynlegt að breyta nokkrum þeirra;
 Port 22  # Breyta þessu í eitthvað mun, mun hærra en 22
PermitRootLogin no    # Default er yes, það er bara stórhættulegt
PasswordAuthentication no    # Ef fylgt er Public-Key leiðbeiningum er mælt stórlega með þessu. Ef notast er við denyhosts eða fail2ban (eða eitthvað slíkt) skal hafa þetta í yes
Að öðru leyti virkar þetta fínt. Það er þó mjög leyfilegt að breyta þessu eins og maður vill.

Athugið að eftir að þið hafið breytt stillingum er nauðsynlegt að restarta servernum. Það er gert með:
sudo /etc/init.d/ssh restart
Einnig er hægt að setja start eða stop í stað restart.

Í öðru lagi er hægt að fara tvær og jafnvel fleiri leiðir. Hægt er að hafa serverinn bara svona, en það gerir öðrum kleift að bruteforca sig inná serverinn. Það viljum við ekki að gerist. Þess vegna setjum við upp extra-varnir. Hægt er að setja upp pakka á borð við denyhosts eða fail2ban og er það frekar einfalt. En það sem ég mæli með er að setja upp RSA eða DSA lykil sem maður verður að hafa til að tengjast servernum.

Public Key setup
Til að útskýra þetta betur munum við nota tvö prefixa, server$ er fyrir vélina þar sem OpenSSH pakkinn er og client$ er fyrir þann sem ætlar að tengjast vélinni.
client$ mkdir ~/.ssh
client$ chmod 700 ~/.ssh
client$ ssh-keygen -q -f ~/.ssh/id_rsa -t rsa
Mælt er með því að passphrase sé meira en 16 stafir.

client$ scp ~/.ssh/id_rsa.pub ADDRESSA.Á.SERVER: 
# Tvípunkturinn er nauðsynlegur
# Einnig er hægt að færa þetta yfir með usb lykli eða senda email eða slíkt.
server$ mkdir ~/.ssh
server$ chmod 700 ~/.ssh
server$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
server$ chmod 600 ~/.ssh/authorized_keys
rm ~/id_rsa.pub
Þá ætti þetta að vera komið. Hægt er að gera þetta the other way around líka, en þá er ssh-keygen gert á servernum og id_rsa skráin (ekki .pub) færð yfir. Skoðið líka /etc/ssh/ssh_config á client ef þið lendið í vandræðum með að tengjast eftir þetta.


Opna Port
Þessar stillingar ættu að vera nóg til þess að tengjast vélinni á lani. Hins vegar er það frekar tæpt mission. Til þess að geta tengst hvar sem er í heiminum þá þurfum við að opna fyrir portið sem við völdum áðan. Þið ættuð að geta fundið leiðbeiningar fyrir ykkar router á http://www.port-forward.com .

Sniðugt lesefni
http://sial.org/howto/openssh/publickey-auth/
https://help.ubuntu.com/community/SSHHowto/
http://www.ubuntugeek.com/securing-ssh.html # Denyhosts guide
http://kallasoft.com/using-fail2ban-to-prevent-brute-force-attacks/ # Fail2ban guide
indoubitably