Netfilter/Iptables(以下简称Iptables)是unix/linux自带的一款优秀且开放源代码的完全自由的基于包过滤的防火墙工具,它的功能十分强大,使用非常灵活,可以对流入和流出服务器的数据包进行很精细的控制.特别是它可以在一台非常低的硬件配置服务器上跑的非常好。iptables是linux2.4及2.6内核中集成的服务,其功能与安全性比其老一蜚ipfwadm,ipchains 强大的多,iptables主要工作在0SI七层的二、三、四层,如果重新编译内核,iptables也可以支持 7 层控制(squid代理+iptables)。

四表五链:

表\链 INPUT FORWARD  OUTPUT  PREROUTING   POSTROUTING
Filter(过滤流入流出主机的数据包) × ×
NAT(负责网络地址转换,即来源与目的的ip地址和port的转换) × ×
Managle(主要负责修改数据包中特殊的路由标记,如TTL、TOS、MARK等)
raw(RAW表可以应用在那些不需要做nat的情况下,以提高性能。如大量访问的web服务器,可以让80端口不再让iptables做数据包的链接跟踪处理,以提高用户的访问速度) × × ×

说明: √表示对应的表有该链,× 表示无。

iptables工作流程小结

1、防火墙是一层层过滤的。实际是按照配置规则的顺序从上到下,从前到后进行过滤的。

2、如果匹配上了规则,即明确表明是阻止还是通过,此时数据包就不在向下匹配新规则了。

3、如果所有规则中没有明确表明是阻止还是通过这个数据包,也就是没有匹配上规则,向下进行匹配,直到匹配默认规则得到明确的阻止还是通过。

4、防火墙的默认规则是对应链的所有的规则执行完以后才会执行的(最后执行的规则)

iptables的优化配置原则

1、尽可能不给服务器配置外网ip ,可以通过代理转发或者通过防火墙映射.并发不是特别大情况有外网ip,可以开启防火墙服务;

2、大并发的情况,不能开iptables,影响性能,利用硬件防火墙提升架构安全。

一般用到的功能

1、NAT功能

  1)局域网上网共享(路由和网关),使用NAT的POSTROUTING链。

  2)外部IP和端口映射为内部IP和端口(DMZ功能),使用NAT的PREROUTING链

2、FILTER功能,即防火墙功能FILTER INPUT FORWARD

  主要应用就是主机服务器防火墙,使用FILTER的INPUT链

iptables参数说明

参数 参数说明
显示相关参数  
-n/--numeric 以数字的方式显示地址或端口信息
-L/ --list 列出一个链或所有链中的规则信息
--list-rules/-S Print the rules in a chain or all chains
--line-number 当列出规则信息时,打印规则行号
-v 显示详细信息,可以叠加
-h 显示帮助信息
初始化相关参数  
iptables -F 清除所有规则,不会处理默认的规则
iptables -X 删除用户自定义的链
iptables -Z 链的计数器清零(数据包计数器与数据包字节计数器)
配置常用参数  
-t 表名称 指定配置哪个表,指定配置表名称。
--append/-A 链名称 附加或追加上相应规则策略,到指定链(链名称必须大写),默认将配置的规则插入到最后一条。
--check/-C Check for the existence of a rule
--insert/-I 链名称 插入相应规则策略,到指定链上,默认将配置的规则插入到第一条(可以根据规则序号插入到指定位置)--封IP地址使用。
--delete/-D 链名称 删除指定的规则(可以根据规则序号进行删除)
--replace/-R Replace rule rulenum (1 = first) in chain
-P  接(大写)链名称 改变链上的最终默认规则策略
--new/-N 创建新的用户定义链
-p 协议名称 指定规则的协议名称 all tcp udp icmp
--dport 指定匹配的目标端口信息
--sport 指定匹配的源端口信息
-j 动作 匹配数据包后的动作
ACCEPT 允许
DROP 丢弃(没有响应)
REJECT 拒绝(回应请求者明确的拒绝)
MASQUERADE 伪装上网时使用
SNAT 共享地址上网
DNAT 目的地址改写
-i    [!] --in-interface 在INPUT链配置规则中,指定从哪一个网卡接口进入的流量(只能配置在INPUT链上)
-o   [!] --out-interface 在OUTPUT链配置规则中,指定从哪一个网接口出去的流量(只能配置在OUTPUT链上)
-s   [!] --source 指定源IP地址或源网段信息
-d   [!] --destination 指定目标IP地址或目标网段信息
扩展参数  
-m 模块 表示增加扩展,匹配功能扩展匹配(可以加载扩展参数)
multiport 实现不连续多端口扩展匹配
icmp 使用icmp的扩展
state 状态模块扩展
--icmp-type 只有类型8是真正会影响ping,或者也可以采用any;了解很多icmp类型iptables -p icmp -h
--limit n/{second/minute/hour} 指定时间内的请求速率”n”为速率,后面为时间分别为:秒分 时
--limit-burst [n] 在同一时间内允许通过的请求”n”为数字,不指定默认为5
--exact/-x 扩展数字(显示精确数值)

配置实例一:配置22/ssh端口访问控制规则

iptables -A INPUT -p tcp --dport 22 -j DROP     # 禁止所有人访问22端口
iptables -I INPUT -p tcp --dport 22 -j ACCEPT   # 恢复连接方法
iptables -I INPUT 2 -p tcp --dport 22 -j ACCEPT # 通过插入指定行号信息,指定将规则插入到第几行
iptables -D INPUT -p tcp --dport 22 -j ACCEPT   # 删除指定规则
iptables -D INPUT 2                             # 根据规则行号,删除相应的规则

只允许10.0.0.1的ip通过ssh连接这台服务器

iptables -I INPUT -s 10.0.0.1 -p tcp --dport 22 -j ACCEPT 

配置实例二:禁止网段连入(禁止172.16.1.0网段访问172.16.1.188)

iptables -A INPUT  -s 172.16.1.0/24 -d 172.16.1.188  -j DROP

配置实例三:禁止某个172.16.1.0网段访问服务器主机的22端口

iptables -A INPUT -s 172.16.1.0/24 -d 172.16.1.188  -p tcp --dport 22 -j DROP

配置实例四:除10.0.0.0网段可以进行连接服务器主机意外,其余网段都禁止

iptables -A INPUT -s 10.0.0.0/24 -d 172.16.1.8  -j ACCEPT

配置实例五:测试匹配列举端口范围

iptables -A INPUT -p tcp --dport 22:80 -j DROP # 设置连续多端口控制策略
iptables -A INPUT -p tcp -m multiport --dport 22,80 -j DROP # 设置不连续多端口控制策略

配置实例六:匹配ICMP类型

指定类型禁止icmp

iptables -A INPUT -p icmp --icmp-type 8
iptables -A INPUT -p icmp --icmp-type 8 -j DROP
iptables -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -p icmp -m icmp --icmp-type any -j ACCEPT 

说明:只有类型8是真正会影响ping,或者也可以采用any;了解很多icmp类型iptables -p icmp -h

防火墙之iptables的更多相关文章

  1. Linux防火墙配置(iptables, firewalld)

    netfilter和底层实现 iptables firealld Linux中的防火墙 RHEL中有几种防火墙共存: iptables firewalld ip6tables ebtables 这些软 ...

  2. Linux防火墙:iptables禁IP与解封IP常用命令

    在Linux服务器被攻击的时候,有的时候会有几个主力IP.如果能拒绝掉这几个IP的攻击的话,会大大减轻服务器的压力,说不定服务器就能恢复正常了. 在Linux下封停IP,有封杀网段和封杀单个IP两种形 ...

  3. 实用防火墙(Iptables)脚本分析

    实用防火墙(Iptables)脚本分析 --Redhat,CentOS,Ubuntu等常见Linux发行版中都会预装Iptables防火墙,大多数初学者设置起来由于对这款软件比较陌生,设置起来比较困难 ...

  4. linux防火墙相关 iptables

    1. root用户查看防火墙状态(非root用户无权限查看) 查看防火墙状态: service iptables status 2.开启和关闭防火墙 //开启防火墙: service iptables ...

  5. 企业防火墙之iptables

    1.1 企业中安全优化配置原则 尽可能不给服务器配置外网ip ,可以通过代理转发或者通过防火墙映射.并发不是特别大情况有外网ip,可以开启防火墙服务. 大并发的情况,不能开iptables,影响性能, ...

  6. Linux防火墙简介 – iptables配置策略

    Linux防火墙简介 – iptables配置策略 Netfilter/iptables简介 要想真正掌握Linux防火墙体系,首先要搞清楚Netfilter和iptables的关系,Netfilte ...

  7. linux防火墙之iptables

    linux防火墙之iptables 1.1.1 关于iptables简介 IPTABLES 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统.如果 Linux 系统连接到因特网或 ...

  8. Linux防火墙(iptables/firewalld)

    Linux防火墙(iptables/firewalld) 目录 Linux防火墙(iptables/firewalld) 一.iptables 1. iptables概述 2. netfilter和i ...

  9. Linux学习之八--关闭firewall防火墙安装iptables并配置

    CentOS 7之后默认使用的是firewall作为防火墙,这里改为iptables防火墙,并开启80端口.3306端口. 1.关闭firewall: systemctl stop firewalld ...

  10. Centos7 关闭防火墙(Firewalld ),使用防火墙(iptables)

    1.直接关闭防火墙 systemctl stop firewalld.service: #停止firewall systemctl disable firewalld.service: #禁止fire ...

随机推荐

  1. React造轮子:拖拽排序组件「Dragact」

    先来一张图看看: 项目地址:Github地址 (无耻求星!) 在线观看(第一次加载需要等几秒):预览地址 说起来不容易,人在国外没有过年一说,但是毕竟也是中国年,虽然不放假,但是家里总会主内一顿丰盛的 ...

  2. MySQL 关于索引的操作

    -- 索引分类? 1.普通索引 2.唯一索引 3.全文索引 4.组合索引 普通索引:仅加速查询,最基本的索引,没有任何限制 唯一索引:加速查询 + 列值唯一(可以有null) 全文索引:仅适用于MyI ...

  3. Python3之Django框架搭建详细步骤

    安装Django 自行下载的pip,可执行如下命令: pip install django 下载python3版本可以自带pip3 ,命令如下: pip3 install django 此命令会下载d ...

  4. 浮动float和清除clear

    一.浮动(float) float简介 取值:left,right,none,inherit,默认none(不浮动) 可应用与所有元素 没有继承性 不在正常流中,但会影响布局.因为一个元素浮动时,其他 ...

  5. 题解 【POJ1934】 Trip

    题目意思: 有两个字符串(长度\(<=80\)),按字典序输出它们的最长公共子串的所有情况. 解析 最长公共子序列的长度应该都没问题了吧...有问题请自行百度 但关键是要求出每种情况,还要按字典 ...

  6. react入门及简单配置

    直接script引入的不说了 1.npm i -g create-react-app 2.create-react-app my-app (其中my-app为项目名称) 3.进入项目cd my-app ...

  7. java mybaits 调用存储过程

    @Override public BaseResultMessage saveOrderConfirm(String billNo) { BaseResultMessage rm = Utils.re ...

  8. vue使用子路由时,默认的子路由视图不显示问题

    解决办法是,将父级的name去掉.(大多数情况下是按name来跳转的,不过这样一改,调到父级就得用路径跳转了): 下面上一下路由的配置: { path: "/index", com ...

  9. spark实现smote近邻采样

    一.smote相关理论 (1). SMOTE是一种对普通过采样(oversampling)的一个改良.普通的过采样会使得训练集中有很多重复的样本. SMOTE的全称是Synthetic Minorit ...

  10. ngx_http_auth_request_module 第三方认证

    shell > vim /usr/local/nginx-1.10.2/conf/vhost/auth.conf # 这是第三方认证服务器,认证逻辑使用的 PHP 代码 server { lis ...