Linux Sunucularda SSH Servisi Güvenliği

Dark-Defender

Kıdemli Üye
17 Nis 2015
3,534
0
Zurich
L3P9Nj.jpg


Public Key Authentication

Kullanıcılar Public ve Private olarak ifade edilen iki farklı dosya üretirler. Public key’in çözümlenebilmesi için Private Key’e sahip olunması ve passphrase’in bilinmesi gerekmektedir. SSH servisi Public Key Authentication’a imkan tanımaktadır.

Her kullanıcının privaye key’i home folder’ının altındaki .ssh dosyasında bulunmalıdır. Private key’in hangi isimde bulunacağı ise linux dağıtımlarına göre değişmektedir. Bu ismi öğrenmek için aşağıdaki komut çalıştırılabilir.

Kod:
mince@rootlab ~ $ cat /etc/ssh/ssh_config |grep 'IdentityFile'
#   IdentityFile ~/.ssh/identity
#   IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa

Key oluşturmak için aşağıdaki komut kullanılmaktadır.

Kod:
ssh-keygen -t rsa -C "[email protected]"
# Creates a new ssh key, using the provided email as a label
# Generating public/private rsa key pair.
# Enter file in which to save the key (/home/you/.ssh/id_rsa):

Bağlantının gerçekleştirileceği sunucuda bir adet normal kullanıcı oluşturulmalı ve ardından bu kullanıcı wheel grubuna dahil edilmelidir.

Bu işlemler için öncelikle /etc/sudoers dosyası düzenlenmelidir. visudo komutu ile sudoers dosyası ön tanımlı metin editörü ile açılır. Aşağıdaki satırın başındaki diyez kaldırılmalıdır.

Kod:
%wheel ALL=(ALL) ALL

Sudoers dosyası düzenlenip kayıt edildikten sonra linux kullanıcısı wheel grubuna dahil edilmelidir.

Kod:
gpasswd -a mehmet wheel

Ardından oluşturulan id_rsa.pub dosyası yönetilecek sunucuda ki mehmet kullanıcısının home folder’ına yerleştirilir. Dosya transferi scp komutu ile yapılabilir.

Kod:
scp ~/.ssh/id_rsa.pub [email protected]:/home/mehmet/.ssh/[public key ismi]

Root Kullanıcısına Sınırlama ve Şifre ile Giriş Yasaklaması

Saldırgan SSH servisine kaba kuvvet saldırısı yapabilmek için öncelikle hedef sistemde tanımlı kullanıcı hesabını bilmelidirler. Her linux sistemde en yetkili kullanıcı root kullanıcısıdır. Saldırganlar deneme yanılma saldırılarında root kullanıcısı için şifre denemeleri yapacaktır. Bu nedenle root kullanıcısı için uzaktan gelen bağlantılar kabul edilmemelidir.

Password Authentication iptal edilmelidir. Bu sayede herhangi bir kullanıcının linux şifresi saldırganlar tarafından ele geçirilse bile ssh bağlantısı kabul edilmeyecektir.

/etc/ssh/sshd_config dosyası metin editörü ile açılarak aşağıdaki iki satır tanımlaması yapılmalıdır.

Kod:
PasswordAuthentication no
PermitRootLogin no

ssh servisi yeniden başlatılarak yeni ayarlar devreye alınacaktır.

SSH Portunun Değiştirilmesi

SSH servisinin çalıştığı portu değiştirilebilir. Bu işlem sayesinde standart taramalarda ssh servisi tespit edilemeyecektir. Bu noktada önemli olan şey, üniversite networkleri gibi kural tanımlamalarına göre erişimlerin sağlandığı yapılarda genellikle reserved port‘ların haricinde ki portlara erişim engellidir. Bu durumda 1024’ten büyük bir portta servis çalıştırıldığında bazı networkler için erişilemez olacaktır..


NOT:
sshd_config dosyasında düzenleme yapılmadan önce yedeği alınmalıdır. Yanlış bir tanımlama yapılırsa linux sunucusuna ssh erişimi sorunu yaşanacaktır. Bu durumda yedek konfigürasyon dosyası devreye alınabilir.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.