| Editor Login | Register | ||
| > Bilgisayar > Linux |
|
|
| sysctl.cofn un ayarlanması(genel saldırırdan korunma) |
|
Linux kernel /proc pseudo dosyalarını değiştirerek sisteminize daha güvenli hale getirebilirsiniz.Kernel iptables ve ipchanis la sisteminize gelebilecek saldırılara karşı korunaklı bir yapı haline getirilebilir.Bu konuda işinize yarıyacak bir çok kernel flag ı bulunmaktadır./Proc olarak adlandırılan sanal dosya sistemi o anda kernel tarafından alınan ve çalışan bir sürü uygulamanın bilgisini saklamaktadır.Burdkai bilgiler normal bir dosya sistemine benzemektedir./proc dizinindeki çoğu dosya read-only olarak ayarlanmıştır yani sadece okuma izini vardır./proc/sys dizininde bulunan dosyalar ise yazılabilen dosyalardır.Genel olarka /proc dizini o anda sistemde aktif olan işlemler hakkında bilgiler içermektedir.Örnek olarak yeni bir uygulamayı başlattığımız zaman proc dizininde bu uygulama ile ilgili bir klasör oluşturulur ve bu uygulama ile ilgili bilgileri içerir. proc dizinindeki dosya ve dizinlere bir göz atalım. Kod: ls -l /proc Burdaki çoğu dosya sadece okunabilirdir yukarıdada belirttiğim gibi.Burda değişiklikler yaparken çok dikkatli olmalısınız mesela kcore dosyası bu dosya kernel e ait debug bilgisini taşımaktadır.Ve bu dosyanın içeriğini görüntülemek isterseniz büyük olasılıkla sisteminiz kilitlenicektir.Bilgisayarınızda gerçek bir dosya ya dönüştürmeye çalışırsanız bir süre sonra bütün partition dolucaktır./proc dosya sistemini gözlemlemek bir kaç değişken dışında sorun yaratmıyacaktır sorun yaratabilecekleride belirttim zaten.En önemli dosyalara göz atalım; cmdline:Kernel tarafından başlatılan komut satırıdır. cpuinfo:Central Processing Unit hakkında genel bilgileri içerir debug bilgiler bug lar flaglar gibi. dma:DMA kanal değişkenlerini ve hangi sürücülerin bunları kullandığını gösterir. filesystems:Kernelin desteklediği bütün dosya ssitemleri hakkında kısa bilgiler içerir. interrupts:IRQ kanalları hakkında detaylı bilgi içerir. iomem:Bütün sürücüler tarafından kullanılan IO memory yi gösterir. ioports:Bütün sürücüler tarafından kullanılan IO portlarını gösterir. kcore:Sistemi debug etmek için kullanılır bu dosyayala sakın oynamayın. kmsg:Kernel tarafından gönderilen mesajları içerir bu dosya okunamaz amacı sistemin debug edilmesidir. ksyms:Kernel sembol tablosunu içerir amacı kernelin debug edilmesidir. loadavg:Sistemin yük yoğunluğunu 1-5-15 dakika olarak verir. meminfo:Sistemdeki hafıza kullanımını belirtir. modules:Yüklü kernel modülleri hakkında bilgiler içerir. mounts:Mount edilmiş dosya sistemleri hakkında bilgiler içerir. partitions:Sistemde bulunan bölütler hakkında bilgiler verir. pci:PCI sürücüleri hakkında bilgi verir. swaps:Swap bölütü hakkında bilgi içerir. uptime:Sistemin uptime bilgisini verir. version:Kernel versiyonunu ve gcc versiyonunu verir. bus:Sistemdeki donanımlar hakkında bilgiler verir. ide:IDE sürücüleri hakkında bilgiler verir. scsi:SCSI sücürücleri hakkında bilgiler verir. sys: Değişkenler hakkında bilgileri içerir. Şimdi bu değişkenleri nasıl atayacağımıza bakalım.Birinci şekli artık çoğu dağıtımla birlikte genel sysctl uygulamasıdır.Diğer yöntem ise /proc dosya sistemidir.Burda sysctl uygulamasını kullanmamızın yararı yapacağımız değişiklikleri daha kolay yapabilmemize olanak sağlaması ve özellike zamandan tasarruf yapmamızı sağlamasıdır.Ayrıca sysctl uygulamasında yaptığımız değişiklikler her restart ta yeniden yükleniceklerdir yani proc dosya yapısında yapsak bunları her defasından aynı işlemleri tekrarlamamaız lazım. Öncelikle değişkenlerin listesine bakalım bunları sysctl uygulaması yardımı ile değiştirebilriiz biz bu yazıda güvenlik yönüne bakıcaz ayrıca burdaki değişkenlerin optimal değerlerinide bulup serverın daha stabil çalışmasını sağlayabiliriz. Kod: sysctl -a Değişkenlerin listesi ekranımıza geliyor. -w girdisi ile direk olarak değişkeni konsoldan değiştirebiliriz Kod: sysctl -w net.ipv4.tcp_sack=0 şeklinde proc dizinini kullanarak bu işlemin yapılmasıda şu şekilde olur. cd /proc/sys/net/ipv4 echo "1" > ip_forward şekinde değişkenleri değiştirebilrisiniz tabi bu işlemler için root yetkisine sahip olmalısınız.Şimdi güvenlik ile ilgili dğeişkenleri direk olarak sysctl uygulamasının konfigurasyon dosyası içine atacağız. konfigurasyon dosyasını açıyoruz ve aşağıdakileri dosyaya yapıştırıyoruz. Kod: pico -w /etc/sysctl.conf Kod: #Kernel sysctl configuration file for Red Hat Linux # # For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and # sysctl.conf(5) for more details. # Disables packet forwarding net.ipv4.ip_forward=0 # Disables IP source routing net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.lo.accept_source_route = 0 net.ipv4.conf.eth0.accept_source_route = 0 net.ipv4.conf.default.accept_source_route = 0 # Enable IP spoofing protection, turn on source route verification net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.lo.rp_filter = 1 net.ipv4.conf.eth0.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1 # Disable ICMP Redirect Acceptance net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.lo.accept_redirects = 0 net.ipv4.conf.eth0.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 # Enable Log Spoofed Packets, Source Routed Packets, Redirect Packets net.ipv4.conf.all.log_martians = 0 net.ipv4.conf.lo.log_martians = 0 net.ipv4.conf.eth0.log_martians = 0 # Disables IP source routing net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.lo.accept_source_route = 0 net.ipv4.conf.eth0.accept_source_route = 0 net.ipv4.conf.default.accept_source_route = 0 # Enable IP spoofing protection, turn on source route verification net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.lo.rp_filter = 1 net.ipv4.conf.eth0.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1 # Disable ICMP Redirect Acceptance net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.lo.accept_redirects = 0 net.ipv4.conf.eth0.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 # Disables the magic-sysrq key kernel.sysrq = 0 # Decrease the time default value for tcp_fin_timeout connection net.ipv4.tcp_fin_timeout = 15 # Decrease the time default value for tcp_keepalive_time connection net.ipv4.tcp_keepalive_time = 1800 # Turn off the tcp_window_scaling net.ipv4.tcp_window_scaling = 0 # Turn off the tcp_sack net.ipv4.tcp_sack = 0 # Turn off the tcp_timestamps net.ipv4.tcp_timestamps = 0 # Enable TCP SYN Cookie Protection net.ipv4.tcp_syncookies = 1 # Enable ignoring broadcasts request net.ipv4.icmp_echo_ignore_broadcasts = 1 # Enable bad error message Protection net.ipv4.icmp_ignore_bogus_error_responses = 1 # Log Spoofed Packets, Source Routed Packets, Redirect Packets net.ipv4.conf.all.log_martians = 1 # Increases the size of the socket queue (effectively, q0). net.ipv4.tcp_max_syn_backlog = 1024 # Increase the tcp-time-wait buckets pool size net.ipv4.tcp_max_tw_buckets = 1440000 # Allowed local port range net.ipv4.ip_local_port_range = 16384 65536 burdaki en önemli değişken syn_cookie korumasıdır.Bu işlemleri yaparak kernel tabanlı bir koruma sağladınız.Bu işlemleri yaptıktan sonra sisteminizi yeniden başlatıp yapılan değişikliklerin etkin olmasını sağlayabilirsiniz yada konsolda alttaki2 komutu vererek değişiklikleri etkinleştirebilirsiniz. Kod: /sbin/sysctl -p Kod: sysctl -w net.ipv4.route.flush=1 |
|
| Bağlantılar: bilgininefendisi.net |
| Open Source Document Project | AUP&TOS |