Linux开启防火墙、开启自定义端口

170 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

前言

之前在腾讯云买了一台服务器, 用来供学习测试使用。 买来才一天,结果服务器被黑了,黑的莫名其妙。于是提交了一个工单, 客服说确实是被黑了, 让我把密码设置复杂一点, 并且不要使用默认的22远程端口。修改默认端口请看:修改CentOS8默认远程端口 于是我设置了18位密码, 默认端口也改了, 结果第二天, 服务器又被黑了(排除安装了有病毒的软件, 该服务器只安装了一个Harbor, 并且是从官网下载的), 我当时都麻了~~~~
Linux开启防火墙
无奈, 只能重装系统了, 不过为了防止再次被黑, 特意上网查询了一下, 可以开启Linux 防火墙,至于是否有用, 只能等待时间的验证。 具体开启步骤如下。

开启防火墙

一、查看防火墙状态:

systemctl status firewalld

Linux开启防火墙

二、开启防火墙

注意: 这里存在一个问题,防火墙默认是不开启任何端口的, 当我们防火墙开启之后, SSH 远程就断开了, 导致无法连接远程服务器。所以需要配置默认可以访问的端口

# 1、配置默认端口
cd /etc/firewalld/zones
vim public.xml

# 2、<zone> 节点下增加配置
<rule family="ipv4"> 
   <port protocol="tcp" port="SSH远程默认端口"/>
   <accept/>
</rule>

# 3、设置开机启动
systemctl enable firewalld

# 4、开启防火墙
systemctl start firewalld

Linux开启防火墙

扩展:

下面列出了一些常用的命令

# 查看版本
firewall-cmd --version

# 查看帮助
firewall-cmd --help

# 显示状态
firewall-cmd --state

# 查看防火墙的状态
systemctl status firewalld

# 开启防火墙
systemctl start firewalld

# 关闭的命令是
systemctl stop firewalld

# 查看所有已开放的临时端口(默认为空)
firewall-cmd --list-ports

# 查看所有永久开放的端口(默认为空)
firewall-cmd --list-ports --permanent

# 添加临时开放端口(例如:比如我修改ssh远程连接端口是222,则需要开放这个端口)
firewall-cmd --add-port=222/tcp

# 添加永久开放的端口(例如:222端口)
firewall-cmd --add-port=222/tcp --permanent

# 关闭临时端口
firewall-cmd --remove-port=222/tcp

# 关闭永久端口
firewall-cmd --remove-port=222/tcp --permanent

# 配置结束后需要输入重载命令并重启防火墙以生效配置
firewall-cmd --reload
systemctl restart firewalld