服务器初始化


文章目录

  • 服务器初始化
      • 1. 配置国内 Yum 源(加速软件安装)
      • 2. 更新系统与安装必备工具
      • 3. 网络连接验证
      • 4. 配置主机名
      • 5. 同步时间
      • 6. 配置防火墙 (两种方式)
        • 6.1 iptables
          • 整体思路
          • 详细步骤
          • 第 1 步:停止并禁用 Firewalld
          • 第 2 步:安装并启动 Iptables Services
          • 第 3 步:设置默认策略(安全基础)
          • 第 4 步:添加具体的放行规则(按需开放)
          • 第 5 步:保存规则并重启服务
          • 第 6 步:验证配置
          • 一个完整的配置脚本示例
          • 常用管理命令
        • 6.2 `firewalld`

1. 配置国内 Yum 源(加速软件安装)

将默认的国外源替换为国内源(如阿里云、清华源),速度会快很多。

# 1. 备份原有的源文件,以防万一
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup# 2. 下载阿里云的 CentOS 7 源文件 (推荐阿里云,速度快且稳定)
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo# 3. 下载阿里云的 EPEL 源 (Extra Packages for Enterprise Linux,提供大量额外软件)
sudo yum install -y epel-release
sudo sudo sed -e 's|^metalink=|#metalink=|g' \-e 's|^#baseurl=|baseurl=|g' \-e 's|^//download.fedoraproject.org/pub|//mirrors.aliyun.com|g' \-e 's|http://download.example|https://mirrors.aliyun.com|g' \-i /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel-testing.repo# 4. 清理旧缓存并生成新缓存
sudo yum clean all
sudo yum makecache

可选:如果想用清华源,将第2步命令替换为:
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.tuna.tsinghua.edu.cn/repo/Centos-7.repo


2. 更新系统与安装必备工具

系统更新可以获取最新的安全补丁和软件包。安装常用工具便于后续维护和开发。

# 1. 更新整个系统(内核更新需要重启生效)
sudo yum update -y# 2. 安装一批最常用的工具
sudo yum install -y \vim-enhanced \    # 加强版的vi编辑器wget \            # 命令行下载工具curl \            # 网络数据传输工具telnet \          # 网络诊断工具net-tools \       # 包含ifconfig等网络工具bash-completion \ # 命令自动补全增强lsof \            # 列出打开的文件sysstat \         # 系统性能监控工具(包含iostat, sar等)htop \            # 交互式进程查看器(比top更好用)tree \            # 以树状图列出目录内容git \             # 版本控制工具unzip \           # 解压zip文件lrzsz             # 提供sz(下载)、rz(上传)命令,方便Xshell等终端传输文件# 如果需要开发环境,还可以安装
# sudo yum groupinstall -y "Development Tools"yum install -y vim-enhanced wget curl telnet net-tools bash-completio lsof sysstat htop tree git unzip lrzsz       

3. 网络连接验证

确保机器能正常访问网络,这是后续所有操作的基础。

# 1. 查看当前IP地址,确认网络接口已启动
ip addr show
# 或
ifconfig# 2. 测试是否能解析域名(检查DNS)
ping -c 4 www.baidu.com# 3. 测试是否能访问外网
ping -c 4 114.114.114.114# 如果无法上网,需要检查网络配置
# cat /etc/sysconfig/network-scripts/ifcfg-eth0 (网卡名可能不同,如ens33)

4. 配置主机名

方便识别和管理服务器,而不是只靠IP地址。

# 1. 查看当前主机名
hostname# 2. 设置新的主机名(例如:centos7-master)
sudo hostnamectl set-hostname centos7-master# 3. 修改 hosts 文件,将本机主机名解析到本地,避免某些软件报错
# 在文件末尾添加一行:127.0.0.1 <你的主机名>
sudo vim /etc/hosts
# 例如添加:127.0.0.1 centos7-master# 4. 重新登录Shell后生效,或者执行以下命令立即生效
bash

5. 同步时间

保证服务器时间准确,对于日志分析、证书验证等至关重要。

# 1. 安装 chrony 时间同步服务(CentOS 7 首选)
sudo yum install -y chrony# 2. 启动 chronyd 服务并设置开机自启
sudo systemctl start chronyd
sudo systemctl enable chronyd# 3. 强制立即与时间服务器同步
sudo chronyc -a makestep# 4. 查看时间同步状态
sudo chronyc sources -v
# 或查看当前系统时间
date

6. 配置防火墙 (两种方式)

6.1 iptables

好的,在 CentOS 7 上配置 iptables 是一个经典且强大的技能。虽然系统默认使用 firewalld,但很多管理员更喜欢直接使用 iptables 的简洁和直接控制。

以下是关闭 firewalld 并配置 iptables 的详细步骤。

整体思路
  1. 停止并禁用 firewalld:为 iptables 让路。
  2. 安装 iptables-services:提供 iptables 的保存和服务管理功能。
  3. 设置默认策略:定义“默认拒绝”的安全基础。
  4. 编写具体的放行规则:按需开放端口。
  5. 保存规则并设置开机自启:确保配置永久生效。

详细步骤
第 1 步:停止并禁用 Firewalld
sudo systemctl stop firewalld
sudo systemctl disable firewalld
第 2 步:安装并启动 Iptables Services
# 安装 iptables-services 包,它提供了保存规则和作为服务管理的功能
sudo yum install -y iptables-services# 启动iptables服务并设置开机自启
sudo systemctl start iptables
sudo systemctl enable iptables
第 3 步:设置默认策略(安全基础)

在添加任何允许规则之前,先设置最严格的默认策略:拒绝所有传入连接,允许所有传出连接,允许转发

警告:在执行以下命令前,请确保你已经放行了 SSH 端口(通常是22),否则会立即断开远程连接! 最好在本地控制台操作。

# 1. 设置默认策略(非常重要!先做这一步)
sudo iptables -P INPUT DROP    # 默认拒绝所有进来的流量
sudo iptables -P FORWARD DROP  # 默认拒绝所有转发的流量
sudo iptables -P OUTPUT ACCEPT # 默认允许所有出去的流量# 2. 允许所有本地回环(lo)接口的通信,这是系统内部通信所必需的
sudo iptables -A INPUT -i lo -j ACCEPT# 3. 允许已建立的和相关联的连接通过
# 这条规则至关重要!它允许对外请求的返回数据包进入,否则无法正常上网和使用大多数服务。
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
第 4 步:添加具体的放行规则(按需开放)

现在,在严格的基础上,按需开放端口。

# 1. 允许SSH连接 (端口22) - 这是远程管理的生命线,必须开放!
# 可以使用 --dport 22 或 -m tcp -p tcp --dport 22,后者更精确
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT# 2. 允许PING (ICMP协议),便于网络诊断
sudo iptables -A INPUT -p icmp -j ACCEPT# 3. 允许HTTP (80) 和 HTTPS (443)
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT# 4. 如果需要放行其他端口,例如MySQL (3306)、自定义端口(8080)
# sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
# sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
第 5 步:保存规则并重启服务

iptables 的命令规则默认只在内存中生效,重启后会丢失。必须使用以下命令保存到配置文件中。

# 保存当前内存中的规则到 /etc/sysconfig/iptables 文件
sudo service iptables save
# 或者使用
sudo /usr/libexec/iptables/iptables.init save# 重启iptables服务,确保配置加载无误
sudo systemctl restart iptables
第 6 步:验证配置
# 查看当前生效的所有iptables规则,检查配置是否正确
sudo iptables -L -v -n --line-numbers# 检查iptables服务状态
sudo systemctl status iptables

一个完整的配置脚本示例

你可以将以下内容保存为一个脚本(如 setup_iptables.sh),然后执行,但务必在安全的环境下(如本地虚拟机)先测试,或者确保已放行 SSH。

#!/bin/bash# 停止firewalld
echo "Stopping firewalld..."
systemctl stop firewalld
systemctl disable firewalld# 安装iptables-services
echo "Installing iptables-services..."
yum install -y iptables-services# 设置默认策略和基础规则
echo "Setting up iptables rules..."
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT# 添加放行规则
iptables -A INPUT -p tcp --dport 22 -j ACCEPT    # SSH
iptables -A INPUT -p icmp -j ACCEPT              # ICMP (Ping)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT    # HTTP
iptables -A INPUT -p tcp --dport 443 -j ACCEPT   # HTTPS
# 在此添加你需要的其他规则...# 保存并启用
echo "Saving rules and enabling service..."
service iptables save
systemctl start iptables
systemctl enable iptablesecho "Configuration complete! Current rules:"
iptables -L -v -n

给脚本执行权限并运行:

chmod +x setup_iptables.sh
sudo ./setup_iptables.sh
常用管理命令
命令说明
sudo iptables -L -v -n查看当前规则(详细模式,不解析IP为主机名)
sudo iptables -L -v -n --line-numbers查看规则并显示行号(用于删除规则)
sudo iptables -D INPUT <规则行号>删除INPUT链中指定行号的规则
sudo service iptables save保存当前规则(必须做,否则重启失效)
sudo systemctl restart iptables重启iptables服务
sudo systemctl status iptables查看iptables服务状态

通过以上步骤,你就成功地用 iptables 为你的 CentOS 7 服务器构建了一个简单而坚固的防火墙。

注意:这里可以设置默认 等服务部署完之后需要添加服务端口(协议)放行

6.2 firewalld

CentOS 7 默认使用 firewalld 作为防火墙前端管理工具。配置原则是:默认拒绝所有传入连接,只开放必要的端口

# 1. 查看防火墙状态
sudo systemctl status firewalld
# 如果未启动,则启动并设置开机自启
sudo systemctl start firewalld
sudo systemctl enable firewalld# 2. 查看当前开放的端口和服务
sudo firewall-cmd --list-all# 3. 放行常用的服务端口(根据需求选择)
# 放行 SSH 端口(默认22,极其重要,确保自己能连上)
sudo firewall-cmd --permanent --add-service=ssh
# 放行 HTTP (80) 和 HTTPS (443) 端口,用于Web服务
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
# 如果需要放行自定义端口,例如 8080
# sudo firewall-cmd --permanent --add-port=8080/tcp# 4. 重新加载防火墙配置使其生效
sudo firewall-cmd --reload# 5. 再次确认规则已生效
sudo firewall-cmd --list-all

重要安全提示:如果修改了 SSH 端口(例如改为 5922),一定要先放行新端口再关闭旧端口,否则可能导致自己无法远程连接!

sudo firewall-cmd --permanent --add-port=5922/tcp
sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --reload

完成以上所有步骤后,你的 CentOS 7 服务器就已经完成了最基本、最安全的初始化设置,可以投入使用了。建议最后重启一次服务器 (sudo reboot) 以确保所有更改(特别是内核更新和主机名)完全生效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/94609.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/94609.shtml
英文地址,请注明出处:http://en.pswp.cn/web/94609.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于YOLOv11训练无人机视角Visdrone2019数据集

【闲鱼服务】 基于YOLOv11训练无人机视角Visdrone2019数据集Visdrone2019数据集介绍数据集格式数据预处理yolov11模型训练数据分布情况可视化训练结果Visdrone2019数据集介绍 VisDrone 数据集 是由中国天津大学机器学习和数据挖掘实验室 AISKYEYE 团队创建的大规模基准。它包含…

基于Springboot 的智能化社区物业管理平台的设计与实现(代码+数据库+LW)

摘 要随着智慧社区的普及&#xff0c;传统的物业管理方式已经无法满足现代社区的需求。目前&#xff0c;很多社区管理中存在信息不畅通、工作效率低以及居民服务体验不佳等问题。为了解决这些问题&#xff0c;我们基于SpringBoot框架开发了一套智能化社区物业管理平台&#xf…

【深度学习新浪潮】SAM 2实战:Meta新一代视频分割模型的实时应用与Python实现

引言:从图像到视频的分割革命 上周AI领域最引人注目的计算机视觉进展,当属Meta在SAM(Segment Anything Model)基础上推出的SAM 2模型持续引发的技术热潮。尽管SAM 2最初发布于2024年,但最新更新的2.1版本(2024年9月发布)凭借其突破性的实时视频分割能力,在自动驾驶、影…

sqli-labs靶场安装与使用指导教程(3种方法:通用版、php7版、Docker版)

目录 一、SQLI-LABS靶场 1、核心特点 2、关卡难度 二、源码安装法 1、开启Web服务和数据库服务 2、靶场源码下载 &#xff08;1&#xff09;通用版本 &#xff08;2&#xff09;PHP7版本 3、部署sqli-labs靶场 &#xff08;1&#xff09;确认网站根目录位置 &#x…

从零开始配置前端环境及必要软件安装

从零开始配置前端环境及必要软件安装一、安装编辑器二、安装浏览器三、安装Git版本控制工具四、Node.js 和 npm 环境变量配置1. 安装 Node.js 和 npm2. 配置全局模块和缓存目录3. 设置环境变量4. 更换 npm 镜像源5. 测试配置五、hosts文件六、辅助应用markdown&#xff08;笔记…

神经网络模型搭建及手写数字识别案例

代码实现&#xff1a;import torch print(torch.__version__) from torch import nn from torch.utils.data import DataLoader from torchvision import datasets from torchvision.transforms import ToTensor training_data datasets.MNIST(rootdata,trainTrue,downloadTru…

CRMEB标准版PC扫码登录配置教程(PHP版)

需要在开放平台创建网站应用 微信开放平台地址&#xff1a;https://open.weixin.qq.com/ 1、注册网站应用 2、填写信息&#xff0c;网站地址填写前台访问的域名就行 3、复制开放平台AppId和开放平台AppSecret 4、粘贴到后台应用配置的PC站点配置里

AmazeVault 核心功能分析,认证、安全和关键的功能

系列文章目录 Amazevault 是一款专注于本地安全的桌面密码管理器 AmazeVault 核心功能分析&#xff0c;认证、安全和关键的功能 AmazeVault 快速开始&#xff0c;打造个人专属桌面密码管理器 文章目录系列文章目录前言一、认证系统核心组件图形解锁实现图形锁控件 (PatternLoc…

Coze用户账号设置修改用户昵称-后端源码

前言 本文将深入分析Coze Studio项目的用户昵称修改功能后端实现&#xff0c;通过源码解读来理解整个昵称更新流程的架构设计和技术实现。用户昵称修改作为用户个人信息管理系统的重要组成部分&#xff0c;主要负责处理用户显示名称的更新和管理。 昵称修改功能相对简单但不失重…

基于WebTransport(底层QUIC)实现视频传输(HTML+JavaScript)

工作目录和基本操作见博客《基于HTTP3的WebTransport实践》&#xff0c;在此仅展示服务器端和客户端代码。 服务器端 import { readFile } from "node:fs/promises"; import { createServer } from "node:https"; import {Server} from "socket.io&qu…

Git 怎么仓库迁移?error: remote origin already exists.怎么解决

1. 确认本地已经有完整的 旧 仓库你本地应该有旧的项目&#xff0c;并且能看到 .git 文件夹。如果没有&#xff0c;可以先从旧仓库克隆下来&#xff1a;git clone 旧仓库git地址 cd 旧代码目录比如&#xff1a;git clone https://gitee.com/star-information/esflow-pro-api.gi…

【语法】【C+V】本身常用图表类型用法快查【CSDN不支持,VSCODE可用】

文章目录Mermaid 简介Mermaid 由三部分组成Mermaid 的使用方法复杂图表结构的技巧饼图简介饼图语法饼图示例雷达图简介雷达图语法雷达图语法细节标题轴曲线选项雷达图示例时间线简介时间线语法时间线示例树形图简介树形图语法树形图示例数据包图简介数据包图语法1&#xff1a;数…

Anaconda下载安装教程(附Anaconda安装包)

Anaconda下载安装教程&#xff08;附Anaconda安装包&#xff09;获取&#xff1a;python开发工具包丨夸克网盘-资源免费下载 有位小粉丝刚刚入门python&#xff0c;问我怎么安装Anaconda&#xff0c;于是我帮他找了一个详细的Anaconda安装教程和安装包。 Anaconda其实是一个p…

那我现在有3个输入 9层神经元 每层神经元数为 3 9 3 5 6 2 3 9 8 请给出我所有的权重矩阵

问题1 那我现在有3个输入 9层神经元 每层神经元数为 3 9 3 5 6 2 3 9 8 请给出我所有的权重矩阵 明白&#xff0c;我们来系统地列出你的 9层全连接网络 的权重矩阵。1️⃣ 网络结构 输入层&#xff1a;3 个神经元隐藏层/输出层&#xff1a;9 层神经元数分别为 [3,9,3,5,6,2,3,9…

广东省省考备考(第八十七天8.26)——判断推理(听课后强化训练)

判断推理&#xff1a;定义判断 错题解析 第一步&#xff1a;找出定义关键词。 “农村中各项经济活动及由此产生的经济关系”、“同农业有直接或间接的关系”。 第二步&#xff1a;逐一分析选项。 A项&#xff1a;该项指出具体的夏粮产量和增量&#xff0c;其中生产粮食属于种植…

读取 STM32H5 Data Flash 触发 NMI 的问题解析 LAT1544

关键字&#xff1a;STM32H5, data flash&#xff0c; high-cycle data, NMI问题描述客户反馈&#xff0c;使用 STM32H563 的 data flash(high-cycle data flash)&#xff0c;在还没有写入任何数据之前去读取 data flash, 会触发 hardfault 异常。1. 问题分析我们尝试在 NUCLEO-…

学云计算还是网络,选哪个好?

云计算工程师和网络工程师&#xff0c;都是IT界香饽饽&#xff0c;但方向差很大&#xff01;选错路后悔3年&#xff01;今天极限二选一&#xff0c;帮你彻底搞懂工作职责 网络工程师&#xff1a;网络世界的交警工程师&#xff01;主要管物理网络和逻辑连接。负责设计、搭建、维…

Matlab使用——开发上位机APP,通过串口显示来自单片机的电压电流曲线,实现光伏I-V特性监测的设计

预览此处的测试数据的采集频率和曲线变化是通过更换电阻来测试的&#xff0c;所以电压电流曲线显示并不是很平滑&#xff0c;图中可以看到每一个采集点的数值。这个设计是福州大学第三十期SRTP的一个校级的项目&#xff0c;打算通过分布式的在线扫描电路低成本的单片机&#xf…

云原生 JVM 必杀技:3 招让容器性能飞跃 90%

最近佳作推荐&#xff1a; Java 大厂面试题 – JVM 与分布式系统的深度融合&#xff1a;实现技术突破&#xff08;34&#xff09;&#xff08;New&#xff09; Java 大厂面试题 – JVM 新特性深度解读&#xff1a;紧跟技术前沿&#xff08;33&#xff09;&#xff08;New&#…

你真的了解操作系统吗?

文章目录操作系统是什么&#xff1f;操作系统核心功能为什么需要操作系统&#xff08;目的&#xff09;&#xff1f;操作系统的下层是什么&#xff1f;上层又是什么&#xff1f;如何理解“管理”&#xff1f;——“先描述&#xff0c;再组织”操作系统是什么&#xff1f; 任何…