防火墙的作用

一种将内部网络和外部网络分开的方法,是一种隔离技术。防火墙在内网与外网通信是进行访问控制,一句锁设置的规则对数据包做出判断,最大限度地阻止网络中的黑客破坏企业网络,从而加强企业网络安全。

防火墙的分类

硬件防火墙:思科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

www.baidu.com域名解析的是百度公网的IP地址

百度网关到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系统——防火墙的更多相关文章

  1. 如何配置Linux系统防火墙,以防止DDOS攻击?

    虚拟主机服务商在运营过程中可能会受到黑客攻击,常见的攻击方式有SYN,DDOS等.通过更换IP,查找被攻击的站点可能避开攻击,但是中断服务的时间比较长.比较彻底的解决方法是添置硬件防火墙.不过,硬件防 ...

  2. linux系统防火墙对访问服务器的影响

    一.刚部署好的linux服务器默认开启了防火墙,这时假如你在该服务器装一个tomcat并启动,在别的机器访问该tomcat是不成功的.需要关闭服务器防火墙才可以 二.service iptables ...

  3. linux系统防火墙关闭

    临时关闭防火墙 #systemctl  stop  firewalld 永久关闭服务端防火墙 #systemctl  disabled   firewalld getenforce   查询状态 临时 ...

  4. Linux系统防火墙相关操作

    服务器重启后防火墙会自动开启,需要把防火墙关闭 以下为对防火墙进行的相关操作 查看防火墙状态 systemctl status firewalld service iptables status 暂时 ...

  5. Linux学习-linux系统下安装jdk和tomcat,以及遇到的问题清单

    安装JDK 1. 在usr目录下建立java安装目录 cd /usr mkdir java   2.下载jdk包 登录网址:http://www.oracle.com/technetwork/java ...

  6. linux系统下部署项目

    一.修改防火墙设置,开放对应的端口 修改Linux系统防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,如果要开放哪个端口,在里面添加一条  -A RH-Firewall- ...

  7. [转帖]Linux firewalld 防火墙使用

    Linux firewalld 防火墙使用 2018-06-19 19:26:08 蚩尤后裔 阅读数 2101  收藏 更多 分类专栏: Linux   版权声明:本文为博主原创文章,遵循CC 4.0 ...

  8. 在新安装的Linux系统中,防火墙默认是被禁掉的,一般也没有配置过任何防火墙的策略,所有不存在/etc/sysconfig/iptables文件。

    原因:在新安装的Linux系统中,防火墙默认是被禁掉的,一般也没有配置过任何防火墙的策略,所有不存在/etc/sysconfig/iptables文件. 解决办法: .随便写一条iptables命令配 ...

  9. Linux系统 开通防火墙端口

    Redhat 7内核 Linux系统  开通防火墙端口 使用systemctl 1.查看防火墙状态,root用户登录,执行命令systemctl status firewalld 2.开启防火墙:sy ...

随机推荐

  1. Appium - WebView測试(Android)

    Appium - WebView測试 作者: Max.Bai 时间: 2015/07 Appium - WebView測试(Android) 如今App都是混合型的.有原生的也包括WebView的,a ...

  2. python 协程(单线程中的异步调用)(转廖雪峰老师python教程)

    协程,又称微线程,纤程.英文名Coroutine. 协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua)中得到广泛应用. 子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B,B在 ...

  3. 使用loadrunner进行压力测试遇到的问题总结

    本人整理了一个LR使用过程中遇到的各种问题的总结文档,有需要可以加QQ群169974486下载. 一.无法生成虚拟用户,运行报错:CCI compilation error -vuser_init.c ...

  4. Python 进阶(三)面向对象编程基础

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkMAAAFGCAIAAADmfgziAAAgAElEQVR4nOx993vT1v7/93/5EEt2Eg

  5. CentOS安装最新版的火狐

    1. 下载最新版的火狐 Firefox-latest.tar.bz2 2.yum -y remove firefox 3.rm -rf /usr/lib/firefox      ##64位的机器为l ...

  6. 华为P10闪存门

    随着余承东的倡议书以及五一假期3天的时间冲刷,华为的闪存门事件,似乎被冲淡了.但相信还有很多人对华为“闪存门”的起始及发展过程不是特别了解.而华为作为2017年Q1季度手机出货量的冠军,居然在4月份出 ...

  7. 我们复习.Net的这些日子里

    今天是我们复习前面学习的第三天,也是在今天我们结束了复习.之前上学时间感觉知识全是生僻的,在生活中很少用到,因此喜欢重复的记忆,而现在学习的知识全是现在乃至未来,将是每天我们使用的,所以就感觉没必要重 ...

  8. nginx服务器配置说明

    总结nginx的一些配置选项: nginx全局配置文件 # 定义nginx运行的用户和组//一个默认同时为用户和组 //没有则默认为nobody user www-data; # nginx进程数,建 ...

  9. 【死磕jeestie源码】类型后面三个点(String...)和数组(String[])的区别

    类型后面三个点(String...),是从Java 5开始,Java语言对方法参数支持一种新写法,叫可变长度参数列表,其语法就是类型后跟...,表示此处接受的参数为0到多个Object类型的对象,或者 ...

  10. Extjs6.2.0搭建项目框架

    1.安装 首先你总要去官网下载ext-6.2.0-gpl.zip和安装Sencha CMD工具来管理ExtJs项目,ext-6.2.0-gpl.zip下载完成解压先放在一边,一会用到. Sencha ...