• ptables简介

    iptables是基于内核的防火墙,功能非常强大,iptables内置了filter,nat和mangle三张表。

    filter负责过滤数据包,包括的规则链有,input,output和forward;

    nat则涉及到网络地址转换,包括的规则链有,prerouting,postrouting和output;

    mangle表则主要应用在修改数据包内容上,用来做流量整形的,默认的规则链有:INPUT,OUTPUT,NAT,POSTROUTING,PREROUTING;

    input匹配目的IP是本机的数据包,forward匹配流经本机的数据包,prerouting用来修改目的地址用来做DNAT,postrouting用来修改源地址用来做SNAT。

    iptables主要参数

    -A 向规则链中添加一条规则,默认被添加到末尾

    -T指定要操作的表,默认是filter

    -D从规则链中删除规则,可以指定序号或者匹配的规则来删除

    -R进行规则替换

    -I插入一条规则,默认被插入到首部,指定数字则会被插入到第N行

    -F清空所选的链,重启后恢复

    -N新建用户自定义的规则链

    -X删除用户自定义的规则链

    -p用来指定协议可以是tcp,udp,icmp等也可以是数字的协议号,

    -s指定源地址

    -d指定目的地址

    -i进入接口

    -o流出接口

    -j采取的动作,accept,drop,snat,dnat,masquerade

    --sport源端口

    --dport目的端口,端口必须和协议一起来配合使用

    注意:所有链名必须大写,表明必须小写,动作必须大写,匹配必须小写

    iptable配置实例

    iptable基本操作

    iptables -L  列出iptables规则
    iptables -F  清除iptables内置规则
    iptables -X  清除iptables自定义规则

    设定默认规则

    在iptables规则中没有匹配到规则则使用默认规则进行处理

    iptables -P INPUT DROP
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD DROP

    配置SSH规则

    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT  如果你把OUTPUT 设置成DROP,就需要加上这个规则,否则SSH还是不能登录,因为SSH服务职能进不能出。

    只允许192.168.0.3的机器进行SSH连接

    iptables -A INPUT -s 192.168.0.3 -p tcp --dport 22 -j ACCEPT

    如果要允许,或限制一段IP地址可用 192.168.0.0/24 表示192.168.0.1-255端的所有IP.

    允许loopback回环通信

    IPTABLES -A INPUT -i lo -p all -j ACCEPT 
    IPTABLES -A OUTPUT -o lo -p all -j ACCEPT

    目的地址转换,映射内部地址

    iptables -t nat -A PREROUTING -i ppp0 -p tcp --dprot 81 -j DNAT --to 192.168.0.2:80
    iptables -t nat -A PREROUTING -i ppp0 -p tcp --dprot 81 -j DNAT --to 192.168.0.1-192.168.0.10

    源地址转换,隐藏内部地址

    iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to 1.1.1.1
    iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to 1.1.1.1-1.1.1.10

    地址伪装,动态ip的NAT

    iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE

    masquerade和snat的主要区别在于,snat是把源地址转换为固定的IP地址或者是地址池,而masquerade在adsl等方式拨号上网时候非常有用,因为是拨号上网所以网卡的外网IP经常变化,这样在进行地址转换的时候就要在每次都要修改转换策略里面的ip,使用masquerade就很好的解决了这个问题,他会自己去探测外网卡获得的ip地址然后自动进行地址转换,这样就算外网获得的ip经常变化也不用人工干预了。

    开启转发功能

    iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT 只允许已建连接及相关链接对内转发
    ptables -A FORWARD -i eth1 -o eh0 -j ACCEPT 允许对外转发

    过滤某个MAC

    iptables -A FORWARD -m mac --mac -source MAC地址 -j DROP

    报文经过路由后,数据包中原有的MAC信息会被替换,所以在路由后的iptables中使用mac匹配没有意义。

    数据包整流

    iptables -A FORWARD -d 192.168.0.1 -m limit --limit 50/s -j ACCEPT
    iptables -A FORWARD -d 192.168.0.1 -j DROP

    多端口匹配

    用以一次匹配多个端口

    iptables -A INPUT -p tcp -m muliport --dport s 21,22,25,80,110 -j ACCEPT

    丢弃非法连接

    iptables -A INPUT   -m state --state INVALID -j DROP
    iptables -A OUTPUT -m state --state INVALID -j DROP
    iptables-A FORWARD -m state --state INVALID -j DROP

    存储于恢复iptables规则

    iptables-save > somefile
    iptables-restore < somefile

Linux下iptables介绍的更多相关文章

  1. 详解Linux下iptables中的DNAT与SNAT设置(转)

    详解Linux下iptables中的DNAT与SNAT设置 这篇文章主要介绍了Linux下iptables中的DNAT与SNAT设置,是Linux网络配置中的基础知识,需要的朋友可以参考下   原文连 ...

  2. 基于Linux下Iptables限制BT下载的研究

    基于Linux下Iptables限制BT下载的研究   摘要:     当前BT下载技术和软件飞速发展,给人们网上冲浪获取资源带来了极大的便利, 但同时BT占用大量的网络带宽等资源也给网络和网络管理员 ...

  3. linux下iptables配置模板

    linux下iptables配置模板 # Flush all policy iptables -F iptables -X iptables -Z iptables -t nat -F iptable ...

  4. .Neter玩转Linux系列之四:Linux下shell介绍以及TCP、IP基础

    基础篇 .Neter玩转Linux系列之一:初识Linux .Neter玩转Linux系列之二:Linux下的文件目录及文件目录的权限 .Neter玩转Linux系列之三:Linux下的分区讲解 .N ...

  5. linux下IPTABLES配置详解 (防火墙命令)

    linux下IPTABLES配置详解 -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 24000 -j ACCEPT ...

  6. Linux下iptables学习笔记

    Linux下iptables学习笔记 在Centos7版本之后,防火墙应用已经由从前的iptables转变为firewall这款应用了.但是,当今绝大多数的Linux版本(特别是企业中)还是使用的6. ...

  7. Linux防火墙iptables介绍

    介绍网络防火墙是通过一个或多个允许或拒绝的规则来过滤网络流量的网络设备或软件.网络防火墙还可以执行更复杂的任务,例如网络地址转换,带宽调整,提供加密隧道以及更多与网络流量相关的任务.而我们的任务就是需 ...

  8. Linux下tmpfs介绍及使用

    tmpfs介绍 tmpfs是一种虚拟内存文件系统,而不是块设备.是基于内存的文件系统,创建时不需要使用mkfs等初始化它最大的特点就是它的存储空间在VM(virtual memory),VM是由lin ...

  9. RedHat Linux下iptables防火墙设置

    一般情况下iptables已经包含在Linux发行版中.运行 # iptables --version 来查看系统是否安装iptables 启动iptables:# service iptables ...

随机推荐

  1. LeetCode——Counting Bits

    Question Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calcu ...

  2. 通过visual studio修改dll或exe的版本信息

    可以编辑修改了 来自为知笔记(Wiz)

  3. 【Network Architecture】Densely Connected Convolutional Networks 论文解析

    目录 0. Paper link 1. Overview 2. DenseNet Architecture 2.1 Analogy to ResNet 2.2 Composite function 2 ...

  4. eclipse隐藏关闭的工程

    打开上面这个视图

  5. GridControl 史上最全的资料(一)

    GridControl详解(一)原汁原味的表格展示 Dev控件中的表格控件GridControl控件非常强大.不过,一些细枝末节的地方有时候用起来不好找挺讨厌的.使用过程中,多半借助Demo和英文帮助 ...

  6. HMM代码实践

    本文主要转载于:http://www.52nlp.cn/hmm-learn-best-practices-eight-summary 这个文章是边看边实践加上自己的一些想法生成的初稿..... 状态转 ...

  7. wget/curl查看请求响应头信息

    wget / curl 是两个比较方便的测试http功能的命令行工具,大多数情况下,测试http功能主要是查看请求响应 头信息 ,而给这两个工具加上适当的命令行参数即可轻易做到,其实查man手册就能找 ...

  8. HDU - 5988The 2016 ACM-ICPC Asia Qingdao Regional ContestG - Coding Contest 最小费用流

    很巧妙的建边方式 题意:有n个区域,每个区域有一些人数si和食物bi,区域之间有m条定向路径,每条路径有人数通过上限ci.路径之间铺了电线,每当有人通过路径时有pi的概率会触碰到电线,但是第一个通过的 ...

  9. guava的事件发布订阅功能

    事件的重要性,不用说很重要,在很多时候我们做完一个操作的时候,需要告知另外一个对象让他执行相应操作,比如当用户注册成功的时候,需要抛出一个注册成功的事件,那么有监听器捕获到这个事件,完成后续用户信息初 ...

  10. 完整的保存onetab的书签信息

    之前在百度上找怎么完整的保存onetab的书签信息,没找到答案,于是乎上了google,在stackoverflow上找到了一个相关的答案 How to restore OneTab list of ...