perl腳本實現(xiàn)限制ssh最大登錄次數(shù)(支持白名單)
更新時間:2014年07月05日 11:24:20 投稿:junjie
這篇文章主要介紹了perl腳本實現(xiàn)限制ssh最大登錄次數(shù),腳本支持支持白名單設(shè)置,例如root可以不限制登錄次數(shù),需要的朋友可以參考下
ssh limit perl腳本主要作用:
1.限制一個ssh用戶的最大登錄數(shù)為n,n可自定義。
2.支持白名單,如root、test登錄不受限制。
如果一個ssh用戶的最大登錄數(shù)超過指定數(shù)字,則后登錄的會把先前登錄的踢掉,以此達到控制登錄數(shù)的目的。
該腳本需要主機支持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,然后執(zhí)行:
echo "/root/limit.pl &" >> /etc/rc.d/rc.local (加入開機啟動) /root/limit.pl & (運行腳本)
您可能感興趣的文章:
- Oracle 添加用戶并賦權(quán),修改密碼,解鎖,刪除用戶的方法
- Oracle新建用戶、角色,授權(quán),建表空間的sql語句
- [Oracle] 如何使用觸發(fā)器實現(xiàn)IP限制用戶登錄
- Zend Framework框架的session會話周期及次數(shù)限制使用示例
- ORACLE 10G修改字符編碼沒有超字符集的限制
- javascript Deferred和遞歸次數(shù)限制實例
- Java用Cookie限制點贊次數(shù)(簡版)
- java發(fā)送短信系列之限制日發(fā)送次數(shù)
- C# winform實現(xiàn)登陸次數(shù)限制
- Oracle用戶連續(xù)登錄失敗次數(shù)限制如何取消
相關(guān)文章
perl腳本實現(xiàn)限制ssh最大登錄次數(shù)(支持白名單)
這篇文章主要介紹了perl腳本實現(xiàn)限制ssh最大登錄次數(shù),腳本支持支持白名單設(shè)置,例如root可以不限制登錄次數(shù),需要的朋友可以參考下2014-07-07
使用Perl創(chuàng)建指定編碼格式(如utf-8)文件的實現(xiàn)代碼
當(dāng)Perl讀入的源文件是Unicode的utf-8格式時,在使用Perl處理并輸出到一個新文件以后,編碼格式會自動發(fā)生變化2013-02-02
perl實現(xiàn)檢測服務(wù)器中的服務(wù)是否正常腳本分享
這篇文章主要介紹了perl實現(xiàn)檢測服務(wù)器中的服務(wù)是否正常腳本分享,本文腳本用于檢測Linux服務(wù)器的服務(wù)是否正常,需要的朋友可以參考下2014-10-10

