FreeBSD 5.4 安装笔记(web+ftp+ipfw+ssh) 作者:rendian
时间:2008-08-06 00:14:00 类别:freebsd 安装 作者:zqliangzm
关于稳定性请参考: http://pws.6600.org/icbc/sysinfo/ 系统的详细信息。
0.关于FreeBSD分区 (适合40G-80G )
/ 512Mb
swep 2048Mb
/tmp 1024M
/var 10240Mb (如果数据库不使用默认的路径,大小为:2048Mb 即可)
/usr 10240Mb
/home 剩余全部
1. 系统安装和选择:
是否设置机器SLIP/PPP 网络设备-----NO (不需要,稍后手动配置ADSL)
是否设置机器为网关GATEWAY——NO(我们是web server,不是网关)
是否设置机器为inetd超级服务器和network服务——NO(我们有ssh和pureftpd,不需要inetd)
是否需要设置sshd——YES(我们将通过这种较为安全模式远程控制服务器)
是否设置为anonymous FTP——NO(我们不需要匿名的FTP服务这种用途)
是否设置为NFS SERVER/CLIENT——NO(我们不是这个用途)
是否需要设置system console——NO 默认的挺好,刚开始的学的就不必改了。
是否设置这台系统的time -----YES
选择亚洲---中国---北京时区——按照提示选择即可,会提示你北京时间缩写是"CST"
是否需要LINUX兼容性——YES(或许我会为服务器安装一些LINUX软件,例如CS SERVER )
是否需要配置鼠标——NO(我看不出来作为一个托管在电信的webserver有什么必要配置鼠标)
是否需要添加用户——添加一个吧,根据提示添加即可,用户组写成wheel,以便你可以用这个用户远程登录服务器后su到root进行管理。添加完这个用户之后,会问你要root的密码,输入即可。如果不添加用户,会直接让你设置root的密码。
安装后的PACKAGE和CONTRIBUTION选择
PACKAGE是已经编译好的二进制包,可以直接运行。默认标准安装完之后,作为WEBSERVER,我看了一下也就需要net下的cvsup(在线升级用)和archivers下的unzip(某些zip包可能会用到)这两个包。选中后执行安装,就会把它们装到系统里。
随后进入CONTIBUTION里安装代码。强烈建议各位一定要把src代码全部选中。src下有很多分类,甚至包括game。我自己在学习FREEBSD的时候,编译总是缺这个那个,后来学乖了,把SRC全装了之后,就好了很多,编译时很少提示错误了,而且将来cvsup也有好处。另一个就是ports,不用说,也是要全装的。我在这里,就是选择了src和ports。选中后执行安装,就会把它们安装到系统里了。
调试:ADSL部分 我的卡是:xl0
ee /etc/rc.conf 加入:
#auto adsl by rendian
network_interfaces="xl0 lo0"
gateway_enable="YES"
ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES"
ppp_profile="adsl"
ee /etc/resolv.conf 加入:
domain xpdd.net 我的米
nameserver 202.102.192.68 安徽DNS1
nameserver 202.102.199.68 安徽DNS2
ee /etc/ppp/ppp.conf 加入:
default:
set log phase tun command
enable dns
adsl:
set device PPPoE:xl0
set speed sync
set mru 1492
set mtu 1492
set dial
set login
add default HISADDR
set authname a2838496 我的帐号
set authkey a24444 我的密码
然后,启动ADSL : ppp -background adsl 看看ifconfig 吧.找到了公网IP了。
启用:希望的动态米
cd /root
ee ddns.sh内容!
#!/bin/sh
fetch "http://user:password@members.3322.org/dyndns/update?system=dyndns&hostname=pws.8800.org&wildcard=OFF"
退出!(user,password 请改为自己的)
chmod 744 ddns.sh
**********************************************
然后输入crontab -e (修改cron的命令)
VI 编辑器
**********************************
MAILTO=""
*/5 * * * * /root/ddns.sh
插入以上 !!wq
**********************************
或者用ee去编辑 /var/cron/tabs/root 文件加入上面内容! 然后保存退出。
查看计划任务:
crontab –l
2. 立刻同步你的src源代码和ports代码,然后编译、定制内核
为了加快搜索速度建议修改 make.conf 文件
#ee /etc/make.conf //修改/etc/make.conf文件 设定首先尝试从国内的freebsd镜像站下载软件,在后面加入 :
MASTER_SITE_OVERRIDE=ftp://ftp2.cn.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}
保存退出.
cd /usr/ports/net/cvsup-without-gui
make install clean (速度慢,建议:/stand/sysinstall 的CD或FTP方式安装)
系统安装完后的第一步,是进行CVSUP,立刻同步你的src源代码和ports代码。
cd /usr/src/share/examples/cvsup
ee stable-supfile (编辑升级服务器,建议使用国内的如:cvsup.cn.freebsd.org)
cvsup stable-supfile
cvsup -g -L 2 stable-supfile 同步代码 stable
ee ports-supfile (编辑升级服务器,建议使用国内的如:cvsup.cn.freebsd.org)
cvsup ports-supfile
cvsup -g -L 2 ports-supfile 同步PORTS代码
这个升级过程大约也要30分钟左右。至此,所有的代码升级完毕。
下面开始编译内核
#cd /usr/src
#make buildworld 编译
开始一个30分钟左右的编译过程,如果编译没有什么问题,继续:
#make installworld 安装内核
即可更新系统为最新版,随后就可以重启机器了。Reboot
启动后定制内核:
# cd /usr/src/sys/i386/conf
# mkdir /home/bak
# cp GENERIC /home/bak/ICBCDD
# ln -s /home/bak/ICBCDD (快捷方式)
备份一个内核ICBCDD ,然后编辑ICBCDD(快捷方式),然后再安装定制的ICBCDD
cd /usr/src
make buildkernel KERNCONF=ICBCDD
这个编译过程大概要20分钟,编译完先不要着急install,先备份一下旧内核,以免有意外。
#cd /boot
#cp -R kernel kernel.old
随后安装内核:
cd /usr/src
make installkernel KERNCONF=ICBCDD
3. 安装pure-ftpd软件,使用pure-db 默认已经选择(PAM 就是).
cd /usr/ports/ftp/pure-ftpd
make config (rmconfig) 查看配置 (删除配置)
去掉:BANNER Show pure-ftpd welcome upon session start
make WITH_LANG=simplified-chinese install (加入:简体中文)
make clean
ee /etc/rc.conf 加入:
mysql_enable="YES"
apache2_enable="YES"
pureftpd_enable="YES"
重新启动
修改pure-ftpd.conf配置文件,增加pureftpd.pdb认证.
cd /usr/local/etc
cp pure-ftpd.conf.sample pure-ftpd.conf
ee /usr/local/etc/pure-ftpd.conf
找到# PureDB /etc/pureftpd.pdb 把#掉支掉,路径是/usr/local/etc/pureftpd.pdb
其他需要修改的参数如下:
禁止匿名登录:
NoAnonymous yes
允许上传人修改文件名:
NoRename no
允许登录用户使用chmod指令
NoChmod no (324行)
使用者可刪除文件
KeepAllFiles no (330行)
自动建立帐户的home dir
CreateHomeDir yes (336行) 一定要改,否则无法自动创建目录。
# 限制每个用户到自己的根目录
ChrootEveryone yes
好了。就这么简单。就和系统帐号完全分离了。
如果你想即系统帐号又和puredb 帐号同时使用请在pure-ftpd.conf 打开:
UnixAuthentication yes
自启动把/usr/local/etc/rc.d/pure-ftpd.sh.sample 改名去掉.sample 即可!
启动服务器:/usr/local/etc/rc.d/pure-ftpd.sh start
下面建一个pure-ftpd的用户,可以使用FTP了.
#pure-pw useradd 用户名 -u 用户身份 -g 用户组 -D 登陆目录 –m 更新数据库
/usr/local/bin/pure-pw useradd rendian -u 800 -g 800 -D /home/ftp/rendian -m
输入密码: (2次)
如果修改rendian 为:
修改 rendian 用户的down: 200K,up:100K,空间大小1024M 同一IP 2个线程
pure-pw usermod rendian -f pureftpd.passwd -u 800 -g 800 -t 1000 -T 1000 -N 1024 -y 2 –m
创建pureftpd.pdb数据库:
/usr/local/bin/pure-pw mkdb /usr/local/etc/pureftpd.pdb
====================================================================
查看在线用户:pure-ftpwho
pure-pw 参数如下:
*******************************************************************
pure-pw useradd <login用户> [-f <passwd file密码文件>] -u <uid用户ID> [-g <gid组ID>]
-D/-d <home directory D锁定目录,d不锁定> [-c <gecos>]
[-t <download bandwidth下载速度K>] [-T <upload bandwidth上传速度K>]
[-n <max number of files最大文件数目>] [-N <max Mbytes空间大小M>]
[-q <upload ratio>] [-Q <download ratio>]
[-r <allow client ip>/<mask>] [-R <deny client ip>/<mask>]
[-i <allow local ip>/<mask>] [-I <deny local ip>/<mask>]
[-y <max number of concurrent sessions同一IP的线程>]
[-z <hhmm>-<hhmm>时间段] [-m升级数据库立即生效]
pure-pw usermod <login> -f <passwd file> -u <uid> [-g <gid>]
-D/-d <home directory> -[c <gecos>]
[-t <download bandwidth>] [-T <upload bandwidth>]
[-n <max number of files>] [-N <max Mbytes>]
[-q <upload ratio>] [-Q <download ratio>]
[-r <allow client ip>/<mask>] [-R <deny client ip>/<mask>]
[-i <allow local ip>/<mask>] [-I <deny local ip>/<mask>]
[-y <max number of concurrent sessions>]
[-z <hhmm>-<hhmm>] [-m]
pure-pw userdel <login> [-f <passwd file>] [-m]
pure-pw passwd <login> [-f <passwd file>] [-m]
pure-pw show <login> [-f <passwd file>]
pure-pw mkdb [<puredb database file> [-f <passwd file>]]
pure-pw list [-f <passwd file>]
-d <home directory> : chroot user (recommended)
-D <home directory> : don't chroot user
-<option> '' : set this option to unlimited
-m : also update the /usr/local/etc/pureftpd.pdb database
For a 1:10 ratio, use -q 1 -Q 10
To allow access only between 9 am and 6 pm, use -z 0900-1800
0.关于FreeBSD分区 (适合40G-80G )
/ 512Mb
swep 2048Mb
/tmp 1024M
/var 10240Mb (如果数据库不使用默认的路径,大小为:2048Mb 即可)
/usr 10240Mb
/home 剩余全部
1. 系统安装和选择:
是否设置机器SLIP/PPP 网络设备-----NO (不需要,稍后手动配置ADSL)
是否设置机器为网关GATEWAY——NO(我们是web server,不是网关)
是否设置机器为inetd超级服务器和network服务——NO(我们有ssh和pureftpd,不需要inetd)
是否需要设置sshd——YES(我们将通过这种较为安全模式远程控制服务器)
是否设置为anonymous FTP——NO(我们不需要匿名的FTP服务这种用途)
是否设置为NFS SERVER/CLIENT——NO(我们不是这个用途)
是否需要设置system console——NO 默认的挺好,刚开始的学的就不必改了。
是否设置这台系统的time -----YES
选择亚洲---中国---北京时区——按照提示选择即可,会提示你北京时间缩写是"CST"
是否需要LINUX兼容性——YES(或许我会为服务器安装一些LINUX软件,例如CS SERVER )
是否需要配置鼠标——NO(我看不出来作为一个托管在电信的webserver有什么必要配置鼠标)
是否需要添加用户——添加一个吧,根据提示添加即可,用户组写成wheel,以便你可以用这个用户远程登录服务器后su到root进行管理。添加完这个用户之后,会问你要root的密码,输入即可。如果不添加用户,会直接让你设置root的密码。
安装后的PACKAGE和CONTRIBUTION选择
PACKAGE是已经编译好的二进制包,可以直接运行。默认标准安装完之后,作为WEBSERVER,我看了一下也就需要net下的cvsup(在线升级用)和archivers下的unzip(某些zip包可能会用到)这两个包。选中后执行安装,就会把它们装到系统里。
随后进入CONTIBUTION里安装代码。强烈建议各位一定要把src代码全部选中。src下有很多分类,甚至包括game。我自己在学习FREEBSD的时候,编译总是缺这个那个,后来学乖了,把SRC全装了之后,就好了很多,编译时很少提示错误了,而且将来cvsup也有好处。另一个就是ports,不用说,也是要全装的。我在这里,就是选择了src和ports。选中后执行安装,就会把它们安装到系统里了。
调试:ADSL部分 我的卡是:xl0
ee /etc/rc.conf 加入:
#auto adsl by rendian
network_interfaces="xl0 lo0"
gateway_enable="YES"
ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES"
ppp_profile="adsl"
ee /etc/resolv.conf 加入:
domain xpdd.net 我的米
nameserver 202.102.192.68 安徽DNS1
nameserver 202.102.199.68 安徽DNS2
ee /etc/ppp/ppp.conf 加入:
default:
set log phase tun command
enable dns
adsl:
set device PPPoE:xl0
set speed sync
set mru 1492
set mtu 1492
set dial
set login
add default HISADDR
set authname a2838496 我的帐号
set authkey a24444 我的密码
然后,启动ADSL : ppp -background adsl 看看ifconfig 吧.找到了公网IP了。
启用:希望的动态米
cd /root
ee ddns.sh内容!
#!/bin/sh
fetch "http://user:password@members.3322.org/dyndns/update?system=dyndns&hostname=pws.8800.org&wildcard=OFF"
退出!(user,password 请改为自己的)
chmod 744 ddns.sh
**********************************************
然后输入crontab -e (修改cron的命令)
VI 编辑器
**********************************
MAILTO=""
*/5 * * * * /root/ddns.sh
插入以上 !!wq
**********************************
或者用ee去编辑 /var/cron/tabs/root 文件加入上面内容! 然后保存退出。
查看计划任务:
crontab –l
2. 立刻同步你的src源代码和ports代码,然后编译、定制内核
为了加快搜索速度建议修改 make.conf 文件
#ee /etc/make.conf //修改/etc/make.conf文件 设定首先尝试从国内的freebsd镜像站下载软件,在后面加入 :
MASTER_SITE_OVERRIDE=ftp://ftp2.cn.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}
保存退出.
cd /usr/ports/net/cvsup-without-gui
make install clean (速度慢,建议:/stand/sysinstall 的CD或FTP方式安装)
系统安装完后的第一步,是进行CVSUP,立刻同步你的src源代码和ports代码。
cd /usr/src/share/examples/cvsup
ee stable-supfile (编辑升级服务器,建议使用国内的如:cvsup.cn.freebsd.org)
cvsup stable-supfile
cvsup -g -L 2 stable-supfile 同步代码 stable
ee ports-supfile (编辑升级服务器,建议使用国内的如:cvsup.cn.freebsd.org)
cvsup ports-supfile
cvsup -g -L 2 ports-supfile 同步PORTS代码
这个升级过程大约也要30分钟左右。至此,所有的代码升级完毕。
下面开始编译内核
#cd /usr/src
#make buildworld 编译
开始一个30分钟左右的编译过程,如果编译没有什么问题,继续:
#make installworld 安装内核
即可更新系统为最新版,随后就可以重启机器了。Reboot
启动后定制内核:
# cd /usr/src/sys/i386/conf
# mkdir /home/bak
# cp GENERIC /home/bak/ICBCDD
# ln -s /home/bak/ICBCDD (快捷方式)
备份一个内核ICBCDD ,然后编辑ICBCDD(快捷方式),然后再安装定制的ICBCDD
cd /usr/src
make buildkernel KERNCONF=ICBCDD
这个编译过程大概要20分钟,编译完先不要着急install,先备份一下旧内核,以免有意外。
#cd /boot
#cp -R kernel kernel.old
随后安装内核:
cd /usr/src
make installkernel KERNCONF=ICBCDD
3. 安装pure-ftpd软件,使用pure-db 默认已经选择(PAM 就是).
cd /usr/ports/ftp/pure-ftpd
make config (rmconfig) 查看配置 (删除配置)
去掉:BANNER Show pure-ftpd welcome upon session start
make WITH_LANG=simplified-chinese install (加入:简体中文)
make clean
ee /etc/rc.conf 加入:
mysql_enable="YES"
apache2_enable="YES"
pureftpd_enable="YES"
重新启动
修改pure-ftpd.conf配置文件,增加pureftpd.pdb认证.
cd /usr/local/etc
cp pure-ftpd.conf.sample pure-ftpd.conf
ee /usr/local/etc/pure-ftpd.conf
找到# PureDB /etc/pureftpd.pdb 把#掉支掉,路径是/usr/local/etc/pureftpd.pdb
其他需要修改的参数如下:
禁止匿名登录:
NoAnonymous yes
允许上传人修改文件名:
NoRename no
允许登录用户使用chmod指令
NoChmod no (324行)
使用者可刪除文件
KeepAllFiles no (330行)
自动建立帐户的home dir
CreateHomeDir yes (336行) 一定要改,否则无法自动创建目录。
# 限制每个用户到自己的根目录
ChrootEveryone yes
好了。就这么简单。就和系统帐号完全分离了。
如果你想即系统帐号又和puredb 帐号同时使用请在pure-ftpd.conf 打开:
UnixAuthentication yes
自启动把/usr/local/etc/rc.d/pure-ftpd.sh.sample 改名去掉.sample 即可!
启动服务器:/usr/local/etc/rc.d/pure-ftpd.sh start
下面建一个pure-ftpd的用户,可以使用FTP了.
#pure-pw useradd 用户名 -u 用户身份 -g 用户组 -D 登陆目录 –m 更新数据库
/usr/local/bin/pure-pw useradd rendian -u 800 -g 800 -D /home/ftp/rendian -m
输入密码: (2次)
如果修改rendian 为:
修改 rendian 用户的down: 200K,up:100K,空间大小1024M 同一IP 2个线程
pure-pw usermod rendian -f pureftpd.passwd -u 800 -g 800 -t 1000 -T 1000 -N 1024 -y 2 –m
创建pureftpd.pdb数据库:
/usr/local/bin/pure-pw mkdb /usr/local/etc/pureftpd.pdb
====================================================================
查看在线用户:pure-ftpwho
pure-pw 参数如下:
*******************************************************************
pure-pw useradd <login用户> [-f <passwd file密码文件>] -u <uid用户ID> [-g <gid组ID>]
-D/-d <home directory D锁定目录,d不锁定> [-c <gecos>]
[-t <download bandwidth下载速度K>] [-T <upload bandwidth上传速度K>]
[-n <max number of files最大文件数目>] [-N <max Mbytes空间大小M>]
[-q <upload ratio>] [-Q <download ratio>]
[-r <allow client ip>/<mask>] [-R <deny client ip>/<mask>]
[-i <allow local ip>/<mask>] [-I <deny local ip>/<mask>]
[-y <max number of concurrent sessions同一IP的线程>]
[-z <hhmm>-<hhmm>时间段] [-m升级数据库立即生效]
pure-pw usermod <login> -f <passwd file> -u <uid> [-g <gid>]
-D/-d <home directory> -[c <gecos>]
[-t <download bandwidth>] [-T <upload bandwidth>]
[-n <max number of files>] [-N <max Mbytes>]
[-q <upload ratio>] [-Q <download ratio>]
[-r <allow client ip>/<mask>] [-R <deny client ip>/<mask>]
[-i <allow local ip>/<mask>] [-I <deny local ip>/<mask>]
[-y <max number of concurrent sessions>]
[-z <hhmm>-<hhmm>] [-m]
pure-pw userdel <login> [-f <passwd file>] [-m]
pure-pw passwd <login> [-f <passwd file>] [-m]
pure-pw show <login> [-f <passwd file>]
pure-pw mkdb [<puredb database file> [-f <passwd file>]]
pure-pw list [-f <passwd file>]
-d <home directory> : chroot user (recommended)
-D <home directory> : don't chroot user
-<option> '' : set this option to unlimited
-m : also update the /usr/local/etc/pureftpd.pdb database
For a 1:10 ratio, use -q 1 -Q 10
To allow access only between 9 am and 6 pm, use -z 0900-1800
| ||||