iptables+firewalld区别

一、iptables工作原理分类

主机防火墙:主要是用来防范单台主机的进出报文;-----filter表·

网络防火墙: 能够实现对进出本网络的所有主机报文加以防护----nat表

raw mangle nat filter

========================================================================================

iptables缺点:

(1)防火墙虽然可以过滤互联网的数据包,但却无法过滤内部网络的数据包。因此若有人从内部网络攻击时,防火墙没有作用。

(2)电脑本身的操作系统亦可能因一些系统漏洞,使入侵者可以利用这些漏洞绕过防火墙过滤,从而入侵电脑。

(3)防火墙无法有效阻挡病毒攻击,尤其是隐藏在数据中的病毒。

1.1、iptables 表

1.2、iptables 链

iptables+firewalld区别_第1张图片

1.3、表和链的关系

iptables+firewalld区别_第2张图片

二、iptables 命令常用的参数详解

iptables+firewalld区别_第3张图片

iptables+firewalld区别_第4张图片​​​​​​​

三、 iptables和firewalld的区别

3.1、相同点:

firewalld 与 iptables 都是 linux 中防火墙的管理程序,但其实其角色主要为对于防火墙策略的管理,真正的防火墙执行者是位于内核中的netfilter

3.2、不同点:

iptables 仅能通过命令行进行配置;而 firewalld 提供了图形接口,类似windows防火墙的操作方式

iptables 每一个单独更改意味着清除所有旧的规则,并从 /etc/sysconfig/iptables 中读取所有新的规则;而 firewalld 在有规则变动后,可以仅仅运行规则中的不同之处,即在 firewalld 运行时间内,改变设置时可以不丢失现行链接

iptables 的配置文件在 /etc/sysconfig/iptables 中;而 firewalld 的配置文件在 /usr/lib/firewalld/ 和 /etc/firewalld/ 中的各种 XML 文件中

iptables 没有守护进程,并不能算是真正意义上的服务;而 firewalld 有守护进程

iptables 通过控制端口来控制服务,而 firewalld 则是通过控制协议来控制端口

3.3、区别

1,firewalld可以动态修改单条规则,动态管理规则集,允许更新规则而不破坏现有会话和连接。而iptables,在修改了规则后必须得全部刷新才可以生效;

2,firewalld使用区域和服务而不是链式规则;

3,firewalld默认是拒绝的,需要设置以后才能放行。而iptables默认是允许的,需要拒绝的才去限制;

4,firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现。也就是说,firewalld和iptables一样,它们的作用都用于维护规则,而真正使用规则干活的是内核的netfilter。只不过firewalld和iptables的结果以及使用方法不一样!

firewalld是iptables的一个封装,可以让你更容易地管理iptables规则。它并不是iptables的替代品,虽然iptables命令仍可用于firewalld,但建议firewalld时仅使用firewalld命令。

四、firewalld 的命令

配置firewalld-cmd
查看版本:firewall-cmd --version
查看帮助:firewall-cmd --help
显示状态:firewall-cmd --state
查看所有打开的端口:firewall-cmd --zone=public --list-ports
更新防火墙规则:firewall-cmd --reload 
端口开放
添加:firewall-cmd --zone=public --add-port=80/tcp --permanent
重新载入:firewall-cmd --reload
删除:firewall-cmd --zone= public --remove-port=80/tcp --permanent

4.1、指定IP与端口访问

查看转发的端口:firewall-cmd --list-forward-ports

其实一个服务对应一个端口,每个服务对应/usr/lib/firewalld/services下面一个xml文件。 firewall-cmd --list-services

查看还有哪些服务可以打开 firewall-cmd --get-services

查看所有打开的端口: firewall-cmd --zone=public --list-ports

更新防火墙规则: firewall-cmd --reload

iptables+firewalld区别_第5张图片

4.2、public默认网络的区域

iptables+firewalld区别_第6张图片

五、 实际案例

考题中所涉及网卡为:eth0:,eth1的IP:192.168.6.217;MAC地址:00-C0-9F-79-E1-8A

4.1、设定默认策略

1.1)设定INPUT为ACCEPT

1.2)设定OUTPUT为ACCEPT

1.3)设定FORWARD为ACCEPT

iptables -P INPUT ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

4.2、定制源地址访问策略

2.1)接收来自192.168.0.3的IP访问

2.2)拒绝来自192.168.0.0/24网段的访问

iptables -A INPUT -i eth0 -s 192.168.0.3 -j ACCEPT

iptables -A INPUT -i eth0 -s 192.168.0.0/24 -j DROP

4.3、目标地址192.168.0.3的访问给予记录。

iptables -A INPUT -s 192.168.0.3 -j LOG

4.4、定制端口访问策略

4.1)拒绝任何地址访问本机的111端口

4.2)拒绝192.168.0.0/24网段的1024-65534的源端口访问SSH

iptables -A INPUT -i eth0 -p tcp --dport 111 -j DROP

iptables -A INPUT -i eth0 -p tcp -s 192.168.0.0/24 --sport 1024:65534 --dport 22 -j DROP

4.5、定制CLIENT端的防火墙访问状态

5.1)清除filter表中所有已经存在的规则;

5.2)设定预设策略,除了INPUT设为DROP,其他为ACCEPT;

5.3)开放本机自由访问本机的所有服务;

5.4)设定有相关的封包状态的请求可以进入本机;

5.5)拒绝所有无效连接状态进如本机

iptables -F

iptables -X

iptables -Z

iptables -P INPUT DROP

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -m state RELATED,ESTABLISHED -j ACCEPT

iptables -A INPUT -m state INVALID -j DROP

4.6、定制防火墙的MAC地址访问策略

6.1)清除所有已存的规则

6.2)将INPUT设为DROP

6.3)允许MAC地址为00-C0-9F-79-E1-8A的主机向本主机发送请求

iptables -F

iptables -X

iptables -Z

iptables -P INPUT DROP

iptables -A INPUT -m MAC --mac-source 00-C0-9F-79-E1-8A -j ACCEPT

4.7、拒绝所有主机PING本主机

iptables -A INPUT -i eth0 -p icmp --icmp-type 8 -j DROP

4.8、定制防火墙的NAT访问策略

8.1)清除所有策略

8.2)开启路由转发功能

8.3)通过MASQUERADE设定来源于192.168.6.0网段的IP通过网卡eth1转发出去

iptables -F

iptables -X

iptables -Z

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -s 192.168.6.0/24 -o eth1 -j MASQUERADE

4.9、定制防火墙的NAT访问策略

9.1)清除所有NAT策略

9.2)开启路由转发

9.3)通过SNAT设定来源于192.168.6.0网段通过网卡eth1:192.168.6.217转发出去

9.4)用iptables观察转发的数据包数量

iptables -F -t nat

iptables -X -t nat

iptables -Z -t nat

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 192.168.6.217

iptables -nvL

4.10、端口转发访问策略

10.1)清除所有NAT策略

10.2)重置ip_forward为1

10.3)通过DNAT设定为所有访问192.168.6.217的22端口,都访问到192.168.6.191的22端口

10.4)接受所有到192.168.6.191的22端口的数据包都通过FORWARD转发

iptables -F -t nat

iptables -X -t nat

iptables -Z -t nat

echo 1 >/proc/sys/net/ipv4/ip_forward

iptables -t nat -A PREROUTING -d 192.168.6.217 -p tcp --dport 22 -j DNAT --to-destination 192.168.6.191:22

iptables -A FORWARD -p tcp -d 192.168.6.191 --dport 22 -j ACCEPT

你可能感兴趣的:(云计算,linux,运维)