CentOS 7 SSH Port Değişimi

CentOS 7 SSH port değişimi sunucu güvenliği için oldukça önemlidir. SSH üzerinden sunucumuza bağlanırken varsayılan olarak 22. porttan bağlanırız ve dünya üzerinde siber saldırılar gün geçtikçe arttığı için sunucunun IP adresini sizden başka bilen olmasa bile bot olarak kullanılan bilgisayarlar tarafından SSH erişimi brute force olarak düzenli aralıklarla saldırıya maruz kalmaktadır. Okumaya devam et “CentOS 7 SSH Port Değişimi”

Ubuntu 16.04 LTS SSH Portu Değiştirmek

Cloud sunucunuza komut satırından erişip yönetebilmenize olanak sağlayan SSH (Secure Shell) servisi varsayılan olarak TCP 22. port üzerinden erişim hizmeti sağlar ve varsayılan değerler her zaman için dışarıdan gelebilecek olan muhtemel saldırılara açık konumdadır.

Ubuntu 16.04.02 LTS kurulu cloud sunucumuz üzerinde çalışan SSH servisinin TCP 22 olan portunu şu şekilde değiştirebiliriz.

root kullanıcısı ile oturum açıldığında:

# nano /etc/ssh/sshd_config

komutunu çalıştırdıktan sonra aşağıdaki gibi ya da aşağıdakine benzer bir konfigürasyon dosyası ile karşılaşmamız gerekiyor.

# Package generated configuration file
# See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for
Port 22

5. satırında bulunan 22 numaralı değer, SSH bağlantısı için 22. porttan bağlanılabileceğini ifade ediyor. Bu 22 değerini örneğin 22222 yaparak bundan sonra SSH bağlantısı için 22222 numaralı portun kullanılması gerektiğini belirtmiş oluyoruz. Yani konfigürasyonumuz şu şekilde olmalı:

# Package generated configuration file
# See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for
Port 22222

ctrl + X tuş kombinasyonunu kullandıktan sonra Y ile nano editöründe yaptığımız değişkliği kaydedip tekrar komut satırına geri dönüyoruz ve

# service ssh restart

ya da

# service ssh reload

diyerek SSH servisini yeniden başlattığımızda cloud sunucumuz daha güvenli hale geliyor.

Tebrikler!

Linux Üzerinde SSH Key Kurulumu

Linux üzerinde SSH Key kurulumunu anlatmadan önce SSH sisteminin ne olduğundan bahsedelim. SSH (Secure Shell), güvenli veri iletimi amacıyla şifrelenmiş bir ağ protokolüdür. SSH ile birbirine bağlanmış iki bilgisayar arasındaki veri aktarımı bu şifrelenmiş, güvenli ağ protokolü üzerinden yapılır. Bu yapıda, “gizli (private key)” ve onu tamamlayan “açık (public)” olmak üzere iki anahtar bulunur. Kullanıcı “gizli” anahtarını bağlanmak için kullanacağı sistemde, “açık” anahtarını da bağlanacağı sistemde bulundurur. Bağlantı sırasında bu iki anahtarın eşleşmesiyle, sisteme giriş yapılmış olur. Bu sayede sunucu şifreleri paylaşılmadan, sadece sisteme girmesi gereken kullanıcıların public keyleri eklenerek giriş izni verilebilir. Önemli faydalarından biri de kullanıcı adı/şifre adımını ortadan kaldırması ve otomatik giriş yapılabilmesi sayesinde birden cok sunucuyu yönetmekteki güvenlik sorunlarını azaltmasıdır. Aynı zamanda uzaktan dosya transferi, otomatik yedekleme, scriptlerin çalıştırılması gibi adımları da güvenli bir şekilde gerçekleştirmenizi sağlar.

 

SSH Servisinin Kurulumu

Kurulum sırasında SSH servisi eklenmediyse aşağıdaki komut yardımıyla openSSH kurulur;

sudo apt-get install openssh-server
sudo apt-get install openssh-client

Servis kurulduktan sonra aşağıdaki komutla bir SSH Key çifti oluşturulur. Bu anahtarlardan “açık (public key) olanı bağlanılacak servera kaydedilecektir. Public key farklı sunuculara bağlanmak için dağıtılabilir. “Gizli (private key) ise bağlanacak kullanıcı tarafından saklanması ve public key’ i eşlediği için paylaşılmaması gereken anahtardır.

ssh-keygen -t rsa

Bu komutu çalıştırdıktan sonra, sizden Private Key icin bir konum isteyecektir. Bu konumu default haliyle birakmak icin enter’ a basıp gecebilirsiniz. Daha sonra bir Private Key şifresi ister. Bu aşamada dilerseniz şifre kontrolü olmadan sadece iki anahtarın eşleşmesi yöntemiyle giriş yapabilir, ya da iki anahtar eşleştikten sonra bir de şifre tanımlayabilirsiniz. Artık private ve public anahtarlarınız oluşmuş durumda.

Private Key: /root/.ssh/id_rsa dosyası, Public Key: /root/.ssh/id_rsa.pub dosyasıdır. Anahtarları oluşturduktan sonra authorized_keys isimli text dosyayı oluşturup, sunucuya bağlanma yetkisi olan public key’ leri bu text dosyasının içine atacağız. Ama önce dosyayı kullanılır hale getirmek için sshd_config dosyamızı editleyeceğiz. Nano editörüyle açılan sshd_config dosyasının aşağıdaki satırının başındaki # işaretini kaldıracağız.

sudo nano /etc/ssh/sshd_config
AuthorizedKeysfile %h/.ssh/authorized_keys

Artık publik key dosyamızı kopyalararak authorized_keys dosyasını oluşturabiliriz;

cp id_rsa-pub authorized_keys

Sunucunuzda oluşturduğunuz authorized_keys dosyasının içinde “ssh-rsa xxxxx” ile başlayan satır sizin public key’ inizdir. Bu sunucuya bağlanması gereken diğer kullanıcılar için de aynı dosyada alt satıra geçip “ssh-rsa” ile başlayarak public keyi kopyalayabilirsiniz. Burada dikkat edilmesi gereken konu public keyin tek satır halinde yazılması  gerektiğidir. Son olarak chmod ile ssh dosya ve klasörlerinin yetkileri tanımlanır.

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Artık sunucunuz Private Key ile şifre sormadan bağlanmaya açılmıştır.

 

Sunucuyu Sadece SSH ile Erişilebilecek Hale Getirme

Bu aşamadan sonra sunucunuzda password kontrolünü kapatarak, sadece anahtarla girişi aktif hale getirebilirsiniz. Bunun için SSH konfigurasyon dosyasında küçük bir değişiklik yapmak gerekiyor.

sudo nano /etc/ssh/sshd_config

Nano editörüyle açılan sshd_config dosyasındaki aşağıdaki satırın başındaki # işaretini kaldırıp “Yes” olan varsayılan değeri “No” ile değiştireceğiz.

PasswordAuthentication No

Bu işlemin ardından sunucunuz sadece ssh key ile giriş yapan uzak kullanıcıları kabul edecektir. Bu sayedebrute force ile root şifresini kırma girişimleri de engellenmiş olacaktır.

 

Putty

Putty, Linux sunucularımıza uzaktan bağlantı için kullanabileceğimiz açık kaynaklı bir ssh/terminal programıdır. Bu program sayesinde Private Key ile sunucumuza bağlantı kurabiliriz.

Bunun için yapmamız gereken Host Name yerine sunucu ip adresini yazdıktan sonra, o sunucuda bulunan Public Key’ e karşılık gelen Private Key dosyasını “Connection > SSH > Auth” sekmesindeki “Private key file for authentication” alanında göstermek. Bu işlem adımlarından sonra sunucunuza Private Keyiniz ile bağlanabileceksiniz.

Hepsi bu kadar. LimonHost güvenli günler diler.