Linux禁止root登錄
添加受限用戶secadmin,初始密碼123456
useradd secadmin -p '$6$tTJtWS.J$8eGiEiCAbhVO9FjCxW8tGBh8uC0iG5Cdkfe/2paMs7XHltv95HnlwRvuKqwj/WcfbHjgsELo0B0CrroIFqxr/0'
只允許secadmin通過ssh登錄
在/etc/ssh/sshd_config
查看是否有AllowUsers
配置,如果有,將其修改爲:
AllowUsers secadmin
如果沒有,在文件底部添加如下內容:
AllowUsers secadmin
腳本如下:
# only allow secadmin ssh login
allowusers=`grep -E '^#*AllowUsers ' /etc/ssh/sshd_config`
if [ -z "$allowusers" ]; then
echo "AllowUsers secadmin" >> /etc/ssh/sshd_config
else
sed -i 's/^[#]*AllowUsers .*$/AllowUsers secadmin/g' /etc/ssh/sshd_config
fi
禁止root本地登錄
在/etc/pam.d/login文件頂部加入如下內容:
auth required pam_succeed_if.so user != root quiet
腳本如下:
#disable root login
norootlogin='auth required pam_succeed_if.so user != root quiet'
removeroot=`grep '$norootlogin' /etc/pam.d/login`
if [ -z "$removeroot" ]; then
sed -i '2i\auth required pam_succeed_if.so user != root quiet' /etc/pam.d/login
fi
禁止su命令
把/etc/pam.d/su配置文件裏的#auth required pam_wheel.so use_uid
註釋去掉。
腳本如下:
#disable su command
nosucmd=`grep -E 'auth\s+required\s+pam_wheel.so\s+use_uid' /etc/pam.d/su`
if [ -z "$nosucmd" ]; then
echo "auth required pam_wheel.so use_uid" >> /etc/pam.d/su
else
linenum=`grep -nE 'auth\s+required\s+pam_wheel.so\s+use_uid' /etc/pam.d/su | awk -F\: '{print $1}'`
sed -i "${linenum}s/.*/auth required pam_wheel.so use_uid/" /etc/pam.d/su
fi
限制secadmin可執行命令
- 先將所有命令other的執行權限取消,再保留必需的基本命令。
chmod o-x /bin/*
chmod o+x /bin/su /bin/bash
chmod o-x /usr/bin/*
chmod o+x /usr/bin/id /usr/bin/tty /usr/bin/sudo
chmod o-x /sbin/*
chmod o+x /sbin/consoletype
chmod o-x /usr/sbin/*
chmod o-x /usr/local/bin/*
chmod o-x /usr/local/sbin/*
- 添加允許通過sudo來執行的命令。
在/etc/sudoers.d/目錄下創建一個名爲secadmin的文件,內容如下:
Cmnd_Alias SECCMD = /bin/date, /bin/df, /bin/dmesg, /bin/ps
secadmin ALL=NOPASSWD:SECCMD
腳本如下:
#enable command for secadmin
rm -rf /etc/sudoers.d/secadmin
echo "Cmnd_Alias SECCMD = /bin/date, /bin/df, /bin/dmesg, /bin/ps" >> /etc/sudoers.d/secadmin
echo "secadmin ALL=NOPASSWD:SECCMD" >> /etc/sudoers.d/secadmin
該配置意味着secadmin可以通過sudo來執行:date、df、dmesg和ps命令,並且執行時不需要輸入密碼。
如果需要更多的命令,在Cmnd_Alias SECCMD =
後依次加入即可。
注意:
1. 命令需要指定全路徑。
2. 設定命令的操作需在禁止root登錄之前,否則secadmin無權限修改該配置文件。
3. 如果想留個後門,可以在Cmnd_Alias SECCMD =
列表里加入可編輯該配置文件的權限/bin/vi /etc/sudoers.d/secadmin
。