防火墙firewalld和iptables

Firewalld概述

Linux中防火墙firewalld、iptables默认是使用firewalld来管理netfilter子系统,不过底层调用的命令仍然是iptables。

firewalld跟iptables比起来至少有两大好处:

1、firewalld可以动态修改单条规则,而不需要像iptables那样,在修改了规则后必须得全部刷新才可以生效;

2、firewalld在使用上要比iptables人性化很多,即使不明白“三张表五条链”而且对TCP/IP协议也不理解也可以实现大部分功能。

firewalld跟iptables比起来,不好的地方是每个服务都需要去设置才能放行,因为默认是拒绝。而iptables里默认是每个服务是允许,需要拒绝的才去限制。

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

一个重要的概念:区域管理

通过将网络划分成不同的区域,制定出不同区域之间的访问控制策略来控制不同程序区域间传送的数据流。例如,互联网是不可信任的区域,而内部网络是高 度信任的区域。网络安全模型可以在安装,初次启动和首次建立网络连接时选择初始化。该模型描述了主机所连接的整个网络环境的可信级别,并定义了新连接的处 理方式。有如下几种不同的初始化区域,动态防火墙后台程序firewalld提供了一个动态管理的防火墙,用于支持网络“zones”,以分配对一个网络及其相关链接和界面一定防火墙的基本命令:

阻塞区域(block):任何传入的网络数据包都将被阻止。

工作区域(work):相信网络上的其他计算机,不会损害你的计算机。

家庭区域(home):相信网络上的其他计算机,不会损害你的计算机。

公共区域(public):不相信网络上的任何计算机,只有选择接受传入的网络连接。

隔离区域(DMZ):隔离区域也称为非军事区域,内外网络之间增加的一层网络,起到缓冲作用。对于隔离区域,只有选择接受传入的网络连接。

信任区域(trusted):所有的网络连接都可以接受。

丢弃区域(drop):任何传入的网络连接都被拒绝。

内部区域(internal):信任网络上的其他计算机,不会损害你的计算机。只有选择接受传入的网络连接。

外部区域(external):不相信网络上的其他计算机,不会损害你的计算机。只有选择接受传入的网络连接。

注:FirewallD的默认区域是public。

firewalld默认提供了九个zone配置文件:block.xml、dmz.xml、drop.xml、external.xml、 home.xml、internal.xml、public.xml、trusted.xml、work.xml,他们都保存在“/usr/lib /firewalld/zones/”目录下。

配置方法

firewalld的配置方法主要有三种:firewall-config、firewall-cmd和直接编辑xml文件,其中 firewall-config是图形化工具,firewall-cmd是命令行工具,而对于linux来说大家应该更习惯使用命令行方式的操作,所以 firewall-config我们就不给大家介绍了。

Firewalld通过控制协议来控制端口,iptables通过控制端口来控制服务,这次实验我们每次只能对一种类型的火墙进行操作,iptables和firewalld选其一开启

Iptables的开启

1.关闭firewalld,安装iptables

systemctl stop firewalld.service
systemctl mask firewalld.service
yum install iptables-services

2开启iptables服务,显示iptables信息

iptables -nL

firewalld的基本命令

firewall-cmd --state 查看状态
firewall-config &       图形化管理
firewall-cmd --get-active-zones 活跃域
firewall-cmd --get-default-zone 默认域
firewall-cmd --get-zones 所有域
firewall-cmd --zone=public 修改域为public
firewall-cmd --zone=public --list-all 查看public域的信息
Firewalld-cmd -get-services 查看可以通过火墙的服务
firewall-cmd --set-default-zone=trusted 更改默认区域为信任域
firewall-cmd --add-service=http 添加服务http通过火墙如果添加--permanent为永久添加
firewall-cmd --reload 加载服务

在图形化界面添加一块虚拟网卡,添加一个接口到eth1,显示所有接口,删除接口,

firewall-cmd --add-port=8080/tcp --zone=public 将80端口加入public域
Direct Rules

还可以通过规则来查看服务,给23主机添加规则允许22端口通过,filter是链,2是规则插入位置

端口转发和地址伪装

服务火墙端口打开地址伪装,reload之后查看是否伪装成功

端口转发服务器端添加这个端口

测试端ssh连接123之后跳到23

源地址转化

对desktop服务端设置两个网卡两个ip,一个是172.25.254.123,一个是192.168.0.123,在客户端进行设置ip为192.168.0.223,ping172.25.254.123,本来两个地址不通但因为服务端有路由转换可以把172转换到192网段从而ping通不同网段。

W -i

Iptable删除加策略刷新添加更改删除更改默认策略

iptables -nL 显示iptables的信息
iptables -F 刷新iptables 再次查看表为空
vim  /etc/sysconfig/iptables 因为策略写在配置文件中所以重启服务表会刷新,重新显示
systemctl restart iptables.service 
service iptables save     保存iptables
iptables -A INPUT -i lo -j ACCEPT   回环接口变为ACCEPT
iptables -A INPUT -s 172.25.254.123 -j  ACCEPT 123ip对应所有数据通过
iptables -I INPUT 2 -s 172.25.254.123  -p tcp --dport 22 -j REJECT 修改状态为拒绝
iptables -R INPUT 2 -s 172.25.254.123 -p tcp --dport 22 -j DROP删除这条策略
iptables -D INPUT 2 删除第二条
iptables  -P INPUT DROP 修改默认策略为DROP

增加-N删除-X修改(链重命名)-E链

[root@desktop ~]# iptables -N westos
[root@desktop ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
Chain westos (0 references)
target     prot opt source               destination         
[root@desktop ~]# iptables -E westos WESTOS
[root@desktop ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
Chain FORWARD (policy ACCEPT
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
Chain WESTOS (0 references)
target     prot opt source               destination         
[root@desktop ~]# iptables -X  WESTOS
[root@desktop ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  

Iptable实现apache,https,dns

[root@desktop ~]# iptables -A INPUT -m state --state new -i lo -j ACCEPT
[root@desktop ~]# iptables -A INPUT -m state --state new -p tcp --dport 22 -j  ACCEPT
[root@desktop ~]# iptables -A INPUT -m state --state new -p tcp --dport 80 -j  ACCEPT
[root@desktop ~]# iptables -A INPUT -m state --state new -p tcp --dport 53 -j  ACCEPT
[root@desktop ~]# iptables -A INPUT -j REJECT

service iptables save添加到文件中,显示添加成功

猜你喜欢

转载自blog.csdn.net/weixin_40460156/article/details/81806920