Ubuntu防火墙网络隔离功能概述
Ubuntu的网络隔离功能主要通过防火墙工具(如UFW、iptables)实现,核心目标是限制网络流量访问范围,保护系统免受未经授权的访问和攻击。其隔离逻辑基于“默认拒绝、白名单授权”原则:默认阻断所有传入流量,仅允许明确指定的IP、端口或服务通过,从而缩小系统暴露面。
UFW是Ubuntu默认的防火墙管理工具,基于iptables封装,适合新手快速配置。
sudo ufw enable(启用后默认拒绝所有传入流量,允许所有传出流量)。sudo ufw default deny incoming(拒绝所有传入流量)、sudo ufw default allow outgoing(允许所有传出流量),强化“只出不进”的安全模型。sudo ufw allow from 192.168.1.100 to any port 22(允许IP 192.168.1.100访问SSH端口22);sudo ufw allow from 133.3.5.0/24 to any port 80,443(允许133.3.5.0/24子网访问HTTP/HTTPS端口);sudo ufw delete allow from 192.168.1.100 to any port 22(删除指定IP的SSH授权)。iptables是Linux内核的防火墙框架,支持更复杂的流量控制(如端口转发、NAT、IP集匹配)。
sudo iptables -P INPUT DROP(拒绝所有传入流量)、sudo iptables -P OUTPUT ACCEPT(允许所有传出流量)。sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT(允许TCP端口22的SSH连接);sudo iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT(允许192.168.1.0/24子网的所有流量)。sudo service iptables save(CentOS系统)或sudo netfilter-persistent save(Ubuntu系统,需安装netfilter-persistent包)。当需要隔离的IP数量较多时,ipset可高效管理IP集合,避免iptables规则冗余。
sudo apt install ipset。sudo ipset create blocked_ips hash:ip(创建名为blocked_ips的IP集合)。echo "192.168.1.200" | sudo tee -a /etc/blocked_ips(将IP 192.168.1.200添加到集合)。sudo iptables -A INPUT -m set --match-set blocked_ips src -j DROP(拒绝来自blocked_ips集合的所有流量)。通过划分虚拟网络接口(VLAN)或绑定多网卡,将不同网络流量隔离到不同接口,再通过防火墙规则控制接口间的访问。
sudo ip addr add 192.168.2.100/24 dev eth0 label eth0:1(在eth0接口上添加虚拟接口eth0:1,分配192.168.2.100/24网段)。sudo ufw allow in on eth0 to any port 22(仅允许eth0接口的SSH访问),sudo ufw deny in on eth0:1(拒绝eth0:1接口的所有传入流量)。sudo ufw status verbose(UFW)或sudo iptables -L -v -n(iptables)查看规则是否生效,避免误拦截合法流量。