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 ...
随机推荐
- ionic angularJS input 相关指令 以及定时器 的使用
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" conte ...
- 【技术贴】大型发布会现场的WiFi网络应该如何搭建?
WiFi网络的部署要远远比一般人想象的复杂,不是说放上几十个AP带宽就自动增加几十倍,恰恰相反,简单放几十个AP带宽会由于AP之间的竞争而 迅速使带宽下降为几乎不可用.实际上这个问题完全可以写一本书了 ...
- [webpack] webpack-dev-server介绍及配置
webpack-dev-server是webpack官方提供的一个小型Express服务器.使用它可以为webpack打包生成的资源文件提供web服务.webpack-dev-server官方文档 w ...
- ED2k Resource
http://www.lwkk.com/ http://www.ed2000.com/
- poj1006Biorhythms(同余定理)
转自:http://blog.csdn.net/dongfengkuayue/article/details/6461298 本文转自head for better博客,版权归其所有,代码系本人自己编 ...
- My97DatePicker
http://www.my97.net/index.asp <input id="txtDate" class="Wdate" type="te ...
- Dapper.Net 应用
Dapper应用 1.Dapper是什么 Dapper是一款轻量级ORM工具.如果你在小的项目中,使用Entity Framework.NHibernate 来处理大数据访问及关系映射,未免有点杀鸡用 ...
- [NHibernate]NHibernate.Tool.hbm2net
系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactory配置 [NHibernate]持久化类(Persistent Classes) [NHibernate ...
- 今天又学了一招,牛逼!!!解决"-bash:No such file or directory"问题
今天在64服务器上:发现好像bash 坏了,用户名前边 用-bash 显示,,前几天就发现这个问题,,,但是当时忙没有解决,,,,,今天来看看到底是怎么回事! File Exists but... ...
- VS2013中, 无法嵌入互操作类型“……”,请改用适用的接口的解决方法
使用VS2013,在引用COM组件的时候,出现了无法嵌入互操作类型“……”,请改用适用的接口的错误提示. 查阅资料,找到解决方案,记录如下: 选中项目中引入的dll,鼠标右键,选择属性,把“嵌入互操作 ...