您当前的位置:首页 > 电脑百科 > 安全防护 > 服务器/网站

CentOS 7 服务器的 15 个 Linux 安全加固项

时间:2022-05-25 11:36:17  来源:  作者:微服务布道者

服务器加固是通过各种方法增强服务器安全性的过程。我们有很多步骤来保护服务器。通过保护您的 linux 系统免受黑客、破解者和攻击者的侵害,让您和您的公司远离您!您可以通过以下步骤将易受攻击的盒子变成加固的服务器。它将帮助您防止外部攻击。这里我描述的是 centos 的服务器加固。

CentOS 7 服务器的 15 个 Linux 安全加固项

 

要知道什么

本指南将引导您完成安全强化 CentOS 7 所需的步骤。强化系统将使其更具限制性,您可能会遇到问题。我建议创建一个可用于故障排除的重复虚拟机。您将在下面找到一个基本步骤列表,您可以并且应该在配置后立即强化您的服务器。

1. 安全的远程访问

有时我们通过远程方法访问我们的服务器,如果它不安全,我们可以公开我们的服务器。OpenSSH 选项是通过/etc/ssh/sshd_config文件控制的。

禁用 SSH 密码验证方法并启用公钥验证方法

重要的是禁用密码远程登录方法并启用身份验证公钥


ChallengeResponseAuthentication
PasswordAuthentication更改为no 以停用密码方法

PasswordAuthentication no
ChallengeResponseAuthentication no

授权公钥认证

RSAAuthentication yes
PubkeyAuthentication yes

现在您可以生成新的密钥对

# ssh-keygen -t rsa

禁用直接root登录

允许 root 直接登录服务器是一种风险安全措施。相反,您应该以您的帐户登录系统,然后执行su -以 root 身份登录。因此,您需要将PermitRootLogin yes更改为PermitRootLogin no

PermitRootLogin no

更改默认 SSH 监听端口(例如:8500)

有时不建议使用默认端口,因为它是全世界都知道的并且存在安全风险。个性化要使用的端口很好

port 8500

2. 使用 grub 密码保护引导加载程序

通过保护引导加载程序,我们可以防止访问以 root 身份自动登录的单用户模式。这是通过GRUB 通过设置默认以纯文本形式存储的密码来完成的。

对于 Debian 系统

# grub-mkpasswd-pbkdf2

对于 Centos

# grub2-mkpasswd-pbkdf2

3.监听网络端口

配置网络服务后,重要的是要注意哪些端口实际上正在侦听系统的网络接口。任何开放的端口都可能是入侵的证据。

# nmap -sT -O localhost

Starting Nmap 6.40 ( http://nmap.org ) at 2017-06-07 23:13 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000061s latency).
Other addresses for localhost (not scanned): 127.0.0.1
rDNS record for 127.0.0.1: centos-01
Not shown: 995 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
111/tcp open rpcbind
2049/tcp open nfs

要列出所有打开的端口和相关程序,请使用以下命令

#.NETstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
tcp        0      0 0.0.0.0:20048           0.0.0.0:*               LISTEN   

4. 缩小权限

缩小系统文件和文件夹的权限以限制风险。

# chmod 700 /root
# chmod 700 /var/log/audit
# chmod 740 /etc/rc.d/init.d/iptables
# chmod 740 /sbin/iptables
# chmod -R 700 /etc/skel
# chmod 600 /etc/rsyslog.conf
# chmod 640 /etc/security/access.conf
# chmod 600 /etc/sysctl.conf

5.检查空密码的帐户

任何密码为空的帐户都意味着它被打开以供网络上的任何人未经授权访问,并且它是 Linux 服务器中安全性的一部分。要检查密码为空的帐户,请使用以下命令

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

为了安全起见,最好锁定所有空密码帐户:

# passwd -l paul
Locking password for user paul.
passwd: Success

6.调整内核参数

Sysctl 是一个用于在 Linux 操作系统中检查和动态更改参数的接口。编辑/etc/sysctl.conf 文件以优化内核参数

sysctl 是用于在运行时修改内核参数的命令。

# sysctl -a
# sysctl -A
# sysctl net.ipv4.conf.all.rp_filter
To load settings, enter: 
# sysctl -p

将以下内容复制粘贴到/etc/sysctl.conf

# Turn on execshield
kernel.exec-shield=1
kernel.randomize_va_space=1

# Enable IP spoofing protection
net.ipv4.conf.all.rp_filter=1

# Disable IP source routing
net.ipv4.conf.all.accept_source_route=0

# Ignoring broadcasts request
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.icmp_ignore_bogus_error_messages=1

# Make sure spoofed packets get logged
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.default.log_martians = 1

# Disable ICMP routing redirects
sysctl -w net.ipv4.conf.all.accept_redirects=0
sysctl -w net.ipv6.conf.all.accept_redirects=0
sysctl -w net.ipv4.conf.all.send_redirects=0
sysctl -w net.ipv6.conf.all.send_redirects=0

# Disables the magic-sysrq key
kernel.sysrq = 0

# Turn off the tcp_sack
net.ipv4.tcp_sack = 0

# Turn off the tcp_timestamps
net.ipv4.tcp_timestamps = 0

# Enable TCP SYN Cookie Protection
net.ipv4.tcp_syncookies = 1

# Enable bad error message Protection
net.ipv4.icmp_ignore_bogus_error_responses = 1

7.禁用不需要的服务

您需要从系统启动中删除所有不需要的服务和守护程序(在后台运行的服务),这些服务和守护程序在启动时以运行级别 3启动。

# chkconfig --list | grep '3:on'

要禁用服务,请输入:

# service serviceName stop
# chkconfig serviceName off

8. 单用户模式需要认证

建议进入单用户模式时要求输入root密码。打开/etc/sysconfig/init 文件并添加以下行:

SINGLE=/sbin/sulogin

9. 安全增强型 Linux (SELinux)

SELinux 是一组安全规则,用于确定哪个进程可以访问哪个文件、目录、端口等。每个文件、进程、目录和端口都有一个特殊的安全标签,称为 SELinux 上下文。上下文只是 SELinux 策略用来确定进程是否可以访问文件、目录或端口的名称。默认情况下,该策略不允许任何交互,因此显式规则授予访问权限。如果没有允许规则,则不允许访问。

getenforce 命令告诉我们 SELinux 处于什么模式。

我们可以通过更改来将 SELinux 模式更改为强制SELINUX=enforcing执行/etc/sysconfig/selinux

该文件中有三个指令,如下所述。

  • 强制: SELinux 安全策略被强制执行。
  • Permissive: SELinux 打印警告而不是强制执行。
  • 禁用: SELinux 完全禁用。

您可以使用以下命令检查 SELinux 的状态

# sestatus
SELinux status: disabled

您会看到它已被禁用。要启用它,您可以使用

# setenforce enforcing

10. 使用 iptables 设置防火墙

iptables 是一个用户空间应用程序,允许系统管理员配置 Linux 内核防火墙提供的表及其存储的链和规则。

关闭所有不需要的端口

iptables -A INPUT -p tcp --dport PORT_NUMBER -j DROP

湾。阻止不良IP

iptables -A INPUT -s IP_ADDRESS -j DROP

C。阻止与网络接口的连接

要阻止从特定 IP 地址到特定网络接口的连接,请使用命令

# iptables -A INPUT -i ens0 -s 6.6.6.6 -j DROP

d。列出 iptables 规则

可以通过命令查看所有 iptables 规则

iptables -L -n -v

11. 验证文件系统

当 SUID/SGID 可执行文件存在安全问题时,所有启用 SUID/SGID 位的文件都可用于恶意活动。所有本地或远程用户都可以使用此类文件。

识别不需要的 SUID 和 SGID 二进制文件

find / ( -perm -4000 -o -perm -2000 ) -print
find / -path -prune -o -type f -perm +6000 -ls

识别世界可写文件

find /dir -xdev -type d ( -perm -0002 -a ! -perm -1000 ) -print

识别孤立的文件和文件夹

find /dir -xdev ( -nouser -o -nogroup ) -print

12. 保持 /boot 为只读

Linux 内核及其相关文件在 /boot 目录下,默认为可读写。将其更改为只读可降低未经授权修改关键引导文件的风险。我们需要编辑/etc/fstab文件并在下面插入行<

LABEL=/boot     /boot     ext2     defaults,ro     1 2

13. 拒绝所有 TCP WrAppers

TCP 包装器可以提供一种快速简便的方法来控制对链接到它们的应用程序的访问。因此建议屏蔽所有未使用的应用程序,然后只授权将要使用的应用程序。

例如,我们将阻止所有应用程序,但仅授权 ssh

echo "ALL:ALL" >> /etc/hosts.deny 
echo "sshd:ALL" >> /etc/hosts.allow

14. 为未经授权的用户锁定 cronjobs

Cron 用于在特定时间自动执行作业。可以指定谁可以或不可以运行作业。这是通过使用名为/etc/cron.allow和的文件来控制的/etc/cron.deny。要使用 cron 锁定用户,只需在 cron.deny 中添加用户名并允许用户在 cron.allow 文件中运行 cron 添加。

# echo ALL >>/etc/cron.deny

15. 保护服务器免受缓冲区溢出

当程序或进程尝试将更多数据写入固定长度的内存块或缓冲区时,会发生缓冲区溢出,而不是分配给缓冲区的内容。再次保护您的服务器很重要

一种。启用 ExecShield

它有助于防止堆栈粉碎。通常,缓冲区溢出漏洞会覆盖返回地址,以便函数返回攻击者选择的地址。您需要在当前内核上启用

sysctl -w kernel.exec-shield=1

您还可以将下面的行添加到/etc/sysctl.conf

kernel.exec-shield = 1

检查/启用 ASLR

地址空间布局随机化是一种防御功能,可以使缓冲区溢出更加困难。ASLR 使攻击者难以找到要跳转的地址。您需要通过为kernel.randomize_va_space设置运行时来启用随机虚拟内存区域放置

sysctl -q -n -w kernel.randomize_va_space=2

/etc/sysctl.conf如果它不存在,则添加下面的行

kernel.randomize_va_space = 2

结论

这些是尝试运行自己的服务器的新用户的一些基本注意事项。请记住,饼干总是领先一步;他们一直在寻找任何漏洞来入侵您的服务器。重要的是要认识到,虽然迟到总比没有好,但您等待实施的时间越长,安全措施的有效性就会降低



Tags:安全加固   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
使用SELinux进行Linux系统安全加固
SELinux(Security-Enhanced Linux)是一种在Linux系统中实现强制访问控制(MAC)的安全机制,它能够对系统资源进行细粒度的访问控制,提高系统的安全性和防范能力。在进行Linux系统安...【详细内容】
2023-10-31  Search: 安全加固  点击:(345)  评论:(0)  加入收藏
网站漏洞修复安全加固措施
在我对客户网站进行逻辑漏洞检测的时候,逻辑漏洞就是指由于程序结构输入管理不紧,造成程序代码不能够 正常解决或错误处理,一般发生在新用户注册、找回密码、信息内容查询、网...【详细内容】
2022-10-18  Search: 安全加固  点击:(326)  评论:(0)  加入收藏
Linux系统安全加固的常规操作
摘要:Linux是一套免费使用和自由传播的系统,是一个基于UNIX的多用户、多任务、支持多线程和多CPU的操作系统。所谓的多用户和多任务。多用户是指在同一时刻可以有多个用户同时...【详细内容】
2022-09-15  Search: 安全加固  点击:(639)  评论:(0)  加入收藏
CentOS 7 服务器的 15 个 Linux 安全加固项
服务器加固是通过各种方法增强服务器安全性的过程。我们有很多步骤来保护服务器。通过保护您的 Linux 系统免受黑客、破解者和攻击者的侵害,让您和您的公司远离您!您可以通过...【详细内容】
2022-05-25  Search: 安全加固  点击:(572)  评论:(0)  加入收藏
服务器安全加固_Linux配置账户锁定策略
背景: 有时候机器的SSH端口暴露在公网上,也没做啥安全加固,为了防止暴力破解,我们可以尝试密码错误超过设定的次数后,就会锁定该账户多长时间(自定义),时间过后即可自行解锁,这样可...【详细内容】
2022-03-25  Search: 安全加固  点击:(312)  评论:(0)  加入收藏
Linux 服务器安全加固 10 条建议
以下是服务器安全加固的步骤,本文以腾讯云的CentOS7.7版本为例来介绍,如果你使用的是秘钥登录服务器1-5步骤可以跳过。1、设置复杂密码服务器设置大写、小写、特殊字符、数字...【详细内容】
2021-12-20  Search: 安全加固  点击:(391)  评论:(0)  加入收藏
白帽黑客教你Windows主机操作系统安全加固
账户安全(1)更名administrator本地用户并禁用guest账户步骤:点击“开始”,找到“管理工具”,点击里面的“计算机管理”,找到“本地用户和组” (2)设定账户锁定策略尝试5次失败...【详细内容】
2021-10-12  Search: 安全加固  点击:(457)  评论:(0)  加入收藏
MySQL安全加固方法分享
前言:数据库作为数据存储的载体,在程序开发中承担着至关重要的作用。近些年,随着各种安全事故的发生,数据安全性逐渐得到重视。等保评测或各类系统安全评测中也都有增加数据库安...【详细内容】
2021-08-17  Search: 安全加固  点击:(329)  评论:(0)  加入收藏
小白黑客是如何进行Linux安全加固的?
Linux安全加固. 防口令破解 限制口令长度和复杂度要求:修改口令策略,要满足复杂性和长度在8位数以上要求,口令里面宝行大写字母、小写字母、数字、特殊字符,每种字符至少一个方...【详细内容】
2021-06-21  Search: 安全加固  点击:(535)  评论:(0)  加入收藏
LINUX安全加固规范
1概述近几年来Internet变得更加不安全了。网络的通信量日益加大,越来越多的重要交易正在通过网络完成,与此同时数据被损坏、截取和修改的风险也在增加。只要有值得偷窃的东西...【详细内容】
2020-08-03  Search: 安全加固  点击:(445)  评论:(0)  加入收藏
▌简易百科推荐
企业网站被攻击主要表现在哪些方面?
建企业网站只是功能实现,如果网站代码不够严谨有漏洞,再漂亮的网站也只是摆设,潜在风险害人害己。所以在建网站之初就一定要考虑好这个问题,如果系统建设不是强项可以选择一套主...【详细内容】
2023-12-18  三七一网络    Tags:网站   点击:(87)  评论:(0)  加入收藏
网站频繁被劫持怎么办?
域名劫持是互联网攻击的一种方式,通过攻击域名解析服务器(DNS),或伪造域名解析服务器(DNS)的方法,把目标网站域名解析到错误的IP地址从而实现用户无法访问目标网站的目的或者蓄意或...【详细内容】
2023-12-07  帝恩思DNS    Tags:被劫持   点击:(184)  评论:(0)  加入收藏
不可不知的Web安全指南
Web 已成为备受瞩目的攻击媒介,而 Web 安全对于确保企业的业务安全至关重要。如今黑客行为是一个公认的行业,而犯罪企业比以往任何时候都更加复杂且联系更加紧密。攻击一直在...【详细内容】
2023-09-18  云尖软件    Tags:Web安全   点击:(245)  评论:(0)  加入收藏
电商网站应对CC攻击的四大利器!
CC攻击是DDOS(分布式拒绝攻击)攻击的一种恶意手段,其原理是通过代理服务器或肉鸡向受害主机不断发起大量数据包,使目标服务器资源耗尽,导致其崩溃宕机。其特点在于使用真实且分散...【详细内容】
2023-07-19  诺必达云服务    Tags:CC攻击   点击:(205)  评论:(0)  加入收藏
你知道什么是堡垒机吗
在当今数字化时代,网络安全对于企业和组织来说至关重要。为了保护敏感数据和系统免受未经授权的访问和攻击,堡垒机成为一种必备工具。本文将介绍什么是堡垒机、其工作原理以及...【详细内容】
2023-07-14  职场小达人欢晓    Tags:堡垒机   点击:(144)  评论:(0)  加入收藏
如何防止黑客入侵服务器 预防黑客入侵有效方法
随着网络科技发展迅速,网络黑客手段越来越高明,不少人曾遭遇服务器被黑出现版本被盗,文件丢失,到那时候再补救就为时已晚了,那么平时如何防止黑客入侵服务器呢?一、采用NTFS文件系...【详细内容】
2023-05-25  芳芳分享汇    Tags:黑客入侵   点击:(304)  评论:(0)  加入收藏
我的网站被黑了,该如何排除漏洞并修复安全问题
随着时代的发展网站使用的频率是逐步增加。然而,随着互联网技术的不断进步,网站安全问题也引起了广泛关注。其中,最严重的问题是网站被黑客攻击。那么,何谓网站被黑?它可能会给企...【详细内容】
2023-05-18  Sinesafe网站安全    Tags:网站被黑   点击:(306)  评论:(0)  加入收藏
保护服务器机房物理安全的五种优秀实践
服务器机房是数字企业的心脏。无论是企业家还是经验丰富的IT专业人员,都知道服务器机房的安全性至关重要。如果没有采用适当的物理安全措施,其服务器很容易受到盗窃、人为破坏...【详细内容】
2023-05-17    企业网D1Net  Tags:服务器   点击:(289)  评论:(0)  加入收藏
CMS身份验证,保护您的网站!
在当今数字时代,网站安全至关重要。CMS是许多网站使用的内容管理系统,它们有助于管理和维护网站的内容。然而,CMS也是黑客攻击的常见目标,因此保护CMS非常重要。其中一个关键步...【详细内容】
2023-05-16  芳芳聊日常    Tags:身份验证   点击:(298)  评论:(0)  加入收藏
Linux系统服务器如何防止端口攻击?
端口攻击是指攻击者利用开放的端口来进入服务器、读取敏感信息和进行其他恶意行为。要防止 Linux 服务器的端口攻击,可以采取以下措施:1.配置防火墙:防火墙可以过滤非法流量,保...【详细内容】
2023-05-12  汽车车门的养护    Tags:端口攻击   点击:(353)  评论:(0)  加入收藏
站内最新
站内热门
站内头条