iptables是linux内核自带的防火墙 , 功能强大 , 但是因为其配置比较复杂 , 往往会让新手望而生畏 。想当年 , 我在学习iptbles的时候就花费了不少精力 , 全凭自己零碎地摸索积累 , 着实走了不少弯路 。接下来 , 我将给大家分享一下如何使用firewalld工具管理iptables 。
1、使用firewalld的好处首先 , firewall-cmd是对iptables操作命令的封装 , 使用简单 , 新手比较容易接受 。
其次 , firewalld可靠性高 , 相对于直接使用iptables命令进行配置 , 它几乎不会出错 , 特别适合在生产环境中使用 。
2、查看firewalld状态大多数Linux系统都默认安装了firewalld包 , 提供的操作命令为firewall-cmd , 我们可以使用--state参数查看firewalld的状态:
root@kali2020:~# firewall-cmd --staterunningroot@kali2020:~#
有时候 , 虽然firewalld已经安装 , 但不一定开启 , 我们可以使用systemctl命令把它开起来:
root@kali2020:~# systemctl enable firewalldSynchronizing state of firewalld.service with SysV service script with /lib/systemd/systemd-sysv-install.Executing: /lib/systemd/systemd-sysv-install enable firewalldroot@kali2020:~# systemctl start firewalldroot@kali2020:~#
3、查看当前配置我们可以使用--list-all参数查看当前zone的配置 , 也可以使用--list-services、--list-ports等参数查看指定的配置:
root@kali2020:~# firewall-cmd --list-allpublic (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: dhcpv6-client ipsec ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: root@kali2020:~#
默认所有网卡都属于默认public zone , 可以使用--zone参数指定其它zone , 关于zone的概念新手可以先忽略 。我们看到 , 防火墙默认只允许dhcpv6-client、ipsec、ssh服务 , 实际上相当于允许服务响应的端口 , 而服务跟端口之间的关系在/etc/service文件中定义 。
4、开放指定端口或服务对于一些默认允许的服务 , 我们可以使用--remove-service参数进行删除 , 加上--permanent参数可指定当前操作为永久生效 , 否则在firewalld重启后配置又恢复了:
【几个简单的实例教你使用firewalld工具轻松管理iptables防火墙】root@kali2020:~# firewall-cmd --list-serviceshttp sshroot@kali2020:~# firewall-cmd --remove-service=ipsec --permanentsuccessroot@kali2020:~# firewall-cmd --remove-service=dhcpv6-client --permanentsuccessroot@kali2020:~# firewall-cmd --reloadsuccessroot@kali2020:~#
我们可以使用--add-service或--add-port方式允许相应的端口 , 配置修改后不会立即生效 , 需要使用--reload参数重新加载配置文件 , 下面的例子分别添加了http服务及tcp443端口:
root@kali2020:~# grep http /etc/services # Updated from https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml .http 80/tcp www # WorldWideWeb HTTPhttps 443/tcp # http protocol over TLS/SSLhttp-alt 8080/tcp webcache # WWW caching serviceroot@kali2020:~# root@kali2020:~# iptables -L -nv | grep :80tcp dpt:80 ctstate NEW,UNTRACKEDroot@kali2020:~#
5、添加rich rule--add-service或--add-port参数只是简单地开放某个端口 , 无法对源/目的IP、端口等进行限制 。要基于更多条件进行限制 , 我们需要添加rich rule:
root@kali2020:~# firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.30.88/32" port port=21 protocol="tcp" accept' --permanentsuccessroot@kali2020:~# firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.30.8/32" service name="http" reject' --permanentsuccessroot@kali2020:~# iptables -L -nv | grep 192.168.30.8 0 0 REJECT tcp -- * * 192.168.30.8 0.0.0.0/0 tcp dpt:80 ctstate NEW,UNTRACKED reject-with icmp-port-unreachable 0 0 ACCEPT tcp -- * * 192.168.30.88 0.0.0.0/0 tcp dpt:21 ctstate NEW,UNTRACKEDroot@kali2020:~# root@kali2020:~# firewall-cmd --reloadsuccessroot@kali2020:~# firewall-cmd --list-rich-rulesrule family="ipv4" source address="192.168.30.8/32" service name="http" rejectrule family="ipv4" source address="192.168.30.88/32" port port="21" protocol="tcp" acceptroot@kali2020:~#
推荐阅读
- 杜仲茶的功效,杜仲茶具有减肥功效吗
- 茶园的施肥技巧,浙江大学茶叶专用肥在丰泥假日茶园施肥试验
- 茶的第功用,白毫茶功用多
- 交换机端口流量监测小工具
- 常喝胖大海茶的坏处,常喝胖大海茶的禁忌
- 茶香卤鸡翅的做法,茶香鸡翅的做法
- 茶与你的性格样,钛晶的佩戴禁忌
- 关于头条号新版后台向万粉创作者开放内测的通知
- 人的身材在一天中的什么时候最高?
- 提前揭秘金士顿618促销大招