PAM禁止root用户登录,限制普通su切换-创新互联

系统环境是CEONOS6.4, 介绍下PAM(Pluggable Authentication Modules)在ssh服务上的简单配置过程。

在曲松等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计制作、做网站 网站设计制作按需搭建网站,公司网站建设,企业网站建设,品牌网站设计,成都全网营销,成都外贸网站制作,曲松网站建设费用合理。

必须先添加普通用户,并属于wheel组,保证有除root之外的其它用户能登录到系统 !!!!!!!

useradd -g wheel  admin

passwd admin

1 禁止root登录

vim /etc/ssh/sshd_config

添加 UsePAM yes

vim /etc/pam.d/sshd  行首添加:

auth  required     pam_listfile.so item=user sense=deny file=/etc/ssh/denyuser onerr=succeed

echo "root" >> /etc/ssh/denyuser

列在/etc/ssh/denyuser中的用户, 都会被拒绝使用密码登录!!

2 只允许wheel组用户(root默认也不属于wheel的)使用su:

vim /etc/pam.d/su   行首添加

auth   required     pam_wheel.so use_uid

3 附shell:

使用须知:

A. 需要你先安全地生成自己的密钥对,并妥善保管!!将“mykey”替换为你的公钥串

B. 脚本包括了创建普通用户"admin",可以修改为你自己需要的用户,它可以使用su切换到root

C.脚本执行结果为, 限制root使用密码登录系统,但若设置了使用密钥,仍可以登录(安全性好)

D.add_my_key root $1(脚本中标红色),后面参数为你想添加公钥认证的所有用户,可以自己补充。

E.脚本供大家学习交流,生产环境使用前,请先在测试环境中测试效果,作者不对任何结果负任何责任。

#!/bin/sh
LOG_FILE=$0.log
wr_log(){
    TIME=`date +"%Y-%m-%d %H:%M:%S"`
    if [ $1 -eq 0 ];then
    echo "[$TIME] $2 success"
        echo "[$TIME] $2 success" >> ${LOG_FILE}
    else
    echo "[$TIME] $2 error"
        echo "[$TIME] $2 error">>${LOG_FILE}
        exit 1
    fi
}
gsed(){
#用于修改配置文件,后接3个参数:1.要修改的行2.修改后的行3.被修改的文件
#若找不到匹配的行, 会将$2添加到文件的首行
`/bin/grep -E "^$1" $3 >/dev/null`
ret1=$?
`/bin/grep -E "^$2" $3 >/dev/null`
ret2=$?
ret=10
if [ $ret1 -eq 0  ] ; then
  /bin/sed -i -r 's/^'"$1"'/'"$2"'/g' $3
  ret=$?
elif [ $ret1 -ne 0 -a $ret2 -ne 0 ];then
  /bin/sed -i '1i '"$2"'' $3
  ret=$?
else
  ret=0
fi
return $ret
}
add_my_key(){
mykey='ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtCgu1KvU/YMkPSnlEB4hyVWCc9/a5X3rqafGr7dPMdiMXXcyBpBd2t8NE/4rQ33rnd6GGUIlv3+2wPI8hFc5zU13G//jKseVS0hbY8XIq8zq8NhKzk/uX8m5ZE'
for user in $@;
do
  if test $user = 'root';then
    dir='/root/.ssh'
  else
    dir="/home/$user/.ssh"
  fi
  if  ! test -d $dir;then
    /bin/mkdir -p $dir
  fi
  chmod 700 $dir&&echo $mykey >>$dir/authorized_keys&&chown -R $user $dir&&chmod 600 $dir/authorized_keys
  wr_log $? "add ssh key for $user"
done

}
add_user(){

/usr/sbin/useradd -g wheel $1 &&echo "$2" |/usr/bin/passwd $1 --stdin
wr_log $? "add user $1 "
}
deny_root_login(){
#用于修改PAM的su和sshd配置,禁止root远程登录,禁止非wheel组用户登录(su)到root用户
if test $# -ne 2;then
  echo "usage: deny_root_login normal_user user_password"
  wr_log 1 "wrong usage:$@ "
fi
add_user $1 $2
add_my_key root $1

gsed "auth[ \t]+required[ \t]+pam_wheel\.so use_uid" "auth   required   pam_wheel\.so use_uid" /etc/pam.d/su &&\
gsed "UsePAM[ \t]+no" "UsePAM yes" /etc/ssh/sshd_config &&\
gsed "auth[ \t]+required[ \t]+pam_listfile\.so item=user sense=deny file=\/etc\/ssh\/denyuser onerr=succeed" "auth  required     pam_listfile.so item=user sense=deny file=\/etc\/ssh\/denyuser onerr=succeed" /etc/pam.d/sshd  &&echo "root" >> /etc/ssh/denyuser&&/sbin/service sshd restart

wr_log $? "deny_root_login"
}

deny_root_login admin  "yourpassword"

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站栏目:PAM禁止root用户登录,限制普通su切换-创新互联
新闻来源:http://pwwzsj.com/article/ghpoo.html