FreeBSD DHCP服务安装笔记

一、编译内核

device bpf

bpf设备是DHCP服务必需的,FreeBSD系统默认的GENERIC内核已经包含此设备,如果您的系统内核是经过修改的,请注意此设备是否已经添加。

二、安装DHCP Server

# cd /usr/ports/net/isc-dhcp31-server
# make install clean

三、配置DHCP服务

# vi /usr/local/etc/dhcpd.conf

option domain-name "example.com";  //这个选项指定了提供给客户机作为默认搜索域的域名。
option domain-name-servers 192.168.0.100;  //这个选项用于指定一组客户机使用的DNS服务器,它们之间以逗号分隔。
option subnet-mask 255.255.255.0;  //提供给客户机的子网掩码。

default-lease-time 3600;  //客户机可以请求租约的有效期,而如果没有,则服务器将指定一个租约有效期,也就是这个值(单位是秒)。
max-lease-time 86400;  //这是服务器允许租出地址的最大时长。如果客户机请求了更长的租期,则它将得到一个地址,但其租期仅限于max-lease-time秒。
ddns-update-style none;  //这个选项用于指定DHCP服务器在一个地址被接受或释放时是否应对应尝试更新DNS。在ISC实现中,这一选项是必须指定的。

subnet 192.168.0.0 netmask 255.255.255.0 {  //配置DHCP地址池
  range 192.168.0.120 192.168.0.250;  //指定地址池中可以用来分配给客户机的IP地址范围。在这个范围之间,以及其边界的IP地址将分配给客户机。
  option routers 192.168.0.1;  //定义客户机的默认网关。
}

host mailhost.example.com {  //分配静态IP地址
  hardware ethernet 02:03:04:05:06:07;  //主机的硬件MAC地址(这样DHCP服务器就能够在接到请求时知道请求的主机身份)。
  fixed-address 192.168.0.150;  //指定固定IP地址
}

四、启动DHCP服务

# vi /etc/rc.conf

dhcpd_enable="YES"
dhcpd_ifaces="dc0"  //dc0为DHCP服务器需要监听DHCP客户端请求的接口

# /usr/local/etc/rc.d/isc-dhcpd start

在FreeBSD上搭建NTP时间服务器

电脑的时间放置不理的话过不久就会出现误差。
这个误差会反映在email送信时刻的time stamp上,会反映在你的论坛帖子发表时刻上。至少我遇到过这个问题。
网络上有ntp(network time protocol)服务器,提供当前的时刻。我们可以将本地的时刻与ntp服务器的时刻进行同步。

目的如下:
1,启动时用ntpdate进行时刻修正。
2,启动中,通过ntpd进行时刻校正的同时,将各个客户端电脑的时刻也进行同期校正。
3,如果不能找到ntp服务器,那么就使用local time,同时同步客户。

全世界约有100多个ntp服务器,从下面地址找一个离你最近的
http://www.eecis.udel.edu/~mills/ntp/clock1a.html
我选择了两个
clock.nc.fukuoka-u.ac.jp 133.100.9.2
clock.tl.fukuoka-u.ac.jp 133.100.11.8
步骤:

FreeBSD中有两个标准的ntp程序,其一为ntpdate。
ntpdate通过从ntp服务器获取时刻,调整本地时刻。
# ntpdate clock.nc.fukuoka-u.ac.jp
9 Oct 18:12:23 ntpdate: step time server 133.100.9.2 offset -19.112674
大约有19秒钟的误差

自动设定
# grep ntpdate /etc/defaults/rc.conf >>/etc/rc.conf
# vi /etc/rc.conf
ntpdate_enable="YES" # Run ntpdate to sync time on boot (or NO).
ntpdate_program="ntpdate" # path to ntpdate, if you want a different one.
ntpdate_flags="clock.nc.fukuoka-u.ac.jp" # Flags to ntpdate (if enabled).
重新启动以后就运行了,当然设定没有完,不必急着启动
FreeBSD的另一个标准ntp程序,ntp
ntp程序使的获取ntp时刻的同时,向其他pc提供时刻。

添加文件ntp.conf:

用来作为标准时刻的ntp服务器我选择了两个
clock.nc.fukuoka-u.ac.jp 133.100.9.2
clock.tl.fukuoka-u.ac.jp 133.100.11.8
同时指定复数个服务器也没有问题,系统会自动选择一个可以信赖的。
这里,为避免多余的DNS数据包传递,我们直接指定IP地址。
server行 server 127.127.1.0 为参考本地时刻时用的地址。然后用fudge指定阶层编号为5,降低其优先度。

接着用restrict对每一个IP地址指定相应的规则。
最后,指定波长校正用的drift文档保存地址。关于这个命令行,具体的含义不太清楚。不过如果没有的话,时间校正起来就会比较慢
# vi /etc/ntp.conf
server 133.100.9.2 #clock.nc.fukuoka-u.ac.jp
server 133.100.11.8 #clock.tl.fukuoka-u.ac.jp
server 127.127.1.0
fudge 127.127.0.1 stratum 5
restrict default ignore
restrict 127.0.0.0 mask 255.0.0.0
restrict 192.168.1.0 mask 255.255.255.0 noquery nopeer notrust
restrict 133.100.9.2 noquery
restrict 133.100.11.8 noquery
driftfile /etc/ntpd.drift
启动测试
# ntpd -p /var/run/ntpd.pid
# tail /var/log/messages
Oct 9 16:46:56 chiwawa ntpd[89409]: ntpd 4.1.0-a Thu Apr 3 08:26:24 GMT 2003 (1)
Oct 9 16:46:56 chiwawa ntpd[89409]: kernel time discipline status 2040
……
Oct 9 16:50:10 chiwawa ntpd[89409]: time set -0.189546 s
看到类似的结果就可以了。

运行测试
ntpd的运行用ntpq命令
# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*clock.nc.fukuok .GPS. 1 u 43 64 37 19.067 -6.884 10.339
+clock.tl.fukuok .GPS. 1 u 36 64 35 19.670 -3.259 2.341
LOCAL(0) LOCAL(0) 5 l 45 64 37 0.000 0.000 0.001
启动后到时刻校正完成需要一点时间。*是第一候补,+是第二。
本地时刻校正完成以后就可以为其他PC提供时刻校正服务了。

自动启动的设定
完成以上设定,确认运行无误以后:
# grep ntpd /etc/defaults/rc.conf >>/etc/rc.conf
# vi /etc/rc.conf
xntpd_enable="YES" # Run ntpd Network Time Protocol (or NO).
xntpd_program="ntpd" # path to ntpd, if you want a different one.
xntpd_flags="-p /var/run/ntpd.pid" # Flags to ntpd (if enabled).

往rc.conf追加上面3行内容,并修改。
客户端PC设定:
UNIX OS
# vi /etc/ntp.conf
server [local ntp server IP] prefer
driftfile /etc/ntpd.drift
或者追加下面内容到crontab,这样,每过一个小时0分的时候就自动更新。
# vi /etc/crontab
0 * * * * root ntpdate [ntp server IP] >/dev/null 2>&1
当然,你的主机其实也是一个客户机,这些内容也可以用上。
Windows
精工的网站上有下载软件,不过是日语的
http://www.seiko-p.co.jp/systems/down/time.html
windows2000自带了sntp机能,请自己研究吧。

原文链接: http://www.bsdlover.cn/html/12/n-112.html

FreeBSD NTP服务器配置笔记

一组服务器里面配置一台NTP服务器也是必要的,可以让所有服务器的时间同步。

一、配置NTP服务器

vi /etc/rc.conf

ntpd_enable="YES"

vi /etc/ntp.conf

server www.freebsd.org prefer
server time.windows.com
server 127.127.1.0
fudge 127.127.0.1 stratum 5

restrict default ignore
restrict 127.0.0.0 mask 255.0.0.0
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap

driftfile /var/db/ntp.drift

启动NTP服务:

/etc/rc.d/ntpd start

二、客户端配置

vi /root/scripts/synctime.sh

#!/bin/sh
/usr/sbin/ntpdate 192.168.0.100 #内网NTP服务器地址

chmod +x /root/scripts/synctime.sh
crontab -e

*/30 * * * * cd /root/scripts;./synctime.sh

这样客户端服务器每半小时就会和NTP服务器同步一次。

FreeBSD NFS架设

FreeBSD下的NFS配置

服务                 描述
nfsd NFS,          为来自NFS客户端的 请求服务。
mountd NFS          挂载服务,处理nfsd(8)递交过来的请求。
rpcbind             此服务允许 NFS 客户程序查询正在被 NFS 服务使用的端口。

配置NFS
NFS的配置过程相对简单。这个过程只需要 对/etc/rc.conf文件作一些简单修改。

安装rpc  #cd /usr/ports/math/rpc  make install clean

在NFS服务器这端,确认/etc/rc.conf 文件里头以下开关都配上了:

nfs_server_enable=”YES”
nfs_server_flags=”-u -t -n 4″
rpc_statd_enable=”YES”
rpc_lockd_enable=”YES”
mountd_flags=”-r”

只要NFS服务被置为enable,mountd 就能自动运行。

在客户端一侧,确认下面这个开关出现在 /etc/rc.conf里头:

nfs_client_enable=”YES”
nfs_client_flags=”-n 4″
像nfsd,-n 4告诉nfsiod运行自己的4个拷贝。

二,设置

etc/exports文件指定了哪个文件系统 NFS应该输出(有时被称为“共享”)。 /etc/exports里面每行指定一个输出的文件系统和哪些机器可以访问该文件系统。在指定机器访问权限的同时,访问选项开关也可以被指定。

格式:

[共享的目录] [主机名1或IP1(参数1,参数2)] [主机名2或IP2(参数3,参数4)]

下面是一些NFS共享的常用参数:

ro                      只读访问
rw                      读写访问
sync                    所有数据在请求时写入共享
async                   NFS在写入数据前可以相应请求
secure                  NFS通过1024以下的安全TCP/IP端口发送
insecure                NFS通过1024以上的端口发送
wdelay                  如果多个用户要写入NFS目录,则归组写入(默认)
no_wdelay               如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
hide                    在NFS共享目录中不共享其子目录
no_hide                 共享NFS目录的子目录
subtree_check           如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check        和上面相对,不检查父目录权限
all_squash              共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash           保留共享文件的UID和GID(默认)
root_squash             root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas           root用户具有根目录的完全管理访问权限
anonuid=xxx             指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx             指定NFS服务器/etc/passwd文件中匿名用户的GID

配置文件/etc/exports内容如下:

$ cat /etc/exports
/home/share 192.168.1.15(rw,sync) *(ro)
配置说明: 对192.168.1.15赋予读写权限,其他机器仅有只读权限。

四.客户端配置

1.查看NFS服务器的输出
#showmount -e 192.168.1.1
2.挂载NFS服务器中的共享目录到本地目录/mnt/下
#mount -t nfs 192.168.1.1:/home  /mnt/
3.卸载系统中已挂载的NFS共享目录
#umount /mnt/
4.修改fstab文件让系统启动时自动挂载NFS文件
#vi /etc/fstab
192.168.1.1:/home    /mnt    nfs     defaults    0 0

五、安全性
———
portmap: 111
NFS: 2049
防止使用IP欺骗和RPC重定向技术通过lo回环进行攻击以及限定授权主机:
iptables -A INPUT -p udp -d 127.0.0.1 –dport 111 -j DROP
iptables -A INPUT -p udp -d 127.0.0.1 –dport 2049 -j DROP
iptables -A INPUT -p udp -s 10.0.0.2 –dport 111 -j ACCEPT
iptables -A INPUT -p udp -s 10.0.0.2 –dport 2049 -j ACCEPT

原文链接:http://blog.chinaunix.net/u/27383/showart_499159.html

FreeBSD 8.0 NFS服务器配置笔记

一组服务器系统里面必然存在一台NFS服务器,实现多服务器的文件共享。
NFS服务器:nfs_server
NFS客户端:host1,host2,host3
共享目录:/share

一、NFS服务器配置

vi /etc/rc.conf

rpcbind_enable="YES"
nfs_server_enable="YES"
mountd_flags="-r"

二、客户端配置

vi /etc/rc.conf

nfs_client_enable="YES"

三、文件共享配置

vi /etc/exports

/share  -alldirs    host1 host2 host3

共享设置好了之后,重启NFS服务器以启动NFS服务。

四、客户端挂载NFS文件系统

mount nfs_server:/share /share

或者写进fstab让系统启动时自动挂载文件系统:
vi /etc/fstab

nfs_server:/share   /share  nfs rw  0   0

权限问题:最好让所有服务器上操作NFS共享文件的用户ID相同。

关于NFS的其他问题请参考FreeBSD手册。

原文链接: http://garey.bsdart.org/2010/11/freebsd-8-0-nfs%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%85%8D%E7%BD%AE%E7%AC%94%E8%AE%B0/

FreeBSD Name Server配置

FreeBSD系统自带BIND软件,我们编辑/etc/namedb/named.conf即可设置BIND。

把默认的named.conf作个备份
cp /etc/namedb/named.conf /etc/namedb/named.conf.default

修改named.conf
options选项增加
allow-query     { any; };
recursion       no;        // 不提供递归服务
去掉
listen-on       { 127.0.0.1; };

域名记录增加
zone “bsdartbsdart.org” {
type master;
file “bsdart/bsdart.org.db”;
};

zone “23.51.210.in-addr.arpa” {
type master;
file “bsdart/bsdart.org.rev”;
};

新建bsdart目录
mkdir /etc/namedb/bsdart
chown -R bind:wheel /etc/namedb/bsdart

cd /etc/namedb/bsdart
vi bsdart.org.db
$TTL 3600
bsdart.org.     IN      SOA     dns.bsdart.org. admin.bsdart.org. (
2009070901      ; Serial
10800           ; Refresh
3600            ; Retry
604800          ; Expire
300 )           ; Negative Reponse TTL
; DNS Servers
IN      NS      dns.bsdart.org.
; MX Records
IN      MX 10   mail.bsdart.org.

IN      A       210.51.23.23
; Machine Names
localhost       IN      A       127.0.0.1
mail            IN      A       210.51.23.23
dns             IN      A       210.51.23.23
; Aliases
www             IN      CNAME   bsdart.org.

vi bsdart.org.rev
$TTL 3600
23.51.210.in-addr.arpa. IN SOA dns.bsdart.org. admin.bsdart.org. (
2009070901      ; Serial
10800           ; Refresh
3600            ; Retry
604800          ; Expire
300 )           ; Negative Reponse TTL
IN      NS      dns.bsdart.org.
23      IN      PTR     mail.bsdart.org.

vi /etc/rc.conf
新增
named_enable=”YES”

原文链接:http://garey.bsdart.org/2009/12/freebsd-name-server%E9%85%8D%E7%BD%AE/