Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 12603|Jawab: 2

[linux] Lihat bagaimana linux saya melindungi dari serangan SYN

[Salin tautan]
Diposting pada 12/12/2015 00.04.58 | | | |

Ketika saya tiba di perusahaan pagi ini, saya merasa cukup lambat ketika saya masuk ke situs web resmi perusahaan, masuk ke server untuk memeriksa status akses situs web resmi:

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

     172 DIDIRIKAN

     59 TERHUBUNG

    589 SYN_RECV

     15 ALIRAN

SYN sebenarnya sangat tinggi, terus lacak SYN yang dikirim oleh IP tersebut:

[root@tweb ~]# netstat -an | grep SYN | awk '{cetak $5}' | awk -F: '{print $1}' | urutkan | Uniq -C | urutkan -nr | lebih

570 x.x.x.x   

(IP tidak tertulis, ini adalah IP dari Shandong Zaozhuang Unicom), tetapi IP yang satu ini telah mengirim begitu banyak koneksi permintaan SYN, dan konkurensi server web kami tidak terlalu tinggi, sehingga permintaan pengguna normal tidak dapat dihubungkan, dan halaman tidak dapat dibuka. Karena firewall perangkat keras dikelola oleh departemen TI grup, saya tidak memiliki wewenang, jadi saya hanya dapat mengambil beberapa tindakan di server lokal untuk mengurangi sebagian serangan SYN.

Pertama-tama, mari kita bicara tentang prinsip serangan SYN:

Dalam protokol TCP/IP, protokol TCP menyediakan layanan koneksi yang andal dengan menggunakan jabat tangan tiga arah untuk membuat koneksi.

Jabat tangan pertama: Saat membuat koneksi, klien mengirimkan paket syn (syn=j) ke server dan memasuki status SYN_SEND, menunggu server mengonfirmasi.

Jabat tangan kedua: Ketika server menerima paket SYN, server harus mengonfirmasi SYN pelanggan (ack=j+1), dan juga mengirim paket SYN (syn=k), yaitu paket SYN+ACK, pada saat itu server memasuki status SYN_RECV.

Jabat tangan ketiga: Klien menerima paket SYN+ACK dari server dan mengirimkan paket konfirmasi ACK (ack=k+1) ke server. Setelah tiga jabat tangan, klien dan server mulai mengirimkan data.


Jika pengguna memulai permintaan koneksi dengan server hanya untuk berjabat tangan untuk kedua kalinya dan tidak merespons server, server akan terus menunggu konfirmasi pengguna. Jadi kami membuat perubahan berikut langsung dari koneksi SYN:

Periksa konfigurasi SYN default di Linux:

[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 adalah panjang antrean SYN, dan meningkatkan panjang antrean SYN dapat mengakomodasi lebih banyak koneksi jaringan yang menunggu untuk dihubungkan. tcp_syncookies adalah sakelar untuk mengaktifkan fungsi cookie SYN, yang dapat mencegah serangan SYN parsial. tcp_synack_retries dan tcp_syn_retries menentukan jumlah koneksi coba lagi untuk SYN, dan mengurangi parameter default untuk mengontrol jumlah koneksi SYN sebanyak mungkin.

Berikut ini adalah parameter yang telah saya modifikasi, yang dapat dimodifikasi sesuai dengan situasi aktual server saya:

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

#!/bin/sh

# Scrip{filter}t ini akan dieksekusi *setelah* semua scrip{filter}ts init lainnya.

# Anda dapat memasukkan hal-hal inisialisasi Anda sendiri di sini jika Anda tidak melakukannya

# ingin melakukan hal-hal init gaya Sys V penuh.

sentuh /var/lock/subsys/lokal

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

Agar konfigurasi segera berlaku tanpa memulai ulang server, itu dapat dilakukan

#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

Beberapa orang suka menggunakan daftar kontrol akses untuk mencegah serangan SYN, yang memperlambat serangan SYN sampai batas tertentu:

Serangan banjir syn

#iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT

--limit 1/s membatasi jumlah konkurensi syn menjadi 1 kali per detik

Pemindaian anti-port

# iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

Ping kematian

# iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

#>iptables-simpan >/etc/sysconfig/iptables

Untuk melihat, #iptables -L

ACCEPT tcp -- di mana saja di mana saja bendera tcp: FIN, SYN, RST, ACK / SYN batas: rata-rata 1 / detik burst 5

ACCEPT tcp -- di mana saja di mana saja bendera tcp: FIN, SYN, RST, ACK / RST batas: rata-rata 1 / detik burst 5

ACCEPT icmp -- di mana saja di mana saja batas permintaan gema icmp: rata-rata 1/detik burst 5

Periksa koneksi syn lagi:

[root@web ~]# netstat -an | grep SYN | awk '{cetak $5}' | awk -F: '{print $1}' | urutkan | Uniq -C | urutkan -nr | lebih

     20 10.92.10.220

      1 125.43.36.199

Jelas jumlah koneksi SYN telah turun.






Mantan:"Maaf, Anda tidak menginstal aplikasi asli, penginstal tidak dapat terus melakukan pendiskusian" solusi
Depan:SC Create membuat layanan sistem Windows
Diposting pada 13/12/2015 10.53.04 |
Tampilan yang kuat
Diposting pada 14/12/2015 15.55.43 |
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com