首页 > 系统相关 >Linux系统安全加固

Linux系统安全加固

时间:2022-09-06 11:12:32浏览次数:105  
标签:1.4 系统安全 etc Linux 加固 root el7 localhost x86

 

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

相关文章

  • linux top命令VIRT,RES,SHR,DATA的含义
    VIRT:virtualmemoryusage虚拟内存1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不......
  • Linux 安装telnet
    一、安装telnet1、首先我们检测telnet-server的rpm包是否安装[root@localhost~]#rpm-qatelnet-server若无输入内容,则表示没有安装。linux的telnet-server.rpm默认......
  • 01-linux基础命令
    1、常用命令常用Linux命令的基本使用序号命令对应英文作用01lslist查看当前目录下的内容02pwdprintworkingderectory查看当前所在文件夹03cd[目录......
  • Linux - 常用命令
     #查看系统版本uname-acat/proc/versioncat/etc/redhat-release #查看当前目录文件大小du--max-depth=1-hdu-sh #更新时区cp/u......
  • Linux内核与根文件系统的关系
    一.什么是文件系统文件系统指文件存在的物理空间,linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。Linux文件系统中的文件是数据的集合,文件系统不仅包含着文......
  • linux线程同步简单示例
    #include<stdio.h>#include<pthread.h>#include<stdlib.h>//intpthread_create(pthread_t*thread,constpthread_attr_t*attr,void*(*start_routine)(void*),v......
  • zabbix监控Linux和Windows
    zabbix监控Linux和Windows目录zabbix监控Linux和Windowszabbix监控Linuxlinux部署agentd创建监控主机创建主机组并加入主机模板方式添加监控项手动添加监控项添加触发器添......
  • Linux MiniMal版本常规所需环境安装
    环境说明:开始之前建议先拍摄快照、必免不必要的丢失VMware®Workstation16ProCentos7.9minimal版本(安装完成并未做任何操作)......
  • Linux Epoll实现机制
    Epoll是基于事件通知机制的多路复用体系相比异步IO复用机制的实现,epoll分三个部分: create:完成内核态的初始化。所有连接的fd都会被构建到rdr的这个红黑树里面。当数......
  • linux 系统调用 、jvm、Stringtable
    linux系统调用列表linux中的系统调用+jvm笔记:从BIO->NIO->select->poll->epoll,是一个逐步改进的过程,其驱动力就是来源于尽可能减少系统调用。因为无论是创建线......