Chia Sẽ Kinh Nghiệm Về IT



Tìm Kiếm Với Google
-


Gởi Ðề Tài Mới  Gửi trả lời
 
Công Cụ Xếp Bài
Tuổi 05-08-2011, 05:48 PM   #1
hoctinhoc
Guest
 
Trả Lời: n/a
Nhận dạng DDOS, Giảm ảnh hưởng của ddos trên Linux, Chặn SYN Attacks với IPTables

Nhận dạng DDOS, Giảm ảnh hưởng của ddos trên Linux, Chặn SYN Attacks với IPTables

Nhận dạng DDOS

Nhận dạng DDOS và một số biện pháp đối phó trên HĐH Linux, How to check DDOS Attack and prevent on Linux

DDOS là một vấn đề nan giải cho các webmaster hoặc admin. Sau đây Vinh xin giới thiệu một vài thủ thuật để nhận biết DDOS và một số biện pháp đối phó khi server bị DDOS.

Khi server đột ngột chậm như rùa, mọi xử lý của server đều rất nặng nề, thì nhiều khả năng do một trong hoặc những nguyên nhân sau:





1. Server bị DDOS
2. Server bị quá tải do thiếu RAM
3. Server bị quá tải do tốc độ xử lý của CPU không đảm bảo
4. Tốc độ truy xuất dữ liệu của HDD không đáp ứng nhu cầu read/write của data. (Thông thường xảy ra trên các ổ SATA 72krpm hoặc HDD sắp hỏng)

Trong bài viết này chúng ta đi vào vấn đề thứ 1: server bị DDOS, các vấn đề 2,3,4 có thể khắc phục dễ dàng bằng cách nâng cấp phần cứng.

Kiểm tra xem server có bị DDOS hay không:

Từ command line Linux gõ:

netstat -anp |grep 'tcp\|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

Câu lện trên sẽ trả về hàng loạt IP chiếm nhiều connection nhất trên server. Cần lưu ý rằng DDOS có thể xuất phát từ một lượng nhỏ connection. Do đó việc kết quả trả về connection thấp bạn vẫn có thể trong tình trạng under attack.

Một phương pháp khác:

netstat -n | grep :80 |wc -l

netstat -n | grep :80 | grep SYN |wc -l


Dòng lệnh thứ nhất trả về số lượng active connection (connection đang hoạt động). Rất nhiều kiểu tấn công DDOS bằng cách mở một kết nối connection lên server rồi không làm gì cả khiến cho server chờ đợi cho đến khi timeout. Nến nếu dòng lệnh thứ nhất trả về trên 500 thì server của bạn rất nhiều khả năng bị DDOS.

Dòng lệnh thứ 2 trả về kết quả trên 100 thì rất nhiều khả năng server bạn trong tình trang syn attack DDOS.

Lưu ý: cách tính trên chỉ là tương đối, một số website có lưu lượng truy cập lớn thì phương pháp detect này có thể không chính xác.

Một số phương pháp khắc phục:

Cách khắc phục nhanh nhất là block các IP chiếm nhiều connection nhất trong "giờ cao điểm":

Cách 1:

route add địa-chỉ-ip reject
vd: route add 192.168.0.168 reject


Kiểm tra bằng lệnh:

route -n |grep địa-chỉ-ip

Cách 2: sử dụng iptables

iptables -A INPUT 1 -s địa-chỉ-ip -j DROP/REJECT service iptables restart

service iptables save


Sau đó xóa hết tất cả connection hiện hành và khơi động lại service httpd

killall -KILL httpd

service httpd restart


Nếu như hoàn tất các bước nêu trên mà server vẫn chậm thì có nghĩa là vấn đề bạn gặp phải nằm vào trường hợp 2,3,4... chỉ việc nâng cấp server để đáp ứng nhu cầu truy cập của người sử dụng.

Giảm ảnh hưởng của ddos trên Linux

Gõ các lệnh sau :

Mã:

 echo 30 >  /proc/sys/net/ipv4/tcp_fin_timeout
  echo 3000 >  /proc/sys/net/core/netdev_max_backlog
 echo 3000 >  /proc/sys/net/core/somaxconn
   echo 15 >  /proc/sys/net/ipv4/tcp_keepalive_intvl
  echo 5  >  /proc/sys/net/ipv4/tcp_keepalive_probes
 echo 120 >  /proc/sys/net/ipv4/tcp_keepalive_time
 echo 1 >  /proc/sys/net/ipv4/tcp_syncookies
 echo 1 > /proc/sys/net/ipv4/tcp_window_scaling
 echo 0 > /proc/sys/net/ipv4/tcp_sack



Read more
http://www.speedguide.net/articles/linux-tweaking-121

Chặn SYN Attacks với IPTables



Trước tiên cần install iptables trên server hosting của bạn thông qua source yum hay apt-get

viết scrip sau :

Mã:
#!/bin/bash
/sbin/modprobe ip_tables

/sbin/modprobe ip_conntrack

/sbin/modprobe ip_conntrack_ftp

rm /root/.dyn*

echo "Setting kernel tcp parameters to reduct DoS effects"

#Reduce DoS'ing ability by reducing timeouts

echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout

echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time

echo 1 > /proc/sys/net/ipv4/tcp_window_scaling

echo 0 > /proc/sys/net/ipv4/tcp_sack

echo 1280 > /proc/sys/net/ipv4/tcp_max_syn_backlog

#ANTISPOOFING
for a in /proc/sys/net/ipv4/conf/*/rp_filter;

do

echo 1 > $a

done
##

#NO SOURCE ROUTE

for z in /proc/sys/net/ipv4/conf/*/accept_source_route;

do

echo 0 > $z

done

#SYN COOKIES

echo 1 > /proc/sys/net/ipv4/tcp_syncookies

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

#echo $ICMP_ECHOREPLY_RATE > /proc/sys/net/ipv4/icmp_echoreply_rate

echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

echo "1" > /proc/sys/net/ipv4/conf/all/accept_redirects

echo "1" > /proc/sys/net/ipv4/conf/all/log_martians



# NUMBER OF CONNECTIONS TO TRACK

echo "65535" > /proc/sys/net/ipv4/ip_conntrack_max

# Set default policies

/sbin/iptables -P INPUT ACCEPT

/sbin/iptables -P OUTPUT ACCEPT

/sbin/iptables -P FORWARD DROP

/sbin/iptables -F

/sbin/iptables -F INPUT

/sbin/iptables -F OUTPUT

/sbin/iptables -F FORWARD

/sbin/iptables -F -t mangle

/sbin/iptables -X

/sbin/iptables -A INPUT -i lo -j ACCEPT

/sbin/iptables -A INPUT -d 127.0.0.0/8 -j REJECT

/sbin/iptables -A INPUT -i eth0 -j ACCEPT

/sbin/iptables -A INPUT -m state --state INVALID -j DROP

### chains to DROP too many SYN-s ######

/sbin/iptables -N syn-flood

/sbin/iptables -A syn-flood -m limit --limit 100/second --limit-burst 150 -j RETURN

/sbin/iptables -A syn-flood -j LOG --log-prefix "SYN flood: "

/sbin/iptables -A syn-flood -j DROP
Sau lại với tên abc.sh

chmod 755 cho abc.sh

run scrip : ./abc.sh

Chúc Các bạn thành công,


Suu Tap

  Trả lời ngay kèm theo trích dẫn này
Gửi trả lời



Quyền Hạn Của Bạn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Hình Cảm xúc đang Mở
[IMG] đang Mở
Mã HTML đang Tắt




Bây giờ là 05:22 PM. Giờ GMT +7



Diễn đàn tin học QuantriNet
quantrinet.com | quantrimang.co.cc
Founded by Trương Văn Phương | Developed by QuantriNet's members.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.