FreeBSD-SA-11:01.mountd

—–BEGIN PGP SIGNED MESSAGE—–
Hash: SHA1

=============================================================================
FreeBSD-SA-11:01.mountd                                     Security Advisory
                                                          The FreeBSD Project

Topic:          Network ACL mishandling in mountd(8)

Category:       core
Module:         mountd
Announced:      2011-04-20
Credits:        Ruslan Ermilov
Affects:        All supported versions of FreeBSD
Corrected:      2011-04-20 21:00:24 UTC (RELENG_7, 7.4-STABLE)
                2011-04-20 21:00:24 UTC (RELENG_7_3, 7.3-RELEASE-p5)
                2011-04-20 21:00:24 UTC (RELENG_7_4, 7.4-RELEASE-p1)
                2011-04-20 21:00:24 UTC (RELENG_8, 8.2-STABLE)
                2011-04-20 21:00:24 UTC (RELENG_8_1, 8.1-RELEASE-p3)
                2011-04-20 21:00:24 UTC (RELENG_8_2, 8.2-RELEASE-p1)
CVE Name:       CVE-2011-1739

For general information regarding FreeBSD Security Advisories,
including descriptions of the fields above, security branches, and the
following sections, please visit <URL:http://security.FreeBSD.org/>.

I.   Background

The mountd(8) daemon services NFS mount requests from other client
machines.  When mountd is started, it loads the export host addresses
and options into the kernel using the mount(2) system call.

II.  Problem Description

While parsing the exports(5) table, a network mask in the form of
"-network=netname/prefixlength" results in an incorrect network mask
being computed if the prefix length is not a multiple of 8.

For example, specifying the ACL for an export as "-network 192.0.2.0/23"
would result in a netmask of 255.255.127.0 being used instead of the
correct netmask of 255.255.254.0.

III. Impact

When using a prefix length which is not multiple of 8, access would be
granted to the wrong client systems.

IV.  Workaround

For IPv4-only systems, using the -netmask option instead of CIDR notion
for -network circumvents this bug.

A firewall such as pf(4) can (and probably should) be used to restrict
access to the NFS server.

Systems not providing NFS service, or using a prefix length which is a
multiple of 8 in all ACLs, are not affected.

V.   Solution

Perform one of the following:

1) Upgrade your vulnerable system to 7-STABLE or 8-STABLE, or to the
RELENG_8_2, RELENG_8_1, RELENG_7_4, RELENG_7_3 security branch dated
after the correction date.

2) To update your vulnerable system via a source code patch:

The following patches have been verified to apply to FreeBSD 7.3, 7.4,
8.1 and 8.2 systems.

a) Download the relevant patch from the location below, and verify the
detached PGP signature using your PGP utility.

# fetch http://security.FreeBSD.org/patches/SA-11:01/mountd.patch
# fetch http://security.FreeBSD.org/patches/SA-11:01/mountd.patch.asc

b) Execute the following commands as root:

# cd /usr/src
# patch < /path/to/patch
# cd /usr/src/usr.sbin/mountd
# make obj && make depend && make && make install

3) To update your vulnerable system via a binary patch:

Systems running 7.3-RELEASE, 7.4-RELEASE, 8.1-RELEASE or 8.2-RELEASE on
the i386 or amd64 platforms can be updated via the freebsd-update(8)
utility:

# freebsd-update fetch
# freebsd-update install

VI.  Correction details

The following list contains the revision numbers of each file that was
corrected in FreeBSD.

CVS:

Branch                                                           Revision
  Path
– ————————————————————————-
RELENG_7
  src/usr.sbin/mountd/mountd.c                                   1.94.2.3
RELENG_7_4
  src/UPDATING                                             1.507.2.36.2.3
  src/sys/conf/newvers.sh                                   1.72.2.18.2.6
  src/usr.sbin/mountd/mountd.c                               1.94.2.2.8.2
RELENG_7_3
  src/UPDATING                                             1.507.2.34.2.7
  src/sys/conf/newvers.sh                                   1.72.2.16.2.9
  src/usr.sbin/mountd/mountd.c                               1.94.2.2.6.2
RELENG_8
  src/usr.sbin/mountd/mountd.c                                  1.105.2.3
RELENG_8_2
  src/UPDATING                                             1.632.2.19.2.3
  src/sys/conf/newvers.sh                                   1.83.2.12.2.6
  src/usr.sbin/mountd/mountd.c                              1.105.2.2.4.2
RELENG_8_1
  src/UPDATING                                             1.632.2.14.2.6
  src/sys/conf/newvers.sh                                   1.83.2.10.2.7
  src/usr.sbin/mountd/mountd.c                              1.105.2.2.2.2
– ————————————————————————-

Subversion:

Branch/path                                                      Revision
– ————————————————————————-
stable/7/                                                         r220901
releng/7.3/                                                       r220901
releng/7.4/                                                       r220901
stable/8/                                                         r220901
releng/8.1/                                                       r220901
releng/8.2/                                                       r220901
– ————————————————————————-

VII. References

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-1739

The latest revision of this advisory is available at
http://security.FreeBSD.org/advisories/FreeBSD-SA-11:01.mountd.asc
—–BEGIN PGP SIGNATURE—–
Version: GnuPG v1.4.11 (FreeBSD)

iEYEARECAAYFAk2vSjwACgkQFdaIBMps37J91ACfbj6PbStDVBISUx/jC8/3n0uS
+oUAnj9TdPvwezLnrej/XMahWlHQHK1N
=Hv1Y
—–END PGP SIGNATURE—–

FreeBSD搭建PXE + ISCSI无盘站

FreeBSD搭建PXE + ISCSI无盘站

本示例通过PXE启动ISCSI TARGER磁盘上的WINDOWS XP SP3系统

注: tftp的目录为 /data/tftproot iscsi tagate目录为 /data/iscsi TFTP服务器IP为192.168.1.253 路由器为:192.168.1.254 ISCSI服务器为192.168.1.253

初始化以上目录

test# mkdir -p /data/tftproot
test# mkdir -p /data//data/iscsi

一、安装相关软件

1、配置TFTP

test# ee /etc/inetd.conf

增加

tftp    dgram   udp     wait    root    /usr/libexec/tftpd      tftpd -l -s /data/tftproot
tftp    stream  tcp     wait    root    /usr/libexec/tftpd      tftpd -l -s /data/tftproot

修改 rc.conf

test# ee /etc/rc.conf

增加

inetd_enable="YES"

2、安装isc-dhcp服务

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

配置isc-dhcp

test#cd /usr/local/etc/ 
test#cp dhcpd.conf.sample dhcpd.conf
test#ee dhcpd.conf

增加

option space gpxe;
option gpxe-encap-opts code 175 = encapsulate gpxe;
option gpxe.bus-id code 177 = string;
subnet 192.168.1.0 netmask 255.255.255.0 {
  range dynamic-bootp 192.168.1.40 192.168.1.60;
  option broadcast-address 192.168.1.255;
  option routers 192.168.1.254;
  option root-path "192.168.1.253:/"; #TFTP的下载地址,这里主要为了下载一些初始化文件如 boot.kpxe和boot.gpxe文件
  next-server 192.168.1.253; #此为TFTP的服务器地址,如果不写,客户端就会出现tftp://0.0.0.0/xxx的下载地址
  if not exists gpxe.bus-id {
  filename "boot.kpxe"; #boot.kpxe是带带ISCSI驱动的启动文件,从http://www.rom-o-matic.net/gpxe/gpxe-1.0.1/contrib/rom-o-matic/下载
  }else{
  filename "boot.gpxe";#启动脚本
  }
  server-name "test";
  server-identifier 192.168.1.253;}

在/etc/rc.conf 增加

dhcpd_enable="YES"
dhcpd_ifaces="bge0" #bge0为你使用的网卡,我这里是bge0,使用ifconfig 来查找

3、安装iscsi服务 具本教程可以查看http://people.freebsd.org/~rse/iscsi/iscsi.txt

这里要注意的是生成的iscsi的文件不要超过4G,因为gpxe暂时只支持到4G以下的分区

修改 istgt.conf

ee /usr/local/etc/istgt/istgt.conf

[Global]
  Comment "Global section"
  NodeBase "192.168.1.253"
  PidFile /var/run/istgt.pid
  AuthFile /usr/local/etc/istgt/auth.conf
  #文件存放的目录我们这里为/data/iscsi
  MediaDirectory /data/iscsi
  LogFacility "local7"
  Timeout 30
  NopInInterval 20
  DiscoveryAuthMethod Auto
  MaxSessions 16
  MaxConnections 6
  MaxR2T 32
  MaxOutstandingR2T 16
  DefaultTime2Wait 2
  DefaultTime2Retain 60
  FirstBurstLength 262144
  MaxBurstLength 1048576
  MaxRecvDataSegmentLength 262144
  InitialR2T Yes
  ImmediateData Yes
  DataPDUInOrder Yes
  DataSequenceInOrder Yes
  ErrorRecoveryLevel 0
[UnitControl]
  Comment "Internal Logical Unit Controller"
  AuthMethod CHAP Mutual
  AuthGroup AuthGroup10000
  Portal UC1 127.0.0.1:3261
  Netmask 127.0.0.1
[PortalGroup1]
  Comment "ANY IP"
  Portal DA1 0.0.0.0:3260
[InitiatorGroup1]
  Comment "Initiator Group1"
  InitiatorName "ALL"
  Netmask 192.168.1.0/24
[LogicalUnit1]
  Comment "OS VM XP"
  #TargetName 的内容就是gPxe后面用到指令的 iscsi:192.168.1.253::::192.168.1.253:vmwinxp 一至
  TargetName vmwinxp
  TargetAlias "VM WIN XP"
  Mapping PortalGroup1 InitiatorGroup1
  AuthMethod None
  AuthGroup AuthGroup1
  UseDigest Auto
  UnitType Disk
  LUN0 Storage /data/iscsi/vmwinxp 3GB

二、配置相关文件

1、在/data/tftpboot目录下创建boot.gpxe文件,内容如下

#!gpxe
sanboot iscsi:192.168.1.253::::192.168.1.253:vmwinxp

第一个192.168.1.253表示ISCSI服务所在的服务器
第二个192.168.1.253其实我这里取巧了,为了实验成功,避免使用了Initiator node name

2、从http://www.rom-o-matic.net/gpxe/gpxe-1.0.1/contrib/rom-o-matic/下载kpxe

此网页里有多个选择,我们选择kpxe,并选择undi,然后[get image]

把下载的文件改名成boot.gpxe上传到/data/tftproot目录

3、生成/data/iscsi/vmwinxp文件(3G)

test# dd if=/dev/zero of=/data/iscsi/vmwinxp bs=512 count=6291456

每块512个字节,共6291456块,合计3G

三、使用vm搭建一个XP

使用VM创建一个3G大小空间的虚拟机,并正常安装XP

安装完后,需要在XP上再加装 Initiator-2.08-boot-build3825-x86chk.exe (从微软官网上下载,记得是chk不是fre)

再加装sanbootconf.msi,从http://etherboot.org下载

安装完后,去掉的VM的硬盘,从网络启动就可以了

原文链接:http://wiki.freebsdchina.org/doc/pxe/gpxe/iscsi

在GPT盘的ZFS上安装FreeBSD8

在GPT盘的ZFS上安装FreeBSD8

本文参考了Installing FreeBSD Root on ZFS using GPT

通过DVD或者Memstick启动,选择Fixit。

硬盘gpt分区

创建gpt盘

gpart create -s gpt ad0

创建引导区

gpart add -s 64K -t freebsd-boot ad0

创建swap分区(标记label,避免将来硬盘接口改变导致无法识别)

gpart add -s 8G -t freebsd-swap -l swap0 ad0

创建用于zfs的分区

gpart add -t freebsd-zfs ad0

写入freebsd的zfs引导

gpart bootcode -b /mnt2/boot/pmbr -p /mnt2/boot/gptzfsboot -i 1 ad0

创建zpool

加载zfs模块

kldload /mnt2/boot/kernel/opensolaris.ko
kldload /mnt2/boot/kernel/zfs.ko

创建zpool

mkdir /boot/zfs
zpool create zroot ad0p3
zpool set bootfs=zroot zroot

创建zfs分区(计划通过md加载/tmp,所以在这里没有建立/tmp)

zfs create zroot/var
zfs create zroot/usr
zfs create zroot/home

安装系统

export DESTDIR="/zroot"
cd /dist/8.*
cd base && ./install.sh
cd ../lib32 && ./install.sh
cd ../manpages && ./install.sh
cd ../src && ./install.sh all
cd ../kernels && ./install.sh generic
cp -Rlpv /zroot/boot/GENERIC/* /zroot/boot/kernel/

配置基础系统和zfs引导配置

chroot /zroot

基础配置文件

/etc/src.conf

LOADER_ZFS_SUPPORT=YES

/boot/loader.conf

zfs_load="YES"
vfs.root.mountfrom="zfs:zroot"
vfs.root.mountfrom.options="rw"
vfs.zfs.prefetch_disable=0

/etc/rc.conf

hostname="gptzfsboot.freebsd.org"
defaultrouter="10.0.0.1"
ifconfig_re0="inet 10.0.0.1 netmask 255.255.255.0"
tmpmfs="YES"
tmpsize="512M"
zfs_enable="YES"

/etc/resolv.conf

nameserver 8.8.8.8

/etc/fstab

/dev/gpt/swap0 none swap sw 0 0

编译安装支持zfs的bootloader

mount -t devfs devfs /dev
export DESTDIR=""
cd /usr/src/sys/boot/
make obj && make depend && make
cd i386/loader
make install

基础的设置命令

passwd

tzsetup

cd /etc/mail && make aliases

退出chroot

umount /dev
exit

完成安装

cp /boot/zfs/zpool.cache /zroot/boot/zfs/
export LD_LIBRARY_PATH=/mnt2/lib
zfs unmount -a
zfs set mountpoint=legacy zroot
zfs set mountpoint=/usr zroot/usr
zfs set mountpoint=/var zroot/var
zfs set mountpoint=/home zroot/home
exit

原文链接:http://wiki.freebsdchina.org/doc/z/8_gpt_zfs

FreeBSD下安装LibreOffice

FreeBSD下安装LibreOffice

LibreOffice安装已经不需要依赖JDK了,所以有没有JDK没什么关系 软件比较大所以最好在有足够时间的情况下执行,本人曾因为中断编译导致出错,没找到解决办法,最后重新开始了。

安装

安装 OpenOffice.org

#cd /usr/ports/editors/libreoffice/ && make install clean

注意:如需简体中文版请加上LOCALIZED_LANG=zh-CN

#make LOCALIZED_LANG=zh-CN install clean

包括的组件

LibreOffice 3.3 Base
使用 Base 管理数据库并创建查询和报表,以对信息进行跟踪和管理。

LibreOffice 3.3 Calc
使用 Calc 进行计算、分析信息以及管理电子表格中的列表。

LibreOffice 3.3 Draw
使用 Draw 创建并编辑图形、流程图和徽标。

LibreOffice 3.3 Impress
使用 Impress 创建并编辑幻灯片、会议和网页中使用的演示文稿。

LibreOffice 3.3 Math
使用 Math 创建并编辑科学公式和方程式。

LibreOffice 3.3 Writer
使用 Writer 创建并编辑信函、报表、文档和网页中的文本和图形。

包安装和中文化

FreeBSD 8.2-RELEASE已经包含libreoffice的编译包,所以升级系统之后可以直接

#pkg_add -r libreoffice

省去了大量的编译时间(人生苦短)。不过这个编译包不含中文语言文件。

经实践可以采用Linux的中文语言包来支持中文化。 在这里http://download.documentfoundation.org/libreoffice/stable/3.3.0/rpm/

根据i386/amd64平台分别选择x86/x86_64。这里以amd64为例,下载

http://download.documentfoundation.org/libreoffice/stable/3.3.0/rpm/x86_64/LibO_3.3.0_Linux_x86-64_helppack-rpm_zh-CN.tar.gz

执行以下命令:

#tar -xvf LibO_3.3.0_Linux_x86-64_helppack-rpm_zh-CN.tar.gz
#cd LibO_3.3.0rc4_Linux_x86-64_langpack-rpm_zh-CN/RPMS/
#mkdir tmp
#cd tmp
#foreach f (`ls ../*rpm`)
foreach? rpm2cpio $f | cpio -i –make-directories
foreach? end
#cp -R opt/libreoffice/* /usr/local/lib/libreoffice/

打开你的libreoffice,啊,多么熟悉的界面!好好享受人生吧……

原文链接:http://wiki.freebsdchina.org/software/l/libreoffice

其它基于FreeBSD的各类BSD发行版

名称 网址 简述
PC-BSD http://www.pcbsd.org/ 专注于桌面,KDE 环境。
GhostBSD http://www.ghostbsd.org/ 专注于桌面,Gnome 环境。
DragonFly BSD http://www.dragonflybsd.org/ FreeBSD 的分支版本。
FreeNAS http://freenas.org/ 基于 FreeBSD 的开源 NAS 系统。
VirtualBSD http://www.virtualbsd.info/ 构建于 VMware 中的 FreeBSD 发行版,也可安装到硬盘,专注桌面,使用 XFCE4 环境,主要是为了让你不用安装就可马上体验 FreeBSD 。
FreeSBIE http://www.freesbie.org/ FreeBSD Live CD
PFsense http://www.pfsense.com/ 基于 FreeBSD 构建的防火墙系统。
m0n0wall http://m0n0.ch/wall/ 基于 FreeBSD 构建的防火墙系统。
TinyBSD http://www.tinybsd.org/tinybsd 方便开发嵌入式系统的 FreeBSD 分支。
MiniBSD https://www.minibsd.org/  
FreeBSD LiveCD http://livecd.sourceforge.net/  
MaheshaBSD http://www.freebsd.nfo.sk/maheshaeng.htm 基于 FreeBSD 的 Unix 发行版,a (LiveCD/DVD/USB) modular toolkit!
DesktopBSD http://desktopbsd.net/ 基于 FreeBSD 的桌面 BSD 发行版,KDE 环境。
MirOS http://www.mirbsd.org MirOS的重点是制作一种简洁和稳定的服务器 操作系统

 

原文链接:http://wiki.freebsdchina.org/os/other

FreeBSD使用固定设备节点名操作设备

使用固定设备节点名操作设备

eric.siroh(AT)gmail.com

FreeBSD-6之后,采用devfs管理设备节点,设备名称在设备联机时动态创建,增加了灵活性。但也带来另一些问题:一些外部设备,如USB、PCCard等设备并不总是在开机之前就连接到计算机,如果存在相同类型的设备,这些设备的在/dev的节点名称会因为设备连接到计算机的先后顺序而发生变化,这会给一些应用程序的设置造成一些不便。然而,正是因为devfs的灵活性,也带来很好的方法来支持这些外部设备使用固定设备节点名称。

这里通过两台USB接口打印机EPSON Stylus CX3700、Brother FAX-2820的设置来说明这一方法。

查看devfs基本配置

首先,查看/etc/devd.conf文件,确定有关的基本配置情况

#more /etc/devd.conf

options {
   # Each directory directive adds a directory the list of directories
   # that we scan for files.  Files are read-in in the order that they
   # are returned from readdir(3).  The rule-sets are combined to
   # create a DFA that’s used to match events to actions.
   directory "/etc/devd";
   directory "/usr/local/etc/devd";
   pid-file "/var/run/devd.pid";

   # Setup some shorthand for regex that we use later in the file.
   #XXX Yes, these are gross — imp
   set scsi-controller-regex
      "(aac|adv|adw|aha|ahb|ahc|ahd|aic|amd|amr|asr|bt|ciss|ct|dpt|\
      esp|ida|iir|ips|isp|mlx|mly|mpt|ncr|ncv|nsp|stg|sym|trm|wds)\
      [0-9]+";
};

通过这两行:

   directory "/etc/devd";
   directory "/usr/local/etc/devd";

得知用户定制配置文件目录为/etc/devd,/usr/local/etc/devd。如果没有相应的目录,自行建立就可以了。当然也可以自行修改,不过不建议修改。

获得设备信息

在编写配置文件之前,需要得到设备的必要参数。可以通过在前台运行调试模式的devd来查看。现在不要连接设备,运行

#/etc/rc.d/devd stop
#/sbin/devd -Dd

屏幕上会出现一些信息,表明devd已经运行了。这时把设备连接到计算机,然后再拔掉设备。这个过程中屏幕会有很多输出,只需要查看以Processing event开头信息。以下两行示例是U盘的插拔发生的信息。

Processing event ‘+umass0 vendor=0x1043 product=0x8012 devclass=0x00 devsubclass=0x00 release=0x0100 sernum="" intclass=0x08 intsubclass=0x06 at port=1 interface=0 vendor=0x1043 product=0x8012 devclass=0x00 devsubclass=0x00 release=0x0100 sernum="" intclass=0x08 intsubclass=0x06 on uhub1’
Processing event ‘-umass0 vendor=0x1043 product=0x8012 devclass=0x00 devsubclass=0x00 release=0x0100 sernum="" intclass=0x08 intsubclass=0x06 at port=1 interface=0 vendor=0x1043 product=0x8012 devclass=0x00 devsubclass=0x00 release=0x0100 sernum="" intclass=0x08 intsubclass=0x06 on uhub1’

umass0是devfs为U盘在/dev下自动生成的设备节点,+umass0表示umass0连接上计算机了,-umass0表示umass0设备被拔出。

我们需要得到设备信息主要是vendor,product,sernum三个参数。vendor是制造商的代码,product是设备型号代码,sernum是设备的序列好,这三个参数基本上应该可以确定唯一一台设备。

如果没有多于一台同一厂家同一型号(或同一系列,有点厂家设备虽然标识的型号不同,但是product值却是一样的)的设备,实际应用中vendor和product也就可以确定不同的设备了,这里还是使用sernum来增加确定性。在上面的示例中sernum为空,说明有的U盘没有序列号,没有序列号的U盘,不能用这三个参数来唯一确定。对于U盘可以通过glabel加标签的方法标识不同的U盘,会更方便一些。

获得必要的设备信息之后,就可以在控制台按Ctrl+C退出devd进程。

本例当中的两台USB打印机通过上述方法得到有关参数分别如下:

EPSON Stylus CX3700   product 0x0818   vendor 0x04b8   sernum L34020604060324210
Brother FAX-2820      product 0x0187   vendor 0x04f9   sernum 000H5J658204

编写配置文件

得到上述的这些信息之后,就可以动手编写配置文件了,配置文件应该保存在/etc/devd.conf文件中指定的目录下,本例中为/etc/devd/ulpt.conf,内容如下:

# EPSON Stylus CX3700 printer
# product  0x0818
# vendor   0x04b8
# sernum   L34020604060324210
attach 100 {                                              # 定义设备连接时的动作。100为优先级,用来控制
                                                          # 配置文件中该设备其他可能动作的先后次序
   device-name "ulpt[0-9]+";                              # 检测设备名称
   match "product"      "0x0818";                         # 检测product
   match "vendor"       "0x04b8";                         # 检测vendor
   match "sernum"       "L34020604060324210";             # 检测sernum
   action   "/bin/ln -sf /dev/$device-name /dev/epPRN";   # 如果该设备符合上面三个条件,
                                                          # 那么就在创建一个指向实际设备名的指定名称连接
};

# Brother FAX-2820 printer
# product  0x0187
# vendor   0x04f9
# sernum   000H5J658204

attach 100 {
   match "product"      "0x0187";
   match "vendor"       "0x04f9";
   match "sernum"       "000H5J658204";
   action   "/bin/ln -sf /dev/$device-name /dev/brPRN";
};

# For detach USB printer, For 6.x, 7.x
detach 100 {                                              # 定义设备拔出时的动作
   device-name "ulpt[0-9]+";
                                                          # 当设备拔除时,删除相应的连接
   action   "/bin/rm /dev/`/bin/ls -l /dev | /usr/bin/awk ‘/^l.*$device-name\$/{print \$9}’`";
};

在上面的示例文件生效后,当EPSON Stylus CX3700联机时,devd服务进程就会根据配置文件指定的条件,创建一个指向自动分配给这个打印机的节点的名为/dev/epPRN的连接。对于Brother FAX-2820,则创建/dev/brPRN的连接。

FreeBSD 8.x 以后,devd实现了在设备拔除时也能给出product、vendor、sernum等信息,这样拔除设备时删除连接的方式就不需要写一大串天书一样的代码(这样的代码用来炫耀还是不错的;P)

# For 8.x or later
detach 100 {
   match "product"      "0x0187";
   match "vendor"       "0x04f9";
   match "sernum"       "000H5J658204";
   action   "/bin/rm -f /dev/brPRN";
};

这样,无论两台是单独联机还是同时联机,也不管两台打印机联机的先后次序,/dev/epPRN总是指向为EPSON Stylus CX3700创建的设备节点,而/dev/brPRN总是指向为Brother FAX-2820创建的设备节点。

保存配置文件后,重新启动devd服务,配置就可以生效了。

#/etc/rc.d/devd start

如果没有生效,再次前台运行调试模式的devd来查看有关信息排除错误。

应用程序配置

经过这样的设置,在CUPS配置时就不用为设备节点名称不固定而头疼了,配置EPSON Stylus CX3700时,打印机URI使用usb:/dev/epPRN,而Brother FAX-2820则使用usb:/dev/brPRN。其他热插拔设备应当可以参照上述方法设置。

原文链接:http://wiki.freebsdchina.org/doc/s/devfs

FreeBSD 8.2-RELEASE发布了

FreeBSD 8.2-RELEASE已正式发布。这是 8-STABLE 分支上的第三个发布版本,包含了在 FreeBSD 8.1 基础上的功能改进以及一些新特性。比较重要的新增或改良包括:

– 改进了 FreeBSD/amd64 的 Xen HVM 支持,以及 FreeBSD/i386 的 Xen PV 支持
– ZFS 磁盘格式更新到了版本 15
– 新增了用于支持 Intel AESNI 加密指令集的 aesni(4) 驱动
– 更新了 BIND 和 OpenSSL
– Gnome 更新至 2.32.1
– KDE 更新至 4.5.5
– 其他各类改进和bug修正

完整的新增功能列表、已知问题,请参阅发行版本说明和勘误:

http://www.FreeBSD.org/releases/8.2R/relnotes.html http://www.FreeBSD.org/releases/8.2R/errata.html
BitTorrent
———-

8.2-RELEASE ISO 可以通过 BitTorrent 下载。Torrent文件可以在下列网址找到:

http://torrents.freebsd.org:8080/

支持
——-

FreeBSD 安全团队目前计划支持 FreeBSD 8.2 到 2012 年 2 月 29 日,此支持可能会延长但不会提前结束。关于 FreeBSD 安全团队以及 FreeBSD 不同版本的支持信息请参阅:

http://www.freebsd.org/security/
ISO 映像文件的 Checksum
——————-

MD5 (FreeBSD-8.2-RELEASE-amd64-bootonly.iso) = 2587cb3d466ed19a7dc77624540b0f72
MD5 (FreeBSD-8.2-RELEASE-amd64-disc1.iso) = 8f4e41c9957b22413a94507f0ab36b50
MD5 (FreeBSD-8.2-RELEASE-amd64-disc2.iso) = 833194b58ce0f1732b5611c4acbd0705
MD5 (FreeBSD-8.2-RELEASE-amd64-disc3.iso) = d8a0eef926610db639a896142e63d515
MD5 (FreeBSD-8.2-RELEASE-amd64-dvd1.iso) = 287242976c6593f31049ea454c1a82e9
MD5 (FreeBSD-8.2-RELEASE-amd64-livefs.iso) = 5b9f2715b770521fff4d06fa2cd1670e
MD5 (FreeBSD-8.2-RELEASE-amd64-memstick.img) = a080100906400182eaea808873d1d952
MD5 (FreeBSD-8.2-RELEASE-amd64-dvd1.iso.xz) = 9ae527283ba94ef1f437115425bb5410

MD5 (FreeBSD-8.2-RELEASE-i386-bootonly.iso) = 722edaa1b47b5537a0552cdda3666769
MD5 (FreeBSD-8.2-RELEASE-i386-disc1.iso) = ac6b2485e0e8a9e3c5f3a51803a5af32
MD5 (FreeBSD-8.2-RELEASE-i386-disc2.iso) = 7ca69d1302a9219028faee5abeed923c
MD5 (FreeBSD-8.2-RELEASE-i386-disc3.iso) = 849d4d61ed2a74b6eaa290e593267704
MD5 (FreeBSD-8.2-RELEASE-i386-dvd1.iso) = c48054ce994e41de5a60b51aa8b1fed1
MD5 (FreeBSD-8.2-RELEASE-i386-livefs.iso) = ad5ea10cbfdbdf839502ed5ef4abe4d9
MD5 (FreeBSD-8.2-RELEASE-i386-memstick.img) = 79fbbd5155400aa3e1792267853b2c4a
MD5 (FreeBSD-8.2-RELEASE-i386-dvd1.iso.xz) = f5f6d71e3a5dcc53407c73306f915d9b

MD5 (FreeBSD-8.2-RELEASE-ia64-bootonly.iso) = 0d797d07deccf065c32e3e9245c3975b
MD5 (FreeBSD-8.2-RELEASE-ia64-disc1.iso) = 655f58f0c1dd5baeb69e0df454835f73
MD5 (FreeBSD-8.2-RELEASE-ia64-dvd1.iso) = 87f16857b6c26986543a76a57bc2462f
MD5 (FreeBSD-8.2-RELEASE-ia64-livefs.iso) = eb5a7157d4201055678e5ae2b19e8919

MD5 (FreeBSD-8.2-RELEASE-pc98-bootonly.iso) = 09c3181da67394298f9fd0b967958993
MD5 (FreeBSD-8.2-RELEASE-pc98-disc1.iso) = ba57179f881404a0ded74acae6db59f8
MD5 (FreeBSD-8.2-RELEASE-pc98-livefs.iso) = 7fbc438dbbd2ddb97ce19fe25df167da

MD5 (FreeBSD-8.2-RELEASE-powerpc-bootonly.iso) = 2a26a95337693498d39a6ded219e4786
MD5 (FreeBSD-8.2-RELEASE-powerpc-disc1.iso) = 055fa88e2f6e8442dc5d19202abbbe89
MD5 (FreeBSD-8.2-RELEASE-powerpc-livefs.iso) = 52f57bdf6a80a58c762f3579b5acdcaf

MD5 (FreeBSD-8.2-RELEASE-sparc64-bootonly.iso) = e30c932affe6ef7fd94caa5d77850f48
MD5 (FreeBSD-8.2-RELEASE-sparc64-disc1.iso) = 1957a06bc3dacc2d6c9c7eb7136dbb3e
MD5 (FreeBSD-8.2-RELEASE-sparc64-disc2.iso) = 224219b31c9d1743bfe7033b6b2de60e
MD5 (FreeBSD-8.2-RELEASE-sparc64-disc3.iso) = 3c22ed14f8f934832d0e3a881124bcaa
MD5 (FreeBSD-8.2-RELEASE-sparc64-dvd1.iso) = 2fedb6f5fb8e3958e1e0c55e8ed04875
MD5 (FreeBSD-8.2-RELEASE-sparc64-livefs.iso) = 7c1e8a56a7aff8e3ba21fad794c41978

SHA256 (FreeBSD-8.2-RELEASE-amd64-bootonly.iso) = 60f18defd7775efacb8f8461f321bb1f03c970bc16465530e196532ce50d8aae
SHA256 (FreeBSD-8.2-RELEASE-amd64-disc1.iso) = 009938b49e9b989277fe93aae474b054918acaca5f5919fbabdfcb0b04cd8c60
SHA256 (FreeBSD-8.2-RELEASE-amd64-disc2.iso) = 8bacf3839bb6bdec958c493eea7ce28f195b0ab9f4106d53beac887423b77c6c
SHA256 (FreeBSD-8.2-RELEASE-amd64-disc3.iso) = 3aebb842a84d323017d1224203f674de1340064fe38a191dc4578a422a078ccb
SHA256 (FreeBSD-8.2-RELEASE-amd64-dvd1.iso) = 4e2d31e7aa9ce20fd263dec0388469c0d4ae7cdf54508a466637abeef5081c91
SHA256 (FreeBSD-8.2-RELEASE-amd64-livefs.iso) = f72ff7e9043f200651ca6dff3a4b71ec9447319c6efc419a2f6922a921bdfc68
SHA256 (FreeBSD-8.2-RELEASE-amd64-memstick.img) = 684bccb533067a22fe8b20ef77bd897a100fe109d1189367fa085d2b0cdebcfd
SHA256 (FreeBSD-8.2-RELEASE-amd64-dvd1.iso.xz) = 9925e5c1d9b9dd42bba3104526248a2d6fd8ad20b0700da2c95f050e7bc5613e

SHA256 (FreeBSD-8.2-RELEASE-i386-bootonly.iso) = d2945b63a095dafc38f0816e1d795d0b75648d57542eeb4c490058ec31e6f125
SHA256 (FreeBSD-8.2-RELEASE-i386-disc1.iso) = fbfc3950674b3845a6cf0b74bd175b9ba19475b97bdc8bef23b50344bc33866c
SHA256 (FreeBSD-8.2-RELEASE-i386-disc2.iso) = 20856ca93e9c15242b04b77fbb71de5d9f468705ea4431b22ca083704c26b8af
SHA256 (FreeBSD-8.2-RELEASE-i386-disc3.iso) = be98218cf793ec04f2bf849a13ab9ace00be51dd928d06f7e84158cdb1880349
SHA256 (FreeBSD-8.2-RELEASE-i386-dvd1.iso) = d5f03fef978936adf899d3b049dbf2e7122c053f99b235f53ce7585db0a16e3f
SHA256 (FreeBSD-8.2-RELEASE-i386-livefs.iso) = 7caf4a5ea4ddc0add657e015002be9ba628bf8e1e44d37a1a407942b89f92684
SHA256 (FreeBSD-8.2-RELEASE-i386-memstick.img) = 5b00ad9912379f0b71f7093bb82c9bcc260e6edb8cf4bf7dc68c3d7668836fe6
SHA256 (FreeBSD-8.2-RELEASE-i386-dvd1.iso.xz) = 1e65788cab1f5092842cdbebebfd54d81abad5b8af4064086c9a8420fcf2b1ea

SHA256 (FreeBSD-8.2-RELEASE-ia64-bootonly.iso) = 0aea181141923b6b9931940ae5061386f050366e07336b0271a0a7722c34da2f
SHA256 (FreeBSD-8.2-RELEASE-ia64-disc1.iso) = 6bb36b59cd496f8e2df73a08de88a709f78c1da320c2e478895eba1abade80ef
SHA256 (FreeBSD-8.2-RELEASE-ia64-dvd1.iso) = f8185a786aae30e5b5bed2f0175718795ebdaf792e31117786a8953de7c43f16
SHA256 (FreeBSD-8.2-RELEASE-ia64-livefs.iso) = c6c5002071aa670ca18324a625fcece5b6b71581bc9dc7aed67a6bc971442bcd

SHA256 (FreeBSD-8.2-RELEASE-pc98-bootonly.iso) = 726cbad0107d1deaa26d2d6fd36ad49b4c15181d629c7fc37c32f9bfe4ab6706
SHA256 (FreeBSD-8.2-RELEASE-pc98-disc1.iso) = 9cdcf94cd8ac9a331ae0871daa28d89d471a9f80f4c1a5f9662738bc14102f55
SHA256 (FreeBSD-8.2-RELEASE-pc98-livefs.iso) = a1ffc9d23e686124d89890707513f890716e255690fccf55dd8f007cf6814c6e

SHA256 (FreeBSD-8.2-RELEASE-powerpc-bootonly.iso) = 171ac42483e8ab170f3bfa44f1dea82e50d4ccc5e411743990d5e1b7581fa3a7
SHA256 (FreeBSD-8.2-RELEASE-powerpc-disc1.iso) = 0f1c74e25b81acdaea9f592abcd97dff76f7323c4a7a781f1da048b4676dbe1f
SHA256 (FreeBSD-8.2-RELEASE-powerpc-livefs.iso) = d02f65048502ed3a37a36cc7c856f557c25534c486ff17c7644f9e0135c4f0ba

SHA256 (FreeBSD-8.2-RELEASE-sparc64-bootonly.iso) = 0a02b8895f0d8dec7668442742df0a9093cbc2634c6f3acd6dd6b93f19b4e732
SHA256 (FreeBSD-8.2-RELEASE-sparc64-disc1.iso) = 7ccc7dd1a8cc5580757e916ef7887bc9cdb8b47c28de2d24d03f8a57437561d0
SHA256 (FreeBSD-8.2-RELEASE-sparc64-disc2.iso) = 17eeb491fd0614168ad2cc11098de30d06c45da7cbeba08eec06c84938178294
SHA256 (FreeBSD-8.2-RELEASE-sparc64-disc3.iso) = a4dfdad471288f2d85dfa7eca265954d3e28ada4c3d6a2e064aea4c51ddcee6e
SHA256 (FreeBSD-8.2-RELEASE-sparc64-dvd1.iso) = 526754704252d1e2e681bf758d86edee152c16d8e454f080a20bccccbf39238f
SHA256 (FreeBSD-8.2-RELEASE-sparc64-livefs.iso) = d590dfbabb0007fb037d14082f0d7418d7fc6e37e97e8ed402831feedc20119a

FreeBSD 8.0下安装QQ for Linux

国人的电脑上估计都离不开QQ这东东了,虽说这东东比较霸道,但我们还是在用它。以前非Windows用户是无法直接使用QQ的,现在QQ官方提供了Linux系统支持,但在FreeBSD系统上使用还是比较麻烦的。本文主要介绍FreeBSD 8.0下是如何安装QQ的。

一、开启 Linux 二进制兼容支持

# kldload linux

开机自动开启linux二进制兼容支持

vi /etc/rc.conf

linux_enable="YES"

二、安装Linux运行时库

# cd /usr/ports/emulators/linux_base-f10
# make install distclean

三、安装QQ for Linux

#cd /usr/ports/net-im/qq/ && make install clean

四、配置支持中文输入法(仅测试过FCITX)

#/compat/linux/usr/bin/localedef -i zh_CN -f UTF-8 zh_CN

 

参考资料:http://wiki.freebsdchina.org/software/q/qqforlinux

FreeBSD下安装lighttpd支持php

FreeBSD下安装lighttpd支持php

有不恰当的地方欢迎指正By:ghw(gehaowu@gmail.com)

安装lighttpd

记得在SPAWNFCGI前打勾

[X] SPAWNFCGI  Depend on spawn-fcgi utility
#cd /usr/ports/www/lighttpd
#make config
#make install clean

安装php

模块自己看自己需要

#cd /usr/ports/lang/php5/ && make install clean
#cd /usr/ports/lang/php5-extensions/ && make install clean

配置lighttpd

编辑/usr/local/etc/lighttpd/lighttpd.conf,添加以下内容:

server.modules += ( "mod_fastcgi" )
fastcgi.server = ( ".php" =>
  (( "socket" => "/tmp/php-fastcgi.socket",
    "bin-path" => "/usr/local/bin/php-cgi",
     "min-procs" => 1,
     "max-procs" => 1,
     "max-load-per-proc" => 4,
     "bin-environment" => (
     "PHP_FCGI_CHILDREN" => "2",
    #"PHP_FCGI_CHILDREN" => "64",//这里进程数自己看着办
        "PHP_FCGI_MAX_REQUESTS" => "10000" ),
      "bin-copy-environment" => (
        "PATH", "SHELL", "USER" ),
      "broken-scriptfilename" => "enable",
     "idle-timeout" => 20
  ))
)

设置服务

启动lighttpd

#echo ‘lighttpd_enable="YES"’ >> /etc/rc.conf
#/usr/local/etc/rc.d/lighttpd start

网站跟目录是修改这行

server.document-root = "/usr/local/www/data/"

原文链接:http://wiki.freebsdchina.org/howto/n/php_fastcgi_lighttpd

在FreeBSD上运行PostgreSQL数据库

在 FreeBSD 上运行PostgreSQL数据库

概要

* PostgreSQL是自由的对象-关系数据库服务器(数据库管理系统),在灵活的BSD-风格许可证下发行。它在其他开放源代码数据库系统(比如MySQL和Firebird),和专有系统比如Oracle、Sybase、IBM的DB2和Microsoft SQL Server之外,为用户又提供了一种选择。本文主要整理了在 FreeBSD 上运行PostgreSQL数据库的详细安装过程。

配置FreeBSD内核

  options         SYSVSHM
  options         SYSVSEM
  options         SYSVMSG
  options         SHMMAXPGS=65536
  options         SEMMNI=40
  options         SEMMNS=240
  options         SEMUME=40
  options         SEMMNU=120

从Posts安装PostgreSQL

#cd /usr/ports/databases/postgresql90-server/ && make install

配置PostgreSQL

往rc.conf里增加启动项

postgresql_enable="YES"

初始化数据库

# /usr/local/etc/rc.d/postgresql initdb

终端回显

tomato# /usr/local/etc/rc.d/postgresql initdb
属于此数据库系统的文件宿主为用户 "pgsql".
此用户也必须为服务器进程的宿主.
数据库簇将带有一下 locales 初始化
  COLLATE:  C
  CTYPE:    zh_CN.UTF-8
  MESSAGES: zh_CN.UTF-8
  MONETARY: zh_CN.UTF-8
  NUMERIC:  zh_CN.UTF-8
  TIME:     zh_CN.UTF-8
initdb: 无法为语言环境"zh_CN.UTF-8" 找到合适的编码配置
缺省的文本搜索配置将会被设置到"simple"

创建目录 /usr/local/pgsql/data … 成功
正在创建子目录 … 成功
选择默认最大联接数 (max_connections) … 100
选择默认共享缓冲区大小 (shared_buffers) … 32MB
创建配置文件 … 成功
在 /usr/local/pgsql/data/base/1 中创建 template1 数据库 … 成功
初始化 pg_authid …  成功
初始化dependencies … 成功
创建系统视图 … 成功
正在加载系统对象描述 … 成功
创建字符集转换 … 成功
正在创建字典 … 成功
对内建对象设置权限 … 成功
创建信息模式 … 成功
loading PL/pgSQL server-side language … 成功
清理数据库 template1 … 成功
拷贝 template1 到 template0 … 成功
拷贝 template1 到 template0 … 成功

警告: 为本地连接启动了 "trust" 认证.
你可以通过编辑 pg_hba.conf 更改或你下
次运行 initdb 时使用 -A 选项.

成功. 您现在可以用下面的命令运行数据库服务器:

    /usr/local/bin/postmaster -D /usr/local/pgsql/data
或者
    /usr/local/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

tomato#

运行PostgreSQL服务

# /usr/local/etc/rc.d/postgresql start

允许其他非本地IP链接

vi /usr/local/pgsql/data/postgresql.conf
   listen_addresses = ‘*’

修改用户密码加密方式

vi /usr/local/pgsql/data/pg_hba.conf
    host  all  all  10.0.1.0/24  md5

增加数据库用户

    #su pgsql
    $ createuser -sdrP pgsqldb

安装phpPgAdmin,网页版PGSQL管理工具

    #cd /usr/ports/databases/phppgadmin
    #make install clean
    #ln -s /usr/local/www/phpPgAdmin /usr/local/www/data/

通过http://localhost/phppgadmin访问

原文链接:http://wiki.freebsdchina.org/doc/d/pgsql_running