Thứ Sáu, 7 tháng 2, 2014

Phòng chống ddos với APF, BFD, DDOS and RootKit


Đầu tiên là thăng này APF — Advanced Policy-based Firewall 
# cd /usr/src
# mkdir utils
# cd utils
# wget http://rfxnetworks.com/downloads/apf-current.tar.gz
# tar xfz apf-current.tar.gz
# cd apf-*
# ./install.sh
Để hiểu rõ bạn nên đọc 2 file này  README.apf vs README.antidos. Sau đó edit tùy chỉnh trong file /etc/apf/conf.apf
# nano -v /etc/apf/conf.apf
Edit như sau:
DEVEL_MODE="0"
IG_TCP_CPORTS="21,22,25,53,80,110,143,443,3306"  <== Cai nay la port ban can mo no se lam chuc nang thay cho Iptables
IG_UDP_CPORTS="53,111"
USE_AD="1"  <== cai nay de enable AntiDDos.
Sau khi config xong bạn cho nó khởi động lên nào.
# apf --start
hoặc
# service apf start

Tiếp theo là cái nè: BFD — Brute Force Detection <== Cái này hay nè.

(Cái này dùng để bảo vệ server khi 1 hacker cố tình do password)
## Get the latest source and untar.
# cd /usr/src/utils
# wget http://rfxnetworks.com/downloads/bfd-current.tar.gz
# tar xfz bfd-current.tar.gz
# cd bfd-*
# ./install.sh
Sau đó là tùy chỉnh:
# nano /usr/local/bfd/conf.bfd | sửa lại file cấu hình
Muốn thông báo gửi email khi bi tấn công Brute Force đi tới: ALERT="0" thay bằng ALERT="1"
Thay đổi email liên hệ tìm: EMAIL_USR="root" thay bằng EMAIL_USR="admin@vinashares.com" | cái này là email của mình nhé đừng thay như thế nó cảnh báo cho mình mình chẳng biết server bạn ở đâu đâu mà biết =)).
Thay đổi thời gian khóa IP khi phát hiện tìm đến: LOCK_FILE_TIMEOUT="600"   | mặc định nó để là 600s hơi ít tăng lên 3000s hay 6000s cho nó máu đừng thêm "s" vào nhé.
Config xong rồi thì cho nó bắt đầu làm việc thôi.
## Start the program.
#  /usr/local/sbin/bfd -s
Bây giờ cứ có 1 thăng nào dò pass sai password là chương trình nó tự động log IP đó lại.Yên tâm rồi nhé. Cái này đặc biệt tốt cho email + tài khoản hosting.
Dưới đây là 1 đoạn Log email cảnh báo sẽ có dạng thế này:
The following is a summary event for exceeded login failures on trinh.vinashares.com:

SOURCE ADDRESS: 211.21.204.111
TARGET SERVICE: sshd
FAILED LOGINS: 9
EXECUTED COMMAND: /etc/apf/apf -d 211.21.204.111 {bfd.sshd}

SOURCE LOGS FROM SERVICE 'sshd' (GMT -0500):

Mar  3 18:41:49 trinh sshd[4347]: Invalid user xwang from 211.21.204.111
Mar  3 18:41:49 trinh sshd[4347]: reverse mapping checking getaddrinfo for 211-21-204-111.hinet-ip.hinet.net failed - POSSIBLE BREAK-IN ATTEMPT!
Mar  3 18:41:49 trinh sshd[4347]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=211.21.204.111
Mar  3 18:41:50 trinh sshd[4347]: Failed password for invalid user xwang from 211.21.204.111 port 57203 ssh2
Mar  3 18:41:51 trinh sshd[4348]: Received disconnect from 211.21.204.111: 11: Bye Bye
Mar  3 18:41:51 trinh sshd[4350]: Invalid user www from 211.21.204.111
Mar  3 18:41:52 trinh sshd[4350]: reverse mapping checking getaddrinfo for 211-21-204-111.hinet-ip.hinet.net failed - POSSIBLE BREAK-IN ATTEMPT!
Mar  3 18:41:52 trinh sshd[4350]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=211.21.204.111
Mar  3 18:41:54 trinh sshd[4350]: Failed password for invalid user www from 211.21.204.111 port 58336 ssh2
Mar  3 18:41:54 trinh sshd[4351]: Received disconnect from 211.21.204.111: 11: Bye Bye
Mar  3 18:41:55 trinh sshd[4352]: Invalid user www from 211.21.204.111
Mar  3 18:41:55 trinh sshd[4352]: reverse mapping checking getaddrinfo for 211-21-204-111.hinet-ip.hinet.net failed - POSSIBLE BREAK-IN ATTEMPT!
Mar  3 18:41:55 trinh sshd[4352]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=211.21.204.111
Mar  3 18:41:57 trinh sshd[4352]: Failed password for invalid user www from 211.21.204.111 port 59569 ssh2
Mar  3 18:41:58 trinh sshd[4353]: Received disconnect from 211.21.204.111: 11: Bye Bye
Mar  3 18:41:58 trinh sshd[4358]: Invalid user www from 211.21.204.111
Mar  3 18:41:59 trinh sshd[4358]: reverse mapping checking getaddrinfo for 211-21-204-111.hinet-ip.hinet.net failed - POSSIBLE BREAK-IN ATTEMPT!
Mar  3 18:41:59 trinh sshd[4358]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=211.21.204.111
Mar  3 18:42:00 trinh sshd[4358]: Failed password for invalid user www from 211.21.204.111 port 60560 ssh2
Mar  3 18:42:00 trinh sshd[4359]: Received disconnect from 211.21.204.111: 11: Bye Bye
Mar  3 18:42:01 trinh sshd[4361]: Invalid user www from 211.21.204.111
Mar  3 18:42:01 trinh sshd[4361]: reverse mapping checking getaddrinfo for 211-21-204-111.hinet-ip.hinet.net failed - POSSIBLE BREAK-IN ATTEMPT!
Mar  3 18:42:01 trinh sshd[4361]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=211.21.204.111
Thăng này nó cố tình truy cập ssh nên bị khóa IP rồi, máy quá ^^.

Tiếp theo là thăng này DDoS Deflate 

Đây là 1 công cụ khá cơ bản để chống DDOS.
## Get the latest source
# cd /usr/src/utils
# mkdir ddos
# cd ddos
# wget http://www.inetbase.com/scripts/ddos/install.sh
# sh install.sh
Cấu hình thì bạn có thể cấu hình trong này: /usr/local/ddos/ddos.conf
Khởi động nó lên thoai.
# /usr/local/ddos/ddos.sh -c

RootKit — Spyware and Junkware detection and removal tool

## Get the latest source and untar
# cd /usr/src/utils
# wget http://downloads.rootkit.nl/rkhunter-<version>.tar.gz
# tar xfz rkhunter-*.gz
# cd rkhunter
# ./installer.sh
source download ở đây nhớ: http://sourceforge.net/projects/rkhunter/files/latest/download
Scan nào hic hic:
# rkhunter -c

Setup automatic protection on System Reboot 

(Đây có thể nói nôm na là cấu hình tự động bật các dịch vụ đã cài ở trên khởi động mỗi lần server restart)
## 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/sbin/apf --start
/usr/local/ddos/ddos.sh -c
Bài này mình sưu tầm ở nhiều nguồn đang test xem có chống đỡ được những cuộc tấn công DDOS thuộc vào hạng nhẹ không. Các bạn cho ý kiến nhaz..

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

Không có nhận xét nào:

Đăng nhận xét