xml地图|网站地图|网站标签 [设为首页] [加入收藏]
iptables实用教程,Shell中的特殊变量
分类:操作系统

 

概述

iptables是linux自带的防火墙软件,用于配置IPv4数据包过滤或NAT(IPv6用ip6tables)。

在linux上,防火墙其实是系统内核的一部分,基于Netfilter构架,基本原理就是在内核网络层数据包流经的不同位置放置一些钩子(hook),利用这些嵌入网络层的hook来对数据抓取、控制或修改,iptables其实只是默认的netfilter控制管理工具,所以使用ps或者top看不到有一个“防火墙”的进程存在,防火墙是不能被卸载也不能关闭的,大家熟知的"service iptables stop"或者“/etc/init.d/iptables stop”命令只不过是清空所有策略和表,并把默认策略改为ACCEPT(允许)而已。

iptables有以下几个重点概念::

**table(表):**iptables内置4个table,不同的table代表不同的功能,每个table可以包含许多chain,不同类型的table对所能包含的chain和策略中的target的使用做了限定,一些target不能在一些table中使用。用户不能自定义table;

chain(链):chain可用包括一系列的策略,通过配置不同的chain可以对不同作用的策略进行分类,iptables内置5个chain对应netfilter的5个hook,用户也可以自定义chain;

command(命令):command是对表或链的操作动作,比如添加、删除、修改等等;

rule-specification(策略):包括下面的匹配规则和目标;

match(匹配规则):定义本条策略适用于那些数据包,匹配规则可以包括协议、源/目的地址、端口等等;

target(目标):对匹配上规则的数据包采取的操作,target可以是一个动作或者自定义chain,常见的动作有丢弃(DROP)、允许(ACCEPT)、NAT等等,当target是自定义chain时,数据包进入自定义chain继续匹配;

policy(默认策略):内置chain的默认动作,每个chain只能有一个policy,如果数据包匹配某条chain匹配完最后一条策略依然没有匹配上,那么就采用policy的默认动作。policy不匹配规则,而且target只能是丢弃(DROP)或允许(ACCEPT),自定义chain不能定义policy。

如何学习linux,公司有几台服务器,是aix系统,工作过程中不可能在服务器上进行测试。现在想在本机安装虚拟机,一方面便于工作,另一方面便于学习。刚刚申请博客园,希望在此想各位大牛学习!

$0 当前脚本的文件名
$n n为一个从1开始的数字,$1代表第一个参数,$2代表第二个参数,${10}代表第十个参数
$* 全部位置参数(所有参数作为一个字符串)
$@ 全部位置参数(每个参数作为一个独立的字符串)
$# 传入脚本的参数个数
$_ 上一个命令的最后一个参数
$? 上一个命令的返回值。如果上一个命令执行成功,返回0,否则返回非0值
$$ 当前进程的pid
$! 后台运行的最后一个进程的pid
$- 显示shell当前使用的选项

iptables的4个表分别是:

filter(过滤):数据包过滤/拦截,可以包含INPUT、FORWARD、OUTPUT这3个内置chain。

nat(地址转换):IP地址或端口号转换,可以包含PREROUTING、OUTPUT、POSTROUTING 3个内置chain,nat table在会话建立时会记录转换的对应关系,同一会话的回包和后续报文会自动地址转换,这是因为nat使用了ip_conntrack模块。

mangle(包管理):用来修改IP报文,可以包含PREROUTING、OUTPUT、INPUT、FORWARD、POSTROUTING 5个内置chain。

raw:此表的优先级高于ip_conntrack模块和其它的table,主要用于将有会话状态的连接(比如tcp)的数据包排除在会话外。可以包含POSTROUTING、OUTPUT两个内置chain。

看到这里肯定会有这样的疑问,为什么table只能包含一些而不是全部的chain呢?我想这个构架是按需设计而不是按功能设计的,尽管table不是包含所有的chain,但是每种功能的table都包含了实现这种功能所需的chain,即使包含更多的chain也是累赘或者无用的,而且实际上用起来也的确如此,够用了。

还有就是不同table生效优先顺序问题,先后优先级是这样的:

raw > mangle > nat > filter

所以,如果有filter禁止ping目的地址2.2.2.2,而nat又有策略将目的地址1.1.1.1转换成2.2.2.2,那么ping 1.1.1.1是ping不通的。

不过一般情况下filter是不会和nat的策略打起架来,比如INPUT chain能做filter,却不能做nat,PREROUTING能做nat却不能做filter,而且PREROUTING只能做目的地址转换,不会对源地址过滤的需求造成麻烦,所以通常是不会相互干扰的。

本文由澳门新葡亰手机版发布于操作系统,转载请注明出处:iptables实用教程,Shell中的特殊变量

上一篇:快速零配置迁移,HP电脑的增霸卡功能操作详解 下一篇:没有了
猜你喜欢
热门排行
精彩图文