红联Linux门户
Linux帮助

限制root用户远程登录的几种方法

发布时间:2005-12-16 16:48:19来源:红联作者:cha
第一种方法:

  屏蔽telnet功能。
  telnet功能被屏蔽掉后,任何用户都无法登录,当然ROOT也无法登录。但这种方法太过极端。故不可取。
  
第二方法:  

  在/etc/default/login中增加一行命令
  CONSOLE=tty01
  经过这样设置后,用户只能在第一个控制台上以ROOT登录。任何其他控制台和所有远程用户均无法登录。
  
第三种方法:

  只允许指定的用户以ROOT用户远程登录
  若服务器的地址为134.33.86.13;允许地址为134.33.86.17和134.33.86.18的机器以ROOT登录。

1. 首先编辑/etc/hosts文件,内容如下:

  127.0.0.1 local
  134.33.86.13 jnzy.jndx.com
  134.33.86.17 root2
  134.33.86.18 root3

2. 写一段程序放入文件/.profile中 :

# @(#) root.profile 68.1 98/01/20 
#
# Copyright (C) 1989-1998 The Santa Cruz Operation, Inc.
# All Rights Reserved.
# The information in this file is provided for the exclusive use of
# the licensees of The Santa Cruz Operation, Inc. Such users have the
# right to use, modify, and incorporate this code into other products
# for purposes authorized by the license agreement provided they include
# this notice and the associated copyright notice with any such product.
# The information in this file is provided "AS IS" without warranty.
#

  TY=`tty|cut -b 9-12`
  WH=`finger|cut -b 32-79|grep "$TY"|cut -b 29-39`
  KK=`tty|cut -b 6-9`
  
  #是否为网络终端
  if [ "$KK" = "ttyp" ]
  then 
    WH=$WH
  else 
    WH="local"
  fi
 
  trap 1 2 3 9 15
  NUM=`grep "$WH" /etc/hosts|wc -l`
  if [ $NUM -ge 1 ]
    then
     SHELL=/bin/sh
     HOME=/
     PATH=/bin:/etc:/usr/bin:/tcb/bin:.

     # set terminal type
     eval `tset -m scoansi: ${TERM:-scoansi} -m :\?${TERM:-scoansi} -e -r -s -Q`
     export TERM PATH SHELL HOME

     [ -x /bin/mesg ] && mesg n # if mesg is installed...
     date
  else
    echo "you can not telnet by root:\07\07" #拒绝登录并响铃告警
    echo "press any key to exit" #按任意键退出
    read sad
    exit
  fi

  这样只有在IP地址为134.33.8.17和134.33.86.18两台机器上能以ROOT用户登录,其他地址不可以用ROOT登录。从而保证系统安全。

[ Last edited by cha on 2005-12-16 at 16:49 ]
文章评论

共有 1 条评论

  1. 叉烧 于 2005-12-17 19:57:30发表:

    嗯~~~~~~~支持啊,顶一下啊~~~`