Domain, hosting, vps giá rẻ
Kết quả 1 đến 4 của 4

Chủ đề: [Linux Centos] Tối ưu server : Anti DDos cho Linux Webserver

  1. #1
    nghiatichxanh1992's Avatar
    Bài viết
    5,037
    Cấp độ
    Bang hội
    Tiếu Ngạo
    Tu luyện
    Độ kiếp Hư Thần
    Giới tính
    Con trai
    Join Date
    Jun 2012
    Đến từ
    Hà Giang
    Tuổi
    31
    Danh vọng
    10
    Điện thoại
    0367790762

    [Linux Centos] Tối ưu server : Anti DDos cho Linux Webserver

    Nói về vấn đề DDos, có lẽ sẽ rất khó để chắc chắn rằng làm thế nào chúng ta có thể an toàn 100% trước vấn nạn này. Bởi có rất nhiều phương thức tấn công như dos,ddos, flood, Slowloris …cũng như đi kèm với nó là các cường độ khác nhau. Bởi vậy các giải pháp TechBlog trình bày bên dưới sẽ chỉ có thể giúp bạn trong một số trường hợp nhất định mà thôi. Tuy vậy nó cũng sẽ phần nào giúp bạn kiện toàn bảo mật cho webserver của bạn.







    1. Hạn chế DDos: Dos Deflate


    Tiến hành cài đặt Firewall Dos Deflate:
    #cd download
    #wget http://www.inetbase.com/scripts/ddos/install.sh
    #chmod 0700 install.sh
    #./install.sh
    Sau khi cài đặt thành công, ta có thể cấu hình Firewall bằng cách dùng lệnh:
    #nano /user/local/ddos/ddos.conf
    Đây là file cấu hình của Firewall, nội dung cơ bản sẽ như sau:
    FREQ=1 // tắt/ bật Firewall (0=tắt, 1=bật)
    NO_OF_CONNECTIONS=150 // max connect từ 1 IP đến server
    APF_BAN=1
    KILL=1 // tắt/bật (0=tắt, 1= bật)
    EMAIL_TO="administrator@techblog.vn"
    BAN_PERIOD=600 // thời gian ban IP là 600 giây

    Khởi động:
    Mã:
    /usr/local/ddos/ddos.sh -c
    Cấu hình khởi động cùng hệ thồng:

    Mã:
    ## Edit /etc/rc.d/rc.local 
    ##      (or similar file depending on Linux version) 
    ## Add the following lines at the bottom of the file  
    
    /usr/local/ddos/ddos.sh -c
    2. Apache Antiddos Mod: mod_dosevasive

    Refer to the following steps to install the Mod_evasive but make sure that you have logged in as a root user.


    cd /usr/local/src
    wget http://theperfectarts.com/software/m..._1.10.1.tar.gz
    tar xvfz mod_ev*
    cd mod_evasive*


    Tiếp tục đánh lệnh sau:

    apxs -cia mod_evasive20.c

    Nếu xuất hiện lỗi như sau -bash: apxs: command not found thì do các bạn chưa cài apxs

    yum install httpd-devel (yum install apache2-threaded-dev gcc)

    Tìm và thêm vào file httpd.conf đoạn sau:
    Add the following to httpd.conf


    <IfModule mod_dosevasive20.c> DOSHashTableSize 3097
    DOSPageCount 1
    DOSSiteCount 50
    DOSPageInterval 1
    DOSSiteInterval 1
    DOSBlockingPeriod 10
    DOSEmailNotify root
    # DOSSystemCommand “su – someuser -c ‘/sbin/… %s …’”
    # DOSLogDir “/var/tmp/doslog”
    #Leave this commented while testing, then uncomment once you are sure the module works
    # DOSWhitelist 127.0.0.1
    </IfModule>

    hoặc

    <IfModule mod_dosevasive20.c>
    DOSHashTableSize 3097
    DOSPageCount 6
    DOSSiteCount 100
    DOSPageInterval 2
    DOSSiteInterval 2
    DOSBlockingPeriod 600
    DOSEmailNotify someuser@somedomain.com
    </IfModule>




    Descriptions:

    - DOSHashTableSize: the size of the table of URL and IP combined
    - DOSPageCount: the number of same page requests from the same IP during an interval that will cause that IP to be added to the block lt.
    - DOSSiteCount: the number of pages requested of a site by the same IP during an interval which will cause the IP to be added to the block lt.
    - DOSPageInterval: the interval that the hash table for IPs and URLs erased (in seconds)
    - DOSSiteInterval: the intervale that the hash table of IPs erased (in seconds)
    - DOSBlockingPeriod: the time the IP blacked (in seconds)
    - DOSEmailNotify: can be used to notify by sending an email everytime an IP blocked
    - DOSSystemCommand: the command used to execute a command when an IP blocked. It can be used to add a block the user from a firewall or router.
    - DOSWhiteLt: can be used to whitelt IPs such as 127.0.0.1


    Sau đó lưu lại và restart apache bằng lệnh:
    #service httpd restart
    hoặc
    #/etc/init.d/httpd restart



    3. Cài đặt và cấu hình Iptables:

    iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j RETURN

    Về thông tin giới thiệu, cài đặt, cách sử dụng TechBlog đã có trình bày cụ thể tại bài viết Cấu hình Firewall Iptables trên CentOS / Redhat. Trong trường hợp anti ddos, chúng ta chỉ quan tâm một số rules cơ bản như sau:
    #Limit the number of incoming tcp connections
    #Interface 0 incoming syn-flood protection
    #iptables -N syn_flood
    #iptables -A INPUT -p tcp --syn -j syn_flood
    #iptables -A syn_flood -m limit --limit 1/s --limit-burst 3 -j RETURN
    #iptables -A syn_flood -j DROP



    4. Cài đặt mod_antiloris cho Apache:

    How To Install Mod_Antiloris?

    1) Download the installer from sourceforge and install

    a) cd /usr/local/src
    b) wget http://sourceforge.net/projects/mod-...r.bz2/download
    c) tar -xvjf mod_antiloris-0.4.tar.bz2
    d) cd mod_antiloris-*
    e) apxs -a -i -c mod_antiloris.c

    2) Now we have to restart apache

    service httpd restart

    3) How to check whether mod_antiloris loaded or not

    httpd -M | grep antiloris

    Note if you are using cpanel server then you have to run the below command to make sure new modification are updated into configuration system file

    /usr/local/cpanel/bin/apache_conf_distiller –update

    Now you can check if your Apache is protected from Slowloris Dos attack or not . Launch a slowloris attack and check Apache status page to see if its effecting it or not.

    - Mod antiloris default giới hạn 20 connections cho một Ip, bạn có thể tùy chỉnh bằng cách add vào httpd.conf
    vd:
    <IfModule antiloris_module>
    IPReadLimit 50
    </IfModule>


    Chúc bạn thành công.
    Lần sửa cuối bởi nghiatichxanh1992, ngày 01/03/2013 lúc 16:06.
    Diễn đàn chia sẻ kiến thức điện thoại: http://chiase123.com
    Click vào Hiện ra để xem chữ ký của mình

  2. #2
    nghiatichxanh1992's Avatar
    Bài viết
    5,037
    Cấp độ
    Bang hội
    Tiếu Ngạo
    Tu luyện
    Độ kiếp Hư Thần
    Giới tính
    Con trai
    Join Date
    Jun 2012
    Đến từ
    Hà Giang
    Tuổi
    31
    Danh vọng
    10
    Điện thoại
    0367790762
    Chống Syn Flood attacks sử dụng Iptables

    Chống Syn Flood attacks sử dụng Iptables

    Syn flood là 1 dạng tấn công từ chối dịch vụ, kẻ tấn công gửi các gói tin kết nối SYN đến hệ thống. Đây là 1 loại tấn công rất phổ biến. Loại tấn công này sẽ nguy hiểm nếu hệ thống cấp phát tài nguyên ngay sau khi nhận gói tin SYN từ kẻ tấn công và trước khi nhận gói ACK. Các bạn có thể xem thêm về thiết lập 3 way handshake TCP connection.

    Nếu việc thiết lập kết nối chưa hòan tất 3 bước đây đủ (gọi là half-open connection) mà buộc hệ thống server phải cấp tài nguyên để quản lý thì kẻ tấn công có thể lấy hết tài nguyên của hệ thống server bằng các "flooding" vào server với các gói tin SYN. Syn flood là 1 dạng tấn công phổ biến và nó có thể được ngăn chặn bằng đoạn lệnh iptables sau:

    Code:

    Mã:

    iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j RETURN

    Tất cả các kết nối đến hệ thống chỉ được phép theo các thông số giới hạn sau:

    * --limit 1/s: Tốc độ truyền gói tin trung bình tối đa 1/s (giây)
    * --limit-burst 3: Số lương gói tin khởi tạo tối đa được phép là 3

    Dùng iptables, thêm rule sau vào:
    Code:

    Mã:

    # Limit the number of incoming tcp connections
    # Interface 0 incoming syn-flood protection
    iptables -N syn_flood
    iptables -A INPUT -p tcp --syn -j syn_flood
    iptables -A syn_flood -m limit --limit 1/s --limit-burst 3 -j RETURN
    iptables -A syn_flood -j DROP

    * ‐‐limit rate n
    * ‐‐limit‐burst number m


    Giải thích 1 cách dễ hiểu là như thế này "Rule trên giới hạn số kết nối tối đa đến hệ thống là n trên mỗi 1 giây sau khi đã có m kết nối được thiết lập"
    Bạn cần điều chỉnh thông số -limit-rate và -limit-burst tùy theo yêu cầu và traffic của mạng của bạn.
    Diễn đàn chia sẻ kiến thức điện thoại: http://chiase123.com
    Click vào Hiện ra để xem chữ ký của mình

  3. #3
    nghiatichxanh1992's Avatar
    Bài viết
    5,037
    Cấp độ
    Bang hội
    Tiếu Ngạo
    Tu luyện
    Độ kiếp Hư Thần
    Giới tính
    Con trai
    Join Date
    Jun 2012
    Đến từ
    Hà Giang
    Tuổi
    31
    Danh vọng
    10
    Điện thoại
    0367790762

    Sử dụng Iptables chống Syn Flood attacks và cấm IP

    Syn flood là 1 dạng tấn công từ chối dịch vụ, kẻ tấn công gửi các gói tin kết nối SYN đến hệ thống. Đây là 1 loại tấn công rất phổ biến. Loại tấn công này sẽ nguy hiểm nếu hệ thống cấp phát tài nguyên ngay sau khi nhận gói tin SYN từ kẻ tấn công và trước khi nhận gói ACK.

    Nếu việc thiết lập kết nối chưa hòan tất 3 bước đây đủ (gọi là half-open connection) mà buộc hệ thống server phải cấp tài nguyên để quản lý thì kẻ tấn công có thể lấy hết tài nguyên của hệ thống server bằng các "flooding" vào server với các gói tin SYN. Syn flood là 1 dạng tấn công phổ biến và nó có thể được ngăn chặn bằng đoạn lệnh iptables sau:

    iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j RETURN

    Tất cả các kết nối đến hệ thống chỉ được phép theo các thông số giới hạn sau:

    --limit 1/s: Tốc độ truyền gói tin trung bình tối đa 1/s (giây)
    --limit-burst 3: Số lương gói tin khởi tạo tối đa được phép là 3

    Dùng iptables, thêm rule sau vào:

    Code:

    # Limit the number of incoming tcp connections

    # Interface 0 incoming syn-flood protection

    iptables -N syn_flood

    iptables -A INPUT -p tcp --syn -j syn_flood

    iptables -A syn_flood -m limit --limit 1/s --limit-burst 3 -j RETURN

    iptables -A syn_flood -j DROP

    ‐‐limit rate n
    ‐‐limit‐burst number m

    Giải thích 1 cách dễ hiểu là như thế này "Rule trên giới hạn số kết nối tối đa đến hệ thống là n trên mỗi 1 giây sau khi đã có m kết nối được thiết lập"

    Bạn cần điều chỉnh thông số -limit-rate và -limit-burst tùy theo yêu cầu và traffic của mạng của bạn.

    Giả sử bạn cần giới hạn các kết nối SSH (port 22) không được phép hơn 10 connections trên mỗi 10 phút, rule như sau:

    Code:

    iptables -I INPUT -p tcp -s 0/0 -d $SERVER_IP --sport 513:65535 --dport 22 -m state --state NEW,ESTABLISHED -m recent --set -j ACCEPT

    iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 600 --hitcount 11 -j DROP

    iptables -A OUTPUT -p tcp -s $SERVER_IP -d 0/0 --sport 22 --dport 513:65


    Vậy sau khi đã xác định được IP (ví dụ lấy 1 IP trong LAN 192.168.1.222) tấn công, việc quan trọng vẫn là cách ly các gói tin từ IP (192.168.1.222) để đảm bảo cho hệ thống hoạt động tốt.

    # iptables -I INPUT -s 192.168.1.222 -j DROP

    Câu lệnh này sẽ thêm một entry vào file cấu hình IPTable, chỉ dẫn nó bỏ qua bất kì gói tin nào đến từ địa chỉ IP 192.168.1.222. Nếu bạn đang đối mặt với rất nhiều cuộc tấn công, tốt hơn hết bạn nên sử dụng một phương pháp tự động hơn để thêm địa chỉ IP từ danh sách cấm. Để làm việc này, ta tạo đoạn mã sau:

    #!/bin/sh
    for i in $(< banned_IPs.cfg) ; do
    iptables -I INPUT -i eth1 -s "$i" -j DROP
    done

    Lưu đoạn mã trên vào một file với tên bất kì như banned_IPs.sh và gán cho nó quyền thực thi:

    # chmod +x banned_IPs.sh

    Bây giờ tạo một file banned_IPs.cfg và nhập vào danh sách địa chỉ IP bạn muốn khóa, mỗi cái trên một dòng (ví dụ):

    192.168.1.222
    192.168.1.123
    192.168.1.122

    Bây giờ chạy file banned_IPs.sh để đưa địa chỉ các địa chỉ IP bạn muốn khóa gửi cho iptables "xử lý" big grin

    # ./banned_IPs.sh

    SHELL SCRIPTS
    Cơ chế hoạt động của nó chỉ đơn giản là tìm xem có những IP nào đang thực hiện kết nối dạng SYN_RECV thì sẽ được đưa vào blacklist và khóa lại, cứ 2 phút 1 lần hệ thống sẽ gọi đến file này, nếu như ip đó không thực hiện tấn công SYN Flood nữa thì IP đó sẽ được xóa ra khỏi danh sách cấm.


    Shell này gồm 3 file:
    Files blocked.ips, đây chỉ đơn giản là 1 file text bạn chỉ việc tạo ra nó bằng lênh vi bình thường, nội dung trắng, nó được dùng để làm nơi lưu những IP bị nghi ngờ đang DOS.
    File iptables.sh, có nội dung:
    #!/bin/bash
    IPT=/sbin/iptables
    SPAMLIST=”spamlist”
    SPAMDROPMSG=”SPAM LIST DROP”
    BADIPS=$(egrep -v -E “^#|^$” /root/iptables/blocked.ips)
    # create a new iptables list
    $IPT -N $SPAMLIST
    for ipblock in $BADIPS
    do
    $IPT -A $SPAMLIST -s $ipblock -j LOG –log-prefix “$SPAMDROPMSG”
    $IPT -A $SPAMLIST -s $ipblock -j DROP
    done
    $IPT -I INPUT -j $SPAMLIST
    $IPT -I OUTPUT -j $SPAMLIST
    $IPT -I FORWARD -j $SPAMLIST


    Tác dụng của file này là đọc các IP bị cấm trong file blocked.ips và thực hiện cấm đối với những IP này và đưa vào log để tiện theo dõi.
    Cuối cùng là file autoblock.sh, Nội dung của file này:

    #!/bin/bash
    /etc/init.d/iptables start
    cd /root/iptables
    netstat -atun | grep SYN_RECV | awk ‘{print $5}’ | cut -d: -f1 |sort | uniq -d | sort -n > blocked.ips
    sh ./iptables.sh


    Tác dụng của file này là tìm xem có những IP nào đang gửi các gói tin dạng SYN_RECV, và đưa những IP này vào file blocked.ips, sau đó gọi file iptables.sh để khóa IP.
    Cách triển khai: Tất cả 3 file này chúng ta lưu vào một thư mục, ở đây tôi lưu vào /root/iptables và được chmod cho phép thực thi, thường mọi người hay chmod 777
    Sau đó chúng ta khai báo vào Crontab

    */2 * * * * /root/iptables/autoblock.sh
    Chúc bạn thành công .

    Suu tam
    Diễn đàn chia sẻ kiến thức điện thoại: http://chiase123.com
    Click vào Hiện ra để xem chữ ký của mình

  4. #4
    nghiatichxanh1992's Avatar
    Bài viết
    5,037
    Cấp độ
    Bang hội
    Tiếu Ngạo
    Tu luyện
    Độ kiếp Hư Thần
    Giới tính
    Con trai
    Join Date
    Jun 2012
    Đến từ
    Hà Giang
    Tuổi
    31
    Danh vọng
    10
    Điện thoại
    0367790762
    hờ, đang chán, ko có chi để làm, ngồi viết bài này cho đỡ buồn, sau này ngồi đọc lại.
    Server vừa bị tấn công DDOS, SYN Flood.
    may mà vẫn log vào SSH dc
    thử lệnh:
    netstat -net | grep SYN
    => có khoảng gần 200IPs khác nhau đến từ rất nhiều dải đang gửi điên cuồng loạn xạ đến server vốn nhỏ nhẹ và liễu yếu của mềnh. haizzzzzzzzzzzz... làm thế nào đây

    chẳng nhẽ bó tay
    tiếp nhìn kq gửi vể nào
    tất cả các yêu cầu đều được gửi đến cổng 80 nè, ô la la...
    trước tiên, phải **** hoàn toàn theo nguyên tắc thà giết nhầm còn hơn bỏ xót
    okie, thiết lập tường lửa nào:

    iptables -N syn_flood
    iptables -A INPUT -p tcp --syn -j syn_flood
    iptables -A syn_flood -m limit --limit 1/s --limit-burst 1 -j RETURN
    iptables -A syn_flood -j DROP

    với thiết đặt tưởng lừa như này, gần như các bots sẽ bị DROP gần hết Kể cả khách thăm cũng toi nữa là bots Hô hô

    Load của server sau 2 phút đã cải thiện rõ rệt hiệu quả rồi.

    Tiếp tục nào:

    điều trước tiên là phải bịt ngay cổng 80 vào Cổng này là cổng chết mờ

    tìm đến locate của file httpd.conf

    tìm dòng:
    listen 80
    sửa lại thành:
    listen 9876

    heheheeee, vậy là http đã chuyển sang cổng khác nhá. kha kha
    giờ restart httpd nào các pờ rô.
    dùng lệnh sau:

    service httpd restart

    Okie, giờ cổng là 9876 là cổng listen http

    Nhưg khổ nối, muốn vào cổng này thì phải thêm http://domain:9876 thì mới truy nhập dc

    Nhưg không sao, quay lại thiết lập cho tưởng lửa để tự động điều hướng cổng nào;

    # iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 9876

    Okie rồi, giờ mọi truy cập đã dc chuyển hướng từ cổng 80 sang cổng 9876 rồi đóa
    hacker rất thông minh, nên mình phải bịt mọi ngã rẽ vào server trc khi hacker phát hiện ra nhé

    Không để cho hacker phát hiện ra cổng 9876 đã được mở với lý do tế nhị
    Chống scan port:

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

    Okie, giờ thì quay lại phát nào
    chờ sau 5 phút thì... kết quả là server load đã trở về trang thái gần như bt mặc dù vẫn hơi shock Nhưg đã truy cập lại được rồi nè Hô hô

    Chống SYN Flood thành công

    Ồ ZÊ
    (bài viết mang tính tham khảo, không nên tham khảo để tìm phương án phòng tránh)
    sau này sẽ có lợi cho 4rum nếu bị SYN Flood :yoyo107::yoyo107::yoyo107::yoyo107::yoyo107:
    Diễn đàn chia sẻ kiến thức điện thoại: http://chiase123.com
    Click vào Hiện ra để xem chữ ký của mình

Thông tin về chủ đề này

Users Browsing this Thread

Có 1 người đang xem chủ đề. (0 thành viên và 1 khách)

Các Chủ đề tương tự

  1. [Linux] HZTUT Centos - Cài Remote Destop VPS Linux Centos với 1 lệnh duy nhất
    Bởi nghiatichxanh1992 trong diễn đàn VPS - Server
    Trả lời: 0
    Bài viết cuối: 28/05/2014, 0:19
  2. hỏi về cấu hình VPS linux centos
    Bởi kemcoi trong diễn đàn VPS - Server
    Trả lời: 0
    Bài viết cuối: 01/10/2013, 21:41
  3. [VPS] Toàn bộ câu lệnh sử dụng trong Server Linux từ A – Z
    Bởi nghiatichxanh1992 trong diễn đàn VPS - Server
    Trả lời: 2
    Bài viết cuối: 01/10/2013, 21:40
  4. Tối ưu server : Anti DDos cho Linux Webserver
    Bởi nghiatichxanh1992 trong diễn đàn VPS - Server
    Trả lời: 1
    Bài viết cuối: 28/06/2013, 9:59
  5. [Linux] Giới hạn load CPU chống ddos, overload server
    Bởi nghiatichxanh1992 trong diễn đàn VPS - Server
    Trả lời: 0
    Bài viết cuối: 22/05/2013, 16:28
  6. Chống DDOS khẩn cấp cho Linux, an toàn và hiệu quả nhất
    Bởi nghiatichxanh1992 trong diễn đàn VPS - Server
    Trả lời: 0
    Bài viết cuối: 22/02/2013, 1:59
  7. Cấu hình firewall chống ddos trên linux
    Bởi nghiatichxanh1992 trong diễn đàn VPS - Server
    Trả lời: 0
    Bài viết cuối: 20/12/2012, 17:13
  8. [VPS Linux] Hướng dẫn cài cPanel 11 & WHM trên VPS Linux
    Bởi nghiatichxanh1992 trong diễn đàn PHP & MySQL
    Trả lời: 0
    Bài viết cuối: 01/10/2012, 20:13
  9. [VPS linux] Hướng dẫn cài cpanel Kloxo trên VPS linux Centos
    Bởi nghiatichxanh1992 trong diễn đàn PHP & MySQL
    Trả lời: 0
    Bài viết cuối: 01/10/2012, 20:07
  10. [VPS linux] Hướng dẫn cài cpanel Direct Admin trên VPS linux Centos
    Bởi nghiatichxanh1992 trong diễn đàn PHP & MySQL
    Trả lời: 0
    Bài viết cuối: 01/10/2012, 20:04

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •