Öncelikle bu konuyu açmak için bir kaç gün önce bir makale okudum, makalede linux hakkında okadar çok şeyler yazıyordu’ki inanın kafam karıştı. Ben burda elimden geldiğince kısa ve net anlatım olması için elimden geleni yapacağım. Linux Nedir? ve Linux Güvenliği hakkında bilgiler.
Linux Nedir?
Linux en temel haliyle bir çekirdektir ; bir bilgisayarın donanımı ile daha yüksek seviyeli yazılım arasında düşük seviyeli bir yazılım arayüzü. Linux çekirdeği kendi başına bir işletim sistemi değildir, ancak yüzlerce farklı Linux dağıtımı (‘dağıtımlar’ın kısaltması) için temel bir yapı taşı olarak hizmet eder: Linux’un üzerine inşa edilmiş işletim sistemleri.
Kesin bir Linux dağıtımı yoktur, bu yüzden bu kılavuz boyunca bunu aklınızda bulundurun. Her dağıtımın kendine özgü tuhaflıkları vardır ve birçoğunun açık doğası, yeni sürümlerin hızlı bir şekilde oluşturulabileceği, eski güvenlik sorunlarının düzeltilebileceği ve yenilerinin oluşturulabileceği anlamına gelir. Sertleştirme ile ilgilendiğiniz belirli dağıtımı ve sürümü araştırın!
Temel Linux Sertleştirme Kontrol Listesi
Bu bölüm Linux komut satırını kullanır, ancak bu bölümü tamamlamak için aşina olmanıza gerek yoktur.
Birkaç ipucu:
- Uygulamadan önce her değişikliği araştırmak için zaman ayırın! Her değişikliğin amacını ve ne gibi etkileri olacağını anlayın.
- Aşağıdaki tüm talimatların Ubuntu için yazıldığını 20.04.2.0ve diğer sürümlere veya dağıtımlara tam olarak tercüme edilemeyebileceğini unutmayın.
rootHesabın Güçlü Bir Parola olduğundan emin olun
rootEn güvenli olmalıdır, böylece hesap Linux sisteminde en ayrıcalıkları vardır!
- Terminalde, yazın sudo passwd root. Ardından, şifrenizle kimlik doğrulaması yapacak ve kök hesap için kullanmak istediğiniz yeni şifreyi gireceksiniz. Bu yeni şifreyi unutmayın!
~$ sudo passwd root
[sudo] enter password for admin: ***************
New password: ********************
Retype new password: ********************
passwd: Password updated successfully
Günlük Kullanım için Kullanıcı Hesapları Oluşturun
Her zaman rootkullanıcı olarak oturum açmak cazip gelse de , bunu yapmak saldırganların bir sistemin güvenliğini aşmasını kolaylaştırabilir. Bunun yerine, standart bir kullanıcı hesabıyla oturum açın ve sudokomutu, yükseltilmiş izinler gerektiren belirli komut satırı işlemleri için kullanın .
- Hesaplar terminalden oluşturulabilir, ancak bunları Ayarlar uygulamasından oluşturmak daha kolaydır.
- Ayarlar uygulamasını açın ve kenar çubuğundaki “Kullanıcılar” bölümüne gidin.
- Parolanızla kullanıcı ayarlarının kilidini açın.
- Artık “Kullanıcı Ekle” butonu ile yeni hesaplar oluşturabilirsiniz.
sudoAyrıcalıkları Sınırla
sudokullanıcı hesaplarının komutları root olarak yürütmesi için bir yol sağlar. Bu çok güçlü bir araçtır ve saldırganların ve deneyimsiz kullanıcıların elinde çok tehlikeli olabilir. Bir hesabın kullanması gerekmiyorsa, kullanamayacağından sudoemin olun sudo.
- Ayarlar uygulamasını açın ve kenar çubuğundaki “Kullanıcılar” bölümüne gidin.
- Parolanızla kullanıcı ayarlarının kilidini açın.
- sudoHer hesap için “Yönetici” geçişini kullanarak ayrıcalıklar verin veya iptal edin.
Başlangıçta Hangi Hizmetlerin Çalıştığını Kontrol Edin
Otomatik olarak çalışmaması gereken herhangi bir hizmet olmadığından emin olun.
- Terminalinizde service –status-allhangi hizmetlerin başladığını ve durduğunu görmek için kullanın :
~$ service –status-all
[ + ] apparmor
[ – ] sudo
a +ile işaretlenen hizmetler şu anda çalışıyor ve a -ile işaretlenen hizmetler durduruldu.
Kullanılmayan Yazılımları Kaldırın
Bir yazılım parçası kullanmıyorsanız, onu kaldırmak genellikle iyi bir fikirdir.
- Komutu kullanarak hangi paketlerin kurulu olduğunu görebilirsiniz apt list –installed.
~$ apt list –installed - apt purgePaketi yapılandırmasıyla birlikte kaldıran komutu kullanarak paketleri kaldırabilirsiniz .
~$ apt purge <package> - apt autoremoveKomutu kullanarak kullanılmayan tüm bağımlılıkları (yalnızca diğer paketler tarafından kullanılan paketler) kaldırabilirsiniz .
~$ apt autoremove
Orta Seviye Linux Sertleştirme
Bu bölüm, çok sayıda adımı olan, Linux komut satırına daha fazla aşinalık gerektiren veya yanlış yapılırsa öngörülemeyen sorunlara neden olabilecek daha karmaşık sertleştirme tekniklerini içerir. Bu konuda en iyi deneyim için, yapılandırma dosyalarını oluşturmak ve düzenlemek üzere komut satırını rahatça kullanabilirsiniz.
Bu bölüm, sudoersLinux’un işlevselliği ve güvenliği için kritik olan dosyada değişiklik yapmayı içerir . sudoersDosyada değişiklik yaparken :
- sudoersDosyayı düzenlemek için ASLA standart bir metin düzenleyici kullanmayın .
- Dosyanın geçersiz biçimlendirme ile kaydedilmesini engellediği için dosyayı visudo düzenlemek için HER ZAMAN kullanın sudoers.
sudoYönetici Olmayan Hesaplar için Erişimi Sınırla
Bir kullanıcının sudobelirli bir şey için ayrıcalıklara ihtiyacı varsa sudo, belirli komutlarla kullanım için sınırlı erişim vermek mümkündür .
- sudo“ sudoAyrıcalıkları Sınırla ” bölümünde açıklanan yöntemle kullanıcının ayrıcalıklarının devre dışı bırakıldığından emin olun .
- Aşağıdaki bilgileri hazır bulundurun:
- Sınırlı izin vermek istediğiniz hesabın kullanıcı adı.
- Hesabın erişmesine izin vermek istediğiniz uygulama veya uygulamaların yolu. (Bu, komutu kullanılarak kolayca bulunabilir which.)
- Bir terminal açın ve sudo suroot olarak oturum açmak için komutu çalıştırın (izinlerin ayarlanma şekli nedeniyle, yalnızca sudoaşağıdaki komutlar için kullanmak çalışmayabilir)
~$ sudo su
Password:
sh-3.2# - Dizinde yeni bir dosya oluşturun /etc/sudoers.d. (Ad önemli olmamalı, ancak izinlerini değiştirdiğiniz kullanıcının adını vererek işleri düzenli tutabilirsiniz)
sh-3.2# cd /etc/sudoers.d
sh-3.2# touch exampleuser - Dosyayı istediğiniz metin düzenleyicide açın ve dosyaya şu satırı ekleyin: <username> ALL=(root) <path>. Sen yerine yerleştirir <username>izinleri vermiş olursunuz hangi kullanıcı adına ve <path>uygulamaya yol ile. Örneğin:
exampleuser ALL=(root) /usr/bin/whoami
- Kullanıcının “exampleuser” whoami kullanarak root olarak çalıştırmasına izin vereceğiz sudo.
- Dosyayı kaydedin ve terminalden çıkın.
Bazı programların, bir kullanıcının kendilerine sahip olmamaları gereken ek izinler verebildikleri, ayrıcalık yükseltme olarak bilinen şey için kullanılabileceğini unutmayın. Örneğin, bir kullanıcının bir terminali sudo etkin bir şekilde çalıştırmasına izin vermek, kullanıcının herhangi bir programı kullanarak sudo.
sudoKullanım için Parola Gerektir
Bazı dağıtımlar sudo, parolayı yeniden girmeden kullanım için belirli bir zaman sınırına sahip olacak şekilde yapılandırılmıştır . Kullanışlı olsa da, bu aynı zamanda bir saldırganın sizin kullanmanızı beklemesi ve sudoardından bu sürenin avantajını kullanarak kendi komutlarını kimlik doğrulaması olmadan çalıştırması olasılığını da açar .
- Sudoers dosyasını şu komutla açın sudo visudo.
- Bunun için varsayılan metin düzenleyicisi, kullanımı zor olabilen Vim’dir. visudokullanarak daha kolay bir düzenleyici ile çalıştırabilirsiniz sudo EDITOR=nano visudo.
- Şuna benzeyen bir satır görmelisiniz:
Defaults env_reset
Bu satırı şöyle görünecek şekilde düzenleyin:
Defaults env_reset, timestamp_timeout=0 - Düzenleyiciyi kaydedin ve çıkın.
Sistem Güncellemelerinin Düzenli Olarak Uygulandığından Emin Olun
- Libre yazılımı, Ubuntu için otomatik yazılım güncellemelerini ayarlamak için bir kılavuza sahiptir . Kılavuz, dağıtımın sunucu sürümü için yazılmıştır, ancak masaüstü sürümü için de çalışır.
SSH sunucusunun Devre Dışı veya Sertleştirilmiş olduğundan emin olun
- SSH, bir SSH sunucusu çalıştıran uzak bir bilgisayara erişmenizi sağlar, ancak bunu yapmanız gerekmiyorsa, SSH sunucusunu devre dışı bırakmak en iyisidir. SSH’yi güçlendirme hakkında daha fazla bilgi edinmek istiyorsanız, Tecmint’in OpenSSH sunucularını güçlendirmeye yönelik bir kılavuzu vardır .
Güçlü Parolaları Uygulayın
- Sisteminizi başka kişilerle paylaşıyorsanız, hesaplar için güçlü parolalar uygulamak iyi bir fikirdir. Linux İpucu, PAM kullanarak Ubuntu’da parola politikalarını uygulamak için bir kılavuza sahiptir .
Gelişmiş Sertleştirme
Bu bölüm, sisteminizin ve dijital ortamınızın iyi anlaşılmasını gerektiren sertleştirme içindir. Hangi tekniklerin ve uygulamaların sizin için doğru olduğunu ve bunların nasıl uygulanacağını araştırmanız gerekecektir.
Sistem Başlangıç Güvenliğini Etkinleştir
Donanımın ne zaman verildiğine bağlı olarak, BIOS veya UEFI, bilgisayarınızı başlattığınızda çalışan ilk yazılım parçasıdır. Kurcalanırsa, işletim sistemi gibi sonraki tüm programlar tehlikeye girebilir. Yapılandırmayı parolayla koruyarak, kullanılmayan donanım bağlantı noktalarını devre dışı bırakarak ve bilgisayarın önyükleme yapabileceği aygıtları kısıtlayarak ve daha fazlasıyla başlayabilirsiniz.
NSA , 2017’de bilgisayarınızın bu bölümünü güçlendirmek için en iyi seçenekleri ve önerileri özetleyen bir rapor yayınladı .
Sistem ve Kullanıcı Dosyalarını Şifrele
*Bunun, özellikle tam disk şifrelemesini kullanmak için, genellikle işletim sistemi ilk kurulduğunda ayarlanması gerekir. Şifreleme, çoğu bilgisayarda performans kaybına neden olur, çünkü CPU dosyaların şifresini çözmek için zaman harcamak zorundadır, ancak sistemin fiziksel erişime karşı korunmasına yardımcı olur.
Çekirdeğinizi Sertleştirin
- Çekirdek, işletim sisteminin çekirdeğidir ve içindeki güvenlik açıkları, tüm işletim sistemini saldırılara açık bırakabilir. Çekirdek düzenli olarak güncellenir, bu nedenle göze batan kusurlar olması muhtemel değildir, ancak çekirdeğinizi daha da güvenli hale getirmenin yolları olabilir. Arch Linux Wiki’nin güvenlik sayfasında çekirdek sertleştirme hakkında bir bölüm vardır.
Güvenlik Duvarını Kurun
- Linux çekirdeği, iptablesprogram tarafından yapılandırılan yerleşik bir güvenlik duvarına iptablessahiptir , ancak kullanımı zor olduğu için bir üne sahiptir. Ancak, UFW programları (“Karmaşık Olmayan Güvenlik Duvarı”nın kısaltması) için bir ön uç olarak bulunur iptablesve güvenlik duvarınızı yapılandırmayı çok daha kolaylaştırır.
Linux nedir? ve Linux Güvenligi