首页 > 系统相关 >CentOS系统安全配置

CentOS系统安全配置

时间:2024-10-11 19:21:54浏览次数:1  
标签:系统安全 CentOS 配置 用户 口令 etc 点击 查看 root

一、账户安全及权限

禁用root以外的超级用户禁用root以外的超级用户

1.检测方法:

点击查看代码
cat /etc/passwd 查看口令文件,文件格式如下
login_name:password:user_ID:group_ID:comment:home_dir:command
若user_ID=0,则该用户拥有超级用户的权限。查看此处是否有多个ID=0

2.检测命令:

点击查看代码
cat /etc/passwd | awk -F ':' '{print$1,$3}' | grep ' 0$'

3.备份方法:

点击查看代码
cp -p /etc/passwd /etc/passwd_bak

4.加固方法:

点击查看代码
使用命令passwd -l <用户名>锁定不必要的超级账户
使用命令passwd -u <用户名>解锁需要恢复的超级账户
或把用户shell改为/sbin/nologin

删除不必要的账号

1.应该删除所有默认的被操作系统本身启动的并且不必要的账号,linux提供了很多默认账号,而账号越多,系统就越容易受到攻击。
2.可删除的用户, 如adm,lp,sync,shutdown,halt,mail,operator,games,ftp等
3.可删除的组, 如adm,lp,games,mail等
4.删除命令

点击查看代码
userdel username
groupdel groupname

用户口令设置

用户口令是Linux/Unix安全的一个基本起点,很多人使用的用户口令过于简单,这等于给侵入者敞开了大门,虽然从理论上说,只要有足够的时间和资源可以利用,就没有不能破解的用户口令,但选取得当的口令是难于破解的。较好的用户口令是那些只有他自己容易记得并理解的一串字符,最好不要把密码记录出来,如果有需要的话,也要保管好记录密码的文件,或者将这个文件加密。生产环境口令要求:包含大写字母、小写字母、数字和特殊字符四种中的三种,并且口令整体长度大于10位,每台服务器的口令不相同。

修改改密码长度

点击查看代码
vim /etc/login.defs
PASS_MIN_LEN 10

检查空口令账号

如果发现有账号口令为空,需要强制加入符合规格的口令如果发现有账号口令为空,需要强制加入符合规格的口令

检查方法:

点击查看代码
awk -F ":" '($2 =="" ) {print $1}' /etc/shadow

口令文件加锁

chattr命令给下面的文件加上不可更改属性,从而防止非授权用户获得权限。
点击查看代码
#chattr +i/etc/passwd
#chattr +i/etc/shadow
#chattr +i/etc/group
#chattr +i/etc/gshadow

设置root账户自动注销时限

修改环境引导文件

/etc/profile中的TMOUT参数,
TMOUT参数按秒计算

点击查看代码
vim /etc/profile
在"HISTFILESIZE="后面加入下面这行TMOUT=300
改变这项设置后,必须先注销用户,再用该用户登陆才能激活这个功能
如果想修改某个用户的自动注销时限,可以在用户目录下的".bashrc"文件中添加该值
以便系统对该用户实行特殊的自动注销时间

限制su命令

禁止任何人能够su切换为root,编辑/etc/pam.d/su文件,增加如下行:

image

这时,仅wheel组的用户可以su作为root。此后,如果希望用户admin能够su作为root,可以运行如下
点击查看代码
#usermod –G 10 admin

限制普通用户无法执行关机、重启、配置网络等敏感操作

点击查看代码
删除/etc/security/console.apps下的halt、reboot、poweroff、shutdown等程序的访问控制文件,以禁止普通用户执行该命令
也可以整体删除/etc/security/console.apps下的所有配置文件
rm –rf /etc/security/console.apps/*

禁用ctrl+alt+delete组合键重新启动机器命令

点击查看代码
修改/etc/inittab文件,将"ca::ctrlaltdel:/sbin/shutdown-t3-rnow"一行注释掉。

设置开机启动服务文件夹权限

设置/etc/rc.d/init.d/目录下所有文件的许可权限,此目录下文件为开机启动项,运行如下令:

image

这样便仅有root可以读、写或执行上述所有脚本文件。

避免login时显示系统和版本信息

删除信息文件:

image

限制网络访问

NFS访问使用NFS网络文件系统服务,应该确保/etc/exports具有最严格的访问权限设置,也就是意味着不要使用任何通配符、不允许root写权限并且只能安装为只读文件系统。编辑文件/etc/exports并加入如下两行。
点击查看代码
/dir/to/exporthost1.mydomain.com(ro,root_squash)
/dir/to/exporthost2.mydomain.com(ro,root_squash)

image

说明:
点击查看代码
/dir/to/export是您想输出的目录,
host.mydomain.com是登录这个目录的机器名,
ro意味着mount成只读系统,
root_squash禁止root写入该目录。为了使改动生效,
运行如下命令。#/usr/sbin/exportfs-a

登录终端设置

/etc/securetty文件指定了允许root登录的tty设备,由/bin/login程序读取,其格式是一个被允许的名字列表,可以编辑/etc/securetty且注释掉如下的行。

image
image

这时,root仅可在tty1终端登录。

防止攻击

编辑host.conf文件并增加如下几行来防止IP欺骗攻击。

image

点击查看代码
1.order hosts,bind #名称解释顺序
2.multi on #允许主机拥有多个IP地址
3.nospoof on #禁止IP地址欺骗

防止DoS攻击

对系统所有的用户设置资源限制可以防止DoS类型攻击。如最大进程数和内存使用数量等。例如,可以在/etc/security/limits.conf中添加如下几行:

image
image

然后必须编辑/etc/pam.d/login文件检查下面一行是否存在。

session required /lib/security/pam_limits.so
image

上面的命令禁止调试文件,限制进程数为50并且限制内存使用为5MB。

阻止ping,抵御SYN:

如果没人能ping通系统,安全性自然增加了,为此,我们可以在/etc/rc.d/rc.local文件中增加如下一行

image

SYN攻击是利用TCP/IP协议3次握手的原理,发送大量的建立连接的网络包,但不实际建立连接,最终导致被攻击服务器的网络队列被占满,无法被正常用户访问。linux内核提供了若干SYN相关的配置,用命令

image可以看到
image

点击查看代码
tcp_max_syn_backlog是SYN队列的长度,tcp_syncookies是一个开关,是否打开SYNCookie功能,该功能可以防止部分SYN攻击。tcp_synack_retries和tcp_syn_retries定义SYN的重试数。

加 大SYN队列长度可以容纳更多等待连接的网络连接数,打开SYNCookie功能可以阻止部分SYN攻击,降低重试次数也有一定效果。

image

点击查看代码
sysctl-wnet.ipv4.tcp_max_syn_backlog=2048       #增加SYN队列长度到2048
sysctl-wnet.ipv4.tcp_syncookies=1               #打开SYNCOOKIE功能
sysctl-wnet.ipv4.tcp_synack_retries=3           #降低重试次数
sysctl-wnet.ipv4.tcp_syn_retries=3

标签:系统安全,CentOS,配置,用户,口令,etc,点击,查看,root
From: https://www.cnblogs.com/wangzhiyu/p/18459104

相关文章

  • AMIS低代码平台,前端开发常见问题(样式篇 图片配置)
    关于样式问题在上篇中已经总结过了。这篇主要说下关于图片的引入。 1.页面上的图片引入。(1)将图片放入apps\bmc\page\bmc-page-config\image目录下。(2)在静态资源中引入,如下图: (3)在图片控件地址栏中引入也可以直接在地址栏中写入图片路径   2.背景图片的处理对于背......
  • MongoDB安装及配置Navicat MongoDB Tools
    一、下载MongoDB1.下载网址:https://www.mongodb.com/try/download/community注:本文档以Windows和msi安装为例二、安装MongoDB打开.msi文件在硬盘任意位置创建mongo目录,内包含mongo.conf文件内容:#存放数据目录dbpath=D:\mongo\data\db端口port=27017日志......
  • 华为交换机配置-端口隔离
    端口隔离(port-isolate)1.端口隔离配置端口隔离功能,可实现本台交换机的两个接口之间的二层数据的隔离,而三层数据互通拓扑图<sw1>sys//配置全局端口隔离模式为二层隔离(l2)、三层隔离(l3)[sw1]port-isolatemodel2[sw1]interfaceGigabitEthernet0/0/1//将端口1加入端口隔离组......
  • MySQL主从配置及详解
    MySQL主从配置是一种常见的数据库架构模式,旨在提高数据库的可用性、可伸缩性和数据冗余性。以下是对MySQL主从配置的详细解析及案例分析。一、MySQL主从配置详解1.配置原理MySQL主从复制基于主服务器在二进制日志(binarylog)中跟踪所有对数据库的更改(如更新、删除等)。从服务器......
  • 如何在springboot中,全局配置produces="text/plain;charset=UTF-8"
    为什么要使用produces="text/plain;charset=UTF-8"?当不用这个配置时,接口返回的数据,是有斜杠的 配置后,就正常了 以前我的配置方式,是在每个接口上,都添加上produces="text/plain;charset=UTF-8"。但是这样显示不太好,每个接口都加的话,会比较耗费时间如何做到全局配置使用W......
  • 配置JDK环境变量
    1.打开JDK的包,复制路径(比如我的就是D:\jdk-11)如果此时文件夹中没有jre,可以自动生成:直接点击当前路径输入cmd,点击回车,然后输入以下代码点击回车即可bin\jlink.exe--module-pathjmods--add-modulesjava.desktop--outputjre2.右键此电脑->属性->高级系统设置->环境......
  • centos7 安装Python3及配置环境变量
    centos7安装Python3并配置环境变量亲测有效python官网(linux下载地址、版本可自选):https://www.python.org/ftp/python/一、添加阿里云第三方扩展源仓库(安装拓展源仓库才能安装yum安装openssl11openssl11-devel,python源码编译必须要openssl11或以上版本)备注,我这里是把pyhto......
  • centos(linux): 列出所有的开机自启动程序
    一,systemctl列出所有自启动的单元:[laoliu@web~]$systemctllist-unit-files--state=enabled列出所有自启动的服务:[laoliu@web~]$systemctllist-unit-files--type=service--state=enabled上面的命令,只显示service,不显示target/socket/timer等 二,rc.local#mo......
  • nginx配置proxy_set_header
    深入解析Nginxproxy_set_header:实现高级代理功能-dashery-博客园(cnblogs.com)proxy_set_header 是Nginx配置中的一个重要指令,特别是在使用Nginx作为反向代理时。该指令允许你修改由Nginx传递给代理后端的请求头。这对于确保后端应用程序能够接收到正确的客户端信......
  • 【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
    ......