导航

Linux CSF 防火墙

CSF(ConfigServer Security & Firewall)

支持系统:RedHat Enterprise,openSUSE,CentOS,Debian,CloudLinux,Ubuntu,Fedora,Slackware
支持类型:Virtuozzo,OpenVZ,VMware,UML,Xen,MS Virtual Server,VirtualBox,KVM

特点:

  • 简明的 SPI iptables 防火墙脚本
  • 后台进程为下列服务检查登录认证失败:
    • Courier imap, Dovecot, uw-imap, Kerio
    • openSSH
    • cPanel, WHM, Webmail (仅针对 cPanel 服务器)
    • Pure-ftpd, vsftpd, Proftpd
    • Password protected web pages (htpasswd)
    • Mod_security failures (第一版和第二版)
    • Suhosin failures
    • Exim SMTP AUTH
    • 通过单独的日志文件和正则表达式匹配自定义登录失败
  • POP3/IMAP 登陆追踪来实现每小时强制登陆
  • SSH 登陆通知
  • SU 登陆通知
  • 禁止过多连接
  • 为 cPanel,DirectAdmin 和 Webmin 整合用户界面
  • 在 cPanel/WHM,DirectAdmin 或者 Webmin 的各版本之间轻松升级
  • 在各种版本的 shell 之间轻松升级
  • 为 cPanel 主机预先设置好需要打开的端口
  • 安装到 Directadmin 服务器上,可预先设置好 DirectAdmin 需要打开的端口
  • 安装时如果发现 SSH 端口不是标准的能够自动为其配置端口
  • 阻止服务器上未使用的 IP 的流量—从而帮助减小服务器的风险
  • 终端用户脚本每小时发送过多邮件时警报—以识别发送垃圾邮件的脚本
  • 可疑进程报告—报告服务器上运行的潜在的入侵进程
  • 过多的用户进程报告
  • 过多的用户进程使用报告和随机终止
  • 可疑的文件报告—报告/tmp 或者类似的目录下可疑的木马文件
  • 目录和文件监控—当监控的目录或者文件变化时报告
  • 阻止来自 DShield Block List 和 Spamhaus DROP List 这两个列表中的 IP 的流量
  • BOGON 数据包保护
  • 为防火墙安全预先配置好低级、中级和高级的设置(仅针对 cPanel 服务器)
  • 兼容多重的以太网设备
  • 服务器安全检查—在服务器上执行基本的安全和设置检查(通过 cPanel/DirectAdmin/Webmin 的用户界面)
  • 允许动态得 DNS IP 地址—无论何时你上网总是允许你的 IP 地址即使它改变
  • 如果服务器平均负载在指定的时间段中持续高则发送警报
  • mod_security 日志报告(如果安装的话)
  • 邮件转发追踪—追踪所有通过服务器发送的邮件并对警报发送过多邮件 [] 的主机(仅针对 cPanel 服务器)
  • IDS(入侵检测系统)—最后一道底线的检测用以警报系统和应用程序可能发送的变化
  • SYN 大量请求攻击保护
  • Ping 攻击保护
  • 端口扫描追踪和保护
  • 永久和暂时(由 TTL 值决定禁止的时间)的禁止 IP
  • 潜在的入侵检查
  • 账户变动追踪—当账户相关信息被更改时发送警报,如密码或者登陆的 shell 被改变
  • 共享的系统日志提醒
  • 信使服务—允许将来自被禁止的 IP 的连接请求重定向至预先设置好的文本或者 html 页面来通知访问者他们的 IP 被防火墙禁止了。这对拥有大量用户的服务商尤其有用,可以帮助他们更有效的处理这些请求
  • 国别码禁止—允许您禁止或者允许 ISO 定义的国别码
  • 端口发送大量数据包检测—对每个 IP,每个端口连接的数据包进行检测以阻止 DDOS 攻击
  • DirectAdmin 用户界面整合
  • 更新的 Webmin 用户界面整合
  • WHM root 登陆通知(仅针对 cPanel 主机)
  • lfd 集群—允许禁止的 IP 地址在运行着 lfd 的服务器上自动遍历。它允许集群范围的允许,移除和配置的改变。
  • 快速启动 csf—通过 lfd 延迟拥有大列表禁止 IP 或者允许 IP 的服务器的启动
  • 分布式的登陆失败攻击检测
  • 临时 IP 允许(根据 TTL 值来决定允许时间)
  • 通过 ip6tables 支持 IPv6

提醒:CSF 占用内存较大,建议主机至少 512M 内存。主机正在使用中,上线 20 多个小时效果:

安装 csf

cd /usr/src
rm -fv csf.tgz
wget https://download.configserver.com/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh

测试 csf

perl /usr/local/csf/bin/csftest.pl   #测试 iptables 模块状况
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

端口保护:
/etc/csf/csf.conf
PORTFLOOD= "22;tcp;5;300,80;tcp;20;5"

解释:

1.如果 300 秒内有 5 个以上连接到 tcp 端口 22 的连接,则至少在发现最后一个数据包 300 秒后阻止该 IP 地址访问端口 22,即在该阻止被取消前有 300 秒的"安静" 期。

2.如果 5 秒内有 20 个以上连接到 tcp 端口 80 的连接,则至少在发现最后一个数据包 5 秒后阻止该 IP 地址访问端口 80,即在该阻止被取消前有 5 秒的"安静" 期。

启动重启

启动:csf -s
停止:csf -f
重启:csf -r

提示:所有配置文件修改完后需重启 csf。

卸载

cd /etc/csf sh uninstall.sh

路径

/etc/csf/csf.conf CSF 配置,包括常用开放端口,设定完成关闭测试模式:(TESTING = "0" 默认 "1")
csf.allow 白名单
csf.deny 黑名单
csf.ignore lfd 发现后忽略的 IP 和 CIDR 地址列表
csf.*ignore 列出了 lfd 应忽略的文件,用户,IP 地址的各种文件

官网

http://www.configserver.com/

2016/03/01 更新

CSF 特色翻译
CSF 中文手册
CSF 防火墙的设置

2016/08/30 更新

更新下载地址,修复教程。

csf -h 命令

-h, --help Show this message //显示此消息
-l, --status List/Show iptables configuration //列出/显示 iptables 配置
-l6, --status6 List/Show ip6tables configuration //列出/显示 ip6ables 配置
-s, --start Start firewall rules //启用防火墙规则
-f, --stop Flush/Stop firewall rules (Note: lfd may restart csf) //清除/停止防火墙规则(注意:lfd 可能重新启动 csf)
-r, --restart Restart firewall rules //重新启用防火墙规则
-q, --startq Quick restart (csf restarted by lfd) //快速重启(lfd 重启 csf)
-sf, --startf Force CLI restart regardless of LF_QUICKSTART setting //不顾 LF_QUICKSTART 设置,强制 CLI 重新启动
-a, --add ip Allow an IP and add to /etc/csf/csf.allow //允许一个 IP 并添加至/etc/csf/csf.allow
-ar, --addrm ip Remove an IP from /etc/csf/csf.allow and delete rule //从/etc/csf/csf.allow 删除一个 IP,删除规则
-d, --deny ip Deny an IP and add to /etc/csf/csf.deny //拒绝一个 IP 并添加至/etc/csf/csf.deny
-dr, --denyrm ip Unblock an IP and remove from /etc/csf/csf.deny //解除对一个 IP 的阻止并从/etc/csf/csf.deny 里删除
-df, --denyf Remove and unblock all entries in /etc/csf/csf.deny //删除并解除对/etc/csf/csf.deny 里所有记录的阻止
-g, --grep ip Search the iptables rules for an IP match (incl. CIDR) //查询与某 IP 匹配的 iptables 规则 (包括 CIDR)
-t, --temp Displays the current list of temp IP entries and their //TTL 显示当前临时 IP 及其 TTL 的列表
-tr, --temprm ip Remove an IPs from the temp IP ban and allow list //从临时禁止和允许 IP 列表删除 IPs
-td, --tempdeny ip ttl [-p port] [-d direction]
Add an IP to the temp IP ban list. ttl is how long to //添加一个 IP 至临时禁止 IP 列表,
blocks for (default:seconds, can use one suffix of h/m/d) //ttl 是指端口的阻止时间(默认:秒,可以使用一个 h/m/d 后缀)
Optional port. Optional direction of block can be one of: //可选端口。阻止方向可以是以下任意一种:进入,传出或进出(默认:进入)
in, out or inout (default:in)
-ta, --tempallow ip ttl [-p port] [-d direction]
Add an IP to the temp IP allow list (default:inout) //添加一个 IP 至临时允许 IP 列表(默认:进出)
-tf, --tempf Flush all IPs from the temp IP entries //清除所有临时 IP 记录
-cp, --cping PING all members in an lfd Cluster PINGlfd 群的所有成员
-cd, --cdeny ip Deny an IP in a Cluster and add to /etc/csf/csf.deny //拒绝群里的某个 IP,并添加到/etc/csf/csf.deny
-ca, --callow ip Allow an IP in a Cluster and add to /etc/csf/csf.allow //允许群里的某个 IP,并添加到/etc/csf/csf.allow
-cr, --crm ip Unblock an IP in a Cluster and remove from /etc/csf/csf.deny //解除对群里某个 IP 的阻止,并从/etc/csf/csf.deny 删除
-cc, --cconfig [name] [value]
Change configuration option [name] to [value] in a Cluster //将群里的配置选项 [name] 改为 [value]
-cf, --cfile [file] Send [file] in a Cluster to /etc/csf/ //在群里发送 [file] 至/etc/csf/
-crs, --crestart Cluster restart csf and lfd //重新启动群 csf 和 lfd
-m, --mail [addr] Display Server Check in HTML or email to [addr] if present //在 HTML 显示服务器检查或发送邮件至 [addr] 地址,如果存在的话
-c, --check Check for updates to csf but do not upgrade //检查 csf 更新但不更新
-u, --update Check for updates to csf and upgrade if available //检查 csf 更新并更新,如果可以的话
-uf Force an update of csf //强制更新 csf
-x, --disable Disable csf and lfd //禁用 csf 和 lfd
-e, --enable Enable csf and lfd if previously disabled //启用之前禁用的 csf 和 lfd
-v, --version Show csf version //显示 csf 版本

参考:

1.CSF 中文手册 -- 美国主机侦探翻译
2.linux csf 防火墙 防止少量的 ddos cc 攻击很有效

附:Hosts.deny 东北大学


2016-02-29
选择表情