Linux系统监控之ssh登陆自动139邮件短信提醒
时间:2015-09-21 00:38 来源:linux.it.net.cn 作者:IT
Linux系统监控非常重要,互联网的网络的安全是一个非常重要的问题,很多时候,我们会出于安全考虑,希望服务器在有用户通过ssh登陆时能自动向管理员发送一条邮件,通知登陆用户名和IP。这是一种不错的安全防范机制,它可以让管理员及时发现异常登陆,并在造成更大危害前(比如获得更高权限)阻止恶意访问。
这里要说明的是,包子使用139邮箱,因为,大家知道这个139邮箱邮件是有移动的短信提醒的。这里有个缺点就是频繁登录的话不断发送短信,这个可以做个一个IP列表即可。
这个脚本对于ssh安全监控非常有用,系统非法登陆都可以时时了解情况,及时保护服务器安全
邮件发送我们使用:sendemail-v1.56 详细可以看:http://www.jincon.com/archives/66/
tar xvf sendEmail-v1.56.tar.gz
mv sendEmail-v1.56 sendEmail
vi /etc/ssh/sshrc
#!/bin/sh
user=$USER
ip=${SSH_CLIENT%% *}
if [ "$user" != "root" ] || [ "$ip" != "192.168.2.88" ]
then
/home/shell/sendEmail/sendEmail -f XXX@XXX -t XXX@XXX -s smtp.XXX -u "查看谁登陆###192.168.2.4###" -xu USER -xp PASSWD -m "###time:`date +%Y-%m-%d`###.###user:$USER@`hostname`###.###ClientIP:${SSH_CLIENT%% *}###"
fi
chmod +x /etc/ssh/sshrc
###############简单讲解####################
$USER获取到系统登陆通过ssh的用户名
${SSH_CLIENT%% *}取到系统登陆通过ssh的用户名的IP
if [ "$user" != "root" ] || [ "$ip" != "192.168.2.88" ]使用或来判断来源,是否发邮件报警
###########################################
测试:
1 使用root并且IP为非192.168.2.88,看是否发邮件报警
附上本人的shell生产环境的shell脚本,本人的是更精简,而且是发送139邮箱的。
1
#!/bin/sh
2
user=$USER
3
ip=${SSH_CLIENT%% *}
4
#if [ "$user" != "root" ] || [ "$ip" != "192.168.91.123" ]
5
if
[
"$ip"
!=
"某个IP"
]
6
then
7
/usr/
local
/bin/sendEmail -f QQ号@qq.com -t 手机号@139.com -s smtp.qq.com -u '有人
8
登陆服务器' -xu QQ号 -xp QQ密码 -m
"${SSH_CLIENT%% *} , `date +%m-%d` , $USER@`hostname`"
9
fi
(责任编辑:IT)
Linux系统监控非常重要,互联网的网络的安全是一个非常重要的问题,很多时候,我们会出于安全考虑,希望服务器在有用户通过ssh登陆时能自动向管理员发送一条邮件,通知登陆用户名和IP。这是一种不错的安全防范机制,它可以让管理员及时发现异常登陆,并在造成更大危害前(比如获得更高权限)阻止恶意访问。 这里要说明的是,包子使用139邮箱,因为,大家知道这个139邮箱邮件是有移动的短信提醒的。这里有个缺点就是频繁登录的话不断发送短信,这个可以做个一个IP列表即可。 这个脚本对于ssh安全监控非常有用,系统非法登陆都可以时时了解情况,及时保护服务器安全 邮件发送我们使用:sendemail-v1.56 详细可以看:http://www.jincon.com/archives/66/ tar xvf sendEmail-v1.56.tar.gz mv sendEmail-v1.56 sendEmail vi /etc/ssh/sshrc #!/bin/sh user=$USER ip=${SSH_CLIENT%% *} if [ "$user" != "root" ] || [ "$ip" != "192.168.2.88" ] then /home/shell/sendEmail/sendEmail -f XXX@XXX -t XXX@XXX -s smtp.XXX -u "查看谁登陆###192.168.2.4###" -xu USER -xp PASSWD -m "###time:`date +%Y-%m-%d`###.###user:$USER@`hostname`###.###ClientIP:${SSH_CLIENT%% *}###" fi chmod +x /etc/ssh/sshrc ###############简单讲解#################### $USER获取到系统登陆通过ssh的用户名 ${SSH_CLIENT%% *}取到系统登陆通过ssh的用户名的IP if [ "$user" != "root" ] || [ "$ip" != "192.168.2.88" ]使用或来判断来源,是否发邮件报警 ########################################### 测试: 1 使用root并且IP为非192.168.2.88,看是否发邮件报警 附上本人的shell生产环境的shell脚本,本人的是更精简,而且是发送139邮箱的。
(责任编辑:IT) |