Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 12603|Yanıt: 2

[linux] Linux'umun SYN saldırılarına karşı nasıl korunduğunu görün

[Bağlantıyı kopyala]
Yayınlandı 12.12.2015 00:04:58 | | | |

Bu sabah şirkete vardığımda, şirketin resmi web sitesine giriş yapıp sunucuya giriş yapıp resmi web sitesinin erişim durumunu kontrol ettiğimde oldukça yavaş hissettim:

[root@web ~]# netstat -anp |awk '{print $6}'|sort|uniq -c |sort -rn

     172 KURULUŞ

     59 BAĞLANDI

    589 SYN_RECV

     15 STREAM

SYN aslında çok yüksek, bu IP'lerin gönderdiği SYN'i takip etmeye devam edin:

[root@tweb ~]# netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | Sıralama | uniq -c | sort -nr | Daha fazlası

570 x.x.x.x   

(IP yazılı değil, Shandong Zaozhuang Unicom'un bir IP'si), ancak bu IP çok sayıda SYN isteği bağlantısı gönderdi ve web sunucumuzun eşdeğeri çok yüksek değil, bu yüzden normal kullanıcı talepleri karşılanamıyor ve sayfa açılamıyor. Donanım güvenlik duvarı grubun BT departmanı tarafından yönetildiği için yetkim yok, bu yüzden yerel sunucuda SYN saldırısını kısmen azaltmak için sadece bazı önlemler alabiliyorum.

Öncelikle, SYN'nin saldırı ilkesinden bahsedelim:

TCP/IP protokolünde, TCP protokolü üç yönlü el sıkışma kullanarak güvenilir bağlantı hizmetleri sağlar.

İlk el sıkışma: Bağlantı kurulduğunda, istemci sunucuya bir syn paketi (syn=j) gönderir ve sunucunun onaylamasını bekleyerek SYN_SEND duruma girer.

İkinci el sıkışma: Sunucu SYN paketini aldığında, müşterinin SYN'ini (ack=j+1) doğrulamalı ve ayrıca bir SYN paketi (syn=k), yani SYN+ACK paketi göndermelidir; bu zaman sunucu SYN_RECV duruma girer.

Üçüncü el sıkışma: İstemci sunucudan SYN+ACK paketini alır ve ACK (ack=k+1) onay paketini sunucuya gönderir. Üç el sıkışmadan sonra, istemci ve sunucu veri iletimi başlatır.


Kullanıcı sunucuyla bağlantı talebi başlatıp ikinci kez el sıkışıp sunucuya yanıt vermezse, sunucu kullanıcının onayını beklemeye devam eder. Bu yüzden doğrudan SYN bağlantısından aşağıdaki değişiklikleri yapıyoruz:

Linux'ta varsayılan SYN yapılandırmasını kontrol edin:

[root@web ~]# sysctl -a | Grep _syn

net.ipv4.tcp_max_syn_backlog = 1024

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_synack_retries = 5

net.ipv4.tcp_syn_retries = 5

tcp_max_syn_backlog, SYN kuyruğunun uzunluğudur ve SYN kuyruğunun uzunluğunun artırılması, bağlanmayı bekleyen daha fazla ağ bağlantısını barındırabilir. tcp_syncookies, kısmi SYN saldırılarını önleyebilen SYN çerez fonksiyonunu açmak için bir anahtardır. tcp_synack_retries ve tcp_syn_retries, SYN için tekrar deneme bağlantılarının sayısını tanımlar ve SYN bağlantılarının sayısını mümkün olduğunca kontrol etmek için varsayılan parametreleri azaltırlar.

Aşağıda, sunucumun gerçek durumuna göre değiştirilebilen değiştirdiğim parametreler şunlardır:

[root@web ~]# daha fazla /etc/rc.d/rc.local

#!/bin/sh

# Bu scrip{filter}t, diğer tüm init scrip{filter}t'lerden *sonra* çalıştırılır.

# Eğer koymazsan buraya kendi başlatma bilgilerini koyabilirsin

# tam Sys V tarzı init işlerini yapmak istiyorum.

/var/lock/subsys/local dokun

ulimit -HSn 65535

/usr/local/apache2/bin/apachectl start

#####

sysctl -w net.ipv4.tcp_max_syn_backlog=2048

sysctl -w net.ipv4.tcp_syncookies=1

sysctl -w net.ipv4.tcp_synack_retries=3

sysctl -w net.ipv4.tcp_syn_retries=3

Yapılandırmanın sunucuyu yeniden başlatmadan hemen etki altına girmesi için bu işlem gerçekleştirilebilir

#sysctl -w net.ipv4.tcp_max_syn_backlog=2048

#sysctl -w net.ipv4.tcp_syncookies=1

#sysctl -w net.ipv4.tcp_synack_retries=3

#sysctl -w net.ipv4.tcp_syn_retries=3

Bazı kişiler SYN saldırılarını önlemek için erişim kontrol listelerini kullanmayı tercih eder, bu da SYN saldırılarını belli bir ölçüde yavaşlatır:

Syn flood saldırısı

#iptables -A GİRİD -p tcp --syn -m limit --limit 1/s -j KABUL EDİL

--limit 1/s syn eşdeğerlik sayısını saniyede 1 kez ile sınırlar

Port karşıtı tarama

# iptables -A İLERİ -p tcp --tcp-bayraklar SYN,ACK,FIN,RST RST -m limit --limit 1/s -j KABUL EDİL

Ölüm Pingi

# iptables -A İLERİ -p icmp --icmp-tip echo-request -m limit --limit 1/s -j KABUL EDİL

#>iptables-save >/etc/sysconfig/iptables

İzlemek için #iptables -L

TCP'yi KABUL EDİN -- her yerde, her yerde tcp bayrakları:FIN,SYN,RST,ACK/SYN sınır: ortalama 1/saniye burst 5

TCP'yi KABUL EDİN -- her yerde, her yerde tcp bayrakları:FIN,SYN,RST,ACK/RST sınırı: ortalama 1/saniye burst 5

ICMP KABUL EDİN -- her yerde herhangi bir yerde icmp echo-request sınırı: ortalama 1/saniye burst 5

Syn bağlantısını tekrar kontrol et:

[root@web ~]# netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | Sıralama | uniq -c | sort -nr | Daha fazlası

     20 10.92.10.220

      1 125.43.36.199

Açıkça SYN bağlantılarının sayısı azaldı.






Önceki:"Üzgünüm, gerçek bir uygulama yüklemiyorsunuz, yükleyici discuz yapmaya devam edemiyor" çözüm
Önümüzdeki:SC Create, Windows sistem servisi oluşturur
Yayınlandı 13.12.2015 10:53:04 |
Ne güçlü bir bakış
Yayınlandı 14.12.2015 15:55:43 |
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com