iptables防火墙简述

一、防火墙


简介

  • 防火墙:通过硬件或软件限制非法用户访问资源,可预防DDos、检测***
  • 防火墙工作在传输层(通过对不用软件标识所采用协议及端口、接收方采用相同协议及端口打开数据)

分类

  • 硬件级防火墙:绿盟、深信服、天融信、思科华为等
  • 软件防火墙:Windows Defender(Windows)、iptables(Centos6)、firewalld(Centos7)

二、iptables概述


  • iptables是Linux 内核集成的 IP 信息包过滤系统,如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。
  • 防火墙在做数据包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的数据包过滤表中,而这些表集成在 Linux 内核中。在数据包过滤表中,规则被分组放在我们所谓的链(chain)中。而netfilter/iptables IP 数据包过滤系统是一款功能强大的工具,可用于添加、编辑和移除规则。
  • 虽然 netfilter/iptables IP 信息包过滤系统被称为单个实体,但它实际上由两个组件netfilter 和 iptables 组成。
  • netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。
  • iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。

1.iptables组成

  • netfilter:Linux内核模块,提供防火墙功能,但用户不可直接干预;内核态

  • iptables:一种防火墙规则编写工具(类似于CMOS与BIOS之间关系),修改的操作都写入到netfilter中;用户态

2.iptables的四表五链

四表:针对不同的功能


  • raw:状态跟踪;
    raw PREROUTING
    raw OUTPUT

  • mangle:标记;
    mangle INPUT
    mangle PREROUTING
    mangle POSTROUTING
    mangle FORWARD
    mangle OUTPUT

  • nat:地址转换;修改包IP、端口等实现上网等需求
    nat PREROUTING
    nat POSTROUTING
    nat OUTPUT

  • filter:地址过滤;
    filter INPUT
    filter OUTPUT
    filter FORWARD

五链:针对不同时机


  • INPUT:入站数据包,过滤指定包到达本地服务器
  • OUTPUT:出站数据包,一般不做控制,全部放心
  • FORWARD:转发数据包,一般用于网关型防火墙,用于实现数据转发
  • PREROUTING:路由前数据包,用于在网关型防火墙下,实现DNAT,用于将内部主机发布到公网,公网用户访问
  • POSTROUTING:路由后数据包,用于网关型防火墙下,实现SNAT,用于内部主机共享独立公网IP,实现内网上网需求

详解:
PREROUTING(路由前):DNAT(路由器转发之后,IP地址未更改情况)

前提:192.168.1.10/24(80) --> 200.0.0.1/24(80)

Client 200.0.0.10/24 --> 200.0.0.1/24

路由前

Gateway 200.0.0.10/24 --> 192.168.1.10/24

路由后(错误)

192.168.1.1/24 --> 192.168.1.10/24

详解:

POSTROUTING(路由后):SNAT(路由转发之后,IP地址已更改情况)

前提:192.168.1.10/24 --> 200.0.0.1/24

Client 192.168.1.10/24 --> 200.0.0.10/24

路由后

Gateway 200.0.0.1/24 --> 200.0.0.10/24

路由前(错误)

Gateway 192.168.1.10/24 --> 200.0.0.10/24

3.iptables匹配顺序

(1)表:raw --> mangle --> nat --> filter
(2)链:

  • 入站:PREROUTING --> INPUT
  • 出战:OUTPUT --> POSTROUTING
  • 转发:PREROUTING --> FORWARD --> POSTROUTING
  • 普通服务器:INPUT
  • 网关:PREROUTING、POSTROUTING、FORWARD

三、iptables规则编写


格式

iptables [ -t 表名 ] 选项 [ 链名 ] [ 匹配条件 ] [ -j 控制类型 ]

选项

-A:链中最后增加一条
-I:链中最开始增加一条
-D:删除指定链
-L:列表显示所有规则
-n:以数字显示端口、IP等
-v:详细信息显示
-P:指定默认规则
--line-numbers:显示规则的序号

控制类型

ACCEPT:允许
REJECT:拒绝
DROP:丢弃
LOG:日志

匹配条件

1.通用匹配
-p:协议(tcp、udp、icmp)
-s:源地址
-d:目标地址
-i:入口网卡
-o:出口网卡

2.隐含匹配(需配合-p选项)
--dport:目标端口
--sport:源端口
--icmp-type:icmp协议类型;0(回显)、3(网络不可达)、8(请求)
--tcp-flages:TCP标记

3.显式匹配
-m multiport --sports:源端口列表
-m multiport --dports:目标端口列表
-m iprange --src-range:IP地址范围
-m mac --mac-source:MAC地址
-m state --state:连接状态;NEW(DROP)、ESTABLISHED(ACCEPT)、RELATED(ACCEPT)

  • 通用匹配案例:

/etc/init.d/iptables stop //清空默认规则

vim clean_iptables.sh
#!/bin/bash
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -t raw -F
iptables -t raw -X
iptables -t security -F
iptables -t security -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

iptables -t filter -I INPUT -s 192.168.12.0/24 -p icmp -j ACCEPT //允许192.168.12.0网段使用icmp协议访问

iptables -t filter -P INPUT DROP //设置默认INPUT链为拒绝

  • 隐含匹配案例:

/etc/init.d/iptables stop

iptables -t filter -I INPUT -p tcp --dport 22 -s 192.168.12.0/24-j ACCEPT //允许192.168.12.0网段访问本机的22端口

iptalbes -t filter -P INPUT DROP

  • 显式匹配案例:

/etc/init.d/iptables stop

iptables -t filter -I INPUT -p icmp --icmp-type 0 -j ACCEPT

iptables -t filter -I INPUT -p icmp --icmp-type 3 -j ACCEPT

iptables -t filter -I INPUT -p icmp --icmp-type 8 -j DROP

iptalbes -t filter -P INPUT DROP

//服务器可以ping外部,但外部不可ping服务器

四、案例


个人电脑(Linux)

/etc/init.d/iptables stop
iptables -t filter -I INPUT -i lo -j ACCEPT
iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
/etc/init.d/iptables save //保存当前防火墙配置;/etc/sysconfig/iptables
chkconfig --level 35 iptables on

服务器(Linux)

/etc/init.d/iptables stop
iptables -t filter -I INPUT -i lo -j ACCEPT
iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A INPUT -p tcp -m multiport --dports 22,80,443 -j ACCEPT
iptables -t filter -A INPUT -p udp -m multiport --dports 53 -j ACCEPT
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
/etc/init.d/iptables save //保存当前防火墙配置;/etc/sysconfig/iptables
chkconfig --level 35 iptables on

  • 可根据自己的需要自行更改iptables规则

原文地址:http://blog.51cto.com/13770206/2160746

时间: 2024-10-11 04:10:08

iptables防火墙简述的相关文章

Iptables防火墙(一)

一.Linux防火墙基础 Linux防火墙主要工作在网络层,属于典型的包过滤防火墙. netfilter和iptables都用来指Linux防火墙,主要区别是: netfilter:指的是linux内核中实现包过滤防火墙的内部结构,不以程序或文件的形式存在,属于"内核态"的防火墙功能体系. iptables:指的是用来管理linux防火墙的命令程序,通常位于/sbin/iptables目录下,属于"用户态"的防火墙管理体系. 1.iptables的表.链结构 Ipt

【整理笔记-防火墙】实现iptables防火墙搭建

搭建防火墙,配置防火墙. - - 系统centos7 . centos7自带firewalld,由于看firewalld命令行没有接触过,所以安装iptables防火墙. 1:禁用firewalld firewall-cmd --state 查看系统自带防火墙状态. 用systemctl stop firewalld.service   禁止立即生效, systemctl disable firewalld.service  永久关闭firewalld.执行完再看一下防火墙状态, 显示为not

iptables防火墙高级应用

iptables 防火墙(主机防火墙) 前言:我们在以前学习过asa防火墙,对防火墙有一定的了解,那么iptables和asa防火墙类似,作用一样,都是为了保证网络安全,系统安全,服务器的安全,和asa一样也需要建立策略,个人觉得比asa的策略要繁琐一点,但只要多做几遍,也就简单了. 一.防火墙基础 Linux防火墙主要工作在网络层,属于典型的包过滤防火墙. 1.iptables的表.链结构 Iptables采用了表和链的分层结构,每个规则表相当于内核空间的一个容器,根据规则集的不同用途划分为默

Linux下的配置iptables防火墙增强服务器安全

Linux下的配置iptables防火墙增强服务器安全 实验要求 iptables常见概念 iptables服务器安装及相关配置文件 实战:iptables使用方法 例1:使用iptables防火墙保护公司web服务器 例2:使用iptables搭建路由器,通过SNAT使用内网机器上网 例3:限制某些IP地址访问服务器 例4:使用DNAT功能把内网web服务器端口映射到路由器外网 实验环境 iptables服务端:xuegod-63   IP:192.168.1.63 iptables客户端:x

iptables防火墙应用

安全服务--Iptables  一.网络安全访问控制我们都知道,Linux一般作为服务器使用,对外提供一些基于网络的服务,通常我们都需要对服务器进行一些网络控制,类似防火墙的功能,  常见的访问控制包括:那些IP可以访问服务器,可以使用那些协议,那些接口.那些端口 是否需要对数据包进行修改等等.如果某服务器受到攻击,或者来自互联网哪个区域或者哪个IP的攻击,这个时候应该禁止所有来自该IP的访问.那么Linux底层内核集成了网络访问控制,通过netfilter模块来实现.  iptables作用:

基于linux的web服务器的iptables防火墙安全优化设置

安全规划:开启 80  22 端口并 打开回路(回环地址 127.0.0.1) #iptables –P INPUT ACCEPT #iptables –P OUTPUT ACCEPT #iptables –P FORWARD ACCEPT 以上几步操作是为了在清除所有规则之前,通过所有请求,如果远程操作的话,防止远程链接断开. 接下来清除服务器内置规则和用户自定义规则: #iptables –F #iptables -X 打开ssh端口,用于远程链接用: #iptables –A INPUT

iptables防火墙配置详解

iptables简介 iptables是基于内核的防火墙,功能非常强大,iptables内置了filter,nat和mangle三张表. filter负责过滤数据包,包括的规则链有,input,output和forward: nat则涉及到网络地址转换,包括的规则链有,prerouting,postrouting和output: mangle表则主要应用在修改数据包内容上,用来做流量整形的,默认的规则链有:INPUT,OUTPUT,NAT,POSTROUTING,PREROUTING: inpu

CentOS下配置iptables防火墙 linux NAT(iptables)配置

CentOS下配置防火墙 配置nat转发服务CentOS下配置iptables防火墙 linux NAT(iptables)配置 CentOS下配置iptables 1,vim /etc/sysconfig/network   这里可以更改主机名称. NETWORKING=yesNETWORKING_IPV6=noHOSTNAME=BGI-TJ.localdomain GATEWAY=192.168.11.1(超算网关) 2.vim /etc/sysconfig/network-scripts/

20条IPTables防火墙规则用法!

导读 管理网络流量是系统管理员必需处理的最棘手工作之一,我们必需规定连接系统的用户满足防火墙的传入和传出要求,以最大限度保证系统免受攻击.很多用户把 Linux 中的 IPTables 当成一个防火墙,从严格意见上来说 IPTables 只是能够帮助管理员定义各种规则并与 Linux Kernel 进行沟通的一个命令行工具.它只是帮助管理员配置网络流量的传入.传出规则列表,具体的实现其实是在 Linux 内核当中. IPTables 包括一组内置和由用户定义规则的「链」,管理员可以在「链」上附加