Linux 服务器安全配置

Linux 服务器安全配置攻略

在 Linux 服务器上进行完整的安全配置可以提高服务器的安全性,提供更可靠的服务。下面是一份完整的 Linux 服务器安全配置攻略,可供参考。

1.使用 SSH 登录服务器

在使用 Linux 服务器时,我们应该使用 SSH 命令行工具来登陆服务器。首先,我们需要设置 SSH 访问权限,将不安全的访问方式禁用。

sudo chmod 700 /root/.ssh/
sudo chmod 600 /root/.ssh/authorized_keys

上面的命令将设置 .ssh 目录和 authorized_keys 文件的权限,以确保只有管理员可以访问。

接下来,打开 SSH 配置文件 sshd_config,修改以下几个参数:

# 禁用 RFC 4251 中的未加密明文传输
Cipher 3des-cbc,aes192-cbc,aes256-cbc,blowfish-cbc

# 禁用 X11 转发,防止攻击者获取服务器权限
X11Forwarding no

# 禁用 root 账户登录,使用 sudo 来执行管理任务
PermitRootLogin no

2.启用防火墙

防火墙是保护服务器的重要组成部分,能够防止攻击者进一步访问服务器。我们可以使用 iptables 命令来启用防火墙:

# 启用默认策略:通过
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

# 清空已有防火墙设置并防止最终受到黑客攻击
iptables -F
iptables -X
iptables -Z

# 所有包默认都拒绝
iptables -P INPUT DROP
iptables -P FORWARD DROP

# 允许已建立的连接通过防火墙
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 允许 HTTP,HTTPS,SSH 的数据包通过防火墙
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

3. 安装 fail2ban

fail2ban 可以监控系统日志,防止攻击者通过 SSH 或其他服务进行暴力破解。我们可以使用以下命令在系统上安装 fail2ban:

sudo apt-get update
sudo apt-get install fail2ban

示例1: 在 DEBIAN 或者 UBUNTU linux 服务器上进行 SSH配置

DEBIAN 或者 UBUNTU linux 服务器默认启用 SSH 服务,我们只需要按照以下步骤进行 SSH 安全配置:

1.打开 /etc/ssh/sshd_config 配置文件

sudo nano /etc/ssh/sshd_config

2.编辑以下参数:

# 禁用禁止的密码
PasswordAuthentication no

# 禁用 root 账户登录,使用 sudo 来执行管理任务
PermitRootLogin no

# 允许 SSH 登录时只使用 PublicKey 动态口令
ChallengeResponseAuthentication yes
UsePAM yes
AuthenticationMethods publickey
PubkeyAuthentication yes

# 调整 SSH 登录尝试次数和时间间隔
MaxAuthTries 2
MaxSessions 2
MaxStartups 2:30:10

3.重启 SSH 服务

sudo systemctl restart sshd

示例2: 在 CentOS linux 服务器上进行安全配置

对于 CentOS 服务器,我们需要禁用所有不必要的服务和端口,加强防火墙以及时更新操作系统软件。以下是 CentOS 服务器操作步骤:

1.禁用可能存在漏洞的服务

sudo systemctl stop rpcbind.service
sudo systemctl disable rpcbind.service

sudo systemctl stop nfs.service
sudo systemctl disable nfs.service

sudo systemctl stop dhcpd.service
sudo systemctl disable dhcpd.service

sudo systemctl stop named.service
sudo systemctl disable named.service

2.禁用所有不必要的端口

sudo firewall-cmd --zone=public --list-ports
sudo firewall-cmd --zone=public --remove-port=111/tcp --permanent
sudo firewall-cmd --zone=public --remove-port=5432/tcp --permanent
sudo firewall-cmd --zone=public --remove-port=2049/tcp --permanent
sudo firewall-cmd --zone=public --remove-port=6443/tcp --permanent
sudo firewall-cmd --zone=public --remove-port=8443/tcp --permanent
sudo firewall-cmd --zone=public --remove-port=5473/tcp --permanent
sudo firewall-cmd --reload

3.加强防火墙

# 显示防火墙默认规则
sudo firewall-cmd --list-all

# 允许所有 ICMP 响应
sudo firewall-cmd --permanent --add-icmp-block-inversion
sudo firewall-cmd --permanent --add icmp-block-inversion
sudo firewall-cmd --permanent --add icmp-block-inversion --exception \
  port-unreachable
sudo firewall-cmd --permanent --add icmp-block-inversion --exception \
  time-exceeded
sudo firewall-cmd --permanent --add icmp-block-inversion --exception \
  protocol-unreachable

# 将非本地来源地址的 TCP 和 UDP 数据包丢弃
sudo firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 \
  -m conntrack --ctstate INVALID -j DROP
sudo firewall-cmd --permanent --direct --add-rule ipv6 filter INPUT 0 \
  -m conntrack --ctstate INVALID -j DROP
sudo firewall-cmd --reload

4.定期更新操作系统软件,并安装补丁

sudo yum update -y 

结论

通过完整的 Linux 服务器安全配置,我们可以防止攻击者入侵服务器,提高服务器的安全性并提供更稳定的服务。

阅读剩余 70%

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux 服务器安全配置 - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • 使用Docker的NFS-Ganesha镜像搭建nfs服务器的详细过程

    使用Docker的NFS-Ganesha镜像搭建NFS服务器的详细过程如下: 准备工作 安装Docker并启动; 安装NFS客户端并测试网络连通性; 准备一个共享目录。 拉取镜像 执行以下命令拉取最新版的NFS-Ganesha镜像: docker pull crispy1989/docker-nfs-ganesha 创建容器 执行以下命令创建容器: dock…

    other 2023年6月27日
    00
  • ps怎么批量制作带身份证和学生姓名的学生信息卡?

    当你需要批量制作带有身份证和学生姓名的学生信息卡时,你可以使用以下步骤: 准备数据:首先,你需要准备一个包含学生身份证号码和姓名的数据表格。可以使用Excel或其他电子表格软件创建一个表格,其中包含两列,一列是身份证号码,另一列是学生姓名。确保数据表格中的每一行都对应一个学生的信息。 创建模板:接下来,你需要创建一个信息卡的模板。你可以使用任何适合你的设计软…

    other 2023年8月16日
    00
  • jpa 使用@Column来定义字段类型

    当使用JPA定义实体类时,有时需使用@Column注解来定义字段类型。下面是使用@Column注解来定义字段类型的完整攻略: 一、定义字段类型 在定义实体类时,需要使用@Column注解来定义字段类型。具体实现如下: @Entity @Table(name="user") public class User { @Id @Generate…

    other 2023年6月25日
    00
  • Android Studio中统一管理版本号引用配置问题

    Android Studio中统一管理版本号引用配置问题攻略 在Android开发中,版本号是一个重要的概念,用于标识应用程序的不同版本。在Android Studio中,我们可以通过统一管理版本号引用配置来简化版本号的管理过程。下面是一个详细的攻略,包含了两个示例说明。 步骤一:创建版本号引用配置文件 在项目的根目录下创建一个名为version.gradl…

    other 2023年8月2日
    00
  • 详解Android App卸载后跳转到指定的反馈页面的方法

    详解Android App卸载后跳转到指定的反馈页面的方法 在Android中,当用户卸载我们的应用后,我们可以通过一些技巧来实现跳转到指定的反馈页面。以下是两种常见的方法: 1. 使用设备管理器 通过设备管理器,我们可以在应用被卸载后触发一个广播,然后在广播接收器中进行相应的处理。具体步骤如下: 创建一个广播接收器类,继承自BroadcastReceive…

    other 2023年10月13日
    00
  • SpringBoot @Scope与@RefreshScope注解使用详解

    SpringBoot @Scope与@RefreshScope注解使用详解 1. @Scope注解 @Scope注解用于指定Spring Bean的作用域。在Spring Boot中,常用的作用域包括Singleton(默认)、Prototype、Request、Session等。 示例说明1:指定作用域为Prototype @Component @Scop…

    other 2023年10月15日
    00
  • js保留整数

    当然,我很乐意为您提供有关“JavaScript保留整数”的完整攻略。以下是详细的步骤和两个示例: 1 JavaScript保留整数 JavaScript中,可以使用Math对象的方法来保留整数。以下是两种方法: 1.1 使用Math.floor方法 可以使用Math.floor方法将数字向下取整为最接近的整数。例如: let num = 3.14159; …

    other 2023年5月6日
    00
  • github如何添加ssh

    如何在GitHub中添加SSH Key 在GitHub中添加SSH Key可以让你在使用Git的过程中更加便捷,不需要每次都输入密码。本文将向你展示如何在GitHub上添加SSH Key。 步骤一:生成SSH Key 首先,你需要在本地生成SSH Key。打开终端(或命令行),输入以下命令: ssh-keygen -t rsa -b 4096 -C &quo…

    其他 2023年3月28日
    00
合作推广
合作推广
分享本页
返回顶部