Bilginin Adresi Ana Sayfa
Forum Anasayfası Forum Anasayfası > Bilgisayar Güvenliği / Computer Security > Güvenlik / Security Makaleleri
  Aktif Konular Aktif Konular RSS - Sysctl.confun ayarlanması (genel saldırırdan korunma)
  SSS SSS  Forumu Ara   Events   Kayıt Ol Kayıt Ol  GiriÅŸ GiriÅŸ

Sysctl.confun ayarlanması (genel saldırırdan korunma)

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
megabros Açılır Kutu Gör
Security Professional
Security Professional
Simge

Kayıt Tarihi: 08-06-2009
Konum: Turkey
Status: Aktif DeÄŸil
Points: 752
Mesaj Seçenekleri Mesaj Seçenekleri   Thanks (0) Thanks(0)   Alıntı megabros Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: Sysctl.confun ayarlanması (genel saldırırdan korunma)
    Gönderim Zamanı: 23-08-2009 Saat 10:36

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.

Burdaki 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

Saygılar..


Düzenleyen megabros - 23-08-2009 Saat 12:26
Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu Gör



Bu Sayfa 0.146 Saniyede Yüklendi.