·网路访问控制:
·Linux一般作为服务器系统使用,对外提供一些基于网络的服务,
·通常我们都需要对服务器进行一些网络访问控制,类似防火墙的功能,
·常见的访问控制包括:哪些ip可以访问服务器、可以使用哪些协议,哪些接口、是否需要对数据包进行修改等,
·如服务器可能受到来自某ip的攻击,这时就需要禁止所有来自该ip的访问,
·Linux内核继承了网络访问控制功能,通过netfilter模块实现,
·IPTables:
·Linux内核通过netfilter模块实现网络访问控制功能,在用户层我们通过iptables程序对netfilter进行控制管理,
·netfilter可以对数据进行允许ACCEPT、丢弃DROP、拒绝并报错REJECT操作动作,
·netfilter支持通过以下方式对数据包进行匹配:源ip地址、目标ip地址、使用接口、使用协议、端口号、连接状态
·netfilter:netfilter的2个概念:chain链(过滤点),table表,
·chain又称filtering point,过滤点,分为input,forward,output,prerouting,postrouting,
·table分为filter,nat,mangle3种功能,
·filter用以对数据进行基本过滤,
·nat用以对数据包的源、目标地址进行修改,
·mangle用以对数据包进行高级修改,如QOS,
·规则:
·iptables通过规则对数据进行访问控制,一个规则使用一行配置,规则按顺序配列,
·当收到、发出、转发数据包时,使用规则对数据包进行匹配,按规则顺序进行逐条匹配,
·数据包按照第一个匹配上的规则执行相关动作,丢弃,放行,修改,
·没有匹配规则,则使用默认动作(每个chain拥有各自默认的动作),
·通过iptables创建一个规则,内容如:
·iptables -t filter -A INPUT -s 192.168.1.1 -j DROP,即:
·iptables -t表 -A链 匹配参数 -j动作,
·参数:-t表,指定使用的表,共3种功能选择,
-A链,规定过滤点,共5种过滤类型选择,
匹配参数,规定匹配数据包的特征,基于5种选择,
-j,匹配后的动作:放行,丢弃,记录,3种动作,
·匹配参数:
·基于ip:-s 192.168.1.1源地址,-d 192.168.1.1目标地址,
·基于接口:-i eth0进接口,-o eth1出接口,
·排除参数:-s ‘!’ 192.168.1.1/24
·基于协议及端口号,-p tcp --dport 23,-p udp --sport 53,-p icmp,d目标,s来源,
·常用功能:
·作为服务器使用:1,过滤到本机的流量,input链、filter表,
2,过滤本机发出的流量,output链、filter表,
·作为路由器使用:1,过滤转发的流量,forward链,filter表,
2,对转发数据的源,目标ip进行修改,prerouting或postrouting链,nat表,
原文地址:http://hclgogo.blog.51cto.com/1494961/1635635