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 ...
随机推荐
- python基础-函数式编程
python基础-函数式编程 高阶函数:map , reduce ,filter,sorted 匿名函数: lambda 1.1函数式编程 面向过程编程:我们通过把大段代码拆成函数,通过一层一层 ...
- [MAVEN]二、常用命令
mvn eclipse:eclipse :生成 Eclipse 项目文件,生成后可以导入到eclipse中使用 mvn install :在本地 Repository 中安装 jar ,若是Web项目 ...
- perl 模块安装
You can check if you have them installed in your machine with: > perl -e 1 -M<module> It wi ...
- mui,css3 querySelector,appendChild,style.display,insertBefore
<script> mui.init({ swipeBack:true //启用右滑关闭功能 }); window.addEventListener('toggle', function(e ...
- web前端基础知识-(一)html基本操作
1. HTML概述 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样 ...
- 安装MariaDB和简单配置
1.安装MariaDB 安装命令 yum -y install mariadb mariadb-server 安装完成MariaDB,首先启动MariaDB systemctl start maria ...
- [Unity] Shader - CG语言 和 HLSL语言
CG 跟 HLSL几乎是一摸一样的. (HLSL官方参考,包含语法格式,函数库,关键字,在这个地方: http://msdn.microsoft.com/en-us/library/bb509638( ...
- [Head First设计模式]身边的设计模式——适配器模式
系列文章 [Head First设计模式]山西面馆中的设计模式——装饰者模式 [Head First设计模式]山西面馆中的设计模式——观察者模式 [Head First设计模式]山西面馆中的设计模式— ...
- [NHibernate]延迟加载
目录 写在前面 文档与系列文章 延迟加载 一个例子 总结 写在前面 上篇文章介绍了多对多关系的关联查询的sql,HQL,Criteria查询的三种方式.本篇文章将介绍nhibernate中的延迟加载方 ...
- Coursera-Getting and Cleaning Data-week1-课程笔记
博客总目录,记录学习R与数据分析的一切:http://www.cnblogs.com/weibaar/p/4507801.html -- Sunday, January 11, 2015 课程概述 G ...