August 16, 2016

Một vài lệnh Linux cho các nhà quản trị máy chủ

linux

Trong bài này, mình chia sẻ với các bạn một số lệnh cơ bản dành cho các nhà quản trị máy chủ.

Các lệnh kiểm tra thông số máy chủ

Lệnh kiểm tra CPU:

1
$ cat /proc/cpuinfo

Lệnh theo dõi CPU:

1
$ top -c

Lệnh kiểm tra hệ điều hành họ CentOS - RHEL

1
2
$ uname -a
$ cat /etc/redhat-release

Lệnh kiểm tra RAM

1
$ free -m

Lệnh kiểm tra HDD

1
$ df -h

Lệnh kiểm tra tốc độ đọc ghi (I/O) HDD (thay 1024k theo dung lượng bạn muốn)

1
$ dd if=/dev/zero of=1GB.tmp bs=1024 count=1024k conv=fdatasync

Lệnh kiểm tra CPU, RAM, test speed và IO

1
wget freevps.us/downloads/bench.sh -O - -o /dev/null|bash

Để kiểm tra tốc độ Network, các bạn có thể sử dụng công cụ Speedtest.

Tìm kiếm toàn bộ file PHP trên Linux

Lệnh này rất hữu ích khi bạn muốn check các file sửa gần đây nhất.

1
$ find . -type f -name '*.php' -printf '%TY-%Tm-%Td %TT %p\n' | sort

Một số lệnh cơ bản kiểm tra server khi bị DDoS

Tấn công từ chối dịch vụ phân tán (DDoS – Distributed Denial Of Service) là kiểu tấn công làm cho hệ thống máy tính hay hệ thống mạng quá tải, không thể cung cấp dịch vụ hoặc phải dừng hoạt động. Trong các cuộc tấn công DDoS, máy chủ dịch vụ sẽ bị ngập bởi hàng loạt các lệnh truy cập từ lượng kết nối khổng lồ.

Khi số lệnh truy cập quá lớn, máy chủ sẽ quá tải và không còn khả năng xử lý các yêu cầu. Hậu quả là người dùng không thể truy cập vào các dịch vụ trên các trang web bị tấn công DDoS.

Đếm lượng connection vào Port 80:

1
$ netstat -n | grep :80 |wc -l

Kiểm tra số lượng connection đang ở trạng thái SYN_RECV:

1
$ netstat -n | grep :80 | grep SYN_RECV|wc -l

Hiển thị tất cả các IP đang kết nối và số lượng kết nối từ mỗi IP:

1
$ netstat -an|grep :80 |awk '{print $5}'|cut -d":" -f1|sort|uniq -c|sort -rn

Nếu muốn kiểm tra IP nào mở nhiều SYN thì thêm vào:

1
$ netstat -an|grep :80|grep SYN |awk '{print $5}'|cut -d":" -f1|sort|uniq -c|sort -rn

Đối với server có nhiều IP, để kiểm tra IP nào đang bị tấn công:

1
$ netstat -plan | grep :80 | awk '{print $4}'| cut -d: -f1 |sort |uniq -c

Hiển thị tất cả các IP đang kết nối và số lượng kết nối từ mỗi IP:

1
$ netstat -an | grep ':80' | awk '{print $5}' | sed s/'::ffff:'// | cut -d":" -f1 | sort | uniq -c

Hiển thị số lượng kết nối mỗi loại

1
2
3
4
5
6
7
$ netstat -an | grep :80 | awk '{print $6}' | sort | uniq -c
 61 ESTABLISHED
 13 FIN_WAIT1
 17 FIN_WAIT2
 1 LISTEN
 25 SYN_RECV
 298 TIME_WAIT

Hiển thị tất cả các IP đang kết nối và số lượng kết nối từ mỗi IP

1
2
$ watch "netstat -an | grep ':80' | awk '{print \$5}' | sed s/'::ffff:'// | cut -d\":\" -f1 | sort | uniq -c"
$ watch "netstat -an | grep :80 | awk '{print \$6}' | sort | uniq -c"

Khi đã phát hiện IP có dấu hiệu bất thường, bạn có thể sử dụng CSF để block IP đó lại.

Comments