Các dòng lệnh cơ bản và nâng cao khi sử dụng Linux

I. VỚI NỘI DUNG FILE.

Xem 10 dòng đầu tiên

head -10 file-input.txt

Xem 10 dòng cuối

tail -10 file-input.txt

Xem từ dòng 10 đến dòng 20

awk 'NR >= 10 && NR <= 20' file-input.txt

Xóa dòng 10 đến dòng 20, sau đó tạo file mới

sed '1,20d' file-input.txt > file-output.txt

Xóa các dòng có nội dung là “error”, sau đó tạo file mới

sed '/^error/d' file-input.txt > file-output.txt

Tìm các dòng có nội dung là error, xuất ra màn hình là dòng nào.

grep -n error file-input.txt
grep -w "error" file-input.txt

Xem file-input.txt có bao nhiêu dòng

wc -l file-input.txt

Cắt file-input.txt ra nhiều file-output mỗi file 1000 dòng.

split -d -l 1000 file-input.txt file-output.txt

Xóa các dòng trùng nhau

sort file-input.txt | uniq > file-output.txt #sắp xếp và xóa dòng trùng nhau
uniq file-input.txt > file-output.txt # chỉ xóa dòng trùng

II. VỚI FILE VÀ THƯ MỤC

Copy một file

cp ten_file.txt ten_file_new.txt

 Xóa toàn bộ file trong thư mục

rm -rf *

Tìm file có chứa nội dung “error”

find /home -type f -exec grep -l 'error' {} \;

Tìm kiếm tên file + folder

find . error.log #tìm file có tên
find / -type d -name error #tìm thư muc có tên error

Tìm các file mới được chỉnh sửa

find / -mtime 50 #được chỉnh sửa trong 50 ngày
find / -mtime +50 –mtime -100 #được chỉnh sửa trong vòng 50 - 100 ngày
find ./ -cmin -60 #được tạo ra trong vòng 1 giờ

Tìm các file được phân quyền 444

find . -type f -perm 444

Gọp chung các file lại thành 1 file duy nhất

cat file_input1.txt file_input2.txt file_input3.txt > combined-file-output.txt

hoặc

cat *.txt > combined-file-output.txt

III. Network

Chặn truy cập từ tất cả, ngoài trừ 1 IP cụ thể

iptables -I INPUT -p tcp -m tcp –dport 3306 -j DROP
iptables -I INPUT -i eth0 -s 1.1.1.1 -p tcp –destination-port 3306 -j ACCEPT

IV. Process

Kill nhiều processes cùng lúc trong Linux

To kill all PHP Processes

kill $(ps aux | grep '[p]hp' | awk '{print $2}')

To kill all Nginx Processes

kill $(ps aux | grep '[n]ginx' | awk '{print $2}')

To kill all MySQL Processes

kill $(ps aux | grep '[m]ysql' | awk '{print $2}')

SYSTEM

Cài đặt gói

Ví dụ cài nén và giải nén zip

yum install zip

Xem dung lượng còn trống và đang sử dụng

df -h

Cấp quyền cho thư mục

chown -R nginx:nginx /home

Hoặc

chmod 777  /home 

Chỉnh sửa và xem CronTab

crontab -e

hoặc

crontab -e

Phân quyền files và thư mục cho WordPress

Tìm tất cả thư mục trong /home và phân quyền là 755

find /home/ -type d -exec chmod 755 {} \;

Tương tự, tìm tất cả files trong /home và phân quyền là 644

find /home/ -type f -exec chmod 644 {} \;

Sau đó mới chmod lại 2 file quan trọng wp-config.php và nginx.conf thành 444

chmod 444 nginx.conf

chmod 444 wp-config.php

Để bảo mật hơn khuyên dùng (chú ý sẽ không update, chỉnh sửa được plugin khi dùng cái này)

chown -R root:root /home/

Backup và Restore giữa 2 VPS bằng lệnh Rsync

Chức năng: Tự backup Source code + Database và đẩy sang VPS thứ 2 theo định kì. Tại VPS thứ 2 chỉ cần 1 câu lệnh sẽ tự động Restore.

Chú ý: Demo được thực hiện trên VPS Centminmod.

Tạm gọi VPS chính là VPS A, VPS phụ nhận file backup là VPS B có IP là: 192.168.0.1

I. BASIC

Trên VPS A.

Cài đặt rsync.

yum install -y rsync

Gõ tiếp

ssh-keygen -t dsa

Tới bước:  “Enter file in which to save the key (/root/.ssh/id_dsa):”

/root/.ssh/id_dsa_vps_a

Khi được hỏi

“Enter passphrase (empty for no passphrase):”
“Enter same passphrase again:”

Nhấn Enter

Copy Key vừa tạo sang VPS B bằng lệnh

scp /root/.ssh/id_dsa_vps_a.pub [email protected]:/root/

Tại VPS B

mkdir -p /root/.ssh/
touch -f /root/.ssh/authorized_keys
cat /root/id_dsa_vps_a.pub >> /root/.ssh/authorized_keys
chmod 644 /root/.ssh/authorized_keys

Tại VPS A

Đồng bộ hóa 2 thư mục /home/nginx/domains

rsync -aurzW -e "ssh -i /root/.ssh/id_dsa_vps_a" /home/nginx/domains [email protected]:/home/nginx/domains

Hẹn giờ đồng bộ hóa

crontab -e

Nhập (tự chạy đồng bộ hóa lúc 2h30 hàng ngày)

30 2 * * * rsync -aurzW -e "ssh -i /root/.ssh/id_dsa_vps_a" /home/nginx/domains [email protected]:/home/nginx/domains

Lưu và thoát

Ctrl + X --> Y --> Enter

II. Advanced

Nhiệm vụ là Backup toàn bộ Source và Database của Tất cả website bên VPS A, Đẩy sang VPS B và sau đó VPS B tự động Restore.

Chú ý: Tất cả đều thực hiện trên VPS nginx cài Centminmod, nên nếu bạn cài Apache hoặc gì gì đó thì tùy chỉnh thêm nhé.

Trên VPS A

Tạo 1 file backup.sh trong /root/ với nội dung như sau:

#!/bin/bash
{
printf "subject:Backup for VPS My_IP\nfrom:[email protected]\n\n"
echo "Deleting file Old Backups..."
rm -rf /var/backups
mkdir /var/backups/
chmod -R 777 /var/backups/
mkdir /var/backups/$(date +"%d-%m-%Y")/
mkdir /var/backups/$(date +"%d-%m-%Y")/websitecuaban.com/

echo "Starting backup database for websitecuaban.com..."
mysqldump --single-transaction --routines --triggers --add-drop-table --extended-insert -u usercuasql -h 127.0.0.1 -p'matkhau' tendatabase | gzip > /var/backups/$(date +"%d-%m-%Y")/websitecuaban.com/websitecuaban_$(date +"%d-%m-%Y")_database.sql.gz
echo "Starting backup files for websitecuaban.com..."
cd /home/nginx/domains/websitecuaban.com
zip -r /var/backups/$(date +"%d-%m-%Y")/websitecuaban.com/websitecuaban_$(date +"%d-%m-%Y")_source.zip public/ -q -x /public/wp-content/cache/**\*

echo "Starting backup database for All..."
passdata=`grep -oP "(?<=password=).*" ~/.my.cnf`
mysqldump -u root -p$passdata --all-databases | gzip > /var/backups/$(date +"%d-%m-%Y")/$(date +"%d-%m-%Y")_My_IP_database.sql.gz

echo "Starting Rsync to VPS Backup..."
rsync -aurzW -e "ssh -i /root/.ssh/id_dsa_vps_a" /usr/local/nginx/conf /var/backups/$(date +"%d-%m-%Y") root@192.168.0.1:/var/backups

} | /usr/sbin/sendmail "[email protected]"

Bạn thay đổi phần màu đỏ cho phù hợp với VPS của bạn.

Trên VPS B

Tạo 1 file restore.sh trong /root/ với nội dung như sau:

#!/bin/bash
{
printf "subject:Restore for VPS\nfrom:[email protected]\n\n"
echo "Starting Restore source for All..."
day=22-12-2015
cd /var/backups/$day
find . -name "*.zip" | grep -oP "(?<=.).*/" | while read filename; do mkdir "/var/backups/"$day$filename"log/"; done;
yes | cp -rf /var/backups/$day/* /home/nginx/domains/
yes | cp -rf /var/backups/conf/* /usr/local/nginx/conf/
cd /home/nginx/domains
find . -name "*.zip" | while read filename; do unzip -o -d "`dirname "$filename"`" "$filename"; done;
find . -name *source.zip -exec rm -rf {} \;

echo "Starting Restore database for All..."
gunzip *.sql.gz
passdata=`grep -oP "(?<=password=).*" ~/.my.cnf`
mysql -u root -p$passdata < *.sql
find . -name "*database.sql" -exec rm -rf {} \;
find . -name "*database.sql.gz" -exec rm -rf {} \;
service nginx restart
} | /usr/sbin/sendmail "[email protected]"

Bạn thay đổi phần màu đỏ cho phù hợp với VPS của bạn.

Cấu hình Crontab cho chạy tự động, trong trường hợp VPS A có vấn đề là 1-2 phút sau mình đã có VPS B để dự phòng rồi.

Done!

Cách phát hiện và hạn chế một cuộc tấn công DDoS

Xin nói trước là chỉ hạn chế thôi chứ không thể chống lại một cuộc tấn công DDoS nhé. Với lại tôi cũng không phải chuyên gia về bảo mật hay phòng chống DDoS, bởi vì web công ty bị phá riết, chống chọi với DDoS riết nên có tí kinh nghiệm và viết bài này. Cũng xin nói thêm trong loại tấn công website thì DDoS là nguy hiểm nhất và cũng hạ đẳng nhất. Còn tại vì sao thì phải tìm hiểu nhiều.

tan-cong-ddos

I. Check

Bằng netstat

Cái này mà > 500 tức là Server của bạn đã có vấn đề

netstat -n | grep :80 |wc -l

Cái này > 100 có thể là tấn công syn

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

Kiểm tra kết nối của tất cả các cổng, xem IP nào có nhiều connect nhất

netstat -ntu | grep ':' | awk '{print $5}' | sed 's/::ffff://' | cut -f1 -d ':' | sort | uniq -c | sort -n

Kiểm tra kết nối của port 80 và xem IP có nhiều kết nối nhất.

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

Kiểm tra các kết nối bằng giao thức tcp hoặc udp

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

Kiểm tra IP nào thực hiện nhiều gói SYN nhất

netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'

Phân tích file Log

Xuất ra màn hình tất cả IP > 10 connect, trong 1 giờ qua (15 giờ 8/12/2015)

grep -w '08/Dec/2015:15' /file_log_server_access.log | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | sort | uniq -cd | sort -nr | grep -v '^ *[1-9] '

Xem thêm: Phân tích Log VPS từ cơ bản đến nâng cao

II. Filter

Bằng Route

route add ipaddress reject

vd:

route add 111.111.111.1111 reject

Kiểm tra các IP đã bị Block bằng route

route -n |grep IPaddress

vd:

route -n |grep 111.111.111.1111

Bằng iptables

iptables -A INPUT 1 -s IPADRESS -j DROP/REJECT
service iptables restart
service iptables save

Xóa tất cả các kết nối

killall -KILL httpd
service httpd restart

Bằng csf

csf -d IPaddress

vd:

csf -d 111.111.111.111

Sau đó khởi động lại csf

csf -r

III. Service

Đơn giản nhất là dùng các dịch vụ chống DDoS, tất nhiên là tốn phí.

Nổi tiếng nhất và hiệu quả nhất là Cloudflare để chống được DDoS thì ít nhất phải dùng gói Business 200$/m, gói Free và 20$/m chỉ có chức năng tối ưu cho website thôi nhé, không có chức năng chống DDoS.

Tiếp đến là Incapsula  với gói Small Businesses 299$/m cũng là một sự lựa chọn hoàn hảo.

…còn nữa

Tham khảo: eukhost.com, sinhvienit.net

Đặt mật khẩu bảo vệ File và Folder trong Nginx

Với WordPress thông thường chúng ta hay bảo vệ thư mực wp-admin và file wp-login.php

mat-khau-file-folder-wordpress

Bước 1: Tạo file chứa user và mật khẩu được mã hóa.

htpasswd -c /home/nginx/domains/websitecuaban.com/public/.htpasswd username password

với câu lệnh trên hệ thống sẽ tạo 1 file .htpasswd trong thư mục gốc /home/nginx/domains/websitecuaban.com/public/

Hoặc bạn cũng có thể vào: https://www.htaccesstools.com/htpasswd-generator/ để tạo thủ công.

Bước 2: Liên kết file cấu hình domain với user, mật khẩu vừa tạo.

Edit file:

/usr/local/nginx/conf/conf.d/websitecuaban.com.conf

Thêm dòng này để bảo vệ thư mục wp-admin

location /wp-admin {
 auth_basic "Administrator Login";
 auth_basic_user_file /home/nginx/domains/websitecuaban.com/public/.htpasswd;
 }

Thêm dòng này để bảo vệ file wp-login.php

location ~ ^/(wp-login.php) {
 include /usr/local/nginx/conf/php.conf;
 auth_basic "Administrator Login";
 auth_basic_user_file /home/nginx/domains/websitecuaban.com/public/.htpasswd;
 }

Chú ý: các dòng code phải nằm trong thẻ đóng:

server {
...code ở trong này...
}

Xong rồi khởi động lại nginx

service nginx restart

 

Cách backup Website từ VPS CentOS lên Google Drive

Hôm trước đã hướng dẫn cách làm sao để tự động backup Source code và DataBase rồi. Nhưng backup xong vẫn nằm trên VPS đó, trong trường hợp VPS có chuyện thì rất nguy hiểm, mà get về thủ công thì rất lâu với những ai quản trị nhiều site.

Xem bài viết: Tự động backup Database và Source code bằng Crontab

Hôm nay sẽ giải quyết vấn đề là làm thế nào để quẵng tất cả các file backup đó lên Google drive.

I. Tạo google project

1.Vào đây: https://console.developers.google.com/project

Tạo 1 Project mới.

click "Create Project" ->  Project name "Nhập tên tùy ý ví dụ: saoluu"

2.Vào đây: https://console.developers.google.com/apis/library

Chọn project vừa tạo -> Overview -> và Enabled: Drive API, Admin SDK, Google Apps Marketplace SDK

3.Tiếp tục chọn tab Credentials.

Add Credentials -> Service account -> Check P12 -> Create

4.Xong thì nhận được 1 file có tên dạng saoluu-5e923c74024b.p12 lưu vào 1 nơi cẩn thận sau này dùng.

Và cài mail: xxxxxxxxxxxx[email protected]

II. Tạo 1 thư mục trên Google Drive và chia sẻ với mail trên.

Bước này đơn giản là tạo 1 thư mục mới trên Google Drive

Chú ý:

  • Chia sẻ với mail đã nhận ở trên: xxxxxxxxxxxx[email protected] và phát quyền được phép chỉnh sửa.
  • Link của thư mục có dạng: https://drive.google.com/drive/u/0/folders/0B18aFuiEcupjNVoxSVloY2mwMJU nhớ đoạn đánh dấu màu đỏ, xíu nữa dùng.

III. Thao tác trên VPS.

1.Cài đặt một số Pack cần thiết, mình dùng CentMinMod thấy 2 cái này là đủ

yum -y install python-pip
pip install --upgrade google-api-python-client

2.Tải file này về: configs

Giải nén ra được thư mục: configs -> copy file saoluu-5e923c74024b.p12 đã làm ở bước I.4 bỏ vô và edit file config.json với nội dung như sau:

{
 "service_account":"xxxxxxxxxxxx-4rl923m4nktdrnks20gudca0j1ldm7mg@developer.gserviceaccount.com",
 "private_key12_path":"saoluu-5e923c74024b.p12",
 "backup_folder_id":"0B18aFuiEcupjNVoxSVloY2mwMJU",
 "description" : "Backup VPS to Google Drive",
 "max_file_in_folder": 100
}

Giải thích:

  • “service_account”: là cái email đã nhận ở bước 1.4
  • “private_key12_path”: đường dẫn cái file đã nhận ở bước 1.4 (mới copy vô)
  • “backup_folder_id”: là cái đuôi phía sau của url thư mục Google drive đã nhận ở bước II
  • “max_file_in_folder”: là số file tối đa của thư mục trên google, ở đây là 100 trong trường hợp nhiều hơn sẽ xóa file cũ nhất.

3. Upload thư mục configs lên /root/ của VPS

Set quyền cho file backup.py trong /root/configs là 755, tức là có quyền thực thi.

Chạy thử:

python /root/configs/backup.py /root/configs/config.json /var/backups/source.zip

Giải thích:

  • “/root/configs/backup.py”: nơi chứa file thực thi python
  • “/root/configs/config.json”: nơi chứa file cấu hình
  • “/var/backups/source.zip”: file muốn đưa lên Google drive

Nếu quá trình chạy hoàn tất và không báo lỗi, kiểm tra trên google drive có file source.zip thì xin chúc mừng.

Trong trường hợp bị lỗi thì thêm mấy anh này vô.

yum update
yum groupinstall "Additional Development" "Development tools" 
yum install libffi-devel
pip install pycrypto
easy_install pyopenssl

Nếu bị lỗi: No crypto library available thì chạy dòng này:

sudo pip2 install --upgrade --force pip
pip install PyOpenSSL

 

IV: Nâng cao (Hẹn giờ tự động backup, đẩy lên Google drive từ A – Z)

Bài tự động backup thì đã hướng dẫn ở đây: https://tangduongtrieu.com/tu-backup-database-va-source-code-bang-crontab-trong-centminmod/

Nhưng giờ có chỉnh sửa xíu:

1. Tạo file backup.sh trong /root/ và chmod quyền thực thi 755 với nội dung như sau:

#!/bin/bash
{
 printf "subject:Backup for VPS\nfrom:mail_nguoi_gui\n\n"
 echo "Deleting file Old Backups..."
 rm -rf /var/backups
 mkdir /var/backups
 chmod -R 777 /var/backups
 mkdir /var/backups/$(date +"%Y-%m-%d")/
 mkdir /var/backups/$(date +"%Y-%m-%d")/websitecuaban.com/
 
 echo "Starting backup database for websitecuaban.com..."
 mysqldump --single-transaction --routines --triggers --add-drop-table --extended-insert -u username_cuaban -h 127.0.0.1 -p'matkhau' database_cuaban | gzip -9 > /var/backups/$(date +"%Y-%m-%d")/websitecuaban.com/websitecuaban_$(date +"%Y-%m-%d").sql.gz
 echo "Starting backup files for websitecuaban.com..."
 zip -r /var/backups/$(date +"%Y-%m-%d")/websitecuaban.com/websitecuaban_$(date +"%Y-%m-%d").zip /home/nginx/domains/websitecuaban.com/public
 
 echo "Upload To Google Drive"
 python /root/configs/backup.py /root/configs/config.json /var/backups/$(date +"%Y-%m-%d")/websitecuaban.com/websitecuaban_$(date +"%Y-%m-%d").sql.gz
 python /root/configs/backup.py /root/configs/config.json /var/backups/$(date +"%Y-%m-%d")/websitecuaban.com/websitecuaban_$(date +"%Y-%m-%d").zip
 } | /usr/sbin/sendmail "[email protected]"

Thay phần nội dung màu đỏ cho phù hợp với Website của bạn.

Sau khi chạy nếu kiểm tra oke hết thì chuyển đến bước tiếp theo là tự động chạy backup vào 1 ngày định trước.

2. Crontab cho backup.sh

Gõ lệnh

crontab -e

Nhập

@weekly /root/backup.sh

Lưu và thoát

Ctrl + X --> Y --> Enter

Để chắc chắn crontag luôn chạy thì gõ thêm 3 lệnh này nữa.

service crond start
service crond restart
chkconfig crond on

Done!

Tham khảo và chỉnh sửa từ: https://dethoima.info/tu-dong-backup-du-lieu-len-google-drive/

Gốc của Source thì nằm ở đây: https://github.com/bachvtuan/Backup-To-Google-Drive

Phân tích Log của VPS từ cơ bản đến nâng cao

Chú ý: Demo được thực hiện trên CentMinMod những VPS khác thì thay được dẫn File log nhé

Tham khảo thêm: Các dòng lệnh bỏ túi trong Linux

Lệnh tail để liệt kê các dòng cuối cùng trong file, ở đây ví dụ là 10 bạn có thể thay đổi thành 100, 1000… tùy theo muốn xem nhiều hay ít.

log

I. Đơn giản

Check log chung của Server

tail -10 /usr/local/nginx/logs/access.log
tail -10 /usr/local/nginx/logs/error.log

Check log từng Domain:

tail -10 /home/nginx/domains/domainname.com/log/access.log
tail -10 /home/nginx/domains/domainname.com/log/error.log

Kiểm tra trong /var/log

ls -lhrt /var/log

Check PHP-FPM

tail -10 /var/log/php-fpm/www-error.log
/var/log/php-fpm/www-php.error.log

Kiểm tra log trong cơ sơ dữ liệu MySQL / MariaDB

tail -10 /var/log/mysqld.log

Kiểm tra log trong CSF firewall

tail -10 /var/log/lfd.log

Kiểm tra log trong Mail

tail -10 /var/log/maillog

For Cron job

tail -10 /var/log/cron

II. Nâng cao

Lấy tất cả các log trong 1 ngày

Ví dụ mình lấy các log trong ngày 5/12/2015

grep -w '05/Dec/2015' /home/nginx/domains/domain.com/log/access.log

Lấy log trong nhiều ngày bất kỳ

Lấy tất cả các log trong ngày 5/12/2015 ngày 4/12/2015

grep -w '05/Dec/2015\|04/Dec/2015' /home/nginx/domains/domain.com/log/access.log

Lấy tất cả IP trong file log

grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' /home/nginx/domains/domain.com/log/access.log

Lấy log trong ngày được và chuyển hướng google

Chỉ lấy các dòng có chuổi là “05/Dec/2015”  “google” (Được hiểu là Log của ngày 5/12/2015 và được chuyển hướng từ google)

grep -w '05/Dec/2015.*google' /home/nginx/domains/domain.com/log/access.log

Xuất ra log trong ngày và điều kiện “hoặc”

Chỉ lấy các dòng có chuổi là “05/Dec/2015” và “google”  HOẶC có chuổi là “04/Dec/2015” và “google”

grep -w '05/Dec/2015.*google\|04/Dec/2015.*google' /home/nginx/domains/domain.com/log/access.log

Xuất ra tất cả IP với điều kiện

Xuất tất cả các IP được chuyển hướng từ Google được ghi nhận từ ngày 4 và 5/12/2015

grep -w '05/Dec/2015.*google\|04/Dec/2015.*google' /home/nginx/domains/domain.com/log/access.log | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'

Xuất số kết nối của IP đến server trong ngày

Đếm xem số lần kết nối của một IP được chuyển hướng từ Google trong ngày 5/12/2015

grep -w '05/Dec/2015.*google' /home/nginx/domains/domain.com/log/access.log | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | soft | uniq -cd | sort -nr

Xuất ra tất cả các IP có >10 kết nối trong ngày

Kiểm tra tất cả các IP có > 10 kết nối trong ngày 5/12/2015

grep -w '05/Dec/2015' /home/nginx/domains/domain.com/log/access.log | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | sort | uniq -cd | sort -nr | grep -v '^ *[1-9] '

Xem toàn bộ chuyển hướng từ google trong 1 tháng

Xuất ra màn hình toàn bộ log được chuyển hướng từ google tháng 12/2015 nhưng không chứa bot.html

grep -w 'Dec/2015.*google.com' /home/nginx/domains/domain.com/log/access.log | grep -v 'bot.html'

Xem link có nhiều lượt truy cập nhất trong tháng

Link có nhiều lượt truy cập nhất từ google trong tháng 12/2015, không tính bot

grep -w 'Dec/2015.*google.com' /home/nginx/domains/domain.com/log/access.log | grep -v 'bot.html' | grep -oP '(?<=GET ).*/ ' | sort | uniq -cd | sort -nr | grep -v '^ *1 '

Làm thế nào để bật và tắt tường lửa trong CentOS 7

Khi cần setup csf hoặc một số mod khác có yêu cầu Start and Enable – Stop and Disable Firewalld.

firewall

Sau đây là một số lệnh cơ bản.

Enable Firewalld

systemctl enable firewalld

Start Firewalld

systemctl start firewalld

Check the Status of Firewalld

systemctl status firewalld

Disable Firewalld

systemctl disable firewalld

Stop Firewalld

systemctl stop firewalld

Check the Status of Firewalld

systemctl status firewalld

 

Cách tìm ra IP thật của domain sử dụng CloudFlare

1. Ping thử với một số Sub domain sau:

  • ping direct-connect.domain.com
  • ping direct.domain.com
  • ping ftp.domain.com
  • ping cpanel.domain.com
  • ping mail.domain.com

2. Thử may mắn với:

https://toolbar.netcraft.com/site_report?url=

3. Chuyên nghiệp hơn thì dùng nmap

# nmap --script dns-brute -sn <target>

Tìm ra IP rồi thì xem site mở Port nào bằng

# nmap -sV -sS -F <target>