centos7基本安全配置

1.禁止root直接登陆,采取sudo授权账号权限

在禁止root登入前,需要创建一个普通用户

[root@123 ~]# users             #查看当前用户列表
123 root
[root@123 ~]# useradd 888       #创建888的普通用户
[root@123 ~]# passwd 888        #为888用户创建密码(修改密码)
更改用户 888 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符      #因为我就设置了123456所以出这个提示
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
vi /etc/ssh/sshd_config
PermitRootLogin no        #把注释去掉并把yes改为no
systemctl restart sshd    #重启ssh服务

2.设置密码长度12位,包括大小写、字母、数字、特殊字符

vi /etc/security/pwquality.conf
difok=N           #新密码中不得出现的字符数密码。(默认5)
minlen=12         #定义用户密码的最小长度;
dcredit=-1        #定义用户密码中必须包含多少个数字;
ucredit=-1        #定义用户密码中必须包含多少个大写字母;
lcredit=-1        #定义用户密码中必须包含多少个小写字母;
ocredit=N         #定义用户密码中必须包含多少个特殊字符
minclass=N        #新密码所需的最小字符数(数字,大写,小写,其他)。(默认为0)
maxrepeat=N       #新密码中允许的最大相同连续字符数。如果值为0,则禁用检查。(默认为0)
maxclassrepeat=N  #新的同一类中允许的最大连续字符数密码。如果值为0,则禁用检查。(默认为0

3.密码过期时间为30天,提前七天提示

vi /etc/login.defs
PASS_MAX_DAYS   30     #密码的最大有效期, 99999:永久有期
PASS_MIN_DAYS   0      #是否可修改密码,0可修改,0多少天后可修改
PASS_MIN_LEN    12     #密码最小长度
PASS_WARN_AGE   7      #密码过期提示时间

4.连续输入3次密码错误,锁定5分钟

在#%PAM-1.0的下面,即第二行,添加内容,一定要写在前面,如果写在后面,虽然用户被锁定,但是只要用户输入正确的密码,还是可以登录的!

vim /etc/pam.d/sshd
#%PAM-1.0  
auth required pam_tally2.so deny=3 unlock_time=300 even_deny_root root_unlock_time=10

1)各参数解释

even_deny_root   #也限制root用户;
deny             #设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户
unlock_time      #设定普通用户锁定后,多少时间后解锁,单位是秒;
root_unlock_time #设定root用户锁定后,多少时间后解锁,单位是秒;此处使用的是 pam_tally2模块,如果不支持 pam_tally2 可以使用 pam_tally 模块。另外,不同的pam版本,设置可能有所不同,具体使用方法,可以参照相关模块的使用规则。

2)查看用户登录失败次数

[root@123 pam.d]# pam_tally2    #查看锁定的用户
Login           Failures Latest failure     From
root                1    04/23/21 16:09:01  ti0171a401-0336.bb.online.no
888                 4    04/23/21 17:02:06  ti0171a401-0336.bb.online.no
cd /etc/pam.d/
pam_tally2 --user 888      #查看888用户
Login           Failures Latest failure     From
888                21    04/23/21 15:29:19  ti0171a401-0336.bb.online.no

21次登入,日期时间都有显示
3)解锁指定用户

pam_tally2 -r -u 888  

5.登陆15分钟,空闲自动登出

vi /etc/profile
export TMOUT=900 #文件末尾加,单位为秒

6.查看操作系统版本

cat /etc/redhat-release 
CentOS Linux release 7.5.1804 (Core) 

7.记录每个用户的操作命令

vim /etc/profile   #在最后加上如下脚本代码
#history
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
HISTDIR=/usr/share/.history
if [ -z $USER_IP ]
then
USER_IP=`hostname`
fi
if [ ! -d $HISTDIR ]
then
mkdir -p $HISTDIR
chmod 777 $HISTDIR
fi
if [ ! -d $HISTDIR/${LOGNAME} ]
then
mkdir -p $HISTDIR/${LOGNAME}
chmod 300 $HISTDIR/${LOGNAME}
fi
export HISTSIZE=4000
DT=`date +%Y%m%d_%H%M%S`
export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.history.$DT"
export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]"
chmod 600 $HISTDIR/${LOGNAME}/*.history* 2>/dev/null
source /etc/profile    #刷新配置过的文件

查看用户操作过的命令

[root@123 ~]# cd /usr/share/.history/
[root@123 .history]# ll
总用量 0
d-wx------. 2 888  888  66 423 16:27 888      #用户
d-wx------. 2 root root 66 423 16:23 root    
[root@123 .history]# cd 888/
[root@123 888]# ll
总用量 4
-rw-------. 1 root root 306 423 16:27 ti0171a401-0336.bb.online.no.history.20210423_162317
[root@123 888]# cat ti0171a401-0336.bb.online.no.history.20210423_162317 
#1619166218
cd /usr/share/.history/
#1619166219
ll
#1619166223
cd 888/
#1619166224
ll
#1619166254
cd ..
#1619166258
cd root/
#1619166259
ll
#1619166274
cat ti0171a401-0336.bb.online.no.history.20210423_162233 
#1619166316
ll
#1619166362
history 
#1619166395
vi /etc/bashrc 
#1619166438
source /etc/bashrc 
[root@123 888]# 

用history 查看历史记录

[root@123 888]# history 
    1  [2021.04.23 16:23:38]cd /usr/share/.history/
    2  [2021.04.23 16:23:39]ll
    3  [2021.04.23 16:23:43]cd 888/
    4  [2021.04.23 16:23:44]ll

在/etc/bashrc中加入几个环境变量,用于history命令显示用户ip等内容(末尾加入)

vi /etc/bashrc
#history
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` 
HISTFILESIZE=4000
HISTSIZE=4000
HISTTIMEFORMAT="%F %T ${USER_IP} `whoami` "
export HISTTIMEFORMAT
source /etc/bashrc 刷新
[root@123 888]# history 
    1  2021-04-23 16:23:38 ti0171a401-0336.bb.online.no root cd /usr/share/.history/
    2  2021-04-23 16:23:39 ti0171a401-0336.bb.online.no root ll
    3  2021-04-23 16:23:43 ti0171a401-0336.bb.online.no root cd 888/
    4  2021-04-23 16:23:44 ti0171a401-0336.bb.online.no root ll
    5  2021-04-23 16:24:14 ti0171a401-0336.bb.online.no root cd ..
    6  2021-04-23 16:24:18 ti0171a401-0336.bb.online.no root cd root/

我这里是虚拟机在自己电脑,所有没有显示出IP,显示的是电脑名,可以用CMD命令去ping一下这个电脑名就会显示出IP

7.设置ssh只允许特定用户从指定的IP登录

1.编辑文件 /etc/ssh/sshd_config

vi /etc/ssh/sshd_config

2.root用户只允许在如下ip登录

AllowUsers root@203.212.4.117
AllowUsers root@124.202.206.14

3.重启ssh生效

service sshd restart

4.取消ip登录限制
如果取消ip登录限制,则删除AllowUsers项即可

你可能感兴趣的:(服务器运维,centos,服务器)