linux下iptables讲解
iptables(netfilter网络过滤器)
iptables是linux上特有的防火墙机制,功能非常强大。CentOS默认是没有iptables规则。
iptables命令可用于配置Linux的包过滤规则,常用于实现防火墙、NAT。
常用选项:
iptables -nvL 查看规则(-n为数字显示输出的ip地址和端口 -v 为可视化显示 -L为列出所有的规则)
iptables -F 清除规则(flush清除);清除只是临时的,重启系统或者重启iptables服务后还会加载已经保存的规则。清除之后要保存规则。
/etc/init.d/iptables save 或 service iptables save 保存规则
防火墙规则保存在配置文件 /etc/sysconfig/iptables
iptables -Z 计数器清零(zero)
service iptables stop 暂停防火墙服务,并清除防火墙规则,但是重启后会读取/etc/sysconfig/iptables 从而启动防火墙。即使我们停止防火墙,但是一旦添加任何一条规则,它也会开启。
iptables -t 指定表名(table),默认不加-t 则是filter表;

直观图便于理解,4个表,5个链;


filter 这个表主要用于过滤包的,是系统预设的表,内建三个链INPUT、OUTPUT以及FORWARD。INPUT作用于进入本机的包;OUTPUT作用于本机送出的包;FORWARD作用于那些跟本机无关的包。
nat 主要用处是网络地址转换、端口映射,也有三个链。PREROUTING 链的作用是在包刚刚到达防火墙时改变它的目的地址,如果需要的话。OUTPUT链改变本地产生的包的目的地址。POSTROUTING链在包就要离开防火墙之前改变其源地址。
mangle 主要用于修改数据包的TOS(Type Of Service,服务类型)、TTL(Time ToLive,生存周期)值以及为数据包设置Mark标记,以实现Qos (Quality of Service,服务质量)调整以及策略路由等应用,由于需要相应的路由设备支持,因此应用并不广泛。 五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD
raw 对报文设置一个标志,决定数据包是否被状态跟踪机制处理 只有两个链:OUTPUT、PREROUTING
iptables规则相关:
查看规则 iptables -t nat -nvL
清除规则 iptables -t nat -F
增加/删除规则 iptables -A/-D INPUT -s 10.72.11.12 -p tcp --sport 1234 -d 10.72.137.159 --dport 80 -j DROP
插入规则 iptables -I INPUT -s 1.1.1.1 -j DROP/ACCEPT/REJECT
iptables -nvL --line-numbers 查看规则带有id号
iptables -D INPUT 1 根据规则的id号删除对应规则
iptables -P INPUT DROP 用来设定默认规则,默认是ACCEPT ,一旦设定为DROP后,只能使用 iptables -P ACCEPT 才能恢复成原始状态,而不能使用-F参数;
把ip为192.168.20.0网段所有数据包都丢掉
|
1
|
[root@yong ~]# iptables -I INPUT -s 192.168.20.0 -j DROP |
删除规则的话,要与添加规则的后缀一样才可以;
|
1
|
[root@yong ~]# iptables -D INPUT -s 192.168.20.0 -j DROP |
把1.1.1.1 访问本地tcp协议80端口的所有数据包都丢掉;
|
1
|
[root@yong ~]# iptables -I INPUT -s 1.1.1.1 -p tcp --dport 80 -j DROP |
把发送到10.0.1.14的22端口的所有数据包丢掉;
|
1
|
[root@yong ~]# iptables -I OUTPUT -p tcp --dport 22 -d 10.0.1.14 -j DROP |
使用这个命令查看规则带有id号显示;
|
1
2
3
4
5
|
[root@yong ~]# iptables -nvL --line-numberChain INPUT (policy ACCEPT 84 packets, 5944 bytes)num pkts bytes target prot opt in out source destination 1 0 0 DROP tcp -- * * 1.1.1.1 0.0.0.0/0 tcp dpt:80 2 0 0 DROP all -- * * 192.168.20.0 0.0.0.0/0 |
然后删除的时候使用iptables -D INPUT 1 删除上面的1规则,不用写很长的后缀。
禁止别人ping你的主机,你可以ping别人;只需要添加一条规则;icmp-type 8 可以实现;
[root@yong ~]# iptables -I INPUT -p icmp --icmp-type 8 -j DROP
示例,编一个脚本,针对filter表,所有的INPUT链DROP,其他两个链ACCEPT,然后针对192.168.20.0/24网段开通22端口可以连接主机;对所有网段开放80端口;对所有网段开通21端口;
|
1
2
3
4
5
6
7
8
9
10
|
[root@yong ~]# vim iptables.sh #! /bin/bash ipt="/sbin/iptables"$ipt -F$ipt -P INPUT DROP$ipt -P OUTPUT ACCEPT$ipt -P FORWARD ACCEPT$ipt -A INPUT -s 192.168.20.0/24 -p tcp --dport 22 -j ACCEPT$ipt -A INPUT -p tcp --dport 80 -j ACCEPT$ipt -A INPUT -p tcp --dport 21 -j ACCEPT |
|
1
|
[root@yong ~]# sh iptables.sh |
运行脚本即可,如果想开机运行防火墙规则的话,在/etc/rc.d/rc.local 添加一行“/bin/sh /root/iptables.sh”

nat表应用:
路由器就是使用iptables的nat原理实现.
假设您的机器上有两块网卡eth0和eth1,其中eth0的IP为192.168.4.11,eth1的IP为192.168.20.1 。eth0连接了internet 但eth1没有连接,现在有另一台机器(192.168.20.10)和eth1是互通的,那么如何设置也能够让连接eth1的这台机器能够连接internet?
|
1
2
3
4
|
[root@yong ~]# cat /proc/sys/net/ipv4/ip_forward0[root@yong ~]# echo "1" > /proc/sys/net/ipv4/ip_forward [root@yong ~]# iptables -t nat -A POSTROUTING -s 192.168.20.0/24 -o eth0 -j MASQUERADE |
/proc/sys/net/ipv4/ip_forward 为内核参数相关的文件,默认为0,1为打开路由转发功能。
第2条命令为iptables对nat表做了一个IP转发的操作,-o 后面跟设备名,表示出口的网卡。MASQUERADE表示伪装的意思;让192.168.20.0网段通过eth0伪装出去连接上网。
iptables规则备份与恢复:
service iptables save 这样会保存到/etc/sysconfig/iptables ,如果以后遇到备份防火墙规则的任务,就是拷贝一份这个文件的副本。
iptables-save > myipt.rule 可以把防火墙规则保存到指定文件中;
iptables-restore < myipt.rule 这样可以恢复指定的规则;
|
1
2
3
4
5
6
|
[root@yong ~]# iptables-save > myipt.rule[root@yong ~]# service iptables stopiptables: Setting chains to policy ACCEPT: nat filter [ OK ]iptables: Flushing firewall rules: [ OK ]iptables: Unloading modules: [ OK ][root@yong ~]# iptables-restore < myipt.rule |
linux下iptables讲解的更多相关文章
- Linux下iptables学习笔记
Linux下iptables学习笔记 在Centos7版本之后,防火墙应用已经由从前的iptables转变为firewall这款应用了.但是,当今绝大多数的Linux版本(特别是企业中)还是使用的6. ...
- linux下iptables配置模板
linux下iptables配置模板 # Flush all policy iptables -F iptables -X iptables -Z iptables -t nat -F iptable ...
- 详解Linux下iptables中的DNAT与SNAT设置(转)
详解Linux下iptables中的DNAT与SNAT设置 这篇文章主要介绍了Linux下iptables中的DNAT与SNAT设置,是Linux网络配置中的基础知识,需要的朋友可以参考下 原文连 ...
- linux下IPTABLES配置详解 (防火墙命令)
linux下IPTABLES配置详解 -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 24000 -j ACCEPT ...
- 基于Linux下Iptables限制BT下载的研究
基于Linux下Iptables限制BT下载的研究 摘要: 当前BT下载技术和软件飞速发展,给人们网上冲浪获取资源带来了极大的便利, 但同时BT占用大量的网络带宽等资源也给网络和网络管理员 ...
- Linux下iptables 禁止端口和开放端口
1.关闭所有的 INPUT FORWARD OUTPUT 只对某些端口开放.下面是命令实现: iptables -P INPUT DROP iptables -P FORWARD DROP iptab ...
- RedHat Linux下iptables防火墙设置
一般情况下iptables已经包含在Linux发行版中.运行 # iptables --version 来查看系统是否安装iptables 启动iptables:# service iptables ...
- linux下iptables防火墙设置
各位linux的爱好者或者工作跟linux相关的程序员,我们在工作中经常遇到应用服务器端口已经启动, 在网络正常的情况下,访问不到应用程序,这个跟防火墙设置有关 操作步骤 1.检查有没有启动防火墙 s ...
- Linux下iptables安全配置
Linux下配置IPTables,只开放特定端口,禁用其他网络. *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] ...
随机推荐
- 第五周总结 & 实验报告(三)
第五周总结 一.继承 1.类的继承格式 class 父类{} class 子类 extends 父类{} 2.扩展类的功能 class 父类{ 父类属性: .......... ..... ...
- hook工具
调试工具 WinDbg com/daoyuly/p/3570037 DebugDiag procexp64.exe APIMonitor OllyDBG API伴侣 FileMon v7.04 ( ...
- iOS堆栈内存区别
堆和栈的区别: · 1> 堆空间的内存是动态分配的,一般存放对象,并且需要手动释放内存. · 2> 栈空间的内存由系统自动分配,一般存放局部变量等,不需要手动管理内存. 接下来我将从以下几 ...
- 三十九、python面向对象一
A.python面向对象 1.面向对象基础:面向对象三个特性:封装,继承,多态C# java 只能用面向对象编程Ruby,python 函数+面向对象 函数式编程:def 函数def f1(a): r ...
- LeetCode 300——最长上升子序列
1. 题目 2. 解答 2.1. 动态规划 我们定义状态 state[i] 表示以 nums[i] 为结尾元素的最长上升子序列的长度,那么状态转移方程为: \[state[i] = max(state ...
- 杂项-PIN:百科
ylbtech-杂项-PIN:百科 个人身份识别码(英语:Personal identification number,缩写为 PIN),又译为用户个人识别号码,常被称为PIN码(PIN number ...
- day67—angularJS学习笔记控制器
转行学开发,代码100天——2018-05-22 angularJS通过控制器来控制数据流的应用. ng-controller. 控制器中包含属性和函数,其参数引用通过 $scope来执行. 如下文的 ...
- 浅谈防火墙对FTP的影响及故障排除
本文转载自:http://www.cnblogs.com/emanlee/archive/2013/01/07/2849680.html 向作者致敬! TP是常见的基于TCP的网络服务,它使用了两个 ...
- 分布式任务队列 Celery
目录 目录 前言 简介 Celery 的应用场景 架构组成 Celery 应用基础 前言 分布式任务队列 Celery,Python 开发者必备技能,结合之前的 RabbitMQ 系列,深入梳理一下 ...
- 如何复制CSDN上他人的博客文章到自己博客下
原作者:hello_world!(CSDN) 原文地址:https://jingyan.baidu.com/article/0964eca24e159c8285f53618.html</a> ...