Linux查看訪問IP以及統計日誌訪問最多的IP ,以及安全的問題

Linux 系統有很多用於快速處理數據的工具如 grep , awk , cut , sort , uniq , sort 可以幫助我們分析網絡情況 , 他們非常非常地好用 , 如果你熟練掌握他們的使用技巧 , 他們則可以幫你快速定位問題 ; 接下來一步步來查看訪問系統的 IP 情況

通過 netstat -ntu , 找出通過 tcp 和 udp 連接服務器的 IP 地址列表 :

[root@izufxxxxxezyz ~]# netstat -ntu
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 172.17.63.162:57852     100.100.30.25:80        ESTABLISHED
tcp        0      0 172.17.63.162:22        223.73.57.231:37362     ESTABLISHED
tcp        0     52 172.17.63.162:22        223.73.57.231:37448     ESTABLISHED

使用 awk 將第五列單獨截出來 :

[root@izufxxxxxezyz ~]# netstat -ntu | grep tcp | awk '{print $5}'
100.100.30.25:80
223.73.57.231:37362
223.73.57.231:37448

安全問題

centos7用的是firewall 添加單個黑名單隻需要把ip添加到 /etc/hosts.deny

格式  sshd:$IP:deny

vim /etc/hosts.deny   添加你要禁止的ip就可以了

sshd:192.168.1.142:deny

找了個,多次失敗登錄即封掉IP,防止暴力破解的腳本 親測有效 超過5次的就加到黑名單

1、編輯腳本  vim /usr/local/bin/secure_ssh.sh

#! /bin/bash
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.txt
for i in `cat  /usr/local/bin/black.txt`
do
  IP=`echo $i |awk -F= '{print $1}'`
  NUM=`echo $i|awk -F= '{print $2}'`
   if [ $NUM -gt 5 ];then
      grep $IP /etc/hosts.deny > /dev/null
    if [ $? -gt 0 ];then
      echo "sshd:$IP:deny" >> /etc/hosts.deny
    fi
  fi
done

2、創建記錄登錄失敗次數的文件  touch /usr/local/bin/black.txt

3、添加定時 5分鐘執行一次   

     */5 * * * *  sh /usr/local/bin/secure_ssh.sh

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章