CentOS 5 - 带有DHCP服务器的家庭网关防火墙,用于连接共享
版本1.0
作者:Cameron Camp <howto [at] logicalwebhost [dot] com>
最后编辑:2008年1月16日
如果您要设置家庭网络,您可能需要设置一个面向连接到DSL / Cable调制解调器的计算机的计数器,然后将所有计算机放在该防火墙后面,以保证其安全。 本教程将向您介绍如何在网关计算机上使用单个外部连接(使用Iptables防火墙),并在同一个盒子上使用第二个内部连接,以便您可以将家庭/办公室内部的计算机连接到它,并自动给它们IP(当使用DHCP服务器)时挂起它们。 Iptables可能非常复杂,我们只会配置一个基本的防火墙,你可以稍后添加更多的安全性,而不会破坏事情。 在Linux中有很多方法可以做到这一点,这个希望足够简单,并且会教你们基础知识。 我在CentOS 5盒子上做到了这一点,尽管它只能在Debian变体上进行一些修改。 在本教程中,我以root身份登录,您通常不应该这样做,但它使教程更简单,但如果您更愿意安全地执行此操作,请在每个命令之前添加“sudo”,并且它将工作。
办公室内部的电脑也可以互相通话,所以您可以通过交换机连接打印机,电脑和共享网络连接。 您也可以稍后在网关服务器框上设置东西,就像使用Samba的所有计算机的网络备份驱动器相对简单。 这个设置有很多可扩展性,但现在我们会保持简单。
在Gateway服务器上首先要做的是配置和启用Iptables,这是CentOS附带的默认防火墙。 我们会告诉它允许从eth1接口到互联网的出站流量。 您必须添加一个Iptables条目,保存并重新启动Iptables。
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
service iptables save
service iptables restart
现在我们要告诉内核开始允许转发,这样规则就可以运行了:
echo 1 > /proc/sys/net/ipv4/ip_forward
这将只有在您重新启动后才能工作,所以让我们永久使用您选择的编辑器,将以下行添加到/ etc / sysconfig / network中:
FORWARD_IPV4=YES
现在我们必须设置一个DHCP服务器来将IP发送到LAN内部的计算机上。 我们通过如下安装DHCP服务器来做到这一点:
yum install dhcp
默认情况下,将创建一个示例的DHCP文件,我们将编辑,然后替换真实的:
cd /usr/share/doc/dhcp-whateverversionyouhave/
vi dhcpd.conf.sample
您可以剪切/粘贴我正在使用的,或只是编辑您的,以满足您的需要。 一个谨慎的话, 你的网络可能与我的不同 。 该文件将给您的内部计算机一系列IP从192.168.0.128到192.168.0.254,子网掩码为255.255.255.0,根据您的需要进行更改。 如果您在此处使用自己的值,那么还需要使eth1静态IP上的IP信息匹配。
ddns-update-style none; # keep it simple for now ignore client-updates; # here too DHCPARGS=eth1; # tells it what interface to listen on subnet 192.168.0.0 netmask 255.255.255.0 { # --- default gateway option routers 192.168.0.1; # gateway on your eth1 internal interface option subnet-mask 255.255.255.0; # subnet mask option domain-name "example.com" # domain name given to client option domain-name-servers 209.242.10.10; # the IP of your ISP's nameservers you're using option time-offset -18000; # Eastern Standard Time - set to what you have range 192.168.0.128 192.168.0.254; # the range of IP's your clients will get default-lease-time 21600; # how long the client's will keep the same IP max-lease-time 43200; # we want the nameserver to appear at a fixed address host ns { next-server ns1.ispserver.net; # change to your ISP's nameservers hardware ethernet 00:09:5B:8E:05:67; # hardware MAC fixed-address 209.242.10.10; # your ISP's nameserver IP } }
现在备份您当前的dhcp配置文件,并复制刚刚制作的配置文件:
mv /etc/dhcpd.conf /etc/dhcpd.conf.old
cp dhcpd.conf.sample /etc/dhcpd.conf
现在我们重新启动DHCP服务器(在检查配置错误后,如果有错误,您会发现它们列在/ var / log / messages中),以便更改将生效
service dhcpd configtest
service dhcpd restart
现在我们必须配置eth1(内部)接口来匹配我们刚刚在DHCP服务器上做的接口,所以编辑文件/ etc / sysconfig / network-scripts / ifcfg-eth1,看起来像这样:
DEVICE=eth1 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.0.1 NETMASK=255.255.255.0 GATEWAY=10.1.10.43
你必须至少编辑GATEWAY IP,这只是我的eth0接口的IP,改变它是你的eth0 IP,你可以通过运行:
ifconfig
它应该说:eth0 inet addr:10.1.10.43,这是你想要的。
接下来,您必须告诉您的计算机来监听告诉DHCP请求来到达内部网络。 当客户端计算机正在寻找DHCP地址时,它会向任何将监听到的IP地址为255.255.255.255的用户发送一个爆炸声,所以您必须告诉您的DHCP服务器监听该IP:
route add -host 255.255.255.255 dev eth1
所以现在我们测试设置。 你应该能够去一台客户端计算机,把它连接到你的网关连接的交换机(在我的例子中是一个便宜的家庭Netgear $ 30 8端口交换机型号FS608),它应该使用你的新DHCP找到一个IP服务器,您应该能够浏览互联网。
您还应该设置防火墙以阻止比本教程中所做的更多的事情,以保持内部计算机的安全,您可以使用通过运行以下方式构建的配置工具来实现:
setup
告诉防火墙要阻止什么。 一个经验法则是阻止一切,然后只允许你需要的东西,但是如果你选择,你可以在令人望而生畏的深处阅读。