欢迎光临散文网 会员登陆 & 注册

CentOS CSGO服务器教程 终章 简单运维与安全

2023-05-10 10:24 作者:带带小恶人  | 我要投稿

前篇

        本篇介绍CSGO服务器运维与安全相关的知识。运维部分包括自动化更新、清理文件、提高优先级。安全部分简要介绍一下目前云服务器容易出现的IP/端口/安全组等问题。

        时隔两年,大家在前两期教程下时不时会有评论,自第三篇教程开始,我就不再接触csgo与服务器相关的工作了。当时我还立了个Flag,下一篇教程介绍服务器运维及安全。本来这个系列还有第五篇,介绍如何用C制作插件并调试,但是目前来看,在这儿收尾是最好的选择。

        由于时间跨度的问题,这篇教程中的一些内容来自2021年年末,可能不适合目前的csgo服务器,还请谅解。

1.简单运维(Cron脚本)

        在使用Windows Server系统创建服务器后,服务器的更新、启动、关闭都需要我们手动打开Windows Server UI,在steamcmd中执行命令并解决,长此以往的重复比较索然无味。在Linux下,我们可以创建计划任务,编写具有特定功能的脚本并使其按照预设的时间运行,减少人工工作量,这在运维多个CSGO服务器时更加明显。接下来简要介绍一些最简单的自动化运维方法。

1.1 Crontab

        在Linux操作系统中,我们可以调用Cron计划任务管理工具实现脚本自动执行操作。如果当前CentOS不支持crontab 则需要进行配置:

        如何编辑Crontab任务计划?使用以下命令可以创建或编辑 crontab 文件。

        也可以通过winscp进入/var/spool/cron/目录下使用winscp自带的记事本编辑

 这里给出一个Crontab的示例文件:

Crontab由两部分构成,分别为环境变量配置与定时任务配置

环境变量配置(示例文件前三行):

SHELL:为/bin/bash,表示使用/bin/bash解释执行命令

PATH:表示到哪些目录路径寻找命令程序,此环境变量的值说明了为什么我们在crontab中执行命令时,尽量要写命令全路径才能执行的原因。

MAILTO:变量作用是当任务执行有输出时,内容发送到哪个用户的邮箱。默认为Root

定时任务配置(示例文件后半部分):

第一列单位为分,表示每时第几分钟,范围为0-59;
第二列单位为时,表示每天第几小时,范围为0-23;
第三列单位为日,表示每月第几天,范围为1-31;
第四列单位为月,表示每年第几月,范围为1-12;
第五列单位为星期,表示每星期第几天,范围0-7,0与7表示星期日,其他分别为星期1-6;

定时任务有多种配置方式,包括固定值、范围值、列表值、步长值、混合值。我们在一般使用时只需要用固定值+缺省的模式即可,想了解其他模式的请自行百度。

在LinuxGSM的说明文档中 简要介绍了如何调用Cronjobs自动化运维服务器,用例如下

以上示例执行了一个基本的监视/更新/lgsm更新的操作

1.2 自动化更新、启停

        我们可以通过设置每天指定时间停止、更新、重启服务器的操作来进行维护,建议更新服务器时间点位每天的上午六点以后,我本人使用9点这个时间。以下是参考Crontab任务,在9:00停止服务器,9:02开始服务器自动更新,给与24分钟更新事件后启动服务器,9:27检查lgsm是否需要更新(一般情况下此步骤可以省略,我自己日常使用中没有这部分操作),9:30对服务器进行一次重启操作检查服务器是否正常。

1.3 清理垃圾

        部分玩家搭建服务器可能不需要csgo自带的地图(比如社区娱乐服/KZ服等),csgo自带地图组占用了不小空间。由于每次update时服务器都会自动下载全量地图,因此,不需要的文件又是也需要清理

        清理系统垃圾/缓存(代码仅供参考)

        清理不需要的地图文件(以删除de_dust2.nav为例,如梳理出较多不需要的地图文件,依照此按行向下添加即可)

1.4提高优先级

        提升csgoserver进程优先级,保证服务器高性能运行。使用renice即可完成此操作

        在CentOS中,使用

        或

        可查看到csgoserver对应的pid,获取pid后使用如下的renice命令即可提升进程优先级

        按照前三小节的介绍,我们可以在服务器重启后进行提高优先级操作,例如

2.安全

2.1 基础防范

        由于大部分自行搭建的Linux云服务器通讯都采用SSH方式进行,此处引用一篇云鼎实验室的文章,说明现在云服务器嗅探与口令强度的问题

https://paper.seebug.org/643/

        SSH 暴力破解趋势:从云平台向物联网设备迁移

        SSH 暴力破解攻击目标主要分为 Linux 服务器(包括传统服务器、云服务器等)与物联网设备。

        1)Linux 服务器(包括传统服务器、云服务器等)

        大部分攻击都是针对 Linux 服务器默认管理账号 root,攻击者主要使用 admin、 root、 123456等常见弱密码进行暴力破解;

        少部分攻击是针对 tomcat、 postgres、 hadoop、 mysql、 apache、 ftpuser、 vnc 等 Linux 服务器上常见应用程序使用的用户名。攻击者不仅使用常见通用弱密码,还会将用户名当作密码进行攻击。

        另外,还发现针对 CSGO 游戏服务端(目前该服务端程序只能在 Linux 系统上安装)的默认用户名 csgoserver 的攻击。攻击者同样也是使用常见弱密码进行暴力破解。

        笔者在运行csgo云服务器三年的时间内,曾经遭遇过两次弱口令被破解以及长达半年的端口嗅探

        需要注意以下涉及云服务器/CSGO服务器的密码强度

        CSGO客户端密码(以玩家身份连接服务器的密码) sv_password

        rcon远程控制工具密码 rcon_password

        Linux服务器csgoserver用户密码(建议包括大小写/数字/特殊字符,至少8位增加密码强度)

        Linux服务器root密码

        外部云服务器管理员密码(QQ/微信/QQ邮箱密码)

2.2 端口修改

2.2.1 常用端口

        目前端口可分为以下几类

        系统端口:(0-1023)是由“IETF审查”或“IESG批准”程序分配[RFC8126]。

        用户端口:(1024-49151)由IANA使用“IETF审核”流程分配,根据“IESG批准”流程或“专家审核”流程[RFC6335]。

        动态端口:(49152-65535)或称私有端口, 根据定义,没有端口可以被正式地注册占用。
        需要熟记的重要端口包括22端口(SSH协议用,winscp/putty远程连接服务器需要使用),3389端口(Windows远程连接端口),27015端口(csgo社区服默认连接端口)

2.2.2 修改端口

        由于前面介绍过,通用端口会被嗅探甚至被尝试进行口令爆破破解,因此,运行csgo服务器建议修改远程连接服务器端口,社区服默认连接端口可按需修改,这里介绍修改SSH协议默认端口,建议修改至30000-60000区段,避开云服务器与csgoserver默认调用的端口。

        进入服务器默认sshd_config默认配置目录

        修改Port端口22至30000-60000区间,保存后运行如下命令重启ssh服务

        注意,如此时使用远程连接工具(putty/winscp)会断开连接,注意在云服务器安全组放通你所修改的端口,以后使用该端口ssh连接服务器即可,可避免默认端口被嗅探。

        此时可在云服务器安全组放通中将22端口封禁。

2.2.3 补充建议

        如无法确认服务器安全,建议同时修改csgo社区服连接端口,关闭rcon协议端口,即可确保一般情况下的安全

2.3 客户端&防火墙&云服务器安全组设置

        由于我目前没有云服务器,可预见的短期内也不会再运行云服务器,故此小节我按照两年前的回忆梳理一下哪些部分需要注意,哪些部分可以进行操作

2.3.1 客户端log日志

        通过查询/lgsm/log目录下的日志文件,可以统计服务器被哪些IP从哪些端口嗅探/连接过,对于连接次数明显异常的IP进行IP黑名单封禁即可,可在安全组或CentOS内部设置。

2.3.2 减少暴露面

        通过在csgoserver.cfg启动参数中添加-nomaster实现服务器在csgo社区服中的隐匿,避免被别有用心的DDOS攻击。

2.3.3 端口屏蔽

        放通csgo服务器需要的指定端口,其他端口保持安全组规则禁用状态。注意,修改规则后务必亲自测试能否从外部连接至服务器,不要封死必需的端口。

2.3.4 协议

        能使用TCP协议的端口务必使用TCP协议,无法使用的审慎开放UDP协议。

3.总结

      至此,CentOS搭建CSGO服务器教程就此完结,期待起源2上线后为csgo带来的升级革新,希望大家顺利搭建自己的服务器,享受游戏!

      带带小恶人/prtFrater于2023/5/10

CentOS CSGO服务器教程 终章 简单运维与安全的评论 (共 条)

分享到微博请遵守国家法律