iptables&firewalld

一、firewalld


(1).firewalld的安装
- yum install firewall -y
- systemctl start firewalld
- systemctl enable firewalld
(2)firewalld服务的管理
Firewalld服务是红帽RHEL7系统中默认的防火墙管理工具,可以使用图形化工具firewall-config或文本管理工具firewall-cmd.
网络区域及其功能
这里写图片描述
网络区域管理文件在/etc/firewalld/zones下
图形管理工具firewall-config
在使用firewall-config前搜并安装该功能所必备的软件
这里写图片描述
1.yum install firewall-config.noarch -y
2.firewall-config
这里写图片描述
文本管理工具firewall-cmd
这里写图片描述
命令行管理防火强更加高效且可靠
注意:firewalld服务有两份规则策略配置记录,RunTime:当前正在生效的,Permanent:永久生效的。实验修改的是永久生效的策略记录时,必须执行“–reload”参数后才能立即生效,否则要重启后再生效。
实验1:永久移除默认网络区的ssh服务
这里写图片描述
这里写图片描述
实验2:允许8080端口流量通过public区域,立即生效且永久生效
[root@router etc]# firewall-cmd –permanent –zone=public –add-port=8080/tcp
[root@router etc]# firewall-cmd –reload success
实验3:查看实验2中要求加入的端口操作是否成功:
[root@router etc]# firewall-cmd –zone=public –list-ports
8080/tcp
[root@router etc]# firewall-cmd –permanent –zone=public –list-ports
8080/tcp
实验4:拒绝172.25.254.112的用户访问ssh服务
[root@router etc]# firewall-cmd –permanent –zone=public –add-rich-rule=”rule family=”ipv4” source address=”172.25.254.112” service name=”ssh” reject”
success
[root@router etc]# firewall-cmd –reload
success
[root@router zones]# firewall-cmd –direct –add-rule ipv4 filter INPUT 1 -s 172.25.254.112 -d 22 -j REJECT
实验5:端口转发功能可以将原本到某端口的数据包转发到其他端口
例:将访问该主机22端口的请求转发至ip为172.25.254.112主机的22端口
[root@router zones]# firewall-cmd –add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.112
success
[root@router zones]# firewall-cmd –add-masquerade
success
[root@router zones]# vim /etc/sysctl.conf 编辑该配置文件,打开转发功能
这里写图片描述
masquerade,其作用就是ip地址伪装,也就是NAT转发中的一种,具体处理方式是将接收到的请求的源地址设置为转发请 求网卡的地址,所以在路由器中将请求实际发送到互联网的时候就会将请求的源地址设置为路由器的外网地 址,这样请求就能正确地返回给路由器了,然后路由器再根据记录返回给我们发送请求的主机了,这就是masquerade。

一、iptables


(1)firewalld和iptables的关系
firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现,也就是说firewalld和 iptables一样,他们的作用都是用于维护规则,而真正使用规则干活的是内核的netfilter,只不过firewalld和iptables的结 构以及使用方法不一样罢了。
(2)iptables基本概念
三张表:
filter: 主要和主机自身有关,主要负责防火墙功能 过滤本机流入流出的数据包是默认使用的表
mangle:数据包修改(QOS),用于实现服务质量
nat:负责网络地址转换,即来源于目的IP地址和端口的转换,一般用于共享上网或特殊端口的转换服务
1.snat :地址转换
2.dnat :标地址转换
3.pnat :标端口转换
5个检查点(内置链)
·PREROUTING:用于目标地址转换(DNAT)。
·INPUT:处理输入数据包
·FORWARD:处理转发数据包。
·OUTPUT:处理输出数据包。
·POSTROUTING:用于源地址转换(SNAT)。
因此在编写规则的时候应该先指定表,再指定链。
(3)安装和配置
为了避免firewalld的作用,影响实验,先关闭firewalld
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl mask firewalld.service
安装启动
yum install iptables-services.x86_64 -y
systemctl start iptables
systemctl enable iptables
(4)iptables常用参数说明
这里写图片描述
这里写图片描述
动作包括:
ACCEPT:接收数据包。
DROP:丢弃数据包。
REDIRECT:重定向、映射、透明代理。
DNAT:目标地址转换。
LOG:日志记录。
故iptables命令选项输入顺序:
iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> –sport 源端口 <-d 目标IP/目标子网> –dport 目标端口 -j 动作
例如:iptables -A INPUT -p tcp –dport 21 -j DROP(禁止访问本机的ftp)
iptables -t nat -D INPUT 1(删除nat表INPUT链的第一条策略)
service iptables save(保存策略)
ip tables -A INPUT -p tcp -s 172.25.254.112 –dport 22 -j ACCEPT(允许172.25.254.112的主机通过tcp协议,通过该主机的22端口)
总之:这些参数可以自由组合,直至达到目的
(5)SNAT和DNAT
在实验之前,先配置三台虚拟机,client1的ip为172.25.12.112,router有两个网卡,eth0的ip为172.25.254.212,eth1的ip为172.25.12.212。client2的ip为172.25.254.112
实验1.内网访问外网
POSTROUTING:可以在这里定义进行源NAT的规则,系统在决定了数据包的路
由以后在执行该链中的规则。
SNAT就是改变转发数据包的源地址 –to-source
router:
这里写图片描述
[root@router ~]# iptables -t nat -A POSTROUTING -o eth0 -j SNAT –to-source 172.25.254.212
[root@router ~]# vim /etc/sysctl.conf
这里写图片描述
[root@router ~]# sysctl -p forward功能生效
net.ipv4.ip_forward = 1
实验2:外网访问内网
PREROUTING:(外部访问内部)可以在这里定义进行 目的NAT的规则,因为路由
器进行路由时只检查数据包的目的ip地址,所以为了使数据包得以正确路由,我们必
须 在路由之前就进行目的NAT;
DNAT就是改变转发数据包的目的地址 –to-dest:
[root@router ~]# iptables -t nat -A PREROUTING -i eth0 -d 172.25.254.212 -j DNAT –to-dest 172.25.12.112
这里写图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章