CSF安装与配置
了解CSF
CSF是一款全面、直接、易于配置且灵活的 SPI iptables 防火墙。本文要介绍的配置有,基于ISO国家代码的准入与准出策略,管理UI配置,端口配置,信息统计配置,DDOS配置。
CSF是一套脚本,不是二进制可执行文件。
SPI:Stateful Packet Inspection
官网地址:https://configserver.com/cp/csf.html
CentOS Wiki:https://wiki.centos.org/zh/HowTos/Network/IPTables
安装CSF
安装环境
Ubuntu 20.04.4(Debian系列均可参考,RHEL酌情参考)
iptables配置为默认,iptables -L
没有配置即为默认
准备工作
1. 停止UFW
Ubuntu默认防火墙UFW与CSF冲突,为了使用CSF需关闭UFW,或者直接卸载。
# 关闭
sudo ufw disable
sudo systemctl stop ufw
sudo systemctl disable ufw
# 卸载
sudo apt purge ufw
2. 依赖包安装
# 必需
sudo apt install perl libwww-perl
# 使用信息统计可视化必备
sudo apt install libgd-graph-perl
# 使用邮件通知功能必备
sudo apt install sendmail
如果不需要邮件通知功能,可以用脚本代替,以减少不必要的软件安装
echo '#!/bin/sh' | sudo tee /usr/sbin/sendmail
sudo chmod +x /usr/sbin/sendmail
开始安装
sudo su
cd /usr/src
rm -fv csf.tgz
wget https://download.configserver.com/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh
校验iptables组件
sudo perl /usr/local/csf/bin/csftest.pl
全都OK即可,若提示缺少组件,安装再次检查
配置CSF
配置文件位于/etc/csf/csf.conf
,使用sudo vim /etc/csf/csf.conf
打开
注意:避免修改csf目录及相关文件的权限!!!
端口出入配置
TCP_IN
配置传入本机链接目的端口
有IPv6的需设置对应的TCP6_IN
TCP_IN = "22,33,44,55,66:88"
根据本机实际情况配置,记得配置修改过后的sshd端口,如果忘记添加并且处于非测试模式,那么就跟服务器说拜拜吧
DDOS配置
PORTFLOOD = "22;tcp;5;300,80;tcp;20;5,443;tcp;20;5"
22 端口某 IP 在 300 秒内发起 5 个以上链接,拉黑
80 或 443 端口某 IP 在 5 秒内发起 20 个以上链接,拉黑
基于国家代码的配置
CC_ALLOW_FILTER = "CN"
Web UI配置
UI = "1"
UI_PORT = "88"
UI_USER = "test"
UI_PASS = "test"
记放开UI_PORT
,在/etc/csf/ui/ui.allow
文件中加入你的IP地址
WEB UI 采用https协议,如有证书更名后放进相关目录,链接也可
bash
ln -s fullchain.pem /etc/csf/ui/server.crt
ln -s privkey.pem /etc/csf/ui/server.key
不使用邮件的配置
搜索所有ALERT
,将其改为不通知
配置结束后
sudo csf -r
,查看是否报错,无错并确定配置无误,修改如下
TESTING = "0"
RESTRICT_SYSLOG = "3"
常用命令
# start
sudo csf -s
# restart
sudo csf -r
# systemctl
sudo systemctl stop csf
sudo sysremctl stop lfd
一些说明
- 刷新 Let’s Encrypt SSL证书时,可暂时关闭防火墙
/etc/csf/csfpre.sh
可用于在csf启动前执行操作,例如添加自定义规则