Linux Sunucuları için 25 Sağlamlaştırıcı Güvenlik İpucu
Herkes Linux'un varsayılan olarak güvenli olduğunu söylüyor ve bir ölçüde de bu konuda hemfikir (Tartışmalı konular). Ancak Linux'un varsayılan olarak yerleşik bir güvenlik modeli vardır. Daha güvenli bir sistem oluşturmaya yardımcı olabilecek şekilde ayarlamanız ve ihtiyacınıza göre özelleştirmeniz gerekir. Linux'un yönetimi daha zordur ancak daha fazla esneklik ve yapılandırma seçeneği sunar.
Bir üretimdeki bir sistemi bilgisayar korsanlarının ve kırıcıların elinden korumak Sistem Yöneticisi için zorlu bir görevdir. Bu, "Linux Kutusunun Güvenliğini Sağlama" veya "Linux Kutusunu Sağlamlaştırma" ile ilgili ilk makalemizdir. Bu yazıda Linux sisteminizin güvenliğini sağlamak için 25 yararlı ipucu ve püf noktasını açıklayacağız. Aşağıdaki ipuçları ve püf noktalarının sisteminizin güvenliğini artırmanıza yardımcı olacağını umuyoruz.
1. Fiziksel Sistem Güvenliği
BIOS'u, BIOS'ta CD/DVD, Harici Aygıtlar, Disket Sürücüsü'nden önyüklemeyi devre dışı bırakacak şekilde yapılandırın /strong>. Ardından, BIOS şifresini etkinleştirin ve ayrıca sisteminize fiziksel erişimi kısıtlamak için GRUB'u şifreyle koruyun.
- Linux Sunucularını Korumak için GRUB Şifresini Ayarlayın
2. Disk Bölümleri
Herhangi bir felaket yaşanması durumunda daha yüksek veri güvenliği elde etmek için farklı bölümlerin olması önemlidir. Farklı bölümler oluşturularak veriler ayrılabilir ve gruplandırılabilir. Beklenmedik bir kaza meydana geldiğinde yalnızca o bölüme ait veriler zarar görür, diğer bölümlerdeki veriler ise hayatta kalır. Aşağıdaki ayrı bölümlere sahip olduğunuzdan ve üçüncü taraf uygulamaların /opt altında ayrı dosya sistemlerine yüklenmesi gerektiğinden emin olun.
/
/boot
/usr
/var
/home
/tmp
/opt
3. Güvenlik Açığı En Aza İndirmek İçin Paketleri En Aza İndirin
Gerçekten her türlü hizmetin kurulmasını istiyor musunuz? Paketlerdeki güvenlik açıklarını önlemek için gereksiz paketler kurmaktan kaçınmanız önerilir. Bu, bir hizmetten ödün verilmesinin diğer hizmetlerin de tehlikeye atılmasına yol açması riskini en aza indirebilir. Güvenlik açığını en aza indirmek için sunucudaki istenmeyen hizmetleri bulun ve kaldırın veya devre dışı bırakın. Çalışma düzeyi 3'te çalışan hizmetleri bulmak için 'chkconfig' komutunu kullanın.
/sbin/chkconfig --list |grep '3:on'
İstenmeyen herhangi bir hizmetin çalıştığını öğrendikten sonra aşağıdaki komutu kullanarak bunları devre dışı bırakın.
chkconfig serviceName off
Bir sistemdeki tüm yüklü paketleri listelemek ve bunları kullanarak kaldırmak için "yum" veya "apt-get" araçları gibi RPM paket yöneticisini kullanın. aşağıdaki komut.
yum -y remove package-name
sudo apt-get remove package-name
- 5 chkconfig Komut Örnekleri
- RPM Komutlarına 20 Pratik Örnek
- Linux Paket Yönetimi için 20 Linux YUM Komutu
- Paket Yönetimini Yönetmek için 25 APT-GET ve APT-CACHE Komutu
4. Dinleme Ağı Bağlantı Noktalarını Kontrol Edin
'netstat' ağ oluşturma komutunun yardımıyla tüm açık bağlantı noktalarını ve ilgili programları görüntüleyebilirsiniz. Yukarıda söylediğim gibi tüm istenmeyen ağ servislerini sistemden devre dışı bırakmak için 'chkconfig' komutunu kullanın.
netstat -tulpn
- Linux'ta Ağ Yönetimi için 20 Netstat Komutu
5. Güvenli Kabuk (SSH) kullanın
Telnet ve rlogin protokolleri, güvenlik ihlali olan şifreli formatı değil, düz metin kullanır. SSH, sunucuyla iletişim sırasında şifreleme teknolojisini kullanan güvenli bir protokoldür.
Gerekmedikçe asla doğrudan root olarak giriş yapmayın. Komutları yürütmek için “sudo”yu kullanın. sudo, /etc/sudoers dosyasında belirtilir, ayrıca VI düzenleyicisinde açılan “visudo” yardımcı programıyla da düzenlenebilir.
Ayrıca varsayılan SSH 22 bağlantı noktası numarasını daha yüksek düzeydeki başka bir bağlantı noktası numarasıyla değiştirmeniz önerilir. Ana SSH yapılandırma dosyasını açın ve kullanıcıların erişimini kısıtlamak için aşağıdaki parametrelerden bazılarını yapın.
vi /etc/ssh/sshd_config
Kök Girişini devre dışı bırak
PermitRootLogin no
Yalnızca Belirli Kullanıcılara izin ver
AllowUsers username
SSH Protokolü 2 Sürümünü Kullanın
Protocol 2
- SSH Sunucusunu Güvenli Hale Getirmek ve Korumak için En İyi 5 Uygulama
6. Sistemi güncel tutun
Kullanılabilir olduğunda sistemi her zaman en son sürüm yamaları, güvenlik düzeltmeleri ve çekirdekle güncel tutun.
yum updates
yum check-update
7. Cronjobs'ı Kilitlemek
Cron'un, işleri kimin yürütmek isteyebileceğini ve kimin istemeyebileceğini belirlemeye olanak tanıyan kendi yerleşik özelliği vardır. Bu, /etc/cron.allow ve /etc/cron.deny adlı dosyaların kullanımıyla kontrol edilir. Bir kullanıcıyı cron kullanarak kilitlemek için cron.deny dosyasına kullanıcı adlarını eklemeniz ve kullanıcının cron.allow dosyasında cron eklentisini çalıştırmasına izin vermeniz yeterlidir. Tüm kullanıcıların cron kullanmasını devre dışı bırakmak istiyorsanız 'TÜMÜ' satırını cron.deny dosyasına ekleyin.
echo ALL >>/etc/cron.deny
- Linux'ta 11 Cron Planlama Örneği
8. Algılamak için USB çubuğunu devre dışı bırakın
Çoğu zaman, verileri hırsızlığa karşı korumak ve güvence altına almak için kullanıcıların sistemlerde USB bellek kullanmasını kısıtlamak isteriz. '/etc/modprobe.d/no-usb' adlı bir dosya oluşturun ve aşağıdaki satırı eklemek USB depolama alanını algılamayacaktır.
install usb-storage /bin/true
9. SELinux'u açın
Güvenliği Geliştirilmiş Linux (SELinux), çekirdekte sağlanan zorunlu bir erişim kontrolü güvenlik mekanizmasıdır. SELinux'un devre dışı bırakılması, güvenlik mekanizmasının sistemden kaldırılması anlamına gelir. Eğer sisteminiz internete bağlıysa ve genel erişime açıksa, kaldırmadan önce iki kez dikkatlice düşünün, o zaman biraz daha düşünün.
SELinux üç temel çalışma modu sağlar ve bunlar da öyledir.
- Zorlama: Bu, makinede SELinux güvenlik politikasını etkinleştiren ve uygulayan varsayılan moddur.
- İzin Veren: Bu modda, SELinux sistemde güvenlik politikasını uygulamaz, yalnızca uyarır ve eylemleri günlüğe kaydeder. Bu mod, SELinux ile ilgili sorunların giderilmesi açısından çok faydalıdır.
- Devre Dışı: SELinux kapalıdır.
SELinux modunun mevcut durumunu 'system-config-selinux', 'getenforce' veya ' kullanarak komut satırından görüntüleyebilirsiniz. sestatus' komutları.
sestatus
Devre dışıysa aşağıdaki komutu kullanarak SELinux'u etkinleştirin.
setenforce enforcing
Ayrıca, etkinleştirebileceğiniz veya devre dışı bırakabileceğiniz '/etc/selinux/config' dosyasından da yönetilebilir.
10. KDE/GNOME Masaüstü Bilgisayarlarını Kaldır
Özel LAMP sunucunuzda KDE veya GNOME gibi X Window masaüstü bilgisayarlarını çalıştırmanıza gerek yoktur. Sunucunun güvenliğini ve performansını artırmak için bunları kaldırabilir veya devre dışı bırakabilirsiniz. Basitçe devre dışı bırakmak için '/etc/inittab' dosyasını açın ve çalışma düzeyini 3 olarak ayarlayın. Sistemden tamamen kaldırmak istiyorsanız aşağıdaki komutu kullanın.
yum groupremove "X Window System"
11. IPv6'yı Kapatın
IPv6 protokolü kullanmıyorsanız, çoğu uygulama veya politika IPv6 protokolünü gerektirmediğinden ve şu anda sunucuda gerektirmediğinden bunu devre dışı bırakmalısınız. . Ağ yapılandırma dosyasına gidin ve devre dışı bırakmak için aşağıdaki satırları ekleyin.
vi /etc/sysconfig/network
NETWORKING_IPV6=no
IPV6INIT=no
12. Kullanıcıların Eski Şifreleri Kullanmasını Kısıtlayın
Kullanıcıların aynı eski şifreleri kullanmalarına izin vermek istemiyorsanız bu çok kullanışlıdır. Eski şifre dosyası /etc/security/opasswd konumunda bulunur. Bu, PAM modülü kullanılarak gerçekleştirilebilir.
RHEL/CentOS/Fedora altında '/etc/pam.d/system-auth' dosyasını açın.
vi /etc/pam.d/system-auth
Ubuntu/Debian/Linux Mint altında '/etc/pam.d/common-password' dosyasını açın.
vi /etc/pam.d/common-password
'auth' bölümüne aşağıdaki satırı ekleyin.
auth sufficient pam_unix.so likeauth nullok
Bir kullanıcının, son 5 şifresini tekrar kullanmasını engellemek için 'şifre' bölümüne aşağıdaki satırı ekleyin.
password sufficient pam_unix.so nullok use_authtok md5 shadow remember=5
Yalnızca son 5 şifre sunucu tarafından hatırlanır. Son 5 eski şifrenizden herhangi birini kullanmayı denediyseniz aşağıdaki gibi bir hata alırsınız.
Password has been already used. Choose another.
13. Kullanıcı Şifresinin Geçerlilik Süresi Nasıl Kontrol Edilir?
Linux'ta kullanıcının şifreleri '/etc/shadow' dosyasında şifrelenmiş biçimde saklanır. Kullanıcının şifre süresinin dolduğunu kontrol etmek için 'chage' komutunu kullanmanız gerekir. Son şifre değiştirme tarihi ile birlikte şifrenin sona erme ayrıntılarına ilişkin bilgileri görüntüler. Bu ayrıntılar sistem tarafından kullanıcının şifresini ne zaman değiştirmesi gerektiğine karar vermek için kullanılır.
Mevcut herhangi bir kullanıcının son kullanma tarihi ve saat gibi eskime bilgilerini görüntülemek için aşağıdaki komutu kullanın.
#chage -l username
Herhangi bir kullanıcının parola eskimesini değiştirmek için aşağıdaki komutu kullanın.
#chage -M 60 username
#chage -M 60 -m 7 -W 7 userName
Parametreler
- -M Maksimum gün sayısını ayarlayın
- -m Minimum gün sayısını ayarlayın
- -W Uyarının gün sayısını ayarlayın
14. Hesabı Manuel Olarak Kilitleme ve Kilidini Açma
Kilitleme ve kilit açma özellikleri oldukça kullanışlıdır, bir hesabı sistemden kaldırmak yerine bir hafta veya bir ay süreyle kilitleyebilirsiniz. Belirli bir kullanıcıyı kilitlemek için takip komutunu kullanabilirsiniz.
passwd -l accountName
Not : Kilitli kullanıcı hâlâ yalnızca kök kullanıcı tarafından kullanılabilir. Kilitleme, şifrelenmiş parolanın (!) dizesiyle değiştirilmesiyle gerçekleştirilir. Birisi bu hesabı kullanarak sisteme erişmeye çalışırsa aşağıdakine benzer bir hata alacaktır.
su - accountName
This account is currently not available.
Kilitli bir hesabın kilidini açmak veya erişimi etkinleştirmek için as komutunu kullanın. Bu, şifrelenmiş parolaya sahip (!) dizesini kaldıracaktır.
passwd -u accountName
15. Daha Güçlü Şifrelerin Uygulanması
Bazı kullanıcılar yumuşak veya zayıf şifreler kullanıyor ve şifreleri sözlük tabanlı veya kaba kuvvet saldırılarıyla ele geçirilebilir. 'pam_cracklib' modülü, kullanıcıyı güçlü şifreler oluşturmaya zorlayacak PAM (Takılabilir Kimlik Doğrulama Modülleri) modül yığınında mevcuttur. Aşağıdaki dosyayı bir editörle açın.
Ayrıca Okuyun:
vi /etc/pam.d/system-auth
Ve sırasıyla küçük harflerle (lcredit, ucredit, dcredit ve/veya ocredit gibi kredi parametrelerini kullanarak satır ekleyin , büyük harf, rakam ve diğer)
/lib/security/$ISA/pam_cracklib.so retry=3 minlen=8 lcredit=-1 ucredit=-2 dcredit=-2 ocredit=-1
16. Iptables'ı etkinleştirin (Güvenlik Duvarı)
Sunucularınıza yetkisiz erişimi güvence altına almak için Linux güvenlik duvarını etkinleştirmeniz önemle tavsiye edilir. iptables'daki kuralları gelen, giden ve yönlendirme paketlerini filtrelemek için uygulayın. İzin verilecek ve reddedilecek kaynak ve hedef adreslerini belirli udp/tcp bağlantı noktası numarasında belirtebiliriz.
- Temel IPTables Kılavuzu ve İpuçları
17. Inittab'da Ctrl+Alt+Delete'i devre dışı bırakın
Çoğu Linux dağıtımında 'CTRL-ALT-DELETE''e basmak sisteminizin yeniden başlatılmasına neden olur. Bu nedenle, birisi yanlışlıkla bunu yaparsa, bu seçeneğin en azından üretim sunucularında etkinleştirilmesi iyi bir fikir değildir.
Bu ‘/etc/inittab’ dosyasında tanımlıdır, o dosyaya dikkatli bakarsanız aşağıdakine benzer bir satır göreceksiniz. Varsayılan olarak satır yorumlanmaz. Bunu yorumlamamız lazım. Bu özel tuş dizisi sinyali bir sistemi kapatacaktır.
Trap CTRL-ALT-DELETE
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
18. Hesaplarda Boş Şifrelerin Kontrol Edilmesi
Boş bir parolaya sahip herhangi bir hesap, web üzerindeki herhangi bir kişiye yetkisiz erişime açıldığı anlamına gelir ve bu, Linux sunucusundaki güvenliğin bir parçasıdır. Bu nedenle, tüm hesapların güçlü şifrelere sahip olduğundan ve kimsenin yetkili erişime sahip olmadığından emin olmalısınız. Boş şifreli hesaplar güvenlik riski taşır ve kolayca hacklenebilir. Boş şifreye sahip hesap olup olmadığını kontrol etmek için aşağıdaki komutu kullanın.
cat /etc/shadow | awk -F: '($2==""){print $1}'
19. Oturum Açmadan Önce SSH Bannerini Görüntüleyin
SSH kimlik doğrulamasından önce bazı güvenlik uyarılarını içeren yasal bir banner veya güvenlik banner'larına sahip olmak her zaman daha iyi bir fikirdir. Bu tür bannerlar ayarlamak için aşağıdaki makaleyi okuyun.
- Kullanıcılara SSH Uyarı Mesajını Gösterin
20. Kullanıcı Faaliyetlerini İzleyin
Çok sayıda kullanıcıyla çalışıyorsanız, her bir kullanıcı etkinliği ve bunlar tarafından tüketilen işlemlere ilişkin bilgileri toplamak ve bunları daha sonra veya herhangi bir performans veya güvenlik sorunu olması durumunda analiz etmek önemlidir. Ancak kullanıcı etkinlikleri bilgilerini nasıl izleyebilir ve toplayabiliriz.
Bir sistemdeki kullanıcı etkinliklerini ve süreçlerini izlemek için 'psacct' ve 'acct' adı verilen iki faydalı araç vardır. Bu araçlar bir sistem arka planında çalışır ve sistemdeki her kullanıcı etkinliğini ve Apache, MySQL, SSH gibi hizmetler tarafından tüketilen kaynakları sürekli olarak izler. FTP vb. Kurulum, yapılandırma ve kullanım hakkında daha fazla bilgi için aşağıdaki URL'yi ziyaret edin.
- Kullanıcı Etkinliğini psacct veya acct Komutlarıyla İzleyin
21. Günlükleri Düzenli Olarak İnceleyin
Günlükleri özel günlük sunucusuna taşıyın; bu, davetsiz misafirlerin yerel günlükleri kolayca değiştirmesini engelleyebilir. Aşağıda Ortak Linux varsayılan günlük dosyalarının adı ve bunların kullanımı verilmiştir:
- /var/log/message – Tüm sistem günlüklerinin veya mevcut etkinlik günlüklerinin bulunduğu yer.
- /var/log/auth.log – Kimlik doğrulama günlükleri.
- /var/log/kern.log – Çekirdek günlükleri.
- /var/log/cron.log – Crond günlükleri (cron işi).
- /var/log/maillog – Posta sunucusu günlükleri.
- /var/log/boot.log – Sistem önyükleme günlüğü.
- /var/log/mysqld.log – MySQL veritabanı sunucusu günlük dosyası.
- /var/log/secure – Kimlik doğrulama günlüğü.
- /var/log/utmp veya /var/log/wtmp : Giriş kayıt dosyası.
- /var/log/yum.log: Yum günlük dosyaları.
22. Önemli Dosya Yedekleme
Bir üretim sisteminde, olağanüstü durumların kurtarılması için önemli dosyaların yedeğini almak ve bunları güvenlik kasasında, uzak tesiste veya tesis dışında tutmak gerekir.
23. NIC Bağlanması
NIC bağlamada iki tür mod vardır; bağlama arayüzünde bahsetmek gerekir.
- mode=0 – Sıralamalı Sıralama
- mode=1 – Etkin ve Yedek
NIC Bağlama tek bir hata noktasından kaçınmamıza yardımcı olur. NIC bağlamada, iki veya daha fazla Ağ Ethernet Kartını birbirine bağlarız ve diğerleriyle konuşmak için IP adresi atayabileceğimiz tek bir sanal Arayüz oluştururuz sunucular. Bir NIC Kart'ın herhangi bir nedenden dolayı kapalı olması veya kullanılamaması durumunda ağımız kullanılabilir olacaktır.
Ayrıca Oku : Linux'ta NIC Kanal Bağlantısı Oluşturun
24. /boot'u salt okunur olarak tutun
Linux çekirdeği ve ilgili dosyaları, varsayılan olarak okuma-yazma şeklinde olan /boot dizinindedir. Bunu salt okunur olarak değiştirmek, kritik önyükleme dosyalarında yetkisiz değişiklik yapılması riskini azaltır. Bunu yapmak için “/etc/fstab” dosyasını açın.
vi /etc/fstab
En alta aşağıdaki satırı ekleyip kaydedip kapatın.
LABEL=/boot /boot ext2 defaults,ro 1 2
Gelecekte çekirdeği yükseltmeniz gerekirse, değişikliği okuma-yazma olarak sıfırlamanız gerektiğini lütfen unutmayın.
25. ICMP veya Yayın İsteğini Yoksay
ping veya broadcast isteğini yok saymak için “/etc/sysctl.conf” dosyasına aşağıdaki satırı ekleyin.
Ignore ICMP request:
net.ipv4.icmp_echo_ignore_all = 1
Ignore Broadcast request:
net.ipv4.icmp_echo_ignore_broadcasts = 1
Aşağıdaki komutu çalıştırarak yeni ayarları veya değişiklikleri yükleyin
#sysctl -p
Yukarıdaki listede önemli bir güvenlik veya sağlamlaştırma ipucunu kaçırdıysanız ya da listeye eklenmesi gereken başka bir ipucunuz varsa. Lütfen yorumlarınızı yorum kutumuza bırakın. TecMint her zaman yorum, öneri ve iyileştirmeye yönelik tartışmaları almakla ilgilenir.