Ubuntu防火墙(如UFW)本身主要负责访问控制(允许/拒绝流量),而入侵检测需通过专门的工具实现。两者的结合能提升系统安全性:防火墙限制不必要的流量,入侵检测系统(IDS)监控流量中的异常行为,及时发出警报或采取阻断措施。
在部署入侵检测前,需先通过UFW限制不必要的入站/出站流量,减少攻击面:
sudo apt install ufw # 安装UFW
sudo ufw enable # 启用防火墙
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo 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 fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
找到[sshd]
部分,修改以下参数:enabled = true # 启用SSH防护
maxretry = 3 # 允许的最大失败次数
bantime = 600 # 封锁时间(秒,此处为10分钟)
findtime = 600 # 检测时间窗口(秒)
sudo systemctl enable --now fail2ban
sudo tail -f /var/log/fail2ban.log # 实时查看拦截记录
Suricata是一款开源的IDS/IPS(入侵检测/防御系统),支持实时流量分析、协议检测、恶意行为识别(如SQL注入、DDoS)。
sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt update
sudo apt install suricata
/etc/suricata/suricata.yaml
:
ip a
命令查看,如eth0
):af-packet:
- interface: eth0
HOME_NET
,如192.168.1.0/24
):HOME_NET: "[192.168.1.0/24]"
detect-engine:
- rule-reload: true
Emerging Threats
或Snort
规则),可通过以下命令更新:sudo suricata-update
sudo 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.log
Logwatch是一款日志分析工具,可自动生成每日/每周报告,帮助识别可疑活动(如多次失败的登录、异常文件访问)。
sudo apt install logwatch
/usr/share/logwatch/default.conf/services/sshd.conf
,启用详细日志分析:Title = "SSH Daemon"
LogLevel = High
logwatch --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防火墙可与入侵检测工具协同工作,实现对系统流量的有效监控与异常行为的及时响应,提升系统安全性。