iptables & firewalld & ufw
iptables、firewalld、ufw都不是防火墙,他们都只是管理防火墙的工具、服务而已!
iptables
、firewalld
和 ufw
都是Linux系统中常用的防火墙软件,它们之间的区别如下:
-
iptables: iptables 是Linux系统中最原始、最基础、最底层的防火墙软件,它可以直接配置Linux内核中的网络规则,控制网络数据包的流动。由于iptables配置比较复杂,需要对网络协议和规则有深入的了解,所以对于普通用户来说使用较为困难。
-
firewalld:firewalld 是Red Hat公司在RHEL7中引入的一种新型防火墙软件,它是iptables的高级封装,提供了更加友好的界面以及更加简单的配置方式。firewalld支持动态添加或删除规则,可以在运行时实时更新防火墙规则,并且支持多种网络接口的管理和控制。
-
ufw:ufw (Uncomplicated Firewall) 是Ubuntu中的一种简单易用的防火墙软件,它是iptables的又一种高级封装,提供了更加易于使用的命令行界面和配置文件。ufw配置简单,支持多种规则类型,例如允许、拒绝、限制等,可以快速地配置常见的网络服务和端口。
总的来说,iptables是最基础的防火墙软件,需要对网络协议和规则有深入的了解;firewalld是iptables的高级封装,提供了更加友好的界面和更加简单的配置方式;ufw是iptables的又一种高级封装,提供了更加易于使用的命令行界面和配置文件。选择哪种防火墙软件取决于用户的需求和经验水平。
常用命令
iptables 命令
iptables是Linux下最常用的防火墙软件,它可以通过命令行配置各种规则,控制进出网络的数据包。以下是一些常用的iptables命令:
查看和修改iptables规则:
- iptables -L:列出当前所有规则;
- iptables -L -n:列出所有防火墙规则,并显示端口号;
- iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT:允许来自于192.168.1.0/24网段的数据包通过;
- iptables -A OUTPUT -d 192.168.1.0/24 -j ACCEPT:允许发往192.168.1.0/24网段的数据包通过;
- iptables -D INPUT -s 192.168.1.0/24 -j ACCEPT:删除来自于192.168.1.0/24网段的允许规则。
清空iptables规则:
- iptables -F:清空所有规则;
- iptables -X:删除所有用户自定义链;
- iptables -Z:将所有计数器归零。
保存和恢复iptables规则:
- iptables-save > /etc/sysconfig/iptables:将当前iptables规则保存到文件中;
- iptables-restore < /etc/sysconfig/iptables:从文件中恢复iptables规则。
需要注意的是,iptables的配置需要根据实际情况进行调整,不正确的配置可能会导致网络连接失败或者安全漏洞。建议在配置防火墙前先备份配置文件,以免误操作导致不可挽回的后果。
firewalld 命令
firewalld是一种新的防火墙软件,它提供了一种更加灵活和动态的方式来管理防火墙规则。以下是一些常见的firewalld命令:
启动和停止firewalld:
- systemctl start firewalld:启动firewalld服务;
- systemctl stop firewalld:停止firewalld服务;
- systemctl enable firewalld:设置firewalld服务为开机启动;
- systemctl disable firewalld:禁止firewalld服务开机启动。
查看和修改firewalld规则:
- firewall-cmd --list-all:列出当前防火墙的所有规则;
- firewall-cmd --zone=public --add-port=80/tcp --permanent:开放80端口的TCP访问权限,并永久生效;
- firewall-cmd --zone=public --remove-port=80/tcp --permanent:关闭80端口的TCP访问权限,并永久生效;
- firewall-cmd --zone=public --list-ports:列出当前开放的端口;
- firewall-cmd --reload:重新加载防火墙规则。
设置默认的防火墙区域:
- firewall-cmd --get-default-zone:显示当前默认的防火墙区域;
- firewall-cmd --set-default-zone=public:设置默认的防火墙区域为public。
需要注意的是,firewalld的配置需要根据实际情况进行调整,不正确的配置可能会导致网络连接失败或者安全漏洞。建议在配置防火墙前先备份配置文件,以免误操作导致不可挽回的后果。
ufw 命令
ufw是Ubuntu下的一种基于iptables的简单防火墙命令,它提供了一组简化的命令,使得配置防火墙变得更加容易。以下是一些常用的ufw命令:
启用和停用ufw:
- ufw enable:启用ufw防火墙;
- ufw disable:禁用ufw防火墙;
- ufw status:查看ufw防火墙状态。
查看和修改ufw规则:
- ufw allow 端口号:开放指定的端口;
- ufw deny 端口号:拒绝指定的端口;
- ufw delete allow 端口号:删除已经开放的端口;
- ufw delete deny 端口号:删除已经拒绝的端口;
- ufw reload:重新加载ufw规则。
设置默认的ufw规则:
- ufw default allow:设置默认允许所有连接;
- ufw default deny:设置默认拒绝所有连接。
需要注意的是,ufw的配置需要根据实际情况进行调整,不正确的配置可能会导致网络连接失败或者安全漏洞。建议在配置防火墙前先备份配置文件,以免误操作导致不可挽回的后果。