#!/bin/sh
PREFIX=/usr/local
case "$1" in start) if [ -x ${PREFIX}/sbin/mpd -a -f ${PREFIX}/etc/mpd/mpd.conf ]; then ${PREFIX}/sbin/mpd -b echo -n ` mpd ` fi ;; stop) killall mpd && echo -n ` mpd ` ;; *) echo "Usage: `basename $0` {start|stop}" >&2 ;; esac
exit 0 ;
下面我们要开启防火墙来测试一下了,我们开启防火墙还需要修改一下rc.conf文件我们需要添加下列配置
firewall_enable="YES" firewall_type="/etc/ipfw.conf" gateway_enable="YES" natd_enable="YES" natd_interface="rl0" natd_flags="-f /etc/natd.conf"
其中两个需要说明,firewall_type=后面我这里是指定了一个文件来做定制配置,ipfw还有其他几种默认的方式可选,例如open,client,close等等。我们用不到就不说了无论如何一定要有以下这句,否则你的网关无法正常运转gateway_enable="YES"
大家注意到我的转发界面设置的是rl0也就是我的网卡,这在使用ppp的时候是没有问题的,但是如果用mpd作PPPoE拨号时候无论如何不行,必须设置成mpd的创建的ng0设备上。
我开始的想法如果无法把pptp的监听设定在外网界面上的情况下就把端口用natd从外网转进来,谁知道pptp还需要端口以外的部分进行连接,所以现在natd基本上是没有什么作用的。
下面我就给大家我的/etc/ipfw.conf里面关于如何让pptp连接通过的语句
add 40009 allow tcp from me 1723 to any add 40010 allow tcp from any to me 1723 add 40011 allow gre from me to any add 40012 allow gre from any to me
只有添加了这四句才可以使得客户端连接上网关,但是如果只有这四个,客户端连上了是什么也干不了的,所以还要为客户端设置下面两个规则才行
add 40007 allow ip from any to 192.168.1.30 keep-state setup add 40008 allow ip from 192.168.1.30 to any keep-state setup
注意我得配置中192.168.1.30是我分配给客户端得内网地址,如果你的地址定义跟我不同你需要修改这个地址 由于安全原因,我不能把我完整的配置文件都放出来给大家了,关于其他的规则,请大家参考iceblood写的通过FreeBSD共享ADSL上网等文章得防火墙设置或者查看man 8 ipfw来定制自己的规则。
-- 原文链接: http://soft.yesky.com/SoftChannel/72341306692599808/20030721/1715691.shtml
|