Linux查看访问IP以及统计日志访问最多的IP ,以及安全的问题

Shell命令 置顶 精帖
127
linux
linux 举报
05月28日 13:19
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



版权声明:本文为CSDN博主「半碗面」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_34861341/java/article/details/91053303


倒序看帖 只看楼主
推广信息