• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    perl脚本实现限制ssh最大登录次数(支持白名单)

    ssh limit perl脚本主要作用:
    1.限制一个ssh用户的最大登录数为n,n可自定义。
    2.支持白名单,如root、test登录不受限制。

    如果一个ssh用户的最大登录数超过指定数字,则后登录的会把先前登录的踢掉,以此达到控制登录数的目的。

    该脚本需要主机支持perl,如果没有,可yum安装。

    脚本源码:

    #!/usr/bin/perl -w
    use strict;
    #white list
    my @ALLOW_USERS = qw{
      test
      root
      lulu1
    };
    #the maximum number of ssh login
    my $LOGIN_TIMES = 1;
    sub main
    {
      my @lines = `ps -eo user,pid,etime,cmd | grep sshd`;
      my $users;
      for my $line (@lines) {
        if(my ($user, $pid, $etime, $cmd) = $line =~ /^([^s]+)s+(d+)s+([^s]+)s+(sshd:.+)$/) {
          next if grep {$user eq $_} @ALLOW_USERS;
          my $proc = {'pid', $pid, 'etime', $etime, 'cmd', $cmd};
          push @{$users->{$user}}, $proc;
        }
      }
      for my $key(keys(%$users)) {
         my @sshs = sort {
          my ($lb, $la) = (length($b->{'etime'}), length($a->{'etime'}));
          if($lb == $la) {
            $b->{'etime'} cmp $a->{'etime'};
          } else {
            $lb => $la;
          }
        } @{$users->{$key}};
        $LOGIN_TIMES = 1 if $LOGIN_TIMES  1;
        for (1 .. $LOGIN_TIMES) { pop @sshs; };
        for my $ssh (@sshs) {
          kill 9, $ssh->{'pid'};
        }
      }
    }
    while(1) {
      main;
      sleep 3;
    }
    
    


    【使用方法】

    另存脚本存到root目录,命名为limit.pl,然后执行:

    echo "/root/limit.pl " >> /etc/rc.d/rc.local (加入开机启动)
    /root/limit.pl  (运行脚本)
    

     

    您可能感兴趣的文章:
    • Oracle 添加用户并赋权,修改密码,解锁,删除用户的方法
    • Oracle新建用户、角色,授权,建表空间的sql语句
    • [Oracle] 如何使用触发器实现IP限制用户登录
    • zf框架的session会话周期及次数限制使用示例
    • ORACLE 10G修改字符编码没有超字符集的限制
    • javascript Deferred和递归次数限制实例
    • Java用Cookie限制点赞次数(简版)
    • java发送短信系列之限制日发送次数
    • C# winform实现登陆次数限制
    • Oracle用户连续登录失败次数限制如何取消
     
    上一篇:Perl批量下载Gmail附件的代码
    下一篇:perl脚本学习指南--读书笔记
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    perl脚本实现限制ssh最大登录次数(支持白名单) perl,脚本,实现,限制,ssh,最大,登录,次数,支持,