December 08, 2016

Ana Sayfa >> Guvenlik >> Authy SSH İle Sunucu Güvenliğinin Arttırılması

Authy SSH İle Sunucu Güvenliğinin Arttırılması

Sistemlerinizde güvenliği biraz daha arttırmak için Authy web sitesinin bizlere sunmuş olduğu uygulamayı kullanacağız ve sistemlerimizde 2FA doğrulamayı aktif etmiş olacağız böylelikle sistemlerinize girişte Cep telefon numaranıza gelen veyahut da uygulama ile oluşturulmuş şifreyi girmeniz gerekecektir. Aksi durumda sistemlere giriş yapabilme gibi bir imkanınız bulunmamaktadır.

Önceliklik olarak bu kuruluma başlamadan önce https://www.authy.com/signup adresinden üye olmanız ve size verilen token bilgilerini kayıt etmeniz gerekmektedir. Kurulumu başarılı bir şekilde tamamladığınızda sistemlerinize girmek için 2FA doğrulaması yapmanız gerekmektedir.

Kurulum İşlemi

Terminalde aşağıdaki komutları yazın:

curl -O 'https://raw.githubusercontent.com/authy/authy-ssh/master/authy-ssh'
sudo bash authy-ssh install /usr/local/bin

Ardından, kullanıcı için iki faktörlü kimlik doğrulamayı etkinleştirin:

sudo /usr/local/bin/authy-ssh enable `whoami` <your-email> <your-country-code> <your-cellphone>

Test yapıyoruz ve her şeyin çalıştığından emin oluyoruz.

authy-ssh test

SSH sunucunuzu yeniden başlatın

sudo service ssh restart

Ssh sunucunuzu yeniden başlatma

Ubuntu

sudo service ssh restart

Debian

sudo service sshd restart

RedHat and Fedora Core Linux

sudo /sbin/service sshd restart

Suse linux

sudo /etc/rc.d/sshd restart

Root ayrıcalıkları olmadan kurulum işlemi

Terminalde aşağıdaki komutları yazın:

curl 'https://raw.githubusercontent.com/authy/authy-ssh/master/authy-ssh' -o authy-ssh
bash authy-ssh install ~/.authy-ssh/

Şimdi kullanıcıyı korumak için gerekli komutu girin:

bash ~/.authy-ssh/authy-ssh protect

Bir kullanıcı da iki faktörlü kimlik doğrulamayı etkinleştirmek

Kurulum bittikten sonra, korumak istediğiniz kullanıcılar için iki faktörlü kimlik doğrulamayı proaktif olarak etkinleştirmeniz gerekir.

Kullanıcıları etkinleştirmek için aşağıdaki komutu yazın ve karşınıza çıkacak olan formu doldurun:

sudo authy-ssh enable

Tek satırda yapmak isterseniz aşağıdaki komutu vermeniz gerekmektedir:

sudo authy-ssh enable <local-username> <user-email> <user-cellphone-country-code> <user-cellphone>

Nasıl çalışır

Authy-ssh, her girişten önce kendini çalıştırmak için sshd_config yönergesine ` ForceCommand` kullanmaktadır. Yüklemeyi tamamladıktan sonra sshd_config dosyanızın görünümünü aşağıda görebilirsiniz:

[[email protected] ~]# cat  /etc/ssh/sshd_config | grep ForceCommand
ForceCommand /usr/local/bin/authy-ssh login

Authy-ssh her çalıştırıldığında, /usr/local/bin/authy-ssh.conf dosyasından yapılandırmaları okuyacaktır.

Örnek:

[[email protected] ~]# cat /usr/local/bin/authy-ssh.conf
banner=Good job! You've securely logged in with Authy.
api_key=05c783f2db87b73b198f11fe45dd8bfb
user=root:1
user=daniel:1

Bu durumda kullanıcı rootu ve daniel’in iki faktörlü olduğu ve 1’in authy_id olduğu anlamına gelir. Bir kullanıcı bu listede yoksa, authy-ssh otomatik olarak içeri girmesine izin verir.

İki aşamalı kimlik doğrulamasını otomatik dağıtım araçları ile kullanma.

capybara, chef, puppet, cfengine, git kullanırsanız, bu araçlarla ilgili yeni kullanıcılar oluşturabilirsiniz; böylece, ikş aşamalı kimlik doğrulamayı kullanabilirsiniz. Alternatif olarak, ForceCommand yönergesini kullanarak kullanıcıları eşleştirebilirsiniz.

Buna iyi bir örnek iki faktörlü bir kullanıcı grubu oluşturmaktır.

groupadd two-factor
usermod  -a -G two-factor root

Şimdi benim root kullanıcım iki faktörlü gruba girdiğinde, /etc/ssh/sshd_config dosyamı düzenliyorum

[[email protected] ~]# cat /etc/ssh/sshd_config | grep ForceCommand -A 1 -B 1
match Group two-factor
ForceCommand /usr/local/bin/authy-ssh login

service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

Şimdi force komutu yalnızca iki faktörlü gruba ait kullanıcılar üzerinde çalışacaktır.

Scp, sftp, mosh ve git push iki aşamalı kimlik doğrulama kullanımı.

Scp, sftp, mosh ve git clone | fetch | push gibi etkileşimli olmayan komutları etkinleştirmek için ortam değişkenini AUTHY_TOKEN istemciden geçirmemize izin vermelisiniz. Bunu yapmak için sshd_config düzenleyin (normalde /etc veya /etc/ssh/ da bulunur) ve AUTHY_TOKEN i AcceptEnv yönergesine ekleyin:

AcceptEnv AUTHY_TOKEN

Ardından, istemciyi bu değişkeni sunucuya gönderecek şekilde yapılandırabilirsiniz, ilk önce ~ /.ssh/config açıp bunu yapabilir ve aşağıdakileri ekleyebilirsiniz:

Host *
	SendEnv AUTHY_TOKEN

And finally pass the token before the command:

    AUTHY_TOKEN="valid-token" git push origin master
    AUTHY_TOKEN="valid-token" scp server:path/to/file local-file
    AUTHY_TOKEN="valid-token" mosh server

NOT

Geçersiz bir belirteç girerseniz sftp gibi durumlarda, “Received message too long 458961713” gibi bir yanıt alabilirsiniz. Bunun nedeni, etkileşimli komutun, program tarafından döndürülen uygun çıktı, metin mesajını oluşturamamasıdır.

Aynı unix hesabı paylaşan birden çok kullanıcı.

Tek bir giriş bilgilerini paylaşmanız gereken birçok kullanıcınız varsa, aynı tokeni paylaşmadan güçlü iki faktörlü kimlik doğrulamasını kullanabilirsiniz. Bu, her kullanıcının kendi reddine izin vermeyecek şekilde kendi Authy Token’ine sahip olabileceği anlamına gelir.

Bunu başarmak için ForceCommand yönergesini sshd_config den silin veya yorumlayın:

sudo sed -ie 's/^\(ForceCommand.*authy-ssh.*\)/#\1/g' /etc/ssh/sshd_config

Ve sonra her kişi için aşağıdaki komutu kullanarak ssh anahtarını ekleyin:

sudo authy-ssh protect

Bitmiş gibi gözüken bir authorized_keys dosyası örneğin:

command="/usr/local/bin/authy-ssh login 13386" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGRJbWu+WLVXYVADY3iQPE1kA7CIOSqHmskPM8qIAzKzq+1eRdmPwDZNmAvIQnN/0N7317Rt1bmTRLBwhl6vfSgL6677vUwsevPo27tIxdja67ELTh55xVLcJ3O8x2qkZsySgkLP/n+w3MUwLe1ht31AZOAsV7J7imhWipDijiysNgvHyeSWsHqExaL1blPOYJVHcqPbKY4SxFRq/MWeyPf/Sm24MFSKEaY6u0kNx8MLJ1X9X/YxmY9rdvzsZdQ7Z/PYhYt2Ja/0mzfYx2leeP2JQBsVfZZzAoFEPpw6mSP9kJREGe2tXvS9cRenhz/+V0+mvSJKG0f0Zzh428pTzN
command="/usr/local/bin/authy-ssh login 20" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAyvj2d0rSDukDT04mK7njUxtXffUrOnDCm2Bqub0zN7LQS733nBHp89aMuBI5ENjw1SQ2qXhLxvK1Xhr0pQr+dOWNn3emQjQuiA+YL39yp2RLLpflerJ3KAVY09CHYLFxdKj/DJgXsH+LMAPe2uVmWCP2xAV5ZcLnz3CdS2SX/EVlbNrftesZx9uAbmwKPLY1pmW7q/75AhJRow8VTP7zM/VS7jEHkj03g51BZGB8tMI3G8RDVEDtu2jVwZiq+8BaNCyjYVlsLfu6uGhnXeeUS3swu/atlt+pxy+QTf/HGvrJR58tER+foqheWtV3LqXN4oLckzqTVkDDmnNJlmrpYQ==

Önceki komut ssh genel anahtarı, cep telefonu ve e-postayı kullanıcıdan isteyecektir.

Kaldırma

Aşağıdaki komutların girilmesi halinde sistemden Authy SSH uygulaması tamamen kaldırılacaktır.

sudo authy-ssh uninstall
sudo service ssh restart

Mertcan GÖKGÖZ Hakkında

Mertcan GÖKGÖZ Yönetim Bilişim Sistemleri Mezunu, Linux Hacısı, Ağ Yöneticisi, Araştırmacı, Yazılımcı, Güzel İnsan


Bir şeyler bu yazıda doğru ya da eksik değil mi? Düzenleyin ve pull request Oluşturun



Yorumlar