天天看点

linux--Firewalld、Iptables防火墙的设置

一、Firewalld

1..启动服务

systemctl start firewalld

firewall-config ##打开图形管理界面

图示:图形管理界面

linux--Firewalld、Iptables防火墙的设置

Configuration 的设置有两种:permanent 永久设定

Runtime 临时设定,设定临时后需(reload),重新加载

示例:永久添加http服务到public

[root@localhost ~]# vim /etc/firewalld/zones/public.xml 

linux--Firewalld、Iptables防火墙的设置

ZONE:【一般默认public】

Trusted(信任):可接受所有的网络连接

Home(家庭):用于家庭网络,仅接受ssh、mdns、ipp-client、或dhcpv6-client服务连接

Inter(内部):用于内部网络,仅接受ssh、mdns、ipp-client、或dhcpv6-client服务连接

Work(工作):用于工作区,仅接受ssh、ipp-client、或dhcpv6-client服务连接

Public(公共):在公共区域内使用,仅接受ssh或dhcpv6-client赴俄u连接,为firewalld的默认区域

Enternal(外部):出去的ipv4网络连接通过此区域伪装和转发,仅接受ssh服务连接

Dmz(非军事区):仅接受ssh服务连接

Block(限制):拒绝所有网络连接

Drop(丢弃):任何接收的网络数据包被丢弃,没有任何恢复

内容:

Services ##firewalld提供的服务

Ports ##端口

Masquerading ##伪装

Port forwarding ##端口转发

Interfaces ##接口

Sources ##指定源地址

2..基本参数的设定

查看firewall当前状态

查看当前活动的工作区域

linux--Firewalld、Iptables防火墙的设置

查看当前默认的工作区域

linux--Firewalld、Iptables防火墙的设置

查看所拥有的工作区域

linux--Firewalld、Iptables防火墙的设置

查看所有可设置的服务

linux--Firewalld、Iptables防火墙的设置

查看当前默认区域的内容

linux--Firewalld、Iptables防火墙的设置

查看指定的trusted区的内容

linux--Firewalld、Iptables防火墙的设置

设置默认区域为trusted

linux--Firewalld、Iptables防火墙的设置

永久添加可接收数据包来源,需要重新加载

linux--Firewalld、Iptables防火墙的设置

永久移除可接收数据包来源

linux--Firewalld、Iptables防火墙的设置

永久在trusted区域添加数据包来源

linux--Firewalld、Iptables防火墙的设置

移除

linux--Firewalld、Iptables防火墙的设置

在trusted区域添加eth0接口

linux--Firewalld、Iptables防火墙的设置

在默认区添加可访问端口8080,协议为tcp

linux--Firewalld、Iptables防火墙的设置

移除8080端口

linux--Firewalld、Iptables防火墙的设置

Firewall-cmd --reload (执行明快ing为永久的时候,每次执行完徐重新加载,不然命令不会生效。如果向取消可以执行--complete-reload)

3.direct参数设定

查看当前国有的direct rules

添加direct rules,设置为ipv4,在filter表中第一条,60主机可以访问,访问端口22,协议tcp

linux--Firewalld、Iptables防火墙的设置

4.伪装和端口转发

开启伪装

linux--Firewalld、Iptables防火墙的设置

添加伪装

linux--Firewalld、Iptables防火墙的设置

测试伪装:用ssh去连接60主机,用(w -i)查看登陆历史,显示的是121主机IP,伪装成功

linux--Firewalld、Iptables防火墙的设置

端口转发(不转发之前不能连接)

linux--Firewalld、Iptables防火墙的设置

测试:用1虚拟机访问60主机,查看是IP为121主机进行访问

linux--Firewalld、Iptables防火墙的设置

注意:

/usr/lib/firewalld/services 中存放了firewalld策略可以添加的服务,都以xml格式存在

linux--Firewalld、Iptables防火墙的设置
linux--Firewalld、Iptables防火墙的设置

二、IPTABLES 【防火墙的管理工具】

实验前需要关闭firewalld,得到一个纯净的环境

linux--Firewalld、Iptables防火墙的设置

安装iptables

linux--Firewalld、Iptables防火墙的设置

开启iptables服务

linux--Firewalld、Iptables防火墙的设置

iptables -F##刷新策略

iptables -t ##指定列表,默认filter

iptables -I INPUT 2 -p tcp --dport 23 -j DROP:插入到第二条策略

iptables -E allowed disallowed:修改规则链名称

iptables -D INPUT 3:删除filter表中的第三条规则

iptables -R INPUT 3 -j ACCEPT:将原来编号为3的规则内容替换为-j

iptables -P INPUT DROP: 设置filter表INPUT链的默认规则 ,当数据包没

有被规则列表里的任何规则匹配到时,按此默认规则处理

iptables -t nat -nL:查看nat策略

iptables -t nat -L PREROUTING:查看nat表PREROUTING链的规则

iptables

有4可以连接

-N redhat:添加自定义链名

-D redhat 1:删除自定义链下的策略

-X redhat:删除自定义链

-A INPUT -s !192.168.0.4 -p tcp --dport 23 -j REJECT:只

-i eth0:匹配从网络接口 eth0 进来

-o eth0:匹配从网络接口 eth0 出去

-s 192.168.0.1:匹配来自 192.168.0.1 的数据包

-d 202.106.0.0/16 匹配去往 202.106.0.0/16 网络的数据包

1.部分示例:

查看filter表中的策略

linux--Firewalld、Iptables防火墙的设置

刷新filter表中的策略

linux--Firewalld、Iptables防火墙的设置

保存之前的策略到kelnel

linux--Firewalld、Iptables防火墙的设置

Iptables -A INPUT -i lo -j ACCPET ##允许lo访问

Iptables -A INPUT -P tcp -dporp 22 -j ACCPET ##允许访问22端口

Iptables -A INPUT -s 172.25.254.60 -j ACCPET ##允许60主机访问所有

Iptables -A INPUT -j REJECT ##拒绝所有

Iptables -nL | cat -b ##在执行cat时加行号

linux--Firewalld、Iptables防火墙的设置

插入到第2条策略

linux--Firewalld、Iptables防火墙的设置

删除INPUT链的第三条策略

linux--Firewalld、Iptables防火墙的设置

修改INPUT中的第二条策略

linux--Firewalld、Iptables防火墙的设置

把INPUT的policy由之前默认ACCEPT修改为DROP

linux--Firewalld、Iptables防火墙的设置

2..标识策略:

Iptables -A INPUT -m state --state NEW -i lo -j ACCEPT ##检测第一次使用lo用户访问,访问成功后可以直接允许访问

Iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT ##检测第一次使用端口22访问,访问成功后可以直接允许访问

Iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT

Iptables -A INPUT -j REJECT ##除以上条件的全部拒绝

linux--Firewalld、Iptables防火墙的设置

3.NAT的设置

SNAT:改变转发数据包的源地址 --to-source:

DNAT:改变转发数据包的目的地址 --to-dest:

Iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.121 ##改变转发数据包的目的地址为172.25.254.121

Iptables -t nat -A POSTROUTING -i eth0 -d 172.25.254.121 -j DNAT --to-dest 172.25.0.1 ##改变转发数据包的源地址为172.25.0.1

linux--Firewalld、Iptables防火墙的设置
linux--Firewalld、Iptables防火墙的设置

本文转自 無緣 51CTO博客,原文链接:http://blog.51cto.com/13352594/2048137

继续阅读