Linux服务器初始化工作

这篇具有很好参考价值的文章主要介绍了Linux服务器初始化工作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文内容基于AlmaLinux 8系统。

以下为一键运行脚本,此脚本在AlmaLinux8,9系统上测试通过,其它版本系统无法保证全部功能正常运行。推荐仅在全新的服务器操作系统上运行此脚本,如二次执行可能会出现未知错误!

# bash <(curl -L https://github.com/AlexWalker97/Shell/raw/main/linux_init.sh)

一、修改主机名

通常在购买一台新的服务器时服务器Hostname会被云厂商定义为特定的名称,如果需要修改的话可以按照下面步骤进行:

1. 查看系统信息

你可以使用下面指令查看到主机的相关信息:

# hostnamectl

例如下面截图是我的服务器信息:

Linux服务器初始化工作

2. 修改主机名

接下来修改服务器主机名:

# hostnamectl set-hostname 主机名

 修改成功并重连ssh后可以看到服务器名称变成了server007:

Linux服务器初始化工作

二、禁用ICMP协议

部分攻击者会使用ping工具来测试服务器是否"存在",我们可以禁用ICMP协议(让我们的服务器不响应其它服务器的ping请求)来保护服务器安全。

在 /etc/sysctl.conf 文件中增加一行 net.ipv4.icmp_echo_ignore_all = 1 (= 号后面的值0表示允许,1表示禁止),之后执行 sysctl -p 使新配置生效:

# echo "net.ipv4.icmp_echo_ignore_all = 1" >> /etc/sysctl.conf
# sysctl -p

此时使用windows cmd工具ping服务器时会发现无法ping通:

Linux服务器初始化工作

三、关闭SELinux

y1s1,SELinux是个好东西,它能为linux服务器带来很强的安全防护功能。但是这个系统总是会和各种软件之间出现莫名其妙的冲突,有些问题排查极为浪费时间。在此直接将SELinux一关了之,再见!

 输入getenforce检测selinux是否打开:

# getenforce

如结果如下:

 Linux服务器初始化工作

Enforcing或Permissive表示SELinux为已打开(后者表示临时关闭,但重启后还会打开),若结果为Disabled则代表selinux系统未启用,无需关闭。

 输入以下指令已永久关闭SELinux:

# setenforce 0
# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

四、修改ssh端口

22端口为服务器默认ssh端口,因此易受攻击。我们可以通过修改服务器默认ssh端口的方式来规避风险。

1. 准备端口

首先确认我们需要开放的ssh端口(此处以端口1234为例)未被占用:

安装lsof工具(便捷查看端口占用情况):

# yum -y install lsof

查看端口占用:

# lsof -i:1234

结果如下所示则代表端口未被使用:

Linux服务器初始化工作

2. 防火墙开放端口

执行以下命令开放1234端口:

# firewall-cmd --add-port=1234/tcp --permanent

重启防火墙:

# firewall-cmd --reload

查看防火墙已开放端口:

# firewall-cmd --zone=public --list-ports

结果如下:

Linux服务器初始化工作

3.修改ssh端口 

修改文件/etc/ssh/sshd_config:

# vi /etc/ssh/sshd_config

将其中的#Port 22取消注释并修改为Port 1234:

Linux服务器初始化工作

重启sshd服务:

# systemctl restart sshd

我们可以通过sudo lsof -i -P -n | grep LISTEN指令来查看所有系统监听的端口: 

Linux服务器初始化工作

之后我们在ssh工具中只能使用1234端口登录服务器。

五、创建新用户

为了安全起见一般不建议直接使用root用户进行操作,为此我们需要创建新的用户,并在需要时给予他们root权限。新用户名最好不要使用user,admin等常见词,以下使用user1仅作为演示。

1. 创建用户

# adduser 用户名

2. 修改密码

为刚刚创建的用户设置密码:

# passwd 用户名

完成后结果如下:

Linux服务器初始化工作

3. 赋予新用户管理员权限

在AlmaLinux 8系统上,用户组 wheel 成员都可以使用sudo以管理员权限访问系统。如果你想要新创建的用户拥有管理员权限,添加用户到wheel用户组:

# usermod -aG wheel 用户名

查看属于wheel组中的用户:

# cat /etc/group |grep wheel

结果如下:

Linux服务器初始化工作

六、禁止root用户远程登陆

这点十分重要。一台暴露在互联网上的服务器每天可能会受到成千上百次的ip扫描或root密码暴力破解,其中远程ssh连接的用户名基本默认为root,因此我们有必要禁止root用户远程登陆,并使用我们上一步创建的新用户名登录。

1. 修改配置:

# vi /etc/ssh/sshd_config

将其中如下图位置所示Permitrootlogin改为no:

Linux服务器初始化工作

2. 重启sshd服务:

# systemctl restart sshd

现在如果我们断开此次ssh会话并再次尝试使用root登录会有如下报错:

Linux服务器初始化工作

这说明修改已经生效。

七、(可选)为服务器开启bbr

TCP BBR是谷歌出品的TCP拥塞控制算法,可以使 Linux 服务器显著地提高吞吐量和减少 TCP 连接的延迟。Linux4.9之后的内核自带bbr算法,如果linux内核版本低于4.9需要升级内核,这篇文章不会涉及到服务器升级内核的内容,仅针对服务器内核>4.9的系统。

1.查看内核

$ uname -r

如下可以看到我们的内核为4.18,因此可以直接开启bbr。

Linux服务器初始化工作

2.开启bbr并设定队列算法为fq_codel(队列算法有很多种如:fq,fq_pie,cake等,这里选择fq_codel演示):

首先进入管理员账户:

$ sudo su

之后执行:

# echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.conf
# echo "net.core.default_qdisc = fq_codel" >> /etc/sysctl.conf
# sysctl -p

执行这一步时可能会有报错:"sysctl: setting key "net.core.default_qdisc": No such file or directory",我们直接忽略掉错误重启机器。

3.重启电脑后输入如下指令:

$ sysctl net.ipv4.tcp_congestion_control
$ sysctl net.core.default_qdisc
$ lsmod | grep bbr

如果均出现bbr则说明启用成功,如下图所示:

Linux服务器初始化工作

总结

以上是一台新服务器到手后的一些简单安全防护及优化内容,更高级的保护措施(如:fail2ban,蜜罐技术等)之后有需要的话会再汇总成一篇文章,欢迎关注~文章来源地址https://www.toymoban.com/news/detail-421537.html

到了这里,关于Linux服务器初始化工作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 阿里云服务器如何初始化云盘(跟换系统)?初始化云盘和跟换操作系统的区别?

            若在Linux系统(服务器)上,环境安装出错,可通过云服务器上初始化云盘,回归硬盘初始化状态,进行重新安装。         作为小白的我们,第一次在服务器中下载安装软件,并部署环境,难免万般出错,然而想要完全卸载软件,甚是初始化到原来的系统环境,依

    2023年04月08日
    浏览(54)
  • 基于多反应堆的高并发服务器【C/C++/Reactor】(中)EventLoop初始化和启动

    (一)详述 EventLoop  这个 Dispatcher 是一个事件分发模型,通过这个模型,就能够检测对应的文件描述符的事件的时候,可以使用 epoll/poll/select ,前面说过三选一。另外不管是哪一个底层的检测模型,它们都需要使用一个数据块,这个数据块就叫做 DispatcherData 。除此之外,还有另外一

    2024年01月23日
    浏览(66)
  • PLSQL连接远端Oracle服务器提示:“Initialization error ***不能初始化 oci.dl ***”的解决方案

    【PLSQL连接远端Oracle服务器提示:“Initialization error ***不能初始化 oci.dl ***”的解决方案】 继上篇如题报错提示如何解决事项: 1、其一、确认Oracle服务端、客户端、PLSQL Developer都必须位数一致,32bit/64bit,如出现位数不一致则无法加载。Oracle Instant Client 下载官网 2、其二、配

    2024年02月15日
    浏览(48)
  • 华为云云服务器评测|初始化配置SSH连接 & 安装MySQL的docker镜像 & 安装redis以及主从搭建 & 7.2版本redis.conf配置文件

    1.云耀云服务器L实例初始化配置,设置密码,ssh连接; 2.安装docker,安装运行mysql容器; 3.redis镜像的拉取,创建运行容器; 4.搭建redis主从,一主一从,7.2版本的redis.conf配置文件; 设置密码,官方要求复杂一点 进行远程登陆配置 添加开放的端口 在finalShell中新建SSH连接 系统

    2024年02月10日
    浏览(60)
  • Linux内存初始化-启动阶段的内存初始化

    本文代码基于ARM64平台, Linux kernel 5.15 在加载kernel 之前, kernel对于系统是有一定要求的,明确规定了boot阶段必须要把MMU关闭: 那么在进入kernel之后, 就必须有一个使能MMU, 建立映射的过程, 本文描述kernel启动阶段进行内存初始化相关的操作。 在初始化阶段,我们mapping二段

    2024年02月08日
    浏览(78)
  • media设备节点初始化与Video4Linux初始化

    media_devnode_init函数是一个内核初始化函数,用于在Linux内核启动期间进行设备节点初始化。 函数的主要作用是创建媒体设备节点(device node)并将其注册到系统的设备树中。媒体设备节点用于表示媒体设备(如摄像头、音频设备等),它们在/dev目录下以特定的名称存在,并允

    2024年02月05日
    浏览(44)
  • Linux:Linux初始化配置指南

    在安装完Linux操作系统后,我们需要执行一些操作以确保系统正常运行并满足我们的需求。下面是一些常见的虚拟机系统安装后操作: 设置root密码: 首先,我们应该设置root用户的密码。可以使用以下命令设置root密码: 创建普通用户: 为了安全起见,应该创建一个普通用户

    2024年02月10日
    浏览(46)
  • 【ROS+gazebo】无人机开发一:安装ros+gazebo+创建并初始化ros工作空间

    Hello,大家好!最近由于课题需要开始摸索ros+gazebo内容,主要做多无人机的协同仿真,准备写成一个系列,想要学习的朋友可以订阅我的频道。 我的电脑配置:ubuntu20.04 目标安装:ROS noetic版本+gazebo11 好的,下面让我们一起开始吧! 先用几句话介绍一下,首先,gazebo 是仿真

    2024年02月13日
    浏览(40)
  • AliLinux的使用Docker初始化服务(详细)

    AliLinux是基于CentOS的。 1、java 环境 2、mysql环境 3、kafka环境 4、flink环境 5、dinky环境 这些环境,本想直接dnf安装在宿主机上,思来想去,还是用docker方便学习,也方便统一管理和使用 sudo dnf update sudo dnf upgrade 2.1、熟悉docker的命令 2.2、添加Docker存储库 需要注意不同的linux的版本

    2024年02月21日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包