免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5058 | 回复: 17
打印 上一主题 下一主题

[SCO UNIX] 限制IP登录 (回复gjie) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-01-02 19:23 |只看该作者 |倒序浏览
有几个朋友来信再次询问限制IP地址TELNET的问题,虽然论坛中有很多高手做过解答,但我还是想把我自己的做法贴上来,与大家交流,也希望新手能从中获益,希望大家不要笑话我。

此shell特点:
1、不屏闭主控台,以免新手弄错导致自己都进不了系统。
2、可以按网段或IP限制登录(在/etc/telhosts文件中定义),并可定义此网段或IP的TELNET个数(只有IP第四个字段可以设为*。要让每个字段都可以设为*,会使shell复杂,没必要)。
3、仿照许可登录的判断方法,增几条语句后,可以指定拒绝登的IP,这部分我没写,因为只要你不定义许可登录,事实上用户根本就登不上来。
4、加了一个登录时间许可判断。

使用方法:
把下面SHELL加到/etc/profile 文件最后,并编缉/etc/telhosts文件,加入类似如下内容,并赋权限为644:


#/etc/telhosts文本样例
#      用户名 IP地址      许可登录个数
allow root 18.129.32.140 5
allow root 18.129.32.*   10

下面这段shell 请加入到 /etc/profile 最后

echo "login check ..."

TIME=`date '+%Y%m%d-%H:%M:%S'`                                #取当前时间
TTY=`tty | cut -f3 -d'/'|sed "s/not a tty/not_a_tty/"`        #取终端号
IP3=`who -mx|awk -F ' ' '{print $6}'|cut -f1-3 -d'.'`        #取IP前3个字节
IP4=`who -mx|awk -F ' ' '{print $6}'|cut -f1-4 -d'.'`        #取IP全址

FLAG=`awk -F ' ' '{print $1,$2,$3,$4}' /etc/telhosts | \
    grep -c "^allow $LOGNAME $IP3\.\*"`
if [ "$FLAG" = "1" ]        # FLAG=1 表示允许整个网段telnet
  then MAXTERM=`awk -F ' ' '{print $1,$2,$3,$4}' /etc/telhosts | \
                grep "^allow $LOGNAME $IP3\.\*"|awk -F ' ' '{print $4}'`
       TERMNUM=`who -x|grep " $IP3."|grep -c "^$LOGNAME "`
  else MAXTERM=`awk -F ' ' '{print $1,$2,$3,$4}' /etc/telhosts | \
                grep "^allow $LOGNAME $IP4"|awk -F ' ' '{print $4}'`
       TERMNUM=`who -x|grep " $IP4"|grep -c "^$LOGNAME "`
fi
if [ "x$IP4" = "x" ]                                 # IP4 为空,认为是主控台登录
  then MAXTERM=99;        IP4=localhost                # 置MAXTERM=99,置主控台标志
fi

if [ ! "$MAXTERM" ]                                # 检查是否授权
then echo "$IP4 未被授权,请与管理员联系 !"
  exit 1                                        # exit后的返回数可以没有,不是必须的
fi
if [ $TERMNUM -gt "$MAXTERM" ]                        # 检查是否超额定注册数
then
  echo "超过许可终端数 !"
  exit 2
fi
if [ $TIME -lt 0150 -o $TIME -gt 2300 ]                # 检查是否在许可工作时间
then
  if [ "$IP4" != "localhost" ]
  then echo "限时登录"
    exit 3
  fi
fi

论坛徽章:
0
2 [报告]
发表于 2004-01-02 20:12 |只看该作者

限制IP登录 (回复gjie)

谢谢

论坛徽章:
0
3 [报告]
发表于 2004-01-15 10:23 |只看该作者

限制IP登录 (回复gjie)

上面SHELL中有一个错误:
TIME=`date '+%Y%m%d-%H:%M:%S'` #取当前时间
应为:
TIME=`date '+%H%M'` #取当前时间

下面引用$TIME时,以按时分引用。

论坛徽章:
0
4 [报告]
发表于 2004-02-18 10:22 |只看该作者

限制IP登录 (回复gjie)

我在STAR和NEWSUN终端上试了,很好耶!!!!!!!!谢了。

论坛徽章:
0
5 [报告]
发表于 2004-06-29 15:13 |只看该作者

限制IP登录 (回复gjie)

收藏。多谢

论坛徽章:
0
6 [报告]
发表于 2005-05-30 19:31 |只看该作者

限制IP登录 (回复gjie)

用了,谢谢

论坛徽章:
0
7 [报告]
发表于 2005-05-30 22:35 |只看该作者

限制IP登录 (回复gjie)

的确8错学习、收藏ING

论坛徽章:
0
8 [报告]
发表于 2005-06-15 08:11 |只看该作者

限制IP登录 (回复gjie)

的确8错学习、收藏ING

论坛徽章:
0
9 [报告]
发表于 2005-06-15 13:20 |只看该作者

限制IP登录 (回复gjie)

支持,感谢

论坛徽章:
0
10 [报告]
发表于 2005-06-15 17:00 |只看该作者

限制IP登录 (回复gjie)

好东东啊!收藏ING
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP