freebsd、配置 [firewall]

# — sysinstall generated deltas — # Tue Jul 15 21:20:28 1997
# Created: Tue Jul 15 21:20:28 1997
# Enable network daemons for user convenience.
# Please make all changes to this file, not to /etc/defaults/rc.conf.
# This file now contains just the overrides from /etc/defaults/rc.conf.
hostname=”wwwx.3322.org”         # 你的主机域名
ifconfig_fxp0=”inet 192.168.0.1 netmask 255.255.255.0″  #内网网卡ip地址,fxp0是网卡名
inetd_enable=”YES”            # 开机加载inetd
kern_securelevel_enable=”NO”
linux_enable=”YES”
nfs_reserved_port_only=”NO”
sendmail_enable=”NO”
sshd_enable=”YES”
usbd_enable=”NO”
gateway_enable=”YES”
firewall_enable=”YES”          #启用防火墙
firewall_script=”/etc/rc.firewall”
firewall_type=”open”
firewall_quiet=”YES”
firewall_logging_enable=”YES”
ppp_enable=”YES”             # 开机自动拨号
ppp_mode=”ddial”
ppp_nat=”YES”              # 启用透明代理
ppp_profile=”adsl”            # 配置代号
# — sysinstall generated deltas –  # Wed Jul 16 06:52:13 1997

二、配置

//首先介绍基本的BSD命令,
//和DOS一样的进入文件目录命令
CD 目录名
//查看当前文件夹内容命令
ls
//运行当前根目录下的程序,必需在程序前加./
./setup.sh

第1小节:配置ssh
//启动计算机并用root身份进入系统。提示符www#
//开启ssh远程登陆,SSH是一个远程桌面控制系统。
ee /etc/rc.conf
//里面如果有sshd_enable=”YES”则说明我们已经开启ssh服务器了,如果没有请加上。
//开启root远程登陆
ee /etc/ssh/sshd_config
//找到#PermitRootLogin no这一行,去掉前面的#号,再把后面的no改成yes,按ESC再按两下回车保存退出。如果你会用VI也可以。
//重启SSH服务
/etc/rc.d/sshd restart
//这样我们现在就可以远程登陆SSH控制服务器了。

//如果你的系统没有认出网卡请看后面安装网卡驱动部分。

第2小节:更新系统
//安装cvsup程序。cvsup是一个用于从远程服务器主机上的主cvs(1) 库分发和更新源码树的软件包,用来更新操作系统和软件。
pkg_add -r cvsup-without-gui
//这样我们就安装了cvsup程序,但我们要刷新一下命令才可以使用cvsup。输入
rehash
//现在我们可以使用cvsup了,首先更新ports软件包源码。
cvsup -L 2 -h cvsup.cn.freebsd.org /usr/share/examples/cvsup/ports-supfile
//其中cvsup.cn.freebsd.org可以改成你较近的服务器域名。备用的有cvsup.freebsdchina.org,大约等待十分钟更新源码。
//接下来我们更新系统内核源码。把系统源码升级到最稳定的stable版本。大约又要十几分钟
cvsup -L 2 -h cvsup.cn.freebsd.org /usr/share/examples/cvsup/stable-supfile
 

第3小节:优化系统
//升级完成我们就开始编辑内核了。大部新手编译的内核都会出错,我建议你在不用的机器上测试成功才编译系统,实际上编译过的系统性能提升并不明显。
cd /usr/src/sys/i386/conf
//复制内核文件到root目录
cp GENERIC /root/MYKERNEL
//将root目录指向此目录
ln -s /root/MYKERNEL
//编辑内核
ee MYKERNEL

//要在UNIX下用vi或ee编辑,不能用WIN的记事本或写字板编好传上去,编码不一样。这要半个小时到一天不等。

 

三,安装服务器软件

//最近有点忙呵呵,隔了几天,今天我们来完成服务器软件的安装。主要有apache+php+mysql+eaccelerator加速+zend编码器+proftpd(ftp工具).

//安装apache
//我们先安装apache1.3当然你也可以用apache22等最新版本,不过为了稳定而且你的站访问量不超过日IP一百万的话我们推荐1.3。
//这是采用ports安装的方法,ports会自动安装相应的支持文件,如果你的ports有问题也可以用pkg_add来安装,当然这并不推荐。大约需要十分钟到半小时不等。
cd /usr/ports/www/apache13
make install clean

//安装PHP
cd /usr/ports/lang/php4
make install clean

//安装PHP扩展
cd /usr/ports/lang/php4-extensions
make install clean

//安装mysql
cd /usr/ports/databases/mysql41-server
make WITH_CHARSET=big5 WITH_XCHARSET=all install clean
cd /usr/ports/databases/php5-mysql
make install clean

//安装proftpd
cd /usr/ports/ftp/proftpd
make install clean

//安装eaccelerator
cd /usr/ports/www/eaccelerator/
make install clean
mkdir /tmp/eaccelerator
chown www /tmp/eaccelerator
chmod 0700 /tmp/eaccelerator

//安装zend,由于zend暂时不能从ports安装,所以你要先下载后用ssh文件传送上去,或者用装好的proftpd传上去再安装
./install.sh

//全部安装好了我们把启动项加好。
ee /etc/rc.conf
//内容包括你设置的网络地址机器名等,我们只要在下面加上。
apache_enable=”YES”
mysql_enable=”YES”
proftpd_enable=”YES”
//这样就可以随机启动了。

//然后我们配置apache,
ee /usr/local/etc/apache/httpd.conf
//把http.conf里的CustomLog和ErrorLog路径指到/usr分区
//有关apache的配置请看相关教程,非常多。包括加虚拟主机啊,等等。
 

//配置/etc/my.cnf改变数据库路径
//通常是var目录下,但我们分配的var并不大,所以把路径指向/usr/

//proftpd的FTP帐号和密码是跟据系统用户主目录来的,所以要新建FTP帐号,就要新建个用户名,当然也可以通过MYSQL验证,不过通过mysql验证有很多问题。要注意所给的权限大小,限制ssh能力等。
//更改mysql负载能力。跟据下面的内存大小,选择相应的文件名复制到/etc/my.cnf
cp /usr/local/share/mysql/my-large.cnf /etc/my.cnf

>> my-small.cnf # <= 64M
>> my-medium.cnf # 32M – 64M
>> my-large.cnf # memory = 512M
>> my-huge.cnf # 1G-2G
>> my-innodb-heavy-4G.cnf # 4GB
 

//安装防火墙

IPFW 放火墙
方法一:加入内核中。速度快 || 方法二:启动加载。方便
1.在内核中加入后编译
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=50
options IPFIREWALL_DEFAULT_TO_ACCEPT (注意不需要)
# 接受过滤器中的静态连接
options ACCEPT_FILTER_DATA
options ACCEPT_FILTER_HTTP
针对 IPv6
options IPV6FIREWALL
options IPV6FIREWALL_VERBOSE
options IPV6FIREWALL_VERBOSE_LIMIT
options IPV6FIREWALL_DEFAULT_TO_ACCEPT (注意)
我们使用方法二:启动加载。调试方便
1.在 /etc/rc.conf 中加入:
firewall_enable=”YES”
firewall_script=”/etc/ipfw.conf”
#firewall_logging=”YES” 目的就是:/etc/sysctl.conf 中的net.inet.ip.fw.verbose=1

2.在/etc/sysctl.conf
net.inet.ip.fw.verbose=1 (启动日志)
net.inet.ip.fw.verbose_limit=5 (同一个信息只记录5次)
配置 ee /etc/syslog.conf
在最下面加入:ipfw.log 的路径
!ipfw
*.* /var/log/ipfw.log
三、关于ipfw.conf 语法
# ee /etc/ipfw.conf

我添加如下规则:基本适合web+ssh+ftp+sendmail
######## TCP ##################
ipfw add 0005 deny tcp from any to any in tcpflags syn,fin
######### www ssh ftp ##########
ipfw add 10002 allow tcp from any to me 80 in
ipfw add 10003 allow tcp from any to me 22 in
ipfw add 10004 allow tcp from any to me 21 in
ipfw add 10005 allow tcp from any to me 20 in
ipfw add 10006 allow tcp from any to me 25 in
################################
ipfw add 19008 allow tcp from me to any out setup keep-state
ipfw add 19009 allow all from me to any out
ipfw add 20000 allow udp from any 53 to me #dns for ping wwwsohu.com
######### ICMP #################
ipfw add 30000 allow icmp from any to any icmptypes 3
ipfw add 30001 allow icmp from any to any icmptypes 4
ipfw add 30002 allow icmp from any to any icmptypes 8 out
ipfw add 30003 allow icmp from any to any icmptypes 0 in
ipfw add 30004 allow icmp from any to any icmptypes 11 in
####################################

]]>

© 版权声明
THE END
喜欢就支持以下吧
点赞0 分享