Duangw

home-gate

操作系统版本:Ubuntu server 9.04

 

1 硬件

配置3块网卡,分别映射到/dev/vmnet1、/dev/vmnet3、/dev/vmnet2。

 

2 初始安装

语言选择english。

手工设置eth0静态IP地址。

只安装openssh server。

 

3 配置网络

设置eth1和eth2网卡参数。

编辑/etc/network/interfaces:

...
auto eth0 eth1 eth2
iface eth0 inet static
        address 10.10.10.1
        netmask 255.255.255.0
        network 10.10.10.0
        broadcast 10.10.10.255
        # dns-* options are implemented by the resolvconf package, if installed
        dns-search copyleft.net
iface eth1 inet static
        address 172.16.0.10
        netmask 255.255.255.0
        network 172.16.0.0
        broadcast 172.16.0.255
        gateway 172.16.0.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-search copyleft.net
iface eth2 inet static
        address 10.10.20.1
        netmask 255.255.255.0
        network 10.10.20.0
        broadcast 10.10.20.255
        # dns-* options are implemented by the resolvconf package, if installed
        dns-search copyleft.net

其他相关文件:

 

4 配置软件源

这里使用本地服务器上的镜像。

首先备份原来的配置文件:

$ cd /etc/apt
$ sudo cp sources.list sources.list-bak

编辑sources.list,将原有的网址替换为本地服务器地址,如:

...
deb ftp://10.20.10.199/pub/ubuntu/ jaunty main restricted
deb-src ftp://10.20.10.199/pub/ubuntu/ jaunty main restricted
...

 

5 更新系统

$ sudo aptitude update
$ sudo aptitude upgrade

 

6 安装lftp

$ sudo aptitude install lftp

 

7 配置iptables防火墙

这里不使用缺省安装的ufw,而是使用Iptables脚本中提供的模板rc.iptables-gate-novpn.ref。

$ sudo cp rc.iptables-gate-novpn.ref /etc/init.d/iptables
$ sudo update-rc.d iptables start 39 S .
$ cd /etc/init.d
$ sudo chmod 755 iptables

编辑/etc/init.d/iptables,去掉相关注释,使得:

其中DNAT只重定向http(s)和ftp:

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport http -j DNAT --to 10.10.20.20
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport https -j DNAT --to 10.10.20.20
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport ftp -j DNAT --to 10.10.20.20

 

8 配置ip6tables防火墙

同样使用Iptables脚本中提供的模板rc.ip6tables.ref。

$ sudo cp rc.ip6tables.ref /etc/init.d/ip6tables
$ sudo update-rc.d ip6tables start 39 S .
$ cd /etc/init.d
$ sudo chmod 755 ip6tables

 

9 配置内核参数

编辑/etc/sysctl.conf,打开转发:

net.ipv4.ip_forward=1

 

10 配置bind域名服务

这里网关只作为一个forward服务器,本身不负责域名解析。

10.1 安装软件包

$ sudo aptitude install bind9

10.2 配置

编辑/etc/bind/named.conf.options,修改:

...
        forward only;
        forwarders {
                172.18.0.30;
        };
...

10.3 防火墙修改

编辑/etc/init.d/iptables,允许内网用户DNS查询:

# enalbe dns query in eth0
iptables -A in-IN -p udp --dport domain -m state --state NEW -j ACCEPT