Ubuntu防火墙与用户管理的核心逻辑
Ubuntu系统中,防火墙(如UFW)的核心功能是管控网络流量(允许/拒绝特定端口的入站/出站连接),而用户管理(创建、权限分配)是通过系统命令实现的,二者结合可限制特定用户的网络访问权限。以下是具体操作方法:
用户管理是防火墙权限配置的前提,常用命令如下:
adduser命令(交互式输入密码及信息),例如创建用户testuser:sudo adduser testuser
passwd命令,例如修改testuser的密码:sudo passwd testuser
sudo组(需root权限),使其可执行管理员命令:sudo usermod -aG sudo testuser
deluser命令(--remove-home选项会同时删除家目录):sudo deluser testuser --remove-home
这些命令用于管理用户账户,为后续防火墙权限配置奠定基础。
UFW(Uncomplicated Firewall)是Ubuntu默认的防火墙工具,可通过owner模块(匹配数据包的所有者)限制特定用户的网络行为:
iptables的owner模块(需root权限),例如阻止testuser的所有出站流量:sudo iptables -A OUTPUT -m owner --uid-owner testuser -j DROP
注:此命令需手动添加,重启后会失效。如需永久生效,可将规则保存到
/etc/iptables/rules.v4(需安装iptables-persistent)。
owner选项,例如允许testuser仅访问SSH(端口22):sudo ufw deny out from any to any app "Any application" owner testuser
sudo ufw allow out ssh owner testuser
这样,testuser只能发起SSH出站连接,其他流量均被拒绝。SSH是远程管理的主要方式,通过/etc/ssh/sshd_config文件可限制特定用户的SSH访问:
AllowUsers行的注释,添加允许登录的用户名(如testuser),例如:AllowUsers testuser
PermitRootLogin为no,防止root用户通过SSH直接登录:PermitRootLogin no
sudo systemctl restart sshd
这些设置可有效减少SSH爆破等攻击风险。
sudo ufw status(UFW)或sudo iptables -L -v -n(iptables)检查规则是否正确,避免误拦截合法流量。/etc/ssh/sshd_config、/etc/sudoers)前,建议备份原文件(如cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak)。