Linux下iptables介绍

  • 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

时间: 2024-10-29 04:37:54

Linux下iptables介绍的相关文章

Linux下IPtables命令详解

Linux下IPtables命令图解 Linux下IPtables命令剖析 1.命令:-A 顺序添加,添加一条新规则-I 插入,插入一条新规则 -I 后面加一数字表示插入到哪行-R 修改, 删除一条新规则 -D 后面加一数字表示删除哪行-D 删除,删除一条新规则 -D 后面加一数字表示删除哪行-N 新建一个链-X 删除一个自定义链,删除之前要保证次链是空的,而且没有被引用-L 查看@1.iptables -L -n 以数字的方式显示@2. iptables -L -v显示详细信息@3. ipta

LInux下iptables配置

linux下IPTABLES配置详解 如果你的IPTABLES基础知识还不了解,建议先去看看. 开始配置 我们来配置一个filter表的防火墙. (1)查看本机关于IPTABLES的设置情况 [[email protected] ~]# iptables -L -nChain INPUT (policy ACCEPT)target       prot opt source                 destination Chain FORWARD (policy ACCEPT)targ

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

linux下IPTABLES配置详解 -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 24000 -j ACCEPT-A RH-Firewall-1-INPUT -s 121.10.120.24 -p tcp -m tcp --dport 18612 -j ACCEPT 如果你的IPTABLES基础知识还不了解,建议先去看看. 开始配置 我们来配置一个filter表的防火墙. (1)查看本机关于IPTABLES的

Linux下iptables详解

一.介绍 防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,类似于网络设备中的ACL.它分为硬件的或者软件的防火墙两种.无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘或网络出口.而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略.规则,以达到让它对出入网络的IP.数据进行检测. 目前市面上比较常见的有3.4层的防火墙,叫网络层的防火墙,还有7层的防火墙,其实是代理层的网关. 对于TCP/IP的七层模型来讲,我们知道第三层是网络层,三层的防火墙会在这层对源地址和

Linux下iptables 禁止端口和开放端口

iptables 禁止端口和开放端口 1.首先介绍一下指令和相关配置文件 启动指令:service iptables start 重启指令:service iptables restart 关闭指令:service iptables stop 然后是相关配置:/etc/sysconfig/iptables 如何操作该配置呢? vim /etc/sysconfig/iptables 然后进去修改即可,修改完了怎么办?这里很多人会想到/etc/rc.d/init.d/iptables save指令,

Linux下iptables防火墙简单配置

Linux下防火墙简单配置 作为一个网站服务器,只需要开放80端口和22端口即可.80用于web访问,22用于远程登录管理,可以把22端口改成其他的端口,这样更安全.一般来说 在创建访问规则时 都会将原有的规则清零 这是一个比较好的习惯,因为某些规则的存在会影响你建的规则. 基本语法:iptables [-t filter] [-AI INPUT,OUTPUT,FORWARD] [-io interface]         [-p tcp,udp.icmp,all] [-s ip/nerwor

RedHat Linux下iptables防火墙设置

一般情况下iptables已经包含在Linux发行版中.运行 # iptables --version 来查看系统是否安装iptables 启动iptables: # service iptables start 查看iptables规则集 # iptables --list 下面是没有定义规划时iptables的样子: Chain INPUT (policy ACCEPT) target    prot opt source              destination Chain FOR

Linux下tmpfs介绍及使用

tmpfs介绍 tmpfs是一种虚拟内存文件系统,而不是块设备.是基于内存的文件系统,创建时不需要使用mkfs等初始化它最大的特点就是它的存储空间在VM(virtual memory),VM是由linux内核里面的vm子系统管理的.linux下面VM的大小由RM(Real Memory)和swap组成,RM的大小就是物理内存的大小,而Swap的大小是由自己决定的.Swap是通过硬盘虚拟出来的内存空间,因此它的读写速度相对RM(Real Memory)要慢许多,当一个进程申请一定数量的内存时,如内

Linux下Shell介绍

? 一.概述 每个人在成功登陆Linux后,系统会出现不同的提示符号,例如$,~,#等,然后你就可以开始输入需要的命令.若命令正确,系统就会依据命令的要求来执行,直到注销系统为止,在登陆到注销期间,输入的每个命令都会解译及执行,而负责的机制就是shell ? 二.Linux下Shell的执行过程 Shell可以理解为解析Linux命令的功能块,相当于Windows下的bat批处理文件,例如:在Windows桌面下新建del.bat文件,打开并编辑命令del E:\test.txt,在E盘目录下新