Centos系统安全配置

本文涉及的产品
运维安全中心(堡垒机),免费版 6个月
简介: Centos系统安全配置

账户安全及权限一、

 

禁用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$'

640.png

3. 备份方法:

cp -p /etc/passwd /etc/passwd_bak

640.png

640.png

4. 加固方法:

使用命令passwd -l <用户名>锁定不必要的超级账户

使用命令passwd -u <用户名>解锁需要恢复的超级账户

或把用户shell改为/sbin/nologin

二、

 

删除不必要的账号

1. 应该删除所有默认的被操作系统本身启动的并且不必要的账号,Linux提供了很多默认账号,而账号越多,系统就越容易受到攻击。

2. 可删除的用户,如

adm,lp,sync,shutdown,halt,mail,operator,games,ftp等

640.png

3. 可删除的组,如

adm,lp,games,mail等

640.png

4. 删除命令

userdel username

groupdel groupname

三、

 

用户口令设置

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

修改改密码长度/etc/login.defs

640.png

PASS_MIN_LEN 10

四、

 

检查空口令账号

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

640.png

五、

 

口令文件加锁

chattr命令给下面的文件加上不可更改属性,从而防止非授权用户获得权限。

#chattr +i/etc/passwd
#chattr +i/etc/shadow
#chattr +i/etc/group
#chattr +i/etc/gshadow

640.png

640.png

640.png

640.png

640.png

lsattr 只是显示文件的属性

六、

 

设置root 账户自动注销时限

修改环境引导文件/etc/profile中的TMOUT参数,TMOUT参数按秒计算vi /etc/profile在"HISTFILESIZE="后面加入下面这行TMOUT=300改变这项设置后,必须先注销用户,再用该用户登陆才能激活这个功能如果想修改某个用户的自动注销时限,可以在用户目录下的".bashrc"文件中添加该值,以便系统对该用户实行特殊的自动注销时间

七、

 

限制su命令

禁止任何人能够su切换为root,编辑/etc/pam.d/su文件,增加如下行:1.auth sufficient /lib/security/pam_rootok.sodebug2.auth required /lib/security/pam_wheel.sogroup=isd

640.png

640.png

这时,仅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/*

640.png

九、

禁用Ctry+Alt+Delete组合键重新启动机器命令

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

十、

 

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

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

640.png

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

十一、

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

删除信息文件:

640.png

限制网络访问

一、

 

NFS访问

使用NFS网络文件系统服务,应该确保/etc/exports具有最严格的访问权限设置,也就是意味着不要使用任何通配符、不允许root写权限并且只能安装为只读文件系统。编辑文件/etc/exports并加入如下两行。

/dir/to/exporthost1.mydomain.com(ro,root_squash)

/dir/to/exporthost2.mydomain.com(ro,root_squash)

640.png

/dir/to/export是您想输出的目录,host.mydomain.com是登录这个目录的机器名,ro意味着mount成只读系统,root_squash禁止root写入该目录。为了使改动生效,运行如下命令。

#/usr/sbin/exportfs-a

二、

 

登录终端设置

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

640.png640.png

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

防止攻击

一、 防止IP欺骗

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

640.png

640.png

1.order hosts,bind #名称解释顺序

2.multi on #允许主机拥有多个IP地址

3.nospoof on #禁止IP地址欺骗

二、 防止DoS攻击

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

 640.png

640.png

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

sessionrequired/lib/security/pam_limits.so

640.png

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

阻止ping, 抵御SYN:

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

640.png

SYN攻击是利用TCP/IP协议3次握手的原理,发送大量的建立连接的网络包,但不实际建立连接,最终导致被攻击服务器的网络队列被占满,无法被正常用户访问。

Linux内核提供了若干SYN相关的配置,用命令:

640.png

看到:

640.png

tcp_max_syn_backlogSYN队列的长度,tcp_syncookies是一个开关,是否打开SYN Cookie功能,该功能可以防止部分SYN攻击。tcp_synack_retries和tcp_syn_retries定义SYN的重试次数。

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

调整上述设置的方法是:

640.png

640.png

  • sysctl -w net.ipv4.tcp_max_syn_backlog=2048 #增加SYN队列长度到2048
  • sysctl -w net.ipv4.tcp_syncookies=1 #打开SYN COOKIE功能
  • sysctl -w net.ipv4.tcp_synack_retries=3 #降低重试次数
  • sysctl -w net.ipv4.tcp_syn_retries=3
相关文章
|
1月前
|
Linux 网络安全 Apache
CentOS 7.2配置Apache服务httpd(上)
CentOS 7.2配置Apache服务httpd(上)
194 1
|
3月前
|
消息中间件 Linux API
centos7 安装rabbitmq自定义版本及配置
centos7 安装rabbitmq自定义版本及配置
|
10天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
49 2
|
24天前
|
Java jenkins 持续交付
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
76 1
|
26天前
|
存储 监控 Linux
在 CentOS 7 中如何对新硬盘进行分区、格式化、挂载及配置最佳实践
本文详细介绍了在 CentOS 7 中如何对新硬盘进行分区、格式化、挂载及配置最佳实践,包括使用 `fdisk` 创建分区、`mkfs` 格式化分区、创建挂载点、编辑 `/etc/fstab` 实现永久挂载等步骤,旨在有效管理服务器磁盘空间,提高系统稳定性和可维护性。
29 1
|
1月前
|
Linux PHP Apache
CentOS 7.2配置Apache服务httpd(下)
CentOS 7.2配置Apache服务httpd(下)
47 1
|
3月前
|
弹性计算 关系型数据库 MySQL
centos7 mysql安装及配置
本文详细介绍了在阿里云服务器ECS上通过yum源安装MySQL 8.0.12的过程,包括更新yum源、下载并安装MySQL源、解决安装过程中可能遇到的问题等步骤。此外,还介绍了如何启动MySQL服务、设置开机自启、配置登录密码、添加远程登录用户以及处理远程连接异常等问题。适合初学者参考,帮助快速搭建MySQL环境。
383 8
centos7 mysql安装及配置
|
2月前
|
Linux
CentOS 7.x时间同步服务chrony配置详解
文章详细介绍了在CentOS 7.x系统中如何安装和配置chrony服务,以及它与ntpd服务的对比,强调了chrony在时间同步方面的高效性和准确性。
158 1
CentOS 7.x时间同步服务chrony配置详解
|
27天前
|
安全 Linux 数据库连接
CentOS 7环境下DM8数据库的安装与配置
【10月更文挑战第16天】本文介绍了在 CentOS 7 环境下安装与配置达梦数据库(DM8)的详细步骤,包括安装前准备、创建安装用户、上传安装文件、解压并运行安装程序、初始化数据库实例、配置环境变量、启动数据库服务、配置数据库连接和参数、备份与恢复、以及安装后的安全设置、性能优化和定期维护等内容。通过这些步骤,可以顺利完成 DM8 的安装与配置。
169 0
|
1月前
|
Linux
CentOS-Stream-9配置chfs
通过上述步骤,您就可以在CentOS Stream 9上配置并运行CHFS,为用户提供基于HTTP的文件分享服务。请注意,实际操作时应根据CHFS的具体版本和文档进行适当调整。
47 0