防火墙iptables基本知识和简单配置

   

1 概述

1.1 文档说明

文档提供centos日的iptables防火墙的设置。

2 linux防火墙基础

防火墙分为硬件防火墙和软件防火墙。

2.1 概述

linux 防火墙体系主要工作在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙:

A、        包过滤机制:netfilter

B、 管理防火墙规则命令工具:iptables

netfilter指linux内核中实现包过滤防火墙的内部结构,不依程序或文件的形式存在,属于“内核态”的防火墙功能体系。

iptables指管理linux防火墙的命令工具,属于“用户态”的防火墙管理体系。

2.2 iptables的规则表、链结构

iptables的作用在于为包过滤机制的实现提供规则,通过不同的规则作出不同的反应.

A、           iptables管理4个表、以及他们的规则链filter,用于路由网络数据包。

      INPUT网络数据包流向服务器

      OUTPUT网络数据包从服务器流出

      FORWARD网络数据包经服务器路由

 

B、 nat,用于NAT表.NAT(NetAddress Translation )是一种IP地址转换方法。

      PREROUTING网络数据包到达服务器时可以被修改

      POSTROUTING网络数据包在即将从服务器发出时可以被修改

      OUTPUT网络数据包流出服务器

C、 mangle,用于修改网络数据包的表,如TOS(TypeOf Service),TTL(Time To Live),等

      INPUT网络数据包流向服务器

      OUTPUT网络数据包流出服务器

      FORWARD网络数据包经由服务器转发

      PREROUTING网络数据包到达服务器时可以被修改

      POSTROUTING网络数据包在即将从服务器发出时可以被修改raw, 用于决定数据包是否被跟踪机制处理

      OUTPUT网络数据包流出服务器

      PREROUTING网络数据包到达服务器时可以被修改

2.3 数据包过滤匹配流程

      1.规则表之间的优先顺序

      依次应用:raw、mangle、nat、filter表

      2.规则链之间的优先顺序

             入站数据流向

             转发数据流向

             出站数据流向

      3.规则链内部各条防火墙规则之间的优先顺序

3 管理和配置Iptables规则

3.1 iptables的基本语法格式

iptables [-t 表名] 命令选项 [链名] [条件匹配] [-]目标动作或跳转

      表名链名用于指定iptables命令所做对象,未指定默认filter表,命令选项指于管理iptables规则的方式(插入、删除··);条件匹配指定对条件的符合而处理;目标动作或跳转指定数据包的处理方式。

3.2 管理iptables规则

控制选项

       -A 在链尾添加一条规则

       -D从链中删除一条规则

       -I 在链中插入一条规则

       -R 修改、替换某链的某规则

       -L 列出某个链上的规则

       -F 清空链,删除链上的所有规则

       -N 创建一个新链

       -X 删除某个规则链

       -P 定义某个链的默认策略

           -n 数字形式显示结果

       -v 查看规则列表详细信息

       -V 查看iptables命令工具版本

       -h 查看命令帮助信息

       -line-numbers 查看规则列表,显示顺序号

      增加、插入、删除和替换规则

相关规则定义的格式为:

      iptables  [-t表名] <-A | I | D | R> 链名 [规则编号] [-i | o 网卡名称] [-p 协议类型] [-s 源IP地址 |源子网] [--sport 源端口号] [-d目标IP地址 | 目标子网] [--dport目标端口号] <-j动作>

      参数说明如下。

             [-t表名]:定义默认策略将应用于哪个表,可以使用filter、nat和mangle,如果没有指定使用哪个表,iptables就默认使用filter表。

             -A:新增加一条规则,该规则将会增加到规则列表的最后一行,该参数不能使用规则编号。

             -I:插入一条规则,原本该位置上的规则将会往后顺序移动,如果没有指定规则编号,则在第一条规则前插入。

             -D:从规则列表中删除一条规则,可以输入完整规则,或直接指定规则编号加以删除。

             -R:替换某条规则,规则被替换并不会改变顺序,必须要指定替换的规则编号。

             <链名>:指定查看指定表中哪个链的规则列表,可以使用INPUT、OUTPUT、FORWARD、PREROUTING、OUTPUT和POSTROUTING。

             [规则编号]:规则编号用于插入、删除和替换规则时用,编号是按照规则列表的顺序排列,规则列表中第一条规则的编号为1。

             [-i| o 网卡名称]:i是指定数据包从哪块网卡进入,o是指定数据包从哪块网卡输出。网卡名称可以使用ppp0、eth0和eth1等。

             [-p协议类型]:可以指定规则应用的协议,包含TCP、UDP和ICMP等。

             [-s源IP地址 | 源子网]:源主机的IP地址或子网地址。

             [--sport源端口号]:数据包的IP的源端口号。

             [-d目标IP地址| 目标子网]:目标主机的IP地址或子网地址。

             [--dport目标端口号]:数据包的IP的目标端口号。

             <-j动作>:处理数据包的动作。


简单配置例子:

服务方iptables配置
清除iptables规则
清除预设表filter中的所有规则链的规则
iptables -F 
清除预设表filter中使用者自定链中的规则
iptables -X
开放ssh的端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
设置限制filter规则
 iptables -P INPUT DROP
 iptables -P OUTPUT ACCEPT
 iptables -P FORWARD DROP
开放icmp协议,这是ping命令的开启
iptables -A INPUT -p icmp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT
iptables -A INPUT -i lo -p all -j ACCEPT
iptables -A OUTPUT -o lo -p all -j ACCEPT
开放DNS 服务器,开启53端口
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
开放PIEE用的端口
开放apache的端口
端口号8585协议tcp:
iptables -A INPUT -p tcp --dport 8585 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 8585 -j ACCEPT
开放mysql的端口
端口号3306协议tcp
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 3306 -j ACCEPT
保存iptables设置
/etc/init.d/iptables save
service iptables restart

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值