Linux系统——防火墙
防火墙的作用
一种将内部网络和外部网络分开的方法,是一种隔离技术。防火墙在内网与外网通信是进行访问控制,一句锁设置的规则对数据包做出判断,最大限度地阻止网络中的黑客破坏企业网络,从而加强企业网络安全。
防火墙的分类
硬件防火墙:思科ASA防火墙,H3C的Sepath防火墙
软件防火墙:iptables
按架设的位置,可分为主机防火墙、网关防火墙
iptables防火墙
(1)netfilter
位于Linux内核中的包过滤功能体系,称为Linux防火墙的“内核态”
(2)iptables
位于/sbin/iptables,用来管理防火墙规则的工具,称为Linux防火墙的“用户态”
iptables规则链
(1)规则链
规则的作用:对数据包进行过滤或处理(如何处理数据包)
链的作用:容纳各种防火墙规则(一堆规则组名)
链的分类依据:处理数据包的不同时期
(2)默认包括5种规则链
INPUT: 处理入站数据包
OUTPUT: 处理出站数据包
FORWORD: 处理转发数据包
POSTROUTING: 在进行路由选择后处理数据包
PREROUTING: 在进行路由选择前处理数据包、
# iptables -F 清空防火墙的规则
# iptables -L -nv 查看防火墙规则(-nv 超级详细的查看)
iptables规则表
Nat表显示的是postrouting和prorouting及output
Filter表现实的是input、output和forward
Iptables匹配流程
(1)规则链之间的顺序
入站:POSTROUTING——> INPUT
出站:OUTPUT——> POSTROUTING
转发: POSTROUTING——>FORWARD——> POSTROUTING
(2)规则链内的匹配顺序
按顺序依次检查,匹配 即停止
若找不到相匹配规则。按该链的默认策略处理
iptables命令
格式: iptables -t 表名 选项 链名 条件 -j 控制类型
不指定表名时,默认指filter表
不指定链名时,默认指表内的所有链
除非设置链的默认策略,否则必须指定匹配条件
选项、链名、控制类型使用大写字母,其余均为小写
数据包常见控制类型
ACCEPT:允许通过
DROP:直接丢弃,不给出任何回应
REJECT:拒绝通过,必要时会给出提示
LOG:记录日志信息,然后传给下一条规则继续匹配
(1)添加新的规则:
-A 在链的末尾追加一条规则
-I 在链的开头插入一条规则
(2)查看规则列表:
-L 列出所有的规则条目
-n 以数字形式显示地址、端口等信息
-v 以更详细的方式显示规则信息
--line-numbers 查看规则时,显示规则的序号
(3)删除、清空规则:
-D 删除链内指定序号(或内容)的一条规则
-F 清空所有的细节规则,不清空链规则
# iptables stop 清空所有规则
(4)修改、替换规则
-R 修改替换规则
(5)设置默认规则
-P 为指定的链设置默认规则
(6)协议匹配
-p 指定的协议名
--dport 协议的目标端口
--sport 协议的源端口
(7)地址匹配
-s 源地址
-d 目的地址
(8)接口匹配
-i 入站网卡
-o 出站网卡
Nat模式下,防火墙允许通过的IP地址是虚拟网关的地址;桥接模式下的地址是IP地址
隐含匹配
(1)端口匹配
--sport 源端口
--dport 目标端口
(2)TCP表示匹配
--tcp-flags 检查范围 被设置的标记
(3)ICMP类型匹配
--icmp-type ICMP类型
常见ICMP类型
8 Echo request——回显请求(ping请求)
0 Echo reply——回显应答(ping应答)
3 错误回显
示例:
Drop xshell的filter表,又不掉线
# iptables -I INPUT -s 192.168.214.1 -d 192.168.214.137 -p tcp --dport 22 -j ACCEPT
# iptables -I OUTPUT -s 192.168.214.137 -d 192.168.214.1 -p tcp --sport 22 -j ACCEPT
# iptables -P INPUT DROP
# iptables -P OUTPUT DROP
# iptables -P FORWARD DROP
网关与网关之间用桥接模式,可以模拟公网
内网对内网——openVPN技术(跨公网点对点隧道)
snat 对源地址做地址转换(自动一去一回)
dnat 对目标地址是做地址转换
查看路由信息方式(三种)
# route -n
# ip route
# netstat -rn
模拟私网连接公网,私网能够直接连通私网,但是公网不能找到私网的IP地址,因此公网不能够返回数据给私网;但是想要通信成功。以下操作:

将PC1的IP地址转换成与公网同网段,去连接,实现共享上网(snat),在出站处(出路由后)设置snat,转换成同网段,进行通信连接、(snat作用:让私网能上公网),回来的时候snat能够自动再将公网IP专管城私网IP,与PC01通信(SNAT负责一去一回)
(在网关的虚拟机操作)
# iptables -t nat -A POSTROUNTING -s 源IP的网关(PC01) -o eth1 -j SNAT --to-source 更改为pc2右边的同网段IP地址(出网卡的IP地址)
--to-source 指定源IP网关的新网段
# iptables -t nat -A POSTROUTING -s 192.168.214.0/24 -i eth0 -o eth1 -j SNAT --to-source 192.168.124.155

-s 192.168.214.0/24 -i eth0 -o eth1 均为额外的限制,可以不设置
设置完之后,实现pc01能够连通pc03,但是PC03不能连通pc01

百度网关到Web服务器需要目标地址转换,在进路由前进行目标地址转换
在pc01上装一个Web服务器,在03查看02的网页时显示01 的网页就OK了,设置目标地址转换

# iptables -t nat -A PREROUNTING -i eth1 -d 百度网关的左网卡公网IP地址 -p tcp --dport 80 -j DNAT --to-destination 百度Web服务器私网IP地址:指定端口号
-d 百度网关的左网卡公网IP地址
--to-destination 百度Web服务器私网IP地址:端口
(私网配置)

(网关配置)
# iptables -t nat -A POSTROUTING -o eth1 -s 192.168.214.0/24 -j SNAT --to-source 192.168.142.155
# iptables -t nat -A PREROUTING -i eth1 -d 192.168.142.155 -j DNAT --to-destination 192.168.214.148
(Web服务器)
# curl 192.168.142.155
I am daisy
显示匹配
(1)多端口匹配
-m multiport --sports 源端口列表
-m multiport --dports 目的端口列表
# iptables -I INPUT -p tcp -m multiport --drop 22,225,80,110 -j ACCEPT
(2)IP范围匹配
-m iprange --src-range IP范围
#iptables -A FORWARD -p tcp -m iprange --src-range 192.168.1.100-192.168.1.100 -j ACCEPT
(3)MAC地址匹配
-m mac --mac-source MAC地址
#iptables -A FORWARD -m mac --mac-source 00:0c:29:c2:83:32 -j DROP
(4)状态匹配
-m state --state 连接状态
常见的连接状态:
NEW: 新连接,与任何连接无关
ESTABLISHED: 响应请求或已连接连接的
RELATED: 与已连接有相关性的,如FTP数据连接
#iptables -A INPUT -p tcp --dport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT
已连接80端口的和有关联的连接可以访问,新建连接丢弃

Linux系统——防火墙的更多相关文章
- 如何配置Linux系统防火墙,以防止DDOS攻击?
		
虚拟主机服务商在运营过程中可能会受到黑客攻击,常见的攻击方式有SYN,DDOS等.通过更换IP,查找被攻击的站点可能避开攻击,但是中断服务的时间比较长.比较彻底的解决方法是添置硬件防火墙.不过,硬件防 ...
 - linux系统防火墙对访问服务器的影响
		
一.刚部署好的linux服务器默认开启了防火墙,这时假如你在该服务器装一个tomcat并启动,在别的机器访问该tomcat是不成功的.需要关闭服务器防火墙才可以 二.service iptables ...
 - linux系统防火墙关闭
		
临时关闭防火墙 #systemctl stop firewalld 永久关闭服务端防火墙 #systemctl disabled firewalld getenforce 查询状态 临时 ...
 - Linux系统防火墙相关操作
		
服务器重启后防火墙会自动开启,需要把防火墙关闭 以下为对防火墙进行的相关操作 查看防火墙状态 systemctl status firewalld service iptables status 暂时 ...
 - Linux学习-linux系统下安装jdk和tomcat,以及遇到的问题清单
		
安装JDK 1. 在usr目录下建立java安装目录 cd /usr mkdir java 2.下载jdk包 登录网址:http://www.oracle.com/technetwork/java ...
 - linux系统下部署项目
		
一.修改防火墙设置,开放对应的端口 修改Linux系统防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,如果要开放哪个端口,在里面添加一条 -A RH-Firewall- ...
 - [转帖]Linux firewalld 防火墙使用
		
Linux firewalld 防火墙使用 2018-06-19 19:26:08 蚩尤后裔 阅读数 2101 收藏 更多 分类专栏: Linux 版权声明:本文为博主原创文章,遵循CC 4.0 ...
 - 在新安装的Linux系统中,防火墙默认是被禁掉的,一般也没有配置过任何防火墙的策略,所有不存在/etc/sysconfig/iptables文件。
		
原因:在新安装的Linux系统中,防火墙默认是被禁掉的,一般也没有配置过任何防火墙的策略,所有不存在/etc/sysconfig/iptables文件. 解决办法: .随便写一条iptables命令配 ...
 - Linux系统  开通防火墙端口
		
Redhat 7内核 Linux系统 开通防火墙端口 使用systemctl 1.查看防火墙状态,root用户登录,执行命令systemctl status firewalld 2.开启防火墙:sy ...
 
随机推荐
- MySql阶段案例
			
MySql阶段案例 案例一 涉及的知识点:数据库和表的基本操作,添加数据,多表操作 题目 使用sql语句请按照要求完成如下操作: (1)创建一个名称为test的数据库. (2)在test数据库中创建两 ...
 - HDOJ 4276 The Ghost Blows Light
			
题意 1. 给定一棵树, 树上节点有 value, 节点之间 travel 有 cost. 给定起始节点和最大 cost, 求解最大 value 思路 1. 寻找最短路径 a. 题目描述中有两句话, ...
 - ios开发之 -- 自动轮播图创建
			
这里是oc版本的,简单记录下: 具体代码如下: 1,准备 #define FRAME [[UIScreen mainScreen] bounds] #define WIDTH FRAME.size.w ...
 - hadoop程序MapReduce之MaxTemperature
			
需求:求每年当中最高的温度 样本:temp.log 2016080623 2016072330 2015030420 输出结果:2016 30 2015 20 MapReduce分析设计: Mappe ...
 - 在map中一个key中存多个值
			
一说到map都想到key-value键值队存在.key可以为最多一个null的key. 今天开发中一个业务需求,在map中一个key中存多个对象. 我首先想到Map<String,List> ...
 - ZooKeeper(四)-- 第三方客户端 ZkClient的使用
			
前言 zkClient主要做了两件事情: 一件是在session loss和session expire时自动创建新的ZooKeeper实例进行重连. 另一件是将一次性watcher包装为持久watc ...
 - cocos2d-x游戏引擎核心之四——动作调度机制
			
一.动作机制的用法 在深入学习动作机制在 Cocos2d-x 里是如何实现的之前,我们先来学习整套动作机制的用法,先知道怎么用,再深入学习它如何实现,是一个很好很重要的学习方法. (1)基本概念 CC ...
 - Django学习笔记 创建应用
			
django中使用应用来分割功能.比如:做一个游戏网站,包含4块不同的功能:游戏新闻.游戏论坛.Blog系统.在线商城.使得结构清晰了,每一个应用实现不同的功能:便于复用:游戏新闻.游戏论坛.Blog ...
 - 元素设置disabled属性后便无法向后台传值
			
元素设置disabled属性后便无法向后台传值
 - iOS-代码修改Info.plist文件
			
解决办法: 1.首先系统的Info.Plist文件是只读文件 并不能 写入.目前我个人是没有办法存入,官方属性 可以看到是readOnly 2.那么我们 就想代码修改Info.Plist文件怎么办呢, ...