实验一:搭建SNAT
1.
实验目的:
把私有地址转换成公有地址,能够通过公有地址上网
2.
实验环境:
①一台
Linux
系统服务器,必须有
2
块网卡:
一块连内网(网卡名:
eth1
;
IP
地址:
100.100.100.150
;网关:
192.168.0.26
)
一块连外网
(
网卡名:
eth0
;
IP
地址:
192.168.0.26
;网关:
192.168.0.1)
②一台
Windows
系统客户机:
网卡的
IP
地址必须和
eth1
的地址是一个段的,假设:
100.100.100.100
;
网关指向
eth1
的地址:
100.100.100.150
;
DNS
指向能上网的那台服务器:
192.168.0.1
3.
实验步骤:
①
# echo 1 > /proc/sys/net/ipv4/ip_forward
启用路由
②
# iptables �Ct nat �CA POSTROUTING �Cs 100.100.100.0/24 �Co eth0 �Cj SNAT �Cto 192.168.0.26
把内部地址转换成公有地址出去
③
Windows
客户机网关指向
100.100.100.150
;
DNS
指向能上网的那台服务器:
192.168.0.1
实验二:搭建DNAT
1. 实验目的:
外网可以访问内网的
WEB 服务器
2. 实验环境:
一台
linux系统服务器,一台内部的
www服务器,一台外网的
client,要让
client用
http方式访问内部的
www服务器.
DNAT原理:将外网
input的包头的目标
ip和目标
port的组合映射到内网的一台机子的
ip
3. 实验步骤:
①配置
linux
保证
mac不冲,网络参数已经配好,路由功能也已启动,可以直接利用
iptables工具添家相应规则,配置如下
iptables -t nat -A PREROUTING -p tcp -d 192.168.0.26 --dport 80 -j DNAT --to 100.100.100.150:80
-A RREPOUTING和
-j DNAT是一对用来实现公有
ip和
port的组合与私有
ip的映射
-p protocol 待检查包的协议,缺省为
all全部协议
这条命令的效果是发给
linux的
eth1的
80port的包都会经由
linux发向
100.100.100.150的
80port
命令加上
-i eth1效果是一样的
②配置
www服务器,可以用
linux,也可以用
windows
这里过程省略,结果
DocumentRoot=/www 在
DocumentIndex字段把
dandan.html添加到最前面,然后建立了
/www/dandan.html网页
它的网络参数如下
ipaddr=100.100.100.100
netmask=255.255.255.0
gateway=100.100.100.150
dns=202.96.209.5
4. 用
client验证,看会不会返回相应的网页.
实验三:搭建基本代理服务器
1.
实验目的:
局域网内部的机器,通过代理服务器可以上网
2.
实验环境:
①一台
Linux
系统服务器,必须有
2
块网卡:
一块连内网(网卡名:
eth1
;
IP
地址:
100.100.100.150
;网关:
192.168.0.26
)
一块连外网
(
网卡名:
eth0
,
IP
地址:
192.168.0.26
;网关:
192.168.0.1)
②一台
Windows
系统客户机:
网卡的
IP
地址必须和
eth1
的地址是一个段的,假设:
100.100.100.100
;
网关和
DNS
不需要配置,让它为空
3.
实验步骤:
①
# vi /etc/squid/squid.conf
⑴
http_port 100.100.100.150:3128 54
行,打开监听端口(
IP
地址为连接内网网卡地址)
⑵
cache_dir ufs /var/spool/squid 100 16 256 668
行,直接把前面的“
#
“去掉,使用固定的物理内存
⑶
cache_mem 30MB 469
行,把前面的“
#
“去掉,访问控制
⑷
http_access allow all :
允许所有连接
http_access deny all:
关闭所有连接
在
1745
行,缺省情况是关闭所有连接,若想要打开一些服务,必须在上面一行把
all
改成一些需要打开的服务名称。配置文件里
,
位置越向上
,
优先级越高
②
# service squid start
启动
squid
服务
③
Windows
客户机
:
首先
IP
地址和
eth1
的地址是一个段的;然后是:工具
---Interent
选项
---
连接
---
局域网设置
---
代理服务器
---
地址为
100.100.100.150
:
3128
实验四:搭建透明代理服务器
1.
实验目的:
局域网内部的机器只需配置网关、
DNS
,通过代理服务器可以上网
2.
实验环境:
①一台
Linux
系统服务器,必须有
2
块网卡:
一块连内网(网卡名:
eth1
;
IP
地址:
100.100.100.150
;网关:
192.168.0.26
)
一块连外网
(
网卡名:
eth0
,
IP
地址:
192.168.0.26
;网关:
192.168.0.1)
②一台
Windows
系统客户机:
网卡的
IP
地址必须和
eth1
的地址是一个段的,假设:
100.100.100.100
;
网关指向
eth1
的地址:
100.100.100.150
;
DNS
指向电信服务器:
202.109.14.5
3.
实验步骤:
①
# vi /etc/squid/squid.conf
把以下
4
条记录加在配置文件的末尾
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
②
# service squid reload
重新加载服务
③
# echo 1 > /proc/sys/net/ipv4/ip_forward
启用路由
④
# iptables �Ct nat �CA POSTROUTING �Cs 100.100.100.0/24 �Co eth0 �Cj SNAT -- to 192.168.0.26
把内部地址转换成公有地址出去
⑤
# iptables �Ct nat �CA PREROUTING �Ci eth1 �Cp tcp -- dport 80 �Cj REDIRECT �C-to- port 3128
把
SNAT
和代理结合在一起
⑥
Windows
客户机:网关指向
eth1
的地址:
100.100.100.150
;
DNS
指向电信服务器:
202.109.14.5
实验五:配置访问控制
1.
实验目的:
客户端通过代理服务器,控制在每周一至周五的
11:30~13:30
可以上网
2.
实验环境:(按实验四当前的情况继续做)
①一台
Linux
系统服务器,必须有
2
块网卡:
一块连内网(网卡名:
eth1
;
IP
地址:
100.100.100.150
;网关:
192.168.0.26
)
一块连外网
(
网卡名:
eth0
,
IP
地址:
192.168.0.26
;网关:
192.168.0.1)
②一台
Windows
系统客户机:
网卡的
IP
地址必须和
eth1
的地址是一个段的,假设:
100.100.100.100
;
网关指向
eth1
的地址:
100.100.100.150
;
DNS
指向电信服务器:
202.109.14.5
3.
实验步骤:
# vi /etc/squid/squid.conf
在
1745
行里添加以下字段
acl time1 time MTWHF 11:30~13:30
http_access allow time1
http_access deny all
4.
验证:客户端只能在指定的时间内上网,其它时间一概上不了
本文出自 “技术论坛” 博客,谢绝转载!