sysctl.conf un ayarlanması (genel saldırılardan korunma)

Server güvenliği için yapılması gerekenler, kullanılabilecek programlar

sysctl.conf un ayarlanması (genel saldırılardan korunma)

Mesajgönderen dropby23 » 30 May 2005, 13:49

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: Tümünü seç
 ls -l /proc


Resim

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: Tümünü seç
sysctl -a
Değişkenlerin listesi ekranımıza geliyor.
Resim
-w girdisi ile direk olarak değişkeni konsoldan değiştirebiliriz
Kod: Tümünü seç
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: Tümünü seç
 pico -w /etc/sysctl.conf


Kod: Tümünü seç
#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

Resim
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: Tümünü seç
/sbin/sysctl -p

Kod: Tümünü seç
sysctl -w net.ipv4.route.flush=1
Kullanıcı avatarı
dropby23
Deneyimli Üye
Deneyimli Üye
 
Mesajlar: 302
Kayıt: 08 May 2005, 00:00

Mesajgönderen TSuNaMi » 08 Tem 2007, 16:58

bunları yaptım sistemide yeniden başlattım ama SYN engellemedi :(
Counter-Strike Online Gaming Community
>
Kullanıcı avatarı
TSuNaMi
Üye
Üye
 
Mesajlar: 110
Kayıt: 27 Eyl 2005, 00:00


Dön Güvenlik uygulamaları

Kimler çevrimiçi

Bu forumu gezen kullanıcılar: Hiç bir kayıtlı kullanıcı yok ve 1 misafir

cron