iptables详细语法及配置:

SNAT:源地址转换
DNAT:目标地址转换
PNAT:端口地址转换

----------------------------------
iptables规则链

路由以后到本机:INPUT
本机出口:OUTPUT
路由到本机以后转发:FORWARD
路由前:PREROUTING
路由后:POSTROUTING

---------------------------------
防火墙的功能
raw
mangle:拆包修改
nat:地址转换
filter:过滤

---------------------------------

filter

处理动作
ACCEPT:放行
DROP:拒绝(直接丢弃包)
REJECT:拒绝(向对方回应拒绝)

---------------------------------

iptables 基本语法

iptables [-t TABLE](指定表名 raw|mangle|nat| filter<默认> ) COMMAND CHAIN(链) [CRETIRIA](匹配条件) -j ACTION

COMMAND:对链,或者链链中规则进行管理操作
链中规则:
-A 新加一条规则
-I [*] 插入一条规则
-R [*] 替换一条规则 OR , -R CRETERIA
-D [*] 删除一条规则 OR , -D CRETERIA

链:
-N 新建一个自定义链
-X 删除一个自定义空链
-E 重命名一条自定义链
-F 清空指定链,如果不指定链,则清空表中所有链
-P 设定默认策略
-Z 置零(每条规则,包括默认策略都有两条计数器,一个是被本规则匹配的所有数据包的个数,另一个是被本条数据包匹配的大小之和)

-L 查看
-v 查看详细
-vv 查看更详细
-vvv 查看更加详细
-- line-numbers 查看行号
-x 计数器的精确值
-n 不要对地址和端口进行名称反解(显示数字地址)
------------------------------------

iptabels服务脚本: /etc/rc.d/init.d/iptables
脚本配置文件:/etc/sysconfig/iptables-config
service iptables [status|start|stop|restart|save<保存>]

iptables 规则的目录 /etc/sysconfig/iptables

匹配条件:
通用匹配
-s 源地址
-d 目标地址
| IP
| NETWORK/MASK
| ! (除指定IP或者网段以外)
-p [icmp|tcp|udp]
-i IN_INTERFACE 数据包流入接口
-o OUT_INTERFACE 数据包流出接口

扩展匹配
隐式扩展
-p tcp [icmp|tcp|udp]
|--sport 端口(必须为单个或者相连的端口)
|--dport 目标端口(必须为单个或者相连的端口)
|--tcp-flags [SYN,FIN,ACK,PSH,RST,URG](需要检查的位) [SYN,FIN,ACK,PSH,RST,URG](须为1的位)
|--syn 相当于 --tcp-flags SYN,ACK,RTS,FIN SYN

-p udp
|--sport
|--dport
-p icmp
|--icmp-type
| 0:echo-reply 回应报文
| 8:echo-request 请求报文

显式扩展
nitfilter扩展模块引入的扩展,用于指定新的匹配条件,通常需要额外的专用选项来定义
-m state:用于使用连接状态检测
--state
NEW(新的链接),ESTABLISHED(建立的链接)
RELATED(有关系的),INVALID(非法的)

-------------------------------------

CentOS 7 保存方法
直接修改/etc/sysconfig/iptables保存
/usr/libexec/iptables/iptables.init save

linux菜鸟日记(5)的更多相关文章

  1. linux菜鸟日记(4)

    使用一个简单的for循环和if判断语句实现某个网段内所有ping所有客户机的shell程序: ..} do >&; then echo " ${i}通" else e ...

  2. linux菜鸟日记(3)

    Centos7利用shell编辑一串 一键完成一些基础配置的代码: 在这串shell代码中我实现了  IP地址的配置.光盘的挂载.本地yum源的搭建.一些服务的安装例如 httpd. php. ntp ...

  3. linux菜鸟日记(2)

    ntp服务的安装与配置: 安装ntp服务的过程比较简单首先你需要挂载光盘然后安装ntp服务如果配置了本地yum源可以直接使用光盘中的资源进行本地yum的安装,如果没有就使用rpm包进行安装. 由于我已 ...

  4. linux菜鸟日记

    本地yum源的安装: 要安装本地yum源,首先需要熟悉本地yum文件的配置和光盘的挂载 第一步挂载光盘: 首先需要指定一个光盘挂载目录 通常情况下我习惯使用默认挂载目录,所以一般我使用的光盘挂载命令是 ...

  5. Linux学习日记-使用EF6 Code First(四)

    一.在linux上使用EF 开发环境 VS2013+mono 3.10.0 +EF 6.1.0 先检测一下EF是不是6的 如果不是  请参阅 Linux学习日记-EF6的安装升级(三) 由于我的数据库 ...

  6. Linux管理日记(二)

    14  启动内网端口转发 ### 2. 查看IP以及网卡信息 # 可以发现, eth0 的地址 inet addr:10.144.7.195, 此为内网网卡 # 公网网卡, eth1 的地址 inet ...

  7. Linux菜鸟成长日记 ( Linux 下的 ftp 文件传输协议 )

    https://blog.csdn.net/buster_zr/article/details/80244542 FTP FTP 是 File Transfer Protocol (文件传输协议)的英 ...

  8. Linux 学习日记 1

    这是我第一次系统地学习Linux,希望通过这个学习日记收获一些东西把-- @_@ Grub - 启动管理器   在启动时让用户选择要启动的系统.(但是windows比较霸道--重装windows后会将 ...

  9. Linux学习日记——源码编译Apache

    [本文为笔者在学习Linux 下的软件安装时,尝试使用源码安装Apache 的过程,事后进行一个小小的总结,发现错误望指正.] 一.典型的源码编译安装软件的过程包括以下3步: 1) 运行 config ...

随机推荐

  1. 预处理命令[#define]说明

    宏定义 宏定义是对一些常见的变量.字符串等进行定义,被定义的数据在编译会进行自动替换.有时一些变量或字符串被多次使用,当需要修改时,就需要对源文件中它们出现的地方一一修改,效率比较低,而通过宏定义,只 ...

  2. gitlab使用个人版v16.11

    title: gitlab使用个人版v16.11 date: 2016-11-13 20:53:00 tags: [gitlab] --- 1.安装gitbash 附上地址链接:git 2.配置git ...

  3. mysql 性能优化方向

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  4. 前后端分离中,Gulp实现头尾等公共页面的复用

    前言 通常我们所做的一些页面,我们可以从设计图里面看出有一些地方是相同的.例如:头部,底部,侧边栏等等.如果前后端分离时,制作静态页面的同学,对于这些重复的部分只能够通过复制粘贴到新的页面来,如果页面 ...

  5. 9个基于Java的搜索引擎框架

    在这个信息相当繁杂的互联网时代,我们已经学会了如何利用搜索引擎这个强大的利器来找寻目标信息,比如你会在Google上搜索情人节如何讨女朋友欢心,你也会在百度上寻找正规的整容医疗机构(尽管有很大一部分广 ...

  6. 从Eclipse 到Unity(Android)

    Eclipse 与Unity之间的交互有以下两种方式: 1.在Eclispe中编写好针对Andorid平台的功能,然后将其制作成库(Library)文件(jar)应用到Unity中; 其中Androi ...

  7. php阳历转农历的类 谷歌到的

    <?phpclass Lunar {    var $MIN_YEAR = 1891;    var $MAX_YEAR = 2100;    var $lunarInfo = array(   ...

  8. [转]jquery mobile中redirect重定向问题

    本文转自:http://www.cnblogs.com/freeliver54/p/3529813.html 在jquerymobile提交后如果要进行网页重定向时,一定要在form或<a> ...

  9. SqlServer 2008登录时报错

    登录SQLServer2008R2时提示如下错误: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server ...

  10. springmvc session和model解析

    关于springMVC中的session,有2种使用方法,第一种是直接传递httpsession,第二种是使用@SessionAttributes("userId") 注解 这里附 ...