Centos7.5生产服务器系统安全配置

发布时间 2023-09-22 09:02:55作者: 笨笨快跑88

 

因为服务器要对外开放访问 故需针对服务器进行安全加固

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

检测

cat /etc/passwd 查看口令文件,文件格式如下

login_name:password:user_ID:group_ID:comment:home_dir:command

若user_ID=0,则该用户拥有超级用户的权限。查看此处是否有多个ID=0

输入命令

cat /etc/passwd | awk -F ':' '{print$1,$3}' | grep ' 0$'

 如果还出现其他用户的话则需将该用户锁定

先备份

cp -p /etc/passwd /etc/passwd_bak

锁定

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

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

或把用户shell改为/sbin/nologin

二、删除不必要的账号

应该删除所有默认的被操作系统本身启动的并且不必要的账号 Linux提供了很多默认账号

而账号越多 系统就越容易受到攻击

可删除的用户

例如:

adm,lp,sync,shutdown,halt,news,uucp,operator,games,gopher

可删除的组

例如:

adm,lp,news,uucp,games,dip,pppusers,popusers,slipusers等

删除命令

userdel username

例如 删除adm用户

userdel adm

groupdel groupname

例如 删除adm组

groupdel adm

用户及组说明

以下是对每个用户和组的影响的简要描述:

  1. adm: 这个用户和组通常用于系统日志相关的任务。删除它可能会影响系统日志的管理和查看。

  2. lp: 这个用户和组通常用于打印任务。删除它可能会影响打印服务的正常工作。

  3. sync: 这个用户和组通常用于同步缓冲区,确保数据被正确地写入磁盘。删除它可能会影响数据的完整性。

  4. shutdown, halt: 这些用户用于关机和停止系统。删除它们可能会影响系统的关机和重启功能。

  5. news: 这个用户和组通常用于新闻服务器,可能不常用。删除它可能会影响新闻服务器的功能。

  6. uucp: 这个用户和组通常用于串行通信和文件传输。删除它可能会影响某些通信和传输任务。

  7. operator: 这个用户和组通常用于系统管理员和操作员的特权操作。删除它可能会影响一些需要管理员权限的操作。

  8. games: 这个用户和组通常用于游戏相关的任务,可能不常用。删除它可能不会对系统产生太大影响。

  9. gopher: 这个用户和组通常用于 Gopher 协议,可能不常用。删除它可能不会对系统产生太大影响。

三、检查空口令账号

输入命令:

awk -F: '($2 == "") { print $1}' /etc/shadow

 发现没有账号口令为空

也可以通过修改ssh配置文件来禁止空密码账户进行登录

vim  /etc/ssh/sshd_config

将注释删除

#PermitEmptyPasswords no

保存退出

重启服务

systemctl restart sshd 

四、口令文件加锁

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

加锁命令

sudo chattr +i /etc/passwd

sudo chattr +i /etc/shadow

sudo chattr +i /etc/group

sudo chattr +i /etc/gshadow

加锁后 无法添加用户

 

 

解锁命令

sudo chattr -i /etc/passwd
sudo chattr -i /etc/shadow
sudo chattr -i /etc/group
sudo chattr -i /etc/gshadow

五、防止IP欺骗

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

vim /etc/host.conf

order bind,hosts
multi off
nospoof on

六、防止DoS攻击

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

  *hardcore0

  *hardrss5000

  *hardnproc20

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

sessionrequired/lib/security/pam_limits.so

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

 

七、禁止root用户登录服务器

7.1首先创建新用户

adduser admin

7.2设置复杂密码

passwd admin

7.3将其用户组设置为 wheel.

wheel 在 linux 中是一个特殊的用户组,这个组被设计用来解决 su 指令的授权问题。

也就是只有在 wheel 组里面的成员才能使用 su 切换到 root 用户。

如果一个用户不在 wheel 组里面,即使使用 su 指令并正确地输入了密码也无法切换到 root 用户。

wheel 用户组不仅具有 su 指令的权限,也具有 sudo 的权限,可以通过浏览/etc/sudoers文件来了解。

gpasswd -a admin wheel

7.4修改 /etc/ssh/sshd_config配置文件

vim /etc/ssh/sshd_config

找到PermitRootLogin

将PermitRootLogin yes改成

PermitRootLogin no

 7.5重启ssh服务

systemctl restart sshd 

重启之后再使用 root 进行登录

显示 “服务器拒绝 ssh 连接”,然后使用新增的admin用户进行登录即可

八、设置密码复杂度要求

修改/etc/login.defs配置文件

vim /etc/login.defs

以下配置为默认

PASS_MAX_DAYS 99999  #密码最长过期天数
PASS_MIN_DAYS 0 #密码最小过期天数
PASS_MIN_LEN 5 #密码最小长度
PASS_WARN_AGE 7 #密码过期警告天数

修改为

PASS_MAX_DAYS 99
PASS_MIN_DAYS 80
PASS_MIN_LEN 10
PASS_WARN_AGE 7

九、禁止ping服务器

修改/etc/sysctl.conf配置文件

vim /etc/sysctl.conf

添加以下配置

net.ipv4.icmp_echo_ignore_all = 1

立即生效

sysctl -p

如果要解除,只需要将上面的 1 换成 0 即可

即为:net.ipv4.icmp_echo_ignore_all = 0

然后保存退出后输入

sysctl -p

生效

ping 本地ip显示超时,证明成功

 十、防止rm -rf

10.1下载safe

wget https://launchpad.net/safe-rm/trunk/0.12/+download/safe-rm-0.12.tar.gz

10.2解压

tar -zxvf safe-rm-0.12.tar.gz

10.3移动路径

cp safe-rm-0.12/safe-rm /usr/local/bin/

10.4创建链接,将safe-rm替换rm

ln -s /usr/local/bin/safe-rm /usr/local/bin/rm

10.5编辑环境变量

echo "PATH=/usr/local/bin:$PATH" >> /etc/profile

source /etc/profile

10.6设置过滤目录

过滤目录将不被删除

新建 /etc/safe-rm.conf 文件

添加自己需要过滤的目录

vim /etc/safe-rm.conf

/home/data/1

保存退出

删除刚设置的目录

rm -rf /home/data/1

发现提示:safe-rm: skipping /home/data/1

十一、限制su命令

编辑/etc/pam.d/su文件

vim /etc/pam.d/su

在最后一行添加

authrequired pam_wheel.so use_uid

此时,仅wheel组的用户可以su作为root

此后,如果希望用户yiconmed能够su作为root,可以运行如下命令:

usermod –G 10  yiconmed

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

删除/etc/security/console.apps下的halt、reboot、poweroff、shutdown等程序的访问控制文件,以禁止普通用户执行该命令

也可以整体删除/etc/security/console.apps下的所有配置文件

rm –rf /etc/security/console.apps/*

十三、禁用Ctrl+Alt+Delete组合键重新启动机器命令

修改/etc/inittab文件

vim /etc/inittab

将"ca::ctrlaltdel:/sbin/shutdown-t3-rnow"一行注释掉

如果没有,则不需要操作

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

设置/etc/rc.d/init.d/目录下所有文件的许可权限,此目录下文件

为开机启动项,运行如下命令:

#chmod –R 700 /etc/rc.d/init.d/

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

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

删除信息文件:

rm –rf /etc/issue

rm –rf /etc/issue.net

 

转自:小鬼 快点过来抱了~