赞
踩
一 、防火墙的介绍
防火墙是整个数据包进入主机前的第一道关卡,是一种位于内部网络和外部网络之间的网络安全系统,是一项信息安全的防护系统,依照特定的规则,允许或是限制传输的数据通过。防火墙主要是通过Netfilter与TCPwarppers两个机制来管理的
firewalld编写火墙策略的工具,开启火墙自动管理火墙数据
同名管理iptable 更专业
二、firewalld管理火墙
firewalld是动态防火墙后台程序,它提供了一个动态管理的防火墙,用以支持网络“zones”,以分配对一个网络及其相关链接和界面一定程度的信任。它具备对ipv4和ipv6防火墙的设置支持。它支持以太网桥,并有分离运行时间和永久性配置选择。它还具备一个通向服务或者应用程序以直接增加防火墙规则的接口
systemctl start firewalld 开启防火墙
systemctl stop firewalld 关闭防火墙
systemctl enbale firewalld 设置防火墙开机自启动
systectl disable firewalld 设置防火墙开机禁用
systemctl status firewalld 查看防火墙状态
--state 火墙开启状态 --get-active-zones 列出当前正在使用的所有区域(具有关联的接口或源)及接口和源信息 --get-default-zone 查询当前默认区域 --get-zones 列出所有可用区域 --zone=public --list-all列出public域的所有配置(接口、源、服务和端口) --get-services 列出所有域定义服务 --list-all-zones 列出所有区域的所有配置(接口、源、服务和端口) --set-default-zone=dmz 设置默认域为dmz,此命令会同时更改运行时配置和永久的配置 --add-scoure= 将来自IP地址或网络/掩码的所有流量路由到指定区域 --remove-scoure= 从指定区域中删除用于路由来自IP地址或网络/掩码的所有流量规则 --add-interface= 将来自该接口的所有流量到指定区域 --change-intergace= 将接口已有绑定区域而与其他区域关联 --list-all 列出默认区域的所有配置(接口、源、服务和端口) --add-service= 允许区域某服务的流量 --add-port= 允许区域某端口的流量 --remove-service= 从区域删除某服务的规则 --remove-port= 从区域删除某端口的归则 --reload 丢弃Runtime配置并用Permanet配置
1.列出默认区域的所有配置
2.查询当前默认区域
3.从区域删除某服务的规则
[root@localhost ~]# firewall-cmd --permanent --remove-service=
注意使用table键补齐
4.防火墙状态的查看
[root@localhost ~]# firewall-cmd --state running
5.查看防火墙所有域
6.查看某个域的具体信息(示例work域)
7.列出可以使用的服务[root@localhost ~]# firewall-cmd --get-services
8.防火墙允许http服务(添加http服务)
9.删除http服务
10.将指定的ip加入到trusted域
11.删除刚才添加的ip
12.拒绝指定主机ip的所有网络连接
13.将eth0接口从public域中移除
14.将eth0接口添加到trusted域
15.将eth0接口从之前的域转移到public域
16.添加8080端口到public域
17.查看firewalld相关配置文件
18.添加http8080服务(查看服务时要可以列出)
[root@localhost zones]# vim public.xml
firewall-cmd --permanent --remove-service=ssh 永久移除ssh服务,不加--permanent是暂时移除
firewall-cmd --list-all
firewall-cmd --reload 临时刷新:刷新防火墙的状态,不会改变当前正在的连接
firewall-cmd --list-all
firewall-cmd --complete-reload 永久刷新:完全刷新防火墙的状态,会断开当前正在的连接
通过firewall-cmd工具,可以使用 --direct选项在运行时间里增加或者移除链。如果不熟悉iptables,使用直接接口非常危险,因为你可能无意间导致防火墙被入侵,直接端口模式适用于服务或者程序,以便于在运行时间内增加特定的防护规则,端口模式添加的规则优先应用.
firewall-cmd --list-all
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.65 -p tcp --dport 22 -j ACCEPT 22端口,只允许172.25.254.65来连接,-s +来源,-p 协议,-dport +目的端口,-j + 动作
firewall-cmd --remove-service=ssh --permanent 永久移除ssh服务
firewall-cmd --reload 重新加载
firewall-cmd --list-all
firewall-cmd --direct --get-all-rules 查看增加的防火墙策略规则
-j ACCEPT 允许
-j drop 拒绝 无响应 继续访问,会加大负荷
-j reject 拒绝 响应 下一次不会访问
查看防火墙的策略
之后在火墙允许开启的服务中移除ssh服务,主机ip172.25.254.65主机还是会ssh连接到本机,除此之外的其他主机被拒绝,因为在火墙策略允许了
firewall-cmd --add-masquerade (地址伪装)
firewall-cmd --list-all
开启地址伪装功能
在另一台1.1网段的虚拟机里设置网关,看是否能ping通真机(172网段)
端口转发
在双网卡的主机上设置
firewall-cmd --list-all
firewall-cmd --add-forward-port=port=22:proto=tcp:toport=22:toaddr=1.1.1.165 (端口转发)
firewall-cmd --list-all
三表的解释:
五链的解释:
INPUT链:进来的数据包应用此规则链中的规则,input匹配目的IP是本机的数据包;
OUTPUT链:外出的数据包应用此规则链中的规则
FORWARD链:转发数据包时应用此规则链中的规则,forward匹配流经本机的数据包;
PREROUTING链:对数据包做路由选择前应用此规则链中的规则,prerouting用来修改目的地址用来做DNAT;
POSTROUTING链:对数据包做路由选择后应用此规则链中的规则,postrouting用来修改源地址用来做SNAT
mangle(前两张表不够用,用mangle表,有五个链:PREOUTING链,OUTPUT链,POSTROUTING链,INPUT链,FORWARD链)
iptables -nL 默认查看的是filter iptables -t filter -nL iptables -t mangle -nL iptables -t nat -nL iptables -L iptables -F iptables -nL service iptables save vim /etc/sysconfig/iptables
指定某个表查看
iptables -nL
iptables -t filter -A INPUT -i lo -j ACCEPT 回环接口的输入在fiter被允许
iptables -nL
iptables -t filter -A INPUT -s 172.25.254.25 -j ACCEPT 允许172.25.254.25来访问本机
iptables -nL
iptables -t filter -A INPUT -s 172.25.254.25 -j REJECT 拒绝172.25.254.25来访问本机
iptables -nL
iptables -D INPUT 3 删除filter表INPUT链里的第三个策略
iptables -nL
iptables -R INPUT 2 -s 172.25.254.25 -j REJECT (修改规则,拒绝172.25.254.25访问所有端口)
iptables -I INPUT 2 -s 172.25.254.25 -p tcp --dport 22 -j ACCEPT(-I插入,允许172.25.254.25来连接22端口。)
注意:防火墙的读取规则是从上到下,遇到自己匹配的就执行。
测试使用172.25.254.65主机来ssh来连接
[root@localhost ~]# iptables -D INPUT 3 删除第三条策略
[root@localhost ~]# iptables -nL
[root@localhost ~]# iptables -R INPUT 2 -s 172.25.65.250 -j REJECT 修改第二条策略为拒绝策略
修改第二条策略
修改之后,ssh连接就已经断掉了(因为之前的命令就是使用172.25.65.250主机ssh连接来写的)
再次使用172.25.65.250主机测试连接连接不上了
虚拟机输入:
允许172.25.65.250主机访问22端口策略,并且添加的这个策略为第二条
此时之前断掉的ssh连接就已经恢复了,但只是恢复了22端口,其他端口的服务还是因为第三条拒绝策略的影响是拒绝的
iptables -nL
iptables -P INPUT DROP 修改预设规则为DROP
iptables -nL
iptables -P INPUT ACCEPT
修改回来
添加、修改、删除链
添加链
修改链名
删除链
NAT表的端口转发和地址伪装
端口转发
iptables -t nat -nL
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j DNAT --to-dest 1.1.1.165:22 将本机的22端口转化为目的地1.1.1.165的端口22,这个动作是在路由前
iptables -t nat -nL
测试机ssh连接测试
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。