Linux bulut sunucunuzun güvenliği

Yeni bir bulut sunucusu aldıktan sonra yapmanız gereken ilk şeylerden biri, güvenli kalmasını sağlamaktır. Linux, yetkisiz erişimi önlemeye ve sisteminizi sertleştirmeye yardımcı olacak çok sayıda seçenek sunar. Bu nasıl yapılır kılavuzunda, bulut sunucunuzu korumak için sıkça önerilen bazı adımları bulabilirsiniz.

İletişimleri şifrele (Encrypt communications)

Bulut sunucunuza bağlanırken, iletişiminizi güvence altına almak için önlem almazsanız, tüm trafik genel ağdan geçecektir. Telnet ve FTP gibi şifrelenmemiş aktarım protokollerini veya düz metin olarak şifre veya diğer hassas bilgileri gönderecek herhangi bir şey kullanmaktan kaçının.

Bunun yerine, tüm uzaktan kumanda ve dosya aktarım ihtiyaçlarınız için SSH (Güvenli Kabuk), SCP (Güvenli Kopya), SFTP (SSH Dosya Aktarım Protokolü) veya rsync kullanmalısınız.

SSH protokolü, uzaktan oturum açma ve diğer ağ hizmetlerinin güvenli bir şekilde çalışmasını sağlamak için genel ağ üzerinden güvenli bir şifreli kanal sunar. Bu protokolün en sık kullanılan uygulaması, Linux dağıtımlarının çoğu ve OS X gibi çoğu Unix tabanlı işletim sisteminde bulunan OpenSSH'dir, Windows ortamında PuTTY SSH istemcisi popüler bir alternatiftir.

Güvenli Kopyalama veya SCP, OpenSSH'nin şifreli ağ bağlantısı üzerinden basit dosya aktarımı sağlayan yerleşik bir özelliğidir. SCP, veri aktarımı için SSH kullanır ve SSH ile aynı kimlik doğrulama ve güvenlik seviyesini sağlar. Aşağıda, uzak sunucuya giden ve uzak sunucudan tek bir dosya kopyasının iki örneği verilmiştir.


Kod:
# "Foo.txt" dosyasını yerel ana bilgisayardan uzak bir ana bilgisayara kopyalayın
scp foo.txt <username>@<remotehost>:/some/remote/directory
# "Foo.txt" dosyasını uzak bir ana bilgisayardan yerel ana bilgisayara kopyalayın
scp <username>@<remotehost>:foo.txt /some/local/directory
SFTP, OpenSSH'de bulunan başka bir komut satırı yardımcı programıdır ve varsayılan olarak çoğu Unix işletim sistemine yüklenmelidir. SCP gibi, güvenli olmayan ağ üzerinden dosyaları güvenli bir şekilde aktarmak için SSH kullanır. Windows kullanıcıları, adının SCP ve SFTP işlevlerini uyguladığını öneren WinSCP'yi (Windows Güvenli Kopyalama) kullanarak aynı işlevi alabilir.

rsync, Unix sistemlerinde yaygın olarak bulunan başka bir yardımcı programdır. İki bilgisayardaki bir dosyanın kopyalarını senkronize tutmak için şifreli kanallar üzerinden dosya aktarımı sunar. Program, iki sistem arasında ilk bağlantıyı yapmak için SSH kullanır ve ardından senkronize edilen dosyanın hangi bölümlerinin kopyalanması gerektiğini belirlemek için uzak ana bilgisayarda rsync'i çağırır.

Kullanıcı hesabı güvenlik politikaları

Yeni dağıtılan bulut sunucunuzda ilk kez oturum açtıktan sonra, kendiniz için yeni bir kullanıcı hesabı oluşturduktan ve sudo erişim kontrolünü etkinleştirdikten sonra, başlamak için bazı önemli görevlerdir. “Süper kullanıcı yapmak” anlamına gelen Sudo, aksi takdirde kök hesabı gerektiren eylemleri gerçekleştirmenizi sağlar. Bu, günlük olarak root olarak oturum açmanızı önler, bunun yerine gerektiğinde root düzeyi komutlarını yürütmek için sudo ayrıcalıklarını kullanın.

Sudo kullanmak güvenlik için iyi bir uygulama olarak kabul edilir ve genellikle varsayılan olarak çoğu Linux dağıtımına yüklenir. Sudo'nun sunduğu özelliklerden en iyi şekilde yararlanmak ve güvenli bir kullanıcı erişimi ayarlamak için Linux Kullanıcı Hesabı Güvenliğini Yönetme kılavuzunu izleyin.

Giriş kimlik doğrulamasını izleme

Bugünün internetindeki gerçek, sunucu güvenliğinizin kötü güvenlikli bir giriş bulmayı umarak daha sonra değil, kötü niyetli taraflarca test edileceğidir. Sunucunuz bir gün bile çalışıyorsa, büyük olasılıkla kendi adresiniz dışındaki IP adreslerinden kaynaklanan başarısız giriş denemeleriniz olmuştur.

Linux dağıtımlarının çoğu, ilk kez önyüklendikleri andan itibaren günlükleri kimlik doğrulama için tutar. Farklı sistemler günlükleri farklı adlar altında depolayabilir, örneğin Ubuntu ve diğer Debian tabanlı sunucularla bu günlükleri aşağıdaki komutu kullanarak görüntüleyebilirsiniz.

Kod:
cat /var/log/auth.log | grep 'ssh.*Invalid'
CentOS ve diğer Red Hat varyantlarında bunun yerine bunu kullanın

Kod:
cat /var/log/secure | grep 'ssh.*Invalid'
Çıktı, geçersiz oturum açma denemelerinin oluştuğu, hangi kullanıcı hesaplarının kullanıldığı ve bağlantıların hangi IP adreslerinden geldiği tarih ve saatleri listeler. Çok sayıda başarısız oturum açma bile korkacak bir şey değildir, ancak bu tür davranışların ne kadar yaygın bir uygulama olduğunu gösterir.

Buna karşılık, aşağıdaki komutu kullanarak başarılı oturum açma sürelerinizi kontrol edin.

Kod:
last
Bu, bağlantıların geldiği en son birkaç oturum açma tarihini, tarihi ve IP adresini yazdırır. Yakın zamanda Web Konsolunu UpCloud Kontrol Panelinizde kullandıysanız, tty1 ile işaretlenmiş oturum açma sürelerini, bunun yerine SSH pts / 0 gibi diğer uzaktan kumanda bağlantılarını göreceksiniz; birden fazla SSH oturumu aynı anda açılır.

Bulut sunucunuz Linux varsayılan güvenlik uygulamaları sayesinde hala güvenli olsa da, kolay dinlenmemeli ve sadece bu şekilde kalmasını ummalısınız. Başarısız giriş denemelerini azaltmak ve basit şifre kaba zorlamalarına karşı korumak için bazı güçlü araçlar vardır.

Fail2ban, sunucunuza kurulu bir paket kontrol sistemi veya güvenlik duvarı ile birlikte çalışan böyle bir saldırı önleme çerçevesidir. Belirli sayıda başarısız denemeden sonra bağlantı girişimlerini engellemek için yaygın olarak kullanılır ve kullanıcıya tekrar denemelerine izin verilmeden önce zaman aşımı etkin bir şekilde zaman aşımına uğrar.

Parolalar yerine SSH anahtarları kullanın

Parolalar hemen hemen her şeye kimlik doğrulamanın varsayılan yoludur ve bir noktaya kadar güvende olmakla birlikte, genellikle ortak parolaların birden çok varyasyonunu deneyerek kaba zorlama veya sözlük listeleri kullanılarak tahmin edilebilir. Güvenli ve tahmin edilmesi zor şifreler daha sonra hatırlanması zahmetli olabilir ve kolayca yanlış yazılır.

Başka bir seçenek, bir çift uzun, neredeyse imkansız olan anahtar kodları üreterek kimlik doğrulama için SSH anahtarlarını kullanmaktır. Bu anahtarlardan, ortak anahtar güvenli bir şekilde sunucunuza aktarılırken, özel anahtar kendi bilgisayarınızda güvenle saklanabilir.

Ortak anahtar yalnızca çiftin özel kısmına sahip olan kullanıcıyı tanımlamak için kullanılabilir.

Özel anahtar, yalnızca sizin erişebildiğinizden emin olarak güvenli tutulmalıdır.

Güvenlik duvarı kurun

Ağa bağlı herhangi bir bilgisayar güvenliği için ortak çözümler, bağlantılara izin verilen sınırlamaları belirlemektir. Bu, gelen ve giden ağ trafiğini önceden belirlenmiş güvenlik kurallarına göre izleyen ve kontrol eden bir güvenlik duvarı, bir ağ güvenlik sistemi kullanılarak yapılabilir.

UpCloud kontrol paneli, bulut sunucunuzu güvence altına almak için ilk hat savunması görevi gören yapılandırması kolay bir güvenlik duvarı sunar. UpCloud güvenlik duvarı özellikle sunucuda çalışır, ancak güvenlik duvarı ayarlarını sunucularınız arasında kopyalayabilirsiniz. Güvenlik duvarı, güvenlik duvarı kuralları ayarlarında bulunan önceden yapılmış kurulumlardan birini kullanarak yapılandırma seçeneğiniz de vardır. Hazır kurallar, daha fazla özelleştirme için basit bir başlangıç noktasıdır. UpCloud Güvenlik Duvarı hakkında daha fazla bilgiyi kendi makalesinde okuyabilirsiniz.

Bir Linux sunucusundaki diğer bir seçenek, çoğu dağıtımda yer alan iptables adlı yerleşik çözümü kullanmaktır. CentOS ve diğer Red Hat varyantlarında iptables genellikle önceden yapılandırılmış bazı kurallarla birlikte gelirken, Ubuntu ve Debian sunucuları varsayılan olarak herhangi bir kısıtlama uygulamamaktadır. İptables hakkında daha fazla bilgi edinmek için Linux sunucunuzda CentOS, Debian veya Ubuntu gibi iptables yapılandırmaya yönelik tanıtım kılavuzumuza göz atın.

Sisteminizi güncelleyin

Linux sunucunuzdaki güncellemeleri düzenli olarak kontrol ettiğinizden emin olun. Zaman zaman yeni güvenlik açıkları bulunur ve genellikle hızlı bir şekilde düzeltme eki uygulanır. Bulut sunucunuzun, sisteminizi güncel ve güvenli tutmak için en son düzeltmelere sahip olduğundan emin olun.

Ubuntu sunucusu kullanıcıları bunu aşağıdakilerle yapabilir;

Kod:
sudo apt-get update && sudo apt-get upgrade
Bu, sunucunuzda zaten kurulu olan paketleri güncellemenin basit bir yöntemidir, ancak eski olsa bile paket eklemesine veya kaldırmasına izin verilmez. Gelişmiş "akıllı yükseltme" özelliğini.
Kod:
sudo apt-get update && sudo apt-get dist-upgrade
Komut, paket ilişkilerini kontrol eder ve gerekirse daha az önemli olanların pahasına en önemli paketleri yükseltmeyi amaçlar.

Debian ayrıca apt-get'i içerir ancak bunun yerine yetenek kullanılmasını önerir. Sisteminizi yükseltmek için aşağıdaki komutu girin.
Kod:
sudo aptitude update && sudo aptitude full-upgrade
CentOS sunucuları aşağıda gösterilen basit bir komutla güncellenebilir
Kod:
sudo yum update
Yum, yükseltme komutunu da içerir, ancak hala kullanmış olsanız bile eski olduğunu düşündüğü bazı paketleri de kaldırabilir, bu nedenle güncelleme komutu çoğu durumda genellikle daha güvenlidir.

Örneğin, WordPress veya Joomla gibi içerik yönetimi yazılımı (CMS) kullanıyorsanız, paket yöneticisi dışındaki diğer yazılımları da güncellemeyi unutmayın. Eski web uygulamaları genellikle saldırganlar tarafından hedeflendiğinden, platformunuzu güncel tuttuğunuzdan ve gereksiz eklentileri kaldırdığınızdan emin olun.

Güvenlik açıklarını en aza indirin


Bulut sunucusunun güvenliğini sağlamanın önemli bir parçası, gelen bağlantıları dinleyen gereksiz ağ hizmetlerini açık bırakmamaktır. Yeni kurulan bir Linux sisteminde genellikle yalnızca SSH bağlantı noktası 22 açıktır.

Nmap adlı ağ aracını kullanarak açık portları tarayarak kendi sunucunuzu test edebilirsiniz. Program varsayılan olarak birçok dağıtımda yer almaz, ancak Ubuntu ve Debian veya CentOS'ta sırasıyla aşağıdaki komutlardan biriyle kurabilirsiniz.

Kod:
sudo apt-get install nmap
sudo yum install nmap
Program yüklüyken, yerel ana bilgisayar üzerinde bir test taraması yapmayı deneyin.
Kod:
nmap -v -sT localhost
Çıktı, yerel bağlantılara açık olan bağlantı noktası numaralarını ve bunlarla ilişkili hizmetleri listeler. Ardından, aynı komutu kullanın, ancak bunun yerine sunucunuzun genel IP'sini tarayın. Bu, internet erişimi olan ve Nmap'in kurulu olduğu herhangi bir bilgisayardan aşağıdakiler kullanılarak yapılabilir

Kod:
nmap -v -sT <public IP>
Yerel ana bilgisayar taramasında yalnızca SSH'den fazlası varsa, büyük olasılıkla genel IP listesinde görünmezler. Bu hizmetlere örnek olarak Debian'da bulunan SMTP e-posta sunucusu verilebilir.

Kamu ağına açık olan diğer tüm hizmetlere çok dikkat edilmelidir. Hangi hizmetleri kullandığınızı ve bağlantı yöntemlerinin ne kadar güvenli olduğunu bildiğinizden emin olun. İhtiyacınız olmadığını bildiğiniz hizmetleri devre dışı bırakın.

Kötü amaçlı yazılımları düzenli olarak tarayın

Açık kaynaklı inceleme ve çeşitli son kullanıcı yapılandırmaları, güvenlik açıklarının bulunmasını ve kullanılmasını zorlaştırdığından, Linux sistemlerine genellikle kötü amaçlı yazılım bulaşma olasılığı daha düşüktür. Birincil savunmanız, yetkisiz erişimi durdurmak için önleyici bir çaba olmalıdır, ancak tek güvenlik önleminiz olamaz. Sisteminizdeki herhangi bir şeyin olağan dışı olmadığını düşünmenize rağmen, endişe verici trafik veya sistem hasarına neden olmadan zararlı program uzun süre fark edilmeden çalışabilir. Bu nedenle, yalnızca bulaşmadığından emin olmak için bulut sunucunuzu kötü amaçlı yazılımlara karşı düzenli olarak taramanız önemlidir.

Kötü amaçlı yazılım çeşitliliğinin yanı sıra, dikkat edilmesi gereken başka bir kötü amaçlı yazılım türü de, bir bilgisayara veya işletim sisteminin genellikle erişimini kısıtlarken aynı zamanda varlıklarını gizleyerek erişmek için tasarlanmış bir program koleksiyonu olan rootkit'lerdir. Kök setleri, hedef sistemlerinde kök erişimi kazandıktan sonra genellikle bir saldırgan tarafından kullanılır. Rootkit'ler varlıklarını maskelemeye çalışsalar da, bilinen rootkit varyantlarını tespit etmek için özel olarak yapılmış araçlar vardır.

İzinsiz Giriş Tespit Sistemi uygulayın

Sisteminizi kötü amaçlı yazılım tarayıcıları ve benzerleri ile kontrol etmek, hâlâ çoğunlukla arada sırada gerçekleştirilen zamanlanmış görevlerdir. Bu, taramalar arasında, muhtemelen uzun bir süre için bile fark edilmeden işlerini yürütmek için herhangi bir kötü amaçlı yazılım süresi verir. Kötü amaçlı yazılım taramaları arasındaki kapalı kalma süresinin çözümü, bulut sunucunuzu ve ağ trafiğini sürekli izleyen bir saldırı tespit sistemi (IDS) kurmaktır.

Snort, ağ tabanlı saldırı tespit sistemi (NIDS) için popüler bir seçimdir, açık kaynaklıdır, aktif olarak geliştirilmiştir ve en küçük bulut sunucularına bile yüklenecek kadar hafiftir. Snort'u CentOS, sunucuya kurmak için kılavuzlarımıza göz atın.

Diğer izinsiz giriş algılama sistemi, olası güvenlik ihlallerini tespit etmek, güvenlik sistemleri, kritik sistem dosyalarındaki değişiklikler, ortak kök setleri ve kötü amaçlı işlemleri analiz etmek için sistem davranışını ve yapılandırma durumunu analiz eden ana bilgisayar tabanıdır (HIDS).

OSSEC, günlük analizi, dosya bütünlüğü denetimi, ilke izleme, rootkit algılama, gerçek zamanlı uyarı ve etkin yanıt gerçekleştiren açık kaynaklı HIDS'e iyi bir örnektir. OSSEC, en yaygın Linux dağıtımları da dahil olmak üzere çoğu işletim sistemi için kullanılabilir. Kritik sistemlere çok hafif istemcilerin yüklendiği, daha sonra raporlarını analiz için OSSEC sunucusuna gönderen sunucu-istemci temelinde yapılandırılması amaçlanmıştır. Bu, merkezi güvenlik izlemesi için birden çok bulut sunucusuna sahip kullanıcılar için idealdir.
About author
Slaweally
Ben Ali Çömez (Slaweally) Uzun yıllar internet sektöründe zaman geçirdikten sonra tecrübelerimi sizinle paylaşmak için buradayım.

Comments

There are no comments to display.

guvenlik information

Yazar
Slaweally
Görüntüleme
3,319
Last update

More in Güvenlik (Security) Dökümanları

More from Slaweally