Linux—firewalld与iptables方式管理火墙

一.基础知识

1.概念

在网络中,所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络。换句话说,如果不通过防火墙,公司内部的人就无法访问Internet,Internet上的人也无法和公司内部的人进行通信。

二.firewalld方式管理火墙

1.firewalld的所有域信息

firewalld域的具体信息,所谓域,就是火墙的安全级别

2.firewalld管理火墙的三种方式

1)命令方式

2)图形方式

[root@localhost ~]# firewall-config

3)文件管理方式

[root@localhost ~]# vim /etc/firewalld/firewalld.conf 

3.firewalld的常用命令

1)火墙状态的查看,开启,关闭

systemctl start firewalld   开启火墙
systemctl stop firewalld    关闭火墙
systemctl enable firewalld     火墙开机启动
systemctl stop firewalld     火墙开机关闭
systemctl status firewalld        查看火墙状态

firewall-cmd 表示临时设置  ,firewall-cmd   --permanent  表示永久设置(需要reload操作)

2)管理火墙的域信息

firewalld-cmd --get-default-zone        查看当前默认域
firewall-cmd --set-default-zone=         设置默认域,此命令是永久更改,立即生效
firewall-cmd --get-zones         查看可以使用的域

3)管理火墙上的服务信息

firewall-cmd --get-services    查看所有可添加的服务
firewall-cmd --add-service=    添加某域某服务的流量
firewall-cmd --remove-service=  禁止某域某服务的流量
firewall-cmd --get-active-zones     查看所有正在使用的域及接口和源信息

4)查看指定域的所有配置

firewall-cmd --list-all   查看默认域的所有配置(接口,源,服务,端口)
firewall-cmd --zone=work --list-all   查看指定的work域的信息
firewall-cmd --list-all-zones    列出所有域的所有配置

5)管理指定ip的流量到本主机的指定域

firewall-cmd --zone= --remove-source=172.25.254.162    从指定域中删除用于路由来自162主机的所有流量规则
firewall-cmd --zone= --add-source=172.25.254.162    将来自162主机的所有流量路由到指定域

6)管理火墙的设备信息

firewall-cmd --add-interface=    将来自该接口的所有流量到指定域
firewall-cmd --change-interface=   将接口已有区域与其它区域关联

7)管理火墙上的端口信息

firewall-cmd  --add-port=    添加某域某端口的流量
firewall-cmd --remove-port=    禁止某域的某服务的流量

8)查看火墙工作状态

firewall-cmd --state    查看火墙状态

9)火墙重新加载

firewall-cmd --reload     丢弃runtime配置并应用permanent配置
[root@localhost services]# firewall-cmd --permanent --complete --reload  状态信息将丢失,当防火墙有问题时可以使用

实验:

1.查看火墙状态

2.查看火墙正在使用的域

4.查看火墙默认的域

5.查看火墙所有的域

6.查看work的域信息

7.列出可添加的服务

8.火墙允许http服务

9.火墙删除http服务

10.将指定ip加入trusted域

11.将指定ip从trusted域删除

12.拒绝主机62的所有网络连接

13.拒绝主机62的所有网络连接且没有回应

!!将此处实验还原,影响实验

14.将eth0从public域移除

15.添加eth0到trusted域

16.将eth0从原来的区域转到public域

17.将8080端口加入public域

18.查看firewalld的服务相关配置文件

添加一个http8080.xml

修改端口信息

重启火墙服务

19.临时只接受172.25.254.62的主机访问服务端的网页

20.删除上一条规则

21.临时只拒绝172.25.254.62的主机访问服务端的网页

firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -p tcp --dport 22 -s 172.25.254.62 -j REJECT 
firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 -p tcp --dport 22 -s 172.25.254.62 -j REJECT 

4.firewalld 管理的SNAT与DNAT

1)SNAT(原地址转换)

首先为server(172.25.254.162)添加一个网卡eth1(1.1.1.1)

然后添加路由功能,使server成为路由器

desktop(1.1.1.2)的网关设置为1.1.1.1(路由器的eth1)

此时desktop(1.1.1.2)可以通过路由器连接真机172.25.254.62

但是此时desktop(1.1.1.2)ssh连接真机(172.25.254.62)时,发现真实连接的是路由器的端口(172.25.254.162)

2)DNAT(目的地址转换)

路由器server(172.25.254.162)添加目的地址转换服务,将访问路由器的主机自动去访问1.1.1.2

firewall-cmd --add-forward-port=port=22:proto=tcp:toport=22:toaddr=1.1.1.2

此时真机(172.25.254.62)ssh连接路由器server(172.25.254.162)

发现连接的主机是desktop(1.1.1.2)

三.iptables方式管理火墙

1.概念

防火墙在做数据包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的数据包过滤表中,而这些表集成在 Linux 内核中。在数据包过滤表中,规则被分组放在我们所谓的链(chain)中。而netfilter/iptables IP 数据包过滤系统是一款功能强大的工具,可用于添加、编辑和移除规则。

2.结构

iptables中有3张表,5条链

          

1)三张表

filter:过滤数据包

nat:用于网络地址转换

mangle:修改数据包的服务类型

2)五条链

#)环境

相关软件: iptables-services
配置文件:/etc/sysconfig/iptables

systemctl stop firewalld   ##关闭火墙
systemctl mask firewalld  ##冻结火墙服务
systemctl disable firewalld  ##火墙开机关闭
yum install ipatbles-services  ##安装提供iptable管理的软件
systemctl start iptables     ##开启服务
systemctl enable iptables    ##开机自启

3.iptables常用管理命令

1)iptable的查看

iptables -L        ##查看默认表filter,没有真实ip
iptables -nL       ##查看默认表,附带解析
iptables -t nat -nL  ##查看指定表nat
iptables -t mangle -nL   ##查看指定表mangle
iptables -F        ##清除表策略
service iptables save    ##保存对表的更改(如果在修改后不保存,在重启iptables服务后,更改失效)

2)iptable的管理

iptables -P INPUT DROP   ##此时设置INPUT为drop,所有主机不能输入数据,实验用ssh不能连接
iptables -P INPUT ACCEPT  ##此时设置INPUT为accept,可以ssh连接
iptables -N westos         新建链westos
iptables -E westos WESTOS          将链westos名称修改为WESTOS
iptables -X WESTOS       删除表WESTOS
iptables -t filter -A INPUT -s 172.25.254.62 -p tcp --dport 22 -j REJECT   添加策略只允许主机62ssh连接,且插入位置默认为最后一条
iptables -I INPUT -s 172.25.254.62 -p tcp --dport 22 -j ACCEPT   添加只允许62ssh连接的策略,且插入位置默认为1,-I INPUT 3表示插入到第3条
iptables -D INPUT 3   删除第三条策略
iptables -A INPUT ! -s 172.25.254.62 -p tcp --dport 22 -j REJECT   !表示除了的意思,插入策略,除了62都可以ssh访问
iptables -R INPUT 2 -j ACCEPT   将第二条策略的动作修改为ACCEPT

4.iptables的DNAT与SNAT

环境:

前面的实验没有还原,将iptables软件重新安装

查看内核的路由功能是否开启

没有开启,编辑文件

添加内容

此时重启网络,内核路由功能开启

1)SNAT(地址伪装)

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.162 从本机的eth0出去的访问其它主机的客户,将自动以162的身份访问其它主机

desktop(1.1.1.2)通过服务器的eth1(1.1.1.1)进入,从eth0(172.25.254.62)出去ssh连接172.25.254.62

最后查看到连接真机172.25.254.62的主机是服务器的eth0端口(172.25.254.162)

2)DNAT(目的地址转换)

iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-dest 1.1.1.2   当访问本机的eth0的端口时,使它自动转换访问1.1.1.2

此时真机(172.25.254.62)ssh连接路由器的eth0端口(172.25.254.162),最后重看到ssh连接到的ip是desktop(1.1.1.2)

猜你喜欢

转载自blog.csdn.net/daizheng12345/article/details/85122814
今日推荐