Linux-iptables初识
Linux-iptables初识
了解
- iptables是与Linux内核集成的IP信息包过滤系统。如果Linux系统连接到因特网或LAN、服务器或连接LAN和因特网的代理服务器,则该系统有利于在Linux系统上更好的控制IP信息包过滤和防火墙配置。
- netfilter/iptables IP信息包过滤系统是一种强大的工具,可用于添加、编辑和去除规则,这些规则是在做信息包过滤决定时,防火墙所遵守和组成的规则。这些规则存储在专用的信息包过滤表中,而这些表集成在Linux内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。虽然netfilter/iptables IP信息包过滤系统被称为单个实体,但它实际上由两个组建netfilter和iptables组成。
* netfilter组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。
* ipitables组件是一种工具,也是用户空间(userspace),它使插入、修改和除去信息包过滤表中规则变得容易。 - iptables包含4个表,5个链。其中表是按照对数据包的操作区分的,链是按照不同的Hook点来区分的,表和链实际上是netfilter的两个维度。
* 四个表:filter、nat、mangle、raw,默认表是filter(没有指定表的时候就是filter表)
filter:一般的过滤功能
nat:端口映射、地址映射等
mangle:用于对特定数据包的修改
raw:优先级最高,设置raw时一般是为了不再让iptables做数据包的链接跟踪处理,提高性能
优先级:raw>mangle>nat>filter
* 五个链:PREROUTING、
PREROUTING:数据包进入路由表之前
INPUT:通过路由表后,目的地为本机
FORWARD:通过路由表后,目的地不是本机
OUTPUT:由本机产生,向外转发
POSTROUTING:发送到网卡接口之前
基本命令
1.查看iptables的四张表
cat /proc/net/ip_tables_names
2.查看iptables表中的规则
iptables -t nat/raw/mangle/filter –L
3.查看iptables中共有哪些target
cat /proc/net/ip_tables_targets
4.清空链中的rule。清空所选链。这等于把所有规则一个个的删除
iptables –t raw/mangle/nat/filter –F
5.删除每个非内建的链
iptables –t /raw/mangle/nat/filter –X
6.查看链中的rule
iptables –t /raw/mangle/nat/filter –L
7.查看iptables的帮助文件
iptables --help
表与链
1.Filter
iptables -L | more
当不指定表明的时候,默认指filter表。more与|连用:可用“空格”翻页,上下箭头翻行
Filter表中的INPUT、FORWARD、OUTPUT三个链
2.NAT
当内网要公布web服务器时,可以使用prerouting链做dnat映射
当内网用户想上网时,可以用postrouting链做snat映射
该NAT表中链有PREROUTING、POSTROUTING、OUTPUT
3.Mangle
主要作用是修改封包的内容。修改IP包头的TTL值,这样也可以保护我们的主机,比如我们将Linux主机送出的封包内的TTL值该为128,让Cracker误以为是Windows系统。另外,TTL(生存周期,每经过一个路由器将减少1.mangle可以修改此值设定TTL要被增加的值,比如–ttl-inc 。假设一个进来的包的TTL是53,那么当它离开我们这台机子时,TTL应是多少呢?是56,原因同–ttl-dec。使用这个选项可以使我们的 防火墙更加隐蔽,而不被trace-routes发现,方法就是设置–ttl-inc 1。原因应该很简单了,包每经过一个设备,TTL就要自动减1,但在我们的防火墙里这个1又被补上了,也就是说,TTL的值没变,那么trace- routes就会认为我们的防火墙是不存在的)。修改IP包头的DSCP值,在网络应用中,有时候需要对某些特定通信协议会有特殊的需求,例如在网络电话的应用环境里,我们会希望VOIP的封包都要能在不延迟的情况下传输出去。因此就有了QOS(Quality of Service)机制
Mangle表中有链PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING
4.Raw
Raw表只使用在PREROUTING、OUTPUT链上,因为优先级最高,从而可以对收到的数据包在连接跟踪前处理。一旦用户使用了RAW表,在某个链上,RAW表处理完后,将跳过NAT表和ip_conntrack处理,即不再做地址转换和数据包的链接跟踪处理了
RAW表可以应用在那些不需要做nat的情况下,以提高性能。如大量访问web服务器,可以让80端口不再让iptables做数据包的链接跟踪处理,以提高用户的访问速度
Filter表基本实验
1.清空指定表中的所有规则
iptables -F #清空filter表中的所有链(默认不指定则表明filter表,可以使用-t参数指定表)
2.不允许本机telnet到其他机子
iptables -A OUTPUT -p tcp --dport 23 -j DROP
3.不允许别人ping通自己
iptables -A INPUT -p icmp --icmp-type 8 -j DROP
4.指定telnet禁止的具体的源与目的
iptables -A INPUT -p tcp -s 192.168.100.20/24 -d 192.168.100.55/24 -dport 23 -j DROP
往input输入链中添加一条过滤防火墙规则:凡是来源主机是192.168.100.20,telnet到目的主机192.168.100.55的数据包就丢弃
5.保存和恢复规则集
$iptables-save > /etc/fwdump #保存规则集到指定文件
$iptables-restore < /etc/fwdump #恢复规则集
$cat /etc/rc.local
/sbin/iptables-restore < /etc/fwdump
Linux-iptables初识的更多相关文章
- linux iptables常用命令之配置生产环境iptables及优化
在了解iptables的详细原理之前,我们先来看下如何使用iptables,以终为始,有可能会让你对iptables了解更深 所以接下来我们以配置一个生产环境下的iptables为例来讲讲它的常用命令 ...
- Linux iptables原理--数据包流向
Iptable与Netfilter 在上一篇文章 linux iptables常用命令--配置一个生产环境的iptables 我们知道iptables有好几个表,如raw,mangle,nat,fil ...
- Linux iptables
一.简介 http://liaoph.com/iptables/ 二.操作 1)查看规则 iptables -t filter -L -n iptables -t nat -L -n iptables ...
- Linux iptables 应用控制访问SSH服务
Title:Linux iptables 应用控制访问SSH服务 --2012-02-23 17:51 今天用到了以前从来没有用到过的,iptables控制访问,只允许外部访问SSH服务(22号端口 ...
- Linux iptables 配置规则
Linux iptables 防火墙配置规则 前言:把网上我感觉不错iptables的访问规则都统一在这里,以后做参考. modprobe ipt_MASQUERADE modprobe ip_con ...
- Linux iptables用法与NAT
1.相关概念 2.iptables相关用法 3.NAT(DNAT与SNAT) 相关概念 防火墙除了软件及硬件的分类,也可对数据封包的取得方式来分类,可分为代理服务器(Proxy)及封包过滤机制(IP ...
- [svc]linux iptables实战
参考: http://blog.51yip.com/linux/1404.html 链和表 参考: https://aliang.org/Linux/iptables.html 配置 作为服务器 用途 ...
- 常用的 Linux iptables 规则
一些常用的 Linux iptables 规则,请根据自己的具体需要再修改. 转载自:http://mp.weixin.qq.com/s/uAPzh9_D4Qk6a3zBh7Jq5A # 1. 删除所 ...
- 25 个常用的 Linux iptables 规则【转】
转自 25 个常用的 Linux iptables 规则 - 文章 - 伯乐在线http://blog.jobbole.com/108468/ # 1. 删除所有现有规则 iptables -F # ...
- Linux iptables:场景实战一
<Linux iptables:规则原理和基础>和<Linux iptables:规则组成>介绍了iptables的基础及iptables规则的组成,本篇通过实际操作进行ipt ...
随机推荐
- Android开发自学笔记(Android Studio)—4.3ImageView及其子类
一.引言 ImageView继承自View组件,主要功能用来显示图片,实际上他能显示的不仅是图片,Drawable对象都可以用ImageView来显示. ImageView派生了ImageButton ...
- SQLite剖析之异步IO模式、共享缓存模式和解锁通知
1.异步I/O模式 通常,当SQLite写一个数据库文件时,会等待,直到写操作完成,然后控制返回到调用程序.相比于CPU操作,写文件系统是非常耗时的,这是一个性能瓶颈.异步I/O后端是SQLit ...
- word中方框中打钩
之前一致认为,方框打钩不可能的.今天要交评测,结果百度一下,发现可以打钩的!不会就百度(Google)真的不会错的,你所 疑虑的,可能前人已经找到解决方法!!! 解决方法: alt+9745
- 使用属性动画 — Property Animation
属性动画,就是通过控制对象中的属性值产生的动画.属性动画是目前最高级的2D动画系统. 在API Level 11中添加.Property Animation号称能控制一切对象的动画,包括可见的和不可见 ...
- sys
sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys.maxi ...
- 解决:sudo: 无法解析主机:dinphy-500-310cn: 连接超时
出现这种问题是hosts文件没有配置好所导致的,linux无法解析到您的主机地址,解决方案如下: sudo vim /etc/hosts 其中vim是你的文本编辑器的命令,你如果电脑中没有vim,用g ...
- gulp watch出现Error: watch null EPERM的问题解释
出现这样的问题,一般是第一次运行导致的,而且任务上有删除文件的操作. 我观察发现,只要把输出目录的文件删除,然后重新运行watch就一些ok,后者再运行一次gulp watch就一切正常.
- gulp-rev-collector自定义修改rev-manifest.json后替换不成功的问题分析
由于项目需要,我要把common.js替换成build.min.js,接着后面才用到build.min.js=>build-te234ds.min.js这样的形式替换,但是我发现怎么替换都不能把 ...
- Angular.js实现折叠按钮的经典指令.
var expanderModule=angular.module('expanderModule',[]) expanderModule.directive('expander',function( ...
- CLion 2016.1.1 下载 附注册激活码 破解版方法
http://www.520xiazai.com/soft/CLion-2016.1.1.html CLion 2016.1.1 下载 附注册激活码 破解版方法 注册破解方法:在要求输入注册的界面选择 ...