Centos7基本安全配置
  AeUHztwqqxTz 2023年11月02日 52 0

1.常规配置

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' 	#关闭selinux
vim /etc/fstab	#关闭交换分区
#/dev/mapper/centos-swap swap      swap    defaults        0 0
systemctl stop firewalld && systemctl disable firewalld && systemctl status firewalld	#关闭防火墙

2.配置主机之间免密登陆

[root@master1 ~]# ssh-keygen  #一路回车,不输入密码
把本地生成的密钥文件和私钥文件拷贝到远程主机
[root@master1 ~]# ssh-copy-id master1
[root@master1 ~]# ssh-copy-id master2

3.安装常用软件

yum install -y yum-utils device-mapper-persistent-data lvm2 wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel  python-devel epel-release openssh-server socat  ipvsadm conntrack ntpdate telnet ipvsadm

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

vi /etc/ssh/sshd_config
PermitRootLogin no        #把注释去掉并把yes改为no
systemctl restart sshd    #重启ssh服务

5.设置密码长度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)

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

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

7.连续输入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

3)解锁指定用户

pam_tally2 -r -u 888

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

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

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

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 4月  23 16:27 888      #用户
d-wx------. 2 root root 66 4月  23 16:23 root    
[root@123 .history]# cd 888/
[root@123 888]# ll
总用量 4
-rw-------. 1 root root 306 4月  23 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/

用history 查看历史记录

在/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 刷新

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

vi /etc/ssh/sshd_config

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

AllowUsers root@203.212.4.117
AllowUsers root@124.202.206.14

重启ssh生效

service sshd restart

11.禁止SSH空密码用户登录

编辑文件/etc/ssh/sshd_config,将PermitEmptyPasswords配置为no:
PermitEmptyPasswords no

12.确保SSH LogLevel设置为INFO,记录登录和注销活动

编辑 /etc/ssh/sshd_config 文件以按如下方式设置参数(取消注释):
LogLevel INFO


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  YKMEHzdP8aoh   2023年11月30日   32   0   0 vimUDP
  Yoru5qB4TSKM   2023年12月10日   36   0   0 服务器重启IP
  ozzp9aSSE46S   2023年11月30日   26   0   0 DNSIPPod
  48fXx4UfWSFg   2023年12月06日   54   0   0 bcIPbundle
  aYmIB3fiUdn9   2023年12月08日   49   0   0 客户端IPNATlvs
AeUHztwqqxTz