在Ubuntu系统中,可以使用 Uncomplicated Firewall (UFW) 和 iptables 来配置防火墙和进行基本的入侵检测。以下是详细步骤:
安装UFW(如果尚未安装):
sudo apt update
sudo apt install ufw
启用UFW:
sudo ufw enable
配置UFW规则:
sudo ufw allow 80/tcp # 允许HTTP
sudo ufw allow 443/tcp # 允许HTTPS
sudo ufw allow 22/tcp # 允许SSH
sudo ufw deny 22/tcp # 拒绝SSH
查看UFW状态:
sudo ufw status
删除规则:
sudo ufw delete allow 80/tcp # 删除允许80端口的规则
禁用UFW:
sudo ufw disable
安装iptables(如果尚未安装):
sudo apt update
sudo apt install iptables
编辑iptables规则:
编辑 /etc/iptables.rules
文件,添加允许和拒绝规则:
sudo vi /etc/iptables.rules
示例规则:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
# 允许常用端口
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT # 允许HTTP
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT # 允许HTTPS
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT # 允许SSH
# 允许本地回环接口
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
# 允许已建立的连接
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 拒绝所有其他输入
-A INPUT -j DROP
COMMIT
加载并生效规则:
sudo iptables-restore < /etc/iptables.rules
查看当前规则:
sudo iptables -L -n
保存iptables规则:
sudo apt install iptables-persistent
sudo netfilter-persistent save
确保防火墙开机自启:
创建软链接并编辑 /etc/rc.local
文件:
sudo ln -s /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service
sudo vi /etc/rc.local
在文件中添加:
iptables-restore < /etc/iptables.rules
给 /etc/rc.local
文件添加执行权限:
sudo chmod +x /etc/rc.local
启动并启用服务:
sudo systemctl enable rc-local.service
sudo systemctl start rc-local.service
对于更高级的入侵检测,可以使用 Snort 或 Suricata。以下是安装Suricata的步骤:
安装依赖项:
sudo apt install autoconf automake build-essential cargo cbindgen libjansson-dev libpcap-dev libcap-ng-dev libmagic-dev liblz4-dev libpcre2-dev libtool libyaml-dev make pkg-config rustc zlib1g-dev -y
下载并解压Suricata源代码:
wget https://www.openinfosecfoundation.org/download/suricata-7.0.6.tar.gz
tar xvzf suricata-7.0.6.tar.gz
cd suricata-7.0.6
配置并安装:
./configure --enable-nfqueue --prefix=/usr --sysconfdir=/etc --localstatedir=/var
sudo make && sudo make install-full
启动Suricata:
sudo systemctl enable --now suricata
配置Suricata:
编辑 /etc/suricata/suricata.yaml
文件,配置网络接口和规则集:
sudo nano /etc/suricata/suricata.yaml
更新Suricata规则:
sudo suricata-update
测试Suricata:
sudo suricata -T -c /etc/suricata/suricata.yaml -v
通过以上步骤,您可以在Ubuntu系统上配置基本的防火墙和入侵检测系统,确保系统的安全性和稳定性。