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

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