信息安全综合实验
Post on 06-Jan-2016
46 Views
Preview:
DESCRIPTION
TRANSCRIPT
1
信息安全综合实验信息安全综合实验张焕杰
中国科学技术大学网络信息中心james@ustc.edu.cn
http://202.38.64.40/~james/nms
Tel: 3601897(O)
2
第一章防火墙原理及其基本配第一章防火墙原理及其基本配置置
课程目的– 学习包过滤防火墙基本原理– 简单理解 Linux kernel
2.4.* 中的 netfilter/iptables 框架– 熟悉 iptables 配置
3
1.1 1.1 包过滤防火墙原理包过滤防火墙原理
包过滤型– 根据数据包的源地址、目的地址、协议、端
口、协议内部数据、时间、物理接口来判断是否允许数据包通过。
– 外在表现:路由型、透明网桥型、混合型– 优点:性能高,对应用透明,使用方便– 缺点:安全控制粒度不够细
4
包过滤防火墙包过滤防火墙 规则 条件 动作 序列 条件
– 源地址、目的地址、协议、端口、协议内部数据、时间、物理接口
动作– ACCEPT 允许– DROP 直接丢弃– REJECT tcp-reset/icmp-port-unreachable– LOG 日志
5
包过滤防火墙包过滤防火墙
有先后关系数据包的处理
– 接收到数据包– 逐条对比规则– 如果满足条件,则进行相应的动作,如果动
作不是 ACCEPT/DROP/REJECT ,继续处理后面的规则
6
1.2 Linux Kernel1.2 Linux Kernel 中的包过滤中的包过滤防火墙防火墙
Ipfw/ipfwadm– 2.0.* 中使用移植于 BSD 的 ipfw– 缺点:包过滤、 NAT 等代码混杂在整个网络相关代
码中 Ipchains
– 2.2.* 中使用 Netfilter/iptables
– 2.4.*– http://www.netfilter.org/– 模块化
7
Netfilter/iptablesNetfilter/iptables
Netfilter 是 Linux kernel 中对数据包进行处理的框架
定义了 5 个 HOOK 位置– NF_IP_PRE_ROUTING – NF_IP_LOCAL_IN – NF_IP_FORWARD – NF_IP_POST_ROUTING – NF_IP_LOCAL_OUT
8
55 个个 HOOKHOOK 位置位置
9
netfilternetfilter 结果结果
NF_ACCEPT: continue traversal as normal. NF_DROP: drop the packet; don't continue
traversal. NF_STOLEN: I've taken over the packet;
don't continue traversal. NF_QUEUE: queue the packet (usually for
userspace handling). NF_REPEAT: call this hook again.
10
NetfilterNetfilter
Iptables 是 netfilter 上的应用程序nat mangle filter
11
Netfilter/iptablesNetfilter/iptables
可以实现完整的基于连接跟踪的包过滤防火墙
支持包过滤,双向地址转换一般是路由型的使用 ebtables 中的 bridge+nf patch 可以表
现为网桥型的– http://ebtables.sourceforge.net/
12
1.3 iptables1.3 iptables 配置配置 包过滤
– INPUT/OUTPUT/FORWARD 三个规则链– 可以增加自定义规则链
iptables –N xxx
– 命令格式– iptables –L –nv 显示– iptables –F 规则链名 清空规则链– iptables –A 规则链名 规则 增加规则– iptables –I 规则链名 规则 插入规则– iptables –D 规则链名 规则 删除规则– iptables –D 规则链名 规则编号
13
包过滤包过滤规则
– -j 动作 … . 条件动作为:
– ACCEPT 接受数据包– DROP 丢弃数据包– RETURN 从当前规则链返回– LOG 日志,用 dmesg 可以看到– REJECT– SNAT/DNAT 等
14
包过滤包过滤 条件 -s IP 地址 源地址 -d IP 地址 目的地址 -i 接口名 接收的接口 -o 接口名 发送的接口 -m state -- state 状态 状态包过滤
– ESTABLISHED RELATED NEW INVALID -p tcp/udp/icmp/47 协议 --dport 目的端口 --sport 源端口
15
实验实验建议编辑如下文件,命名为ipt ,并用 chmod a+x ipt每次试验时用命令 ./ipt 执行,文件内容为#!/bin/shIPT=iptables$IPT –F$IPT ….$IPT –L –nv
16
实验一实验一 Iptables –F Ping 127.0.0.1 执行如下命令 $IPT –A INPUT –j LOG –s 127.0.0.1 $IPT –A INPUT –j DROP –s 127.0.0.1 ping 127.0.0.1 看是否通? 用 dmesg 能看到什么? Iptables –L –nv 能看到什么? 为什么?
17
实验二实验二 让你的机器只能 telnet 202.38.64.3(BBS) $IPT –A OUTPUT –j ACCEPT –d 202.38.64.3 –
p tcp –dport 23 $IPT –A OUTPUT –j LOG $IPT –A OUTPUT –j DROP $IPT –A INPUT –j ACCEPT –s 202.38.64.3 –p
tcp –m tcp --sport 23 --dport 1024:65535 ! --syn $IPT –A INPUT –j LOG $IPT –A INPUT –j DROP
18
实验三实验三连接跟踪文件 /proc/net/ip_conntrack 是否存在?如果不存在,执行命令modprobe ip_conntrack文件 /proc/net/ip_conntrack 的内容有什么?more /proc/net/ip_conntrackdmesg 显示最多支持多少 session?lsmod 增加了什么模块
19
实验四实验四 让你的机器只能 telnet 202.38.64.3(BBS) $IPT –A OUTPUT –j ACCEPT –d 202.38.64.3 –
p tcp --dport 23 $IPT –A OUTPUT –j LOG $IPT –A OUTPUT –j DROP $IPT –A INPUT –j ACCEPT –m state --state
ESTABLISHED,RELATED $IPT –A INPUT –j LOG $IPT –A INPUT –j DROP
20
实验五实验五 让你的机器只能 ftp 202.38.64.40 $IPT –A OUTPUT –j ACCEPT –m state --state
ESTABLISHED,RELATED $IPT –A OUTPUT –j ACCEPT –d 202.38.64.40 –p
tcp --dport 21 $IPT –A OUTPUT –j LOG $IPT –A OUTPUT –j DROP $IPT –A INPUT –j ACCEPT –m state --state
ESTABLISHED,RELATED $IPT –A INPUT –j LOG $IPT –A INPUT –j DROP
21
实验五实验五
以上设置,只能登录,无法使用列目录等操作
用命令 modprobe ip_conntrack_ftp 加载 ftp 对应的连接跟踪模块后再进行一次实验
22
实验脚本实验脚本
http://202.38.64.40/~james/nms/lab01.tarwget
http://202.38.64.40/~james/nms/lab01.tartar xvf lab01.tarcd lab01
top related