FreeBSD 服务器设置 简明攻略(葱头原创) 一

发表于:2007-06-09来源:作者:点击数: 标签:
转载请保留作者信息 葱头 近段时间越来越多朋友利用FreeBSD强大的网络功能建立自己的 服务器 ,在这过程中可能遇到了一些麻烦.为了大家少走弯路,这里力求简单说明一些常用服务的设置. 基本网络设置: defaultrouter="192.168.0.1" gateway_enable="YES" hostna

转载请保留作者信息

葱头

近段时间越来越多朋友利用FreeBSD强大的网络功能建立自己的服务器,在这过程中可能遇到了一些麻烦.为了大家少走弯路,这里力求简单说明一些常用服务的设置.

基本网络设置:

defaultrouter="192.168.0.1"
gateway_enable="YES"
hostname="xxxhost.xxxdomain.com"
ifconfig_rl0="inet 192.168.0.1  netmask 255.255.255.0"

注意: rl0为内网卡,你需要按你实际的网卡设备去写.

一 如何在FreeBSD设置ADSL上网

我曾经发表过一篇这样的文章,在这里我不在罗嗦了. 可以参考下面:

如何在FreeBSD设置ADSL上网(在FreeBSD 4.4下测试通过)
网上有部分关于FreeBSD设置ADSL上网的文章有些错误,这里公布葱头的设置文件。
1。编辑/etc/ppp/ppp.conf 文件

default:
set log Phase tun command
enable dns

adsl:
set device PPPoE: 设备名 ;即网卡的设备名
set speed sync
set mru 1492
set mtu 1492
set dial
set login
add default HISADDR
set authname 帐户名
set authkey 密码

Papchap:
set authname 帐户名
set authkey 密码

2。编辑/boot/defaults/loader.conf
ng_pppoe_load="YES"


虚拟拨号: ppp -background adsl
测试: ifconfig -a 看到tun0伪设备捆绑了ISP分配的IP地址即成功

如果想开机就自动拨号,那就要修改/etc/rc.conf,增加一下字段:
ppp_enable="YES"
ppp_mode="ddial"
ppp_profile="adsl"



二  设置缓冲型DNS

1. 编辑/etc/resolv.conf

domain xxxxx.com
nameserver 127.0.0.1
nameserver xxx.xxx.xxx.xxx.xxx
nameserver xxx.xxx.xxx.xxx.xxx
(后面两个一般在拨号时自动生成, 那是ISP的域名解析服务器地址.  127.0.0.1必须放在他们之前)

2. 创建localhost.rev文件 
chmod 744 /etc/namedb/make-localhost (将脚本改为可执行)
cd /etc/namedb
./make-localhost

3.编辑/etc/namedb/named.conf

options {
        directory "/etc/namedb";
      forward only;
        forwarders {
           xxx.xxx.xxx.xxx; xxx.xxx.xxx.xxx;
                };
};
                                                                                                                                               
zone "." {
        type hint;
        file "named.root";
};
                                                                                                                                               
zone "0.0.127.IN-ADDR.ARPA" {
        type master;
        file "localhost.rev";
};

注: 上面两个xxx.xxx.xxx.xxx就是/etc/resolv.conf 里面的两个nameserver地址

4.修改/etc/rc.conf
加入 named_enable="YES"


三  设置透明代理

这里假设你已经设置好squid并已投入使用,如果大家对squid不熟悉的话,我稍后会贴出squid的设置.
一般网上都是用ipfw做防火墙的,但我觉得ipfilter较ipfw方便而且好用,所以这里采用ipfilter.

1.编辑/boot/defaults/loader.conf
在Networking modules段加入:
ipl_load="YES"

2.创建/etc/ipfilter.rules (ipfilter规则),这里仅仅给出一个例子,要根据自己的实际需求设定规则.

block in log on 外网卡名 from any to any
block out log on 外网卡名 from any to any
pass out log on 外网卡名 proto icmp all keep state
pass out log on 外网卡名 proto tcp/udp from any to any keep state
pass in on 外网卡名 proto tcp from any to any port = ftp-data keep state
pass in  on 外网卡名 proto tcp from any port = ftp-data to any port > 1023 keep state
pass in on 内网卡名 all
pass out on 内网卡名 all
block return-rst in log on 外网卡名 proto tcp from any to any flags S/SA
block return-icmp(net-unr) in log on 外网卡名 proto udp from any to any

3.创建/etc/ipnat.rules (NAT规则)
rdr 内网卡名 0.0.0.0/0 port 80 -> 192.168.0.1 port 3128 tcp/udp     

注: 192.168.0.1 为内网卡ip地址, 并假设你的squid的端口为3128,不是的话改成实际的就可以了.


4.编辑 /etc/rc.conf , 加入:

ipfilter_enable="YES"
ipfilter_rules="/etc/ipfilter.rules"
ipnat_enable="YES"
ipnat_rules="/etc/ipnat.rules"

到这里为止,整个设置透明代理设置基本完成, 确保你的squid服务正常并开机自动启动. 然后重新启动服务器.将客户端电脑的网关和DNS服务器地址都改为内网卡ip地址(我那里是192.168.0.1) 就可以了.

 红袖添香 回复于:2003-04-09 00:54:14
...

[size=14:b095d1534b][color=#551717:b095d1534b]

感谢楼主共享,支持!

[/color:b095d1534b][/size:b095d1534b]

 zhengo 回复于:2003-04-09 01:25:46
谢谢,楼主不持劳苦,有个问题想问一下,在每次PPP 和named自动启动之后,会刷新resolv.conf,这样nameservcer 127.0.0.1就会没了,这样对缓存DNS有影响吗?我的好像没有127.0.0.1 缓存DNS也一样可以工作.
期待一些高端squid讲解,比如,只对某些文件缓存,我的2.5.1好像对zip&rar不缓存,ipfilter in frbsd 4.8 还有拒绝服务Bug吗?不编译内核用ipfilter效率高吗??

 ihweb 回复于:2003-04-09 08:21:05
ipfilter 不用编译内核?!好,我也来测试以下。

 黄师虎 回复于:2003-04-09 08:34:43
[quote:9a995e37a6="ihweb"]ipfilter 不用编译内核?!好,我也来测试以下。[/quote:9a995e37a6]
不编译内核也可以?测试后告诉我结果。谢谢。

 ihweb 回复于:2003-04-09 08:44:46
[quote:3be53196c9="黄师虎"][quote:3be53196c9="ihweb"]ipfilter 不用编译内核?!好,我也来测试以下。[/quote:3be53196c9]
不编译内核也可以?测试后告诉我结果。谢谢。[/quote:3be53196c9]哇靠!居然真的不用编译的喔!!!!!(偶的FBSD是4.7 release)

 ihweb 回复于:2003-04-09 08:48:35
更神啦!!连ipfw都可以这样load 的喔。

 Fun-FreeBSD 回复于:2003-04-09 08:55:12
好啊,good~~

 葱头 回复于:2003-04-09 08:59:41
关于zhengo的问题,没有127.0.0.1 缓存DNS也一样可以工作,这是正确的。只不过理论上可能没有起到缓冲作用,可能只起到转跳的作用,这是我自己猜测的,不一定正确,不过我查阅了一些英文资料,有这种说法。

外挂模块使用ipfilter理论上效率没有编译进内核高,但在大部分环境下影响并不明显,可以放心使用,如果对效率要求很高的话不妨编译内核。

外挂模块也是我自己摸索出来的,一般资料只会叫人编译内核,而且loader.conf文件里面也没有ipl出现,但硬盘里面有这样的so的,所以我试了下,证实了我的想法。
不仅ipfilter可以,连ipfw都可以外挂而不需要编译内核。


昨晚打得好累,这些设置我在半年前已经实现了,一直写在我的小本上。我这几天有空会陆续将我的一些简明设置和经验发上来大家研究一下。

 Fun-FreeBSD 回复于:2003-04-09 09:05:28
哇噻,BSD版的高手越来越多了~,   

 ihweb 回复于:2003-04-09 09:20:04
哈哈哈………………以前我就发现5.0 release 可以外挂,今天居然4.7都可以外挂了!!哈哈哈…………好啊,所以很多东西都可以这样做测试了!!哈哈哈………………爽啊!!

 黄师虎 回复于:2003-04-09 09:41:43
靠,亏了,为了这个东东,编译了好几次内核。 

 tyyx 回复于:2003-04-09 10:02:39
支持原创!

 ihweb 回复于:2003-04-09 10:12:41
[quote:ebf5038308="黄师虎"]靠,亏了,为了这个东东,编译了好几次内核。 [/quote:ebf5038308]

我也是,编译得累死。

 zhengo 回复于:2003-04-09 10:58:39
不知葱头你试过没,按你DNS的用法,我resolv.conf说每一次从起都会被刷新,
nameservers 127.0.0.1 被覆盖了,我强行加上之后从起,
把加nameserver 127.0.0.1的resolv.conf copy to dns.conf 
cp /etc/resolv.conf /etc/dns.conf
in rc.conf  edit 
named_enable="YES"
named_flags="-t /etc dns.conf"
发现有一些游戏的dns解释不行了,具体你试试MU,而在没127.0.0.1就没事,以上试验均在frbsd4.8 ADSL ppp NAT + named +dhcpd+squid 上试过,除DNS有以上问题之外,没有其他的问题了.有没有什么其他方法使得resolv.conf里的127.0.0.1能保留下来不被覆盖,

如无办法解决,按理论来说,没127.0.0.1的dns缓存在adsl ppp 里就没用了,客户端直接写本地电信dns一样快,宽带来说.

另外,让squid也使用dns缓存,其效果不言而喻.
在squid.conf 加 dns_nameservers 127.0.0.1 61.144.56.101 202.96.128.68
后面两个要添本地电信的dns,不知道的看resolv.conf,

 i2era 回复于:2003-04-09 11:01:42
[quote:afbf00d007="ihweb"]
我也是,编译得累死。[/quote:afbf00d007]

谁让你们不好好看看/etc/rc,/etc/defaults/rc.conf
  
累死也活该,不能偷懒哦 

 ihweb 回复于:2003-04-09 11:15:15
[quote:clearcase/" target="_blank" >ccdf08f5a7="i2era"][quote:ccdf08f5a7="ihweb"]
我也是,编译得累死。[/quote:ccdf08f5a7]

谁让你们不好好看看/etc/rc,/etc/defaults/rc.conf
  
累死也活该,不能偷懒哦 [/quote:ccdf08f5a7]骂得好,今天又长知识啦!!

 葱头 回复于:2003-04-10 08:56:25
答zhengo:

重启后,resolv.conf会被自动刷新,127.0.0.1会被删除,暂时只有一些临时的方法,又或者我没有想到。另外,在squid里面将本机地址放在第一个dns_nameservers那里,可以起到几乎同样的作用。

我暂时还没有发现有什么网站访问有问题,可能是我很少上游戏网站吧。
我曾经也出现过有部分网站访问不了的情况,后来发现是ppp.conf里面的mru,mtu设置的问题,将它们删除或者指定为1492就正常了。你不妨看看你的ppp.conf里面是否有这样的问题,删除后是否正常。

 zhengo 回复于:2003-04-10 14:42:11
我的mtu,mru=1492
访问网站是没什么问题,因为用了squid
但在online游戏经常要update,厂商一般用域名指向,那就要dns解释
游戏里是没用squid的,用我的前面说的配置就是不行,dns解释错误.
反正现在我resolv.conf没有127.0.0.1,现在没有什么问题
透明NAT+named+squid,上网的用dns缓存,上游戏的用转发DNS
在实际应用中没任何问题..还有如在lan宽带里是无需ppp的,但lan的调试
结果和ppp遇到的问题是一样的

 ardourboy 回复于:2003-04-16 00:13:39
test: good

 zyme 回复于:2003-05-23 08:42:44
去掉
enable dns
这样
/etc/resolv.conf
就不会更新...

原文转自:http://www.ltesting.net