Ubuntu防火墙(如UFW)本身主要负责访问控制(允许/拒绝流量),而入侵检测需通过专门的工具实现。两者的结合能提升系统安全性:防火墙限制不必要的流量,入侵检测系统(IDS)监控流量中的异常行为,及时发出警报或采取阻断措施。
在部署入侵检测前,需先通过UFW限制不必要的入站/出站流量,减少攻击面:
sudo apt install ufw# 安装UFWsudo ufw enable # 启用防火墙sudo ufw default deny incomingsudo ufw default allow outgoingsudo ufw allow ssh# 允许SSH(默认端口22)sudo ufw allow https# 允许HTTPS(端口443)sudo ufw status verbose# 查看当前规则及状态Fail2Ban通过监控系统日志(如/var/log/auth.log),自动检测多次失败的登录尝试(如SSH暴力破解),并临时封锁恶意IP地址。
sudo apt install fail2bansudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localsudo nano /etc/fail2ban/jail.local找到[sshd]部分,修改以下参数:enabled = true# 启用SSH防护maxretry = 3 # 允许的最大失败次数bantime = 600 # 封锁时间(秒,此处为10分钟)findtime = 600# 检测时间窗口(秒)sudo systemctl enable --now fail2bansudo tail -f /var/log/fail2ban.log# 实时查看拦截记录Suricata是一款开源的IDS/IPS(入侵检测/防御系统),支持实时流量分析、协议检测、恶意行为识别(如SQL注入、DDoS)。
sudo add-apt-repository ppa:oisf/suricata-stablesudo apt updatesudo apt install suricata/etc/suricata/suricata.yaml:ip a命令查看,如eth0):af-packet:- interface: eth0HOME_NET,如192.168.1.0/24):HOME_NET: "[192.168.1.0/24]"detect-engine:- rule-reload: trueEmerging Threats或Snort规则),可通过以下命令更新:sudo suricata-updatesudo suricata -T -c /etc/suricata/suricata.yaml -v若输出“Configuration validated”则表示配置成功。sudo systemctl enable --now suricata/var/log/suricata/fast.log,可通过以下命令实时查看:sudo tail -f /var/log/suricata/fast.logLogwatch是一款日志分析工具,可自动生成每日/每周报告,帮助识别可疑活动(如多次失败的登录、异常文件访问)。
sudo apt install logwatch/usr/share/logwatch/default.conf/services/sshd.conf,启用详细日志分析:Title = "SSH Daemon"LogLevel = Highlogwatch --service sshd --output stdout可设置每天定时发送报告到邮箱(需配置邮件服务)。/var/log/auth.log(SSH日志)、/var/log/suricata/fast.log(Suricata警报)等日志文件,及时发现异常。/etc/ufw/)、IDS(/etc/suricata/、/etc/fail2ban/)的配置文件,避免误操作导致配置丢失。nmap扫描端口、curl访问测试URL)模拟攻击,验证防火墙与IDS是否能正确拦截。通过以上步骤,Ubuntu防火墙可与入侵检测工具协同工作,实现对系统流量的有效监控与异常行为的及时响应,提升系统安全性。