首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | HR | 镜像
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>系统管理>系统管理>正文

用Shell写DEAMON后台来控制安全访问的方法

http://www.oklinux.cn  2007-09-18  赛迪网 kid  会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

如何做一个后台DEAMON来控制安全访问?这就是贯穿这篇文章的中心概念。

 

我的控制访问比较特殊,考虑到远程登陆点并非固定,所以无法设定固定IP通过SSH登陆服务器。这样N多IP会通过黑客软件试图破解您的用户名和密码(基本都是穷举,不怕一万只怕万一,因此我写了这个后台脚本)。

 

安全:利用/etc/hosts.deny、/etc/hosts.allow来做tcp wrapper控制访问,配合iptables作进一步过滤。

 

crontab最短执行周期是每隔1分钟执行一次,而以下这段代码的最短执行周期可以自定义(最短1秒)

 

脚本名:sshd_monitor

 

#!/bin/sh

while true

 

#使用while true来做循环,这样当脚本后台执行的时候总是会根据sleep时间的长短来执行任务

 

do

 

cat /var/log/secure* |awk '{if($6=="Invalid")print $10}' |sed 's/::ffff://g' |sort -n |uniq -c |awk '{if($1>=5)print $2}' >/root/lawless_ip

 

#在secure日志中,获取登陆失败大于5次的ip并输入到lawless_ip文件中

 

row=`cat /root/lawless_ip|wc -l`

 

#记录lawless_ip文件中的ip记录条数

 

a=0

 

for z in `seq 1 $row`

 

#从第一个ip开始写规则到lawless_ip_deny这个临时文件中,起结果会类似 ALL:123.123.123.123 ..........

 

do

a=$[$a+1]

row_ip=`cat /root/lawless_ip |sed -n -e ""$a"p"`

echo -e "ALL:$row_ip" >> /root/lawless_ip_deny

 

done

 

cat /root/lawless_ip_deny > /etc/hosts.deny

 

#然后将lawless_ip_deny文件中的内容写入到hosts.deny。

 

rm /root/lawless_ip_deny

 

#删除该临时文件

 

sleep 10

 

#每隔10秒执行while操作

done

 

为防止自己登陆失败超过5次被禁止,需要在/etc/hosts.allow中加入自己本机或许可某个IP总是能够登陆的匹配规则如: ALL:192.168.10.12。记住,一般allow的优先级总比deny高。此外,在/etc/rc.local加句sh /dir/sshd_monitor &,保证每次启动服务器时都能后台运行该脚本。

 

以上方法只是抛砖引玉,这样的deamon可以写成监控ftp、http、进程等各种需求,相当实用。

 

 


上一篇:Linux系统优化及安全配置个人体会总结   下一篇:初识Linux操作系统的环境变量

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·Ubuntu Linux 7.04操作系统下打开RAR文件
·Linux操作系统备份后的恢复方法
·设定Linux操作系统的启动密码
·系统服务所有者、组、权限简介
·Linux操作系统上不同文件系统的兼容问题
·Ubuntu Linux系统下安装设置PGPLOT
·Linux操作系统下进行硬盘扩容
·Linux系统上不同文件系统的兼容问题
·Linux系统文本模式下安装VMware虚拟机
·如何运用Gdb对ARM板上的程序进行远程调试
·Linux系统工具让高耗能的应用软件现身
·Linux系统下虚拟光驱(iso)的挂载
·从头开始对Ubuntu操作系统进行彻底优化
·介绍Linux操作系统下杀死进程命令的方法
·在Ubuntu Linux 7.04系统下配置Ruby环境
·Linux系统命令启动服务的名称和功能
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·VirtualBox为Ubuntu系统配置共享文件夹
·Ubuntu下安装Netgear WG511v2 无线网卡
·Redhat Enterprise Linux磁带机简单操
·Linux系统下创建DBCA报错的解决方法
·Fedora和XP双系统中网卡Realtek冲突问
·Ubuntu开机自动挂载Win分区
·ubuntu8.04如何访问其它分区
·Fedora 9的安全措施
· 移动Linux系统中的TMP分区
·双Linux和多Linux系统的安装方法介绍
·轻松设置Wine程序的中文显示
·Linux系统下强大的杀毒软件:Avast
  阅读排行
·在Linux系统下查看端口的使用情况及启
·在Linux操作系统下查看磁盘空间的好方
·使用源代码将 Glibc 升级到 2.6
·Useradd和Adduser添加用户工具使用方法
·Linux系统的头文件和库文件搜索路径
·Linux下推荐的常用应用程序列表
·Linux环境进程间通信——信号(上)
·设置GRUB默认启动系统及Menu.lst参数介
·Linux系统挂载U盘和硬盘光驱的问题
·Df命令:查看Linux磁盘剩余空间方法介
·什么是Linux?Linux与UNIX之间的关系
·Linux系统利用Crontab命令实现定时重启
·使用 ActiveScaffold 增强 Ruby on Rai
·Linux系统下常用命令及账户管理
·新手入门:手把手教你如何写Makefile
网摘收藏: