linux 防火墙实验报告,linux下的防火墙(iptables / netfilter)--我的学习记录

什么是防火墙?

工作于主机或网络的边缘,对于进出的报文根据事先定义的规则作检查,将那些能够被规则所匹配到的报文作出相应处理的组件。

centos6.6上的防火墙组件:

netfilter:过滤器,内核中工作在tcp/ip网络协议栈上的框架

iptables:过滤规则的编写工具,定义的规则通过内核接口直接送至内核,立即生效,但不会永久有效;果期望有永久有效,需要保存至配置文件中,此文件还开机时加载和由用户手工加载;iptables可以自动实现规则语法检查。

netfilter在TCP/IP协议栈上定义了5个卡点(钩子函数)来控制报文:

hooks function(钩子函数):

prerouting: 进入本机后路由功能发生之前

input:到达本机内部

output: 由本机发出

forward: 由本机转发

postrouting:路由功能发生之后,即将离开本机之前

根据报文的分类,要经过的卡点如下:

到本机内部:prerouting,input

由本机发出:output,postrouting

由本机转发:prerouting,forward,postrouting

功能表:

过滤功能:filter表

卡点:input ,forward,output

修改功能:net表:修改报文的源地址和目标地址。

卡点:prerouting,output,postrouting

mangle表:修改报文IP,TCP报文首部的某些信息。

卡点:prerouting,postrouting,input,output,forward

追踪功能:raw表

卡点:prerouting,output

优先级(由高到低):raw --> mangle --> nat --> filter(最常用)

基本格式:

iptables [-t TABLE] SUBCOMMAND CHAIN CRETERIA-j TARGET

-t TABLE:

默认为filter, 共有filter, nat, mangle, raw四个可用;

SUBCOMMAND(子命令):

9262030bd6496f3760db736d399318d5.pnga44ceb68218cfc9902c93a6e3475c637.pngf05ea9300b13009d8e534c7f5fe92487.png

CRETERIA: 匹配条件

aeb7f2dfa6f417a5bffbb26152de2613.png

扩展匹配:

隐式扩展:如果在通用匹配上使用-p选项指明了协议的话,则使用-m选项指明对其协议的扩展就变得可有可无了;

tcp:

--dport PORT[-PORT]

--sport

--tcp-flags LIST1 LIST2

LIST1: 要检查的标志位;

LIST2:在LIST1中出现过的,且必须为1标记位;而余下的则必须为0;

例如:--tcp-flags syn,ack,fin,rst syn

--syn:用于匹配tcp会话三次握手的第一次;

udp:

--sport

--dport

icmp:

--icmp-types

8: echo request

0:echo reply

显式扩展:必须指明使用的扩展机制;

-m 模块名称(每个模块会引入新的匹配机制);

想知道有哪些模块可用:

rpm -ql iptables

小写字母,以.so结尾;

multiport扩展:以离散定义多端口匹配;最多指定15个端口;

专用选项:

--source-ports, --sports PORT[,PORT,...]

--destination-ports, --dports PORT[,PORT,...]

--ports PORT[,PORT,...]

例子:

iptables -I INPUT 1 -d 172.16.100.11 -p tcp -m multiport --dports 22,80,443 -j ACCEPT

iptables -I OUTPUT 1 -s 172.16.100.11 -p tcp -m multiport --sports 22,80,443 -j ACCEPT

iprange扩展:指定连续的ip地址范围;在匹配非整个网络地址时使用;

专用选项:

[!] --src-range IP[-IP]

[!] --dst-range IP[-IP]

示例:

iptables -A INPUT -d 172.16.100.11 -p tcp --dport 23 -m iprange --src-range 172.16.100.1-172.16.100.100 -j ACCEPT

iptables -A OUTPUT -s 172.16.100.11 -p tcp --sport 23 -m iprange --dst-range 172.16.100.1-172.16.100.100 -j ACCEPT

string扩展:检查报文中出现的字符串,与给定的字符串作匹配;

专用选项:

--algo {kmp|bm}    :两种字符串匹配算法

--string "STRING"

--hex-string "HEX_STRING":HEX_STRING为编码成16进制格式的字串;

示例:

iptables -I OUTPUT 1 -s 172.16.100.11 -p tcp --sport 80 -m string --string "sex" --algo kmp -j REJECT

time扩展:基于时间区间做访问控制

专用选项:

--datestart YYYY[-MM][-DD][hh[:mm[:ss]]]  :开始日期

--dattestop :停止日期

--timestart:开始时间

--timestop:停止时间

--weekdays DAY1[,DAY2,...]:控制每周的周几

示例:

# iptables -R INPUT 1 -d 172.16.100.11 -p tcp --dport 80 -m time --timestart 08:30 --timestop 18:30 --weekdays Mon,Tue,Thu,Fri -j REJECT

connlimit扩展:基于连接数作限制;对每个IP能够发起的并发连接数作限制;

专用选项:

--connlimit-above [n]

示例:

# iptables -I INPUT 2 -d 172.16.100.11 -p tcp --dport 22 -m connlimit --connlimit-above 5 -j REJECT

limit扩展:基于发包速率作限制;

专用选项:令牌桶算法

--limit  n[/second|/minit|/hour|/day]

--limit-burst n

示例:

iptables -R INPUT 3 -d 172.16.100.11 -p icmp --icmp-type 8 -m limit --limit 10/minute --limit-burst 5 -j ACCEPT

TARGET:

-j: jump,跳转目标

内置目标:

ACCEPT:接受

DROP:丢弃

REJECT:拒绝

自定义链:

未完。。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值