home-gate
操作系统版本:CentOS 5.3
1 硬件
配置3块网卡,分别映射到/dev/vmnet1、/dev/vmnet3、/dev/vmnet2。
2 初始安装
语言选择english。
最小安装,只选择“Base System/Base”。
配置网络。
3 配置yum软件源
这里使用本地服务器上的镜像。
首先备份原来的配置文件:
# cd /etc/yum.repos.d/ # cp CentOS-Base.repo CentOS-Base.repo-bak
编辑CentOS-Base.repo,首先取消每个section的mirrorlist。
为每个section添加本地镜像,以[base]为例:
baseurl=ftp://10.10.10.199/pub/centos/$releasever/os/$basearch/
相应的修改其他section:[updates]、[addons]、[extras]、[centosplus]、[contrib]。
4 更新系统
# yum check-update # yum [-y] update
5 关闭不需要的网络服务
# /etc/init.d/cups stop # chkconfig cups off # /etc/init.d/avahi-daemon stop # chkconfig avahi-daemon off # /etc/init.d/portmap stop # chkconfig portmap off # /etc/init.d/nfslock stop # chkconfig nfslock off # /etc/init.d/sendmail stop # chkconfig sendmail off # /etc/init.d/yum-updatesd stop # chkconfig yum-updatesd off
6 配置iptables防火墙
这里不使用安装的缺省配置,而是使用Iptables脚本中提供的模板rc.iptables-gate-novpn.ref,并将其融入到当前的框架中。
首先备份原来的配置:
# cd /etc/sysconfig # cp iptables iptables.bak # cp iptables-config iptables-config.bak
停止iptables服务:
# /etc/init.d/iptables stop
编辑rc.iptables-gate-novpn.ref,去掉相关注释,使得:
- 内网可以访问外网的服务:ping、http(s)和ftp。
- 内网可以访问dmz。
- 外网可以访问dmz的服务:http(s)和ftp。
- 打开SNAT。
- 打开DNAT,重定向到home-server(10.10.20.20)。
其中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
完毕运行:
# sh rc.iptables-gate-novpn.ref start
保存配置,覆盖/etc/sysconfig/iptables:
# /etc/init.d/iptables save
编辑/etc/sysconfig/iptables-config,添加需要装入的模块:
IPTABLES_MODULES="ip_conntrack_netbios_ns ip_conntrack_ftp ip_nat_ftp"
恢复iptables的运行:
# sh rc.iptables-gate-novpn.ref stop # /etc/init.d/iptables start
7 配置ip6tables防火墙
这里同样使用Iptables脚本中提供的模板rc.ip6tables.ref。
首先备份:
# cd /etc/sysconfig # cp ip6tables ip6tables.bak
停止ip6tables服务:
# /etc/init.d/ip6tables stop
编辑rc.ip6tables.ref,按需要进行修改。完毕运行:
# sh rc.ip6tables.ref start
保存配置,覆盖/etc/sysconfig/ip6tables:
# /etc/init.d/ip6tables save
恢复ip6tables的运行:
# sh rc.ip6tables.ref stop # /etc/init.d/ip6tables start
8 配置内核参数
编辑/etc/sysctl.conf,打开转发:
net.ipv4.ip_forward = 1
9 配置bind域名服务
这里网关只作为一个forward服务器,本身不负责域名解析。
9.1 安装软件包(chroot版本)
# yum install bind-chroot # yum install caching-nameserver
9.2 配置
# cd /var/named/chroot/etc # cp named.caching-nameserver.conf named.conf # chgrp named named.conf
编辑named.conf,注释(取消)options的:
// listen-on port 53 { 127.0.0.1; }; // listen-on-v6 port 53 { ::1; }; // allow-query { localhost; };
在options中添加:
forward only; forwarders { 172.18.0.30; };
注释view localhost_resolver中的:
// match-clients { localhost; }; // match-destinations { localhost; };
启用bind服务:
# chkconfig named on
9.3 防火墙修改
编辑rc.iptables-gate-novpn.ref,允许内网用户DNS查询:
# enalbe dns query in eth0 iptables -A in-IN -p udp --dport domain -m state --state NEW -j ACCEPT
更新设置:
# /etc/init.d/iptables stop # sh rc.iptables-gate-novpn.ref start # /etc/init.d/iptables save # sh rc.iptables-gate-novpn.ref stop # /etc/init.d/iptables start