Oracle Linux 8 安装配置服务器防火墙 (CSF)

CSF 或“配置服务器防火墙”是一个基于 Web 的命令行防火墙工具,适用于 Linux 和 Unix 操作系统。 它提供了一个简单、易于使用、先进的基于 Web 的界面来配置和管理防火墙设置。 CSF 带有登录失败守护程序 (LFD),用于查看由于过多登录失败而导致的用户活动。 如果发现大量登录失败来自同一 IP 地址,则该 IP 将立即被我们服务器上的所有服务暂时阻止。 CSF 可以保护我们的服务器免受多种类型的攻击,例如端口扫描、SYN 洪水和对许多服务的登录暴力攻击。

在这篇文章中,我们将向我们展示 Oracle Linux 8 上安装和配置 CSF 防火墙。

先决条件

  • 在 云平台上运行 Oracle Linux 8 的服务器
  • 在我们的服务器上配置的 root 密码

第 1 步 – 创建 云服务器

首先,登录到我们的 云服务器。 通过选择 Oracle Linux 8 作为至少具有 2GB RAM 的操作系统来创建新服务器。 通过 SSH 连接到我们的云服务器并使用页面顶部突出显示的凭据登录。

登录到服务器后,运行以下命令以使用最新的可用软件包更新基本系统。

dnf update -y

第 2 步 – 在 Oracle Linux 8 上安装 CSF

CSF 是用 Perl 编写的,因此我们需要在系统上安装所有必需的 Perl 模块。 我们可以使用以下命令安装所有这些:

dnf install @perl perl-libwww-perl.noarch perl-LWP-Protocol-https.noarch bind-utils net-tools -y

安装完所有必需的模块后,使用以下命令下载最新版本的 CSF:

wget https://download.configserver.com/csf.tgz

下载完成后,使用以下命令提取下载的文件:

tar xzf csf.tgz

接下来,导航到提取的目录并使用以下命令安装 CSF:

cd csf
sh install.sh

安装 CSF 后,我们将获得以下输出:

Don't forget to:
1. Configure the following options in the csf configuration to suite wer server: TCP_*, UDP_*
2. Restart csf and lfd
3. Set TESTING to 0 once we're happy with the firewall, lfd will not run until we do so

Adding current SSH session IP address to the csf whitelist in csf.allow:
Adding 27.61.171.115 to csf.allow only while in TESTING mode (not iptables ACCEPT)
*WARNING* TESTING mode is enabled - do not forget to disable it in the configuration
'lfd.service' -> '/usr/lib/systemd/system/lfd.service'
'csf.service' -> '/usr/lib/systemd/system/csf.service'
Created symlink /etc/systemd/system/multi-user.target.wants/csf.service → /usr/lib/systemd/system/csf.service.
Created symlink /etc/systemd/system/multi-user.target.wants/lfd.service → /usr/lib/systemd/system/lfd.service.
Created symlink /etc/systemd/system/firewalld.service → /dev/null.
'/etc/csf/csfwebmin.tgz' -> '/usr/local/csf/csfwebmin.tgz'

Installation Completed

接下来,验证是否所有必需的 iptables 模块都可用。

dnf install perl -y
perl /usr/local/csf/bin/csftest.pl

如果一切正常,我们将获得以下输出:

Testing ip_tables/iptable_filter...OK
Testing ipt_LOG...OK
Testing ipt_multiport/xt_multiport...OK
Testing ipt_REJECT...OK
Testing ipt_state/xt_state...OK
Testing ipt_limit/xt_limit...OK
Testing ipt_recent...OK
Testing xt_connlimit...OK
Testing ipt_owner/xt_owner...OK
Testing iptable_nat/ipt_REDIRECT...OK
Testing iptable_nat/ipt_DNAT...OK

RESULT: csf should function on this server

我们现在可以使用以下命令检查 CSF 版本:

csf -v

我们将获得以下输出:

*WARNING* URLGET set to use LWP but perl module is not installed, fallback to using CURL/WGET
csf: v14.16 (generic)
*WARNING* TESTING mode is enabled - do not forget to disable it in the configuration

第 3 步 – 配置 CSF

默认情况下,CSF 的主要配置文件位于 /etc/csf/csf.conf。 我们将需要根据我们的要求编辑和更改所有设置:

nano /etc/csf/csf.conf

将 TESTING = “1” 更改为 TESTING = “0” 并根据我们的要求添加允许的传入和传出端口:

 
# lfd will not start while this is enabled
TESTING = "0"

# Allow incoming TCP ports
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995"

# Allow outgoing TCP ports
TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995"

完成后保存并关闭文件。 然后,启动并启用 CSF 和 LFD 服务:

systemctl start csf lfd
systemctl enable csf lfd

我们可以使用以下命令检查 CSF 的状态:

systemctl status csf

我们应该看到以下输出:

● csf.service - ConfigServer Firewall & Security - csf
   Loaded: loaded (/usr/lib/systemd/system/csf.service; enabled; vendor preset: disabled)
   Active: active (exited) since Tue 2022-06-28 10:52:28 EDT; 6s ago
  Process: 8973 ExecStart=/usr/sbin/csf --initup (code=exited, status=0/SUCCESS)
 Main PID: 8973 (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 11409)
   Memory: 0B
   CGroup: /system.slice/csf.service

Jun 28 10:52:27 oraclelinux8 csf[8973]: csf: FASTSTART loading UDP_IN (IPv4)
Jun 28 10:52:27 oraclelinux8 csf[8973]: csf: FASTSTART loading UDP_OUT (IPv4)
Jun 28 10:52:27 oraclelinux8 csf[8973]: ACCEPT  all opt -- in lo out *  0.0.0.0/0  -> 0.0.0.0/0
Jun 28 10:52:28 oraclelinux8 csf[8973]: ACCEPT  all opt -- in * out lo  0.0.0.0/0  -> 0.0.0.0/0
Jun 28 10:52:28 oraclelinux8 csf[8973]: LOGDROPOUT  all opt -- in * out !lo  0.0.0.0/0  -> 0.0.0.0/0
Jun 28 10:52:28 oraclelinux8 csf[8973]: LOGDROPIN  all opt -- in !lo out *  0.0.0.0/0  -> 0.0.0.0/0
Jun 28 10:52:28 oraclelinux8 csf[8973]: csf: FASTSTART loading DNS (IPv4)
Jun 28 10:52:28 oraclelinux8 csf[8973]: LOCALOUTPUT  all opt -- in * out !lo  0.0.0.0/0  -> 0.0.0.0/0
Jun 28 10:52:28 oraclelinux8 csf[8973]: LOCALINPUT  all opt -- in !lo out *  0.0.0.0/0  -> 0.0.0.0/0
Jun 28 10:52:28 oraclelinux8 systemd[1]: Started ConfigServer Firewall & Security - csf.

我们还可以使用以下命令检查 CSF 运行时打开的端口:

csf -p

样本输出:

Ports listening for external connections and the executables running behind them:
Port/Proto Open Conn  PID/User             Command Line                            Executable
22/tcp     4/-  1     (916/root)           /usr/sbin/sshd -D -oCiphers=aes256-g... /usr/sbin/sshd
80/tcp     4/-  -     (2799/caddy)         /usr/bin/caddy run --environ --confi... /usr/bin/caddy
323/udp    -/-  -     (559/chrony)         /usr/sbin/chronyd                       /usr/sbin/chronyd

第 4 步 – 如何使用 CSF

要刷新所有 CSF 规则,请运行以下命令:

csf -f

要重新加载 CSF 防火墙,请运行以下命令:

csf -r

要允许来自特定 IP 的传入连接,请运行以下命令:

csf -a remote-ip-address

要拒绝来自特定 IP 的连接,请运行以下命令:

csf -d remote-ip-address

我们还可以编辑 csf.deny 和 csf.allow 文件以定义防火墙上允许和拒绝的 IP 列表。

第 5 步 – 启用 CSF UI

CSF 还提供了一个基于 Web 的界面来管理防火墙。 默认情况下禁用。

在启用 CSF UI 之前,使用以下命令安装所需的模块:

dnf install perl-IO-Socket-SSL perl-Net-SSLeay perl-IO-Socket-INET6 perl-Socket -y

接下来,编辑 CSF 配置文件:

nano /etc/csf/csf.conf

启用 UI,定义监听端口,设置管理员用户名和密码,如下图所示:

# 1 to enable, 0 to disable web ui 
UI = "1"

# Set port for web UI. The default port is 6666, but
# I change this to 1025 to easy access. Default port create some issue
# with popular chrome and firefox browser (in my case) 

UI_PORT = "8080"

# Leave blank to bind to all IP addresses on the server 
UI_IP = ""

# Set username for authetnication 
UI_USER = "admin"

# Set a strong password for authetnication 
UI_PASS = "securepassword"

UI_ALLOW = "0"

保存并关闭文件,然后重新启动 CSF 和 LFD 服务以应用更改:

systemctl restart lfd
systemctl restart csf

第 6 步 – 访问 CSF 用户界面

现在,打开我们的 Web 浏览器并使用 URL https://wer-server-ip:8080 访问 CSF UI。 我们应该看到 CSF 登录页面:
CSF登录页面

提供我们的管理员用户名和密码,然后单击登录按钮。 我们应该在以下屏幕上看到 CSF Web 界面:
CSF 仪表板页面

第 7 步 – 移除 CSF 防火墙

如果要从服务器中完全删除 CSF 防火墙,只需运行以下脚本:

bash /etc/csf/uninstall.sh

这将删除 CSF 防火墙以及 CSF 创建的所有文件、目录和规则。

在上述指南中,我们解释了 Oracle Linux 8 上安装 CSF 和 CSF UI。我们还解释了如何使用 CSF 禁止和取消禁止特定 IP 地址。 我们现在可以在我们的服务器上实施 CSF 并保护它免受各种类型的攻击。 在 的 VPS 主机上试一试!

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

请登录后发表评论