1.4 Linux系统安全
1.4.1 关闭SElinux
vim /etc/selinux/config #修改成SELINUX=disabled
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
1.4.2 firewall防火墙
#启动防火墙
systemctl start firewalld.service
#关闭防火墙
systemctl stop firewalld.service
#开端口范围
firewall-cmd --permanent --zone=public --add-port=20000-20030/tcp
#开某个端口
firewall-cmd --permanent --zone=public --add-port=80/tcp
#热加载
firewall-cmd –reload
1.4.3 修改主机名
hostnamectl set-hostname mysql #主机一修改成mysql
hostnamectl set-hostname nginx #主机二修改成nginx
注:
多个主机的主机名不一致
1.4.4 配置hosts
vim /etc/hosts #添加域名解析,新增ip+对应的主机名
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.2.10 nginx
192.168.2.11 mysql
1.4.5 设置时间同步
crontab -e #添加计划任务
*/5 * * * * /usr/sbin/ntpdate ntp.ntsc.ac.cn #同步时间服务器
1.4.6 修改系统参数
修改limits.conf文件,增加如下内容到配置文件最后:
vim /etc/security/limits.conf #添加
* soft nproc 65536
* hard nproc 65536
* soft nofile 65536
* hard nofile 65536
1.4.7 设置自动注销时间
#vim /etc/profile #添加
TMOUT=600 # 增加600秒后自动退出
source /etc/profile #刷新
1.4.8 更新yum源
mkdir /etc/yum.repos.d/bak #创建备份
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
wget http://mirrors.aliyun.com/repo/Centos-7.repo -O /etc/yum.repos.d/CentOS-Base.repo #下载阿里源
yum clean all #清除旧的YUM缓存
yum makecache #新建缓存
yum -y install vim #测试yum源
1.4.9 远程端口号修改
[root@localhost yum.repos.d]# vim /etc/ssh/sshd.conf
#port 22 #更具公司需求修改
port 61122
[root@localhost yum.repos.d]#service sshd restart
1.4.10 禁止root远程登陆
1.创建普通用户
useradd channelfone
passwd channelfone
useradd channelfone
echo "123456" |passwd channelfone --stdin
useradd yunwei
echo "123456" |passwd yunwei --stdin
channelfone ALL=(ALL) NOPASSWD: ALL
yunwei ALL=(ALL) NOPASSWD: ALL
新的 密码:
重新输入新的 密码:
2.修改/etc/ssh/sshd_config配置文件、
PermitRootLogin yes # 改为no
systemctl restart sshd #重启sshd
3.默认所有普通用户都可以su到root
1.4.11 指定用户su到root
1.默认root是属于wheel组,例如:将用户channelfone附加至wheel组,命令如下
usermod -G wheel channelfone
2.修改/etc/pam.d/su配置文件。将以下行的注释(#)去掉
auth required pam_wheel.so use_uid
3.在文件/etc/login.defs 中最后添加一行
SU_WHEEL_ONLY yes
4.重启sshd服务
systemctl restart sshd
1.4.12 普通用户临时提权
vim /etc/sudoers #添加channelfone临时提权
# %wheel ALL=(ALL) NOPASSWD: ALL #改行下添加参数
channelfone ALL=(ALL) NOPASSWD: ALL
su - channelfone
[channelfone@localhost ~]$ sudo mkdir /root/test #普通用户无密码提权
1.4.13 注释掉系统不需要的用户和用户组
cp /etc/passwd /etc/passwdbak #修改之前先备份
1. vim /etc/passwd #编辑用户,在前面加上#注释掉此行
#adm:x:3:4:adm:/var/adm:/sbin/nologin
#lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
#sync:x:5:0:sync:/sbin:/bin/sync
#shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
#halt:x:7:0:halt:/sbin:/sbin/halt
#uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
#operator:x:11:0:operator:/root:/sbin/nologin
#games:x:12:100:games:/usr/games:/sbin/nologin
#gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
#ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin #注释掉ftp匿名账号
cp /etc/group /etc/groupbak #修改之前先备份
2. vim /etc/group #编辑用户组,在前面加上#注释掉此行
#adm:x:4:root,adm,daemon
#lp:x:7:daemon,lp
#uucp:x:14:uucp
#games:x:20:
#dip:x:40:
1.4.14 系统管理员账户修改
[admin@localhost ~]# vim /etc/shadow #root修改成其他名
admin:$6$V2oBzd79tfrIafXK$iyUT6NCJtfJnLkFCwx0k5iWr4zwveuB.7QkVoxxmEmGoHiH0lxuNWlS.1VvHFTshQoZ793dKuSI2jbzmiNU4n0::0:99999:7:::
[admin@localhost ~]# vim /etc/passwd #root修改成其他名
admin:x:0:0:root:/root:/bin/bash
1.4.15 防止非授权用户获得权限
chattr +i /etc/passwd #添加i属性
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow
lsattr /etc/passwd /etc/shadow /etc/group /etc/gshadow #显示文件的属性
注意:执行以上权限修改之后,就无法添加删除用户了。
如果再要添加删除用户,需要先取消上面的设置,等用户添加删除完成之后,再执行上面的操作
chattr -i /etc/passwd #取消权限锁定设置
chattr -i /etc/shadow
chattr -i /etc/group
chattr -i /etc/gshadow
1.4.16 启动或禁止用户IP登录
启动或禁止用户IP登录
查看 /etc/hosts.allow配置文件,设置允许登录的IP
[root@rhsde ~]# vim /etc/hosts.allow 添加
#
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
sshd:192.168.220.164:allow
查看/etc/hosts.deny文件,设置sshd:ALL
[root@rhsde ~]# vim /etc/hosts.deny 添加
sshd:ALL
也就是说,我们禁止所有IP,但是允许192.168.220.164相关IP登录
1.4.17 设置密码周期策略
vim /etc/login.defs #修改
PASS_MAX_DAYS 90 # 密码过期天数 90
PASS_MIN_DAYS 0 # 两次密码之间修改的最少天数 0
PASS_MIN_LEN 8 # 密码最小长度 8
PASS_WARN_AGE 7 # 密码过期前通知天数 7
1.4.18 设置密码复杂度
vim /etc/pam.d/system-auth #修改
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= difok=1 minlen=8 ucredit=-1 lcredit=-1 ocredit=-1 dcredit=-1
参数含义如下所示:
difok:本次密码与上次密码至少不同字符数
minlen:密码最小长度,此配置优先于login.defs中的PASS_MAX_DAYS
ucredit:最少大写字母
lcredit:最少小写字母
dcredit:最少数字
ocredit=N:特殊字母的个数
retry:重试多少次后返回密码修改错误
【注】用root修改其他帐号都不受密码周期及复杂度配置的影响。
表示最小密码长度8位,数字,大小写,字母,特殊字符均至少包含1位。重试3次后返回密码修改错误
1.4.19 系统弱口令
https://suijimimashengcheng.51240.com/ #通过密码生成器生成高强度密码要求16位以上
1.4.20 系统内核漏洞
注:升级内核风险很高慎重决定
Linux Kernel官方网站:https://www.kernel.org/
ELRepo源网站:http://elrepo.org/
RPM包下载地址:
https://elrepo.org/linux/kernel/el7/x86_64/RPMS/
选择lt版本(长期支持)
kernel-lt-5.4.163-1.el7.elrepo.x86_64.rpm
kernel-lt-devel-5.4.163-1.el7.elrepo.x86_64.rpm
yum install wget -y
cd /usr/local/src
wget https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-lt-5.4.163-1.el7.elrepo.x86_64.rpm
wget https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-lt-devel-5.4.163-1.el7.elrepo.x86_64.rpm
yum install kernel-lt-5.4.163-1.el7.elrepo.x86_64.rpm -y
yum install kernel-lt-devel-5.4.163-1.el7.elrepo.x86_64.rpm -y
#注意:kernel-lt是内核包,kernel-lt-devel是与内核相匹配的内核开发环境,都需要升级,必须保证内核开发环境和内核版本一致。
三、设置系统默认内核
#查看系统上的所有可用内核
[root@localhost src]# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (5.4.163-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)
2 : CentOS Linux (0-rescue-2aaf6a587102425da09a55cad51a2c2f) 7 (Core)
#设置默认内核为我们刚才升级的内核版本
cp /etc/default/grub /etc/default/grub-bak #备份
grub2-set-default 0 #设置默认内核版本
vi /etc/default/grub
GRUB_DEFAULT=saved修改为:
GRUB_DEFAULT=0
:wq! #保存退出
#重新创建内核配置
grub2-mkconfig -o /boot/grub2/grub.cfg
#查看默认内核
grubby --default-kernel
grub2-editenv list
yum makecache #更新软件包
reboot #重启,现在系统默认内核已经是我们刚才升级后的最新版本
#重启后查看内核版本
uname -r
#查看内核包信息
uname -a ; rpm -qa kernel\* | sort
[root@localhost ~]# uname -a ; rpm -qa kernel\* | sort
Linux localhost.localdomain 5.4.163-1.el7.elrepo.x86_64 #1 SMP Tue Nov 30 12:12:53 EST 2021 x86_64 x86_64 x86_64 GNU/Linux
kernel-3.10.0-1160.el7.x86_64
kernel-lt-5.4.163-1.el7.elrepo.x86_64
kernel-lt-devel-5.4.163-1.el7.elrepo.x86_64
kernel-tools-3.10.0-1160.el7.x86_64
kernel-tools-libs-3.10.0-1160.el7.x86_64
至此,CentOS升级系统内核到最新版教程完成。
1.4.21 防止误删除
将如下内容复制到bash脚本中执行即可
如需真实使用 rm 删除名可以在 rm 前加 \ 反斜杠.例如:
[root@localhost ~]# cat remove.sh
#!/sbin/bash
mkdir /home/remove
mkdir /home/remove/trash
mkdir /home/remove/tools
cat >> /home/remove/tools/remove.sh << EOF
PARA_CNT=\$#
TRASH_DIR="/home/remove/trash"
for i in \$*; do
STAMP=\$i
mv \$i \$TRASH_DIR/.\$STRMP
done
EOF
chmod -R 777 /home/remove
echo "alias rm="/home/remove/tools/remove.sh"" >> /etc/bashrc
source /etc/bashrc
[root@localhost ~]# touch test #测试
[root@localhost ~]# rm test
[root@localhost ~]# ll /home/remove/trash/test
-rw-r--r-- 1 root root 0 May 25 11:00 /home/remove/trash/test
1.4.22 禁ping
通过修改配置文件/proc/sys/net/ipv4/icmp_echo_ignore_all
该文件只有一个数值:
将该值改“1”后为开启(运行)禁止PING
将该值改“0”后为关闭(停止)禁止PING
运行:禁止Ping
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
停止:禁止Ping
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
标签:1.4,系统安全,etc,Linux,加固,root,el7,localhost,x86 From: https://www.cnblogs.com/xgsh/p/16661097.html