服务器配置

Linux 用户的 FreeBSD 比较介绍 FreeBSD 是一个免费、开源的类 Unix 操作系统,也是一个流行的服务器平台。虽然 FreeBSD 和其他基于 BSD 的系统与 Linux 有许多共同之处,但它们在一些重要方面存在差异。在本指南中,我们将简要讨论 FreeBSD 和 Linux 之间的一些共同点,然后深入讨论它们之间的重要区别。以下许多观点可以准确地应用于更广泛的基于 BSD 的系统家族,但由于我们的重点,我们将主要参考 FreeBSD 作为该家族的代表。 阅读详情
1. 硬件平台的选择

BSD操作系统发展到现在已经可以支持多种硬件平台。其中是NETBSD在这方面做的尤其引人瞩目。从硬件架构上考虑,作为一般使用者联系性价比一般推荐使用X86构架的硬件的平台安装BSD。在X86构架硬件上BSD系列操作系统都有不俗的性能表现,而且价格能被大家认同。经济上比较宽松的朋友购买品牌服务器应是上策。
对于预算比较少的朋友可以考虑一下DIY服务器。DIY服务器首要采用质量上乘的服务器机箱,良好的散热设计、充沛的电源供给是保证DIY服务器成功的关键。其次在大多数时候有必要采用服务器专用主板来搭建硬件系统。细心的朋友会发现服务器专用主板上CUP、内存条的排列是和PC主板不一样的,这是一种促进散热的设计。另外服务器主板上大量采用耐高温和长寿命的固态电容,这样的主板长时间连续工作不会出现电容的爆裂和爆浆现象从而造成服务器停机。目前质量有保障的服务器专用主板生产商有泰安和超微。大家在购买时可以留心一下。
网卡也是服务器的一个核心部件,没有它服务器提供服务器也就无从谈起了。在100M接入的情况下1000M网卡比100M网卡可以提供更好的网络性能,但价格也高出不少。这里推荐使用INTEL或3COM公司的产品,这两家的产品都被广大的使用者证明性能和稳定性是一流的,只是大家注意现在市场上假货比较多。
其他硬件如存储系统这里就不多说了,根据自己的预算酌情购买便是。

2. 系统与版本选择

在BSD家族中有三个重要分支:FREEBSD、OPENBSD、NETBSD,三个分支各有见长。FREEBSD以性能出众见长,OPENBSD以系统安全见长,NETBSD以兼容硬件多见长。实际上随着时间的推移这三个系统的各项技术指标之间的差距正在减小,各自的相互借鉴加快了这种趋势。从目前使用的用户数量看:FREEBSD>OPENBSD>NETBSD。考虑到NETBSD的用户数量相对较少,在下面个章节中主要针对FREEBSD和OPENBSD两个BSD分支展开。
具体到每个BSD分支推荐使用各自的稳定版本而不是当前版本,因为稳定版本是为生产服务的,当前版本只是一个技术过渡产品,很多系统BUG和系统安全漏洞都有待发现和修正。即使是使用稳定版本也会发现系统BUG和系统安全漏洞,只是比当前版本频率要低的多。通常我们新安装的版本并不是稳定版。我们要把它修正为一个稳定版本(stable)。到本文完成时FREEBSD的最新的稳定版本是6.0-stable,OPENBSD的稳定版本是3.8,NETBSD的稳定版本是3.0。下面简单列出BSD系统升级到稳定版本的步骤。

2.1 FREEBSD-6.0更新到稳定版

首先安装FreeBSD的系统源代码和Ports

# mount -t cd9660 /dev/acd0 /mnt/
# cd /mnt/6.0-RELEASE/ports
# ./install.sh

# cd /mnt/6.0-RELEASE/src
# ./install.sh all

更新FreeBSD的系统源代码以及Ports

# cd /usr/share/examples/cvsup
# vi standard-supfile
*default host=cvsup4.FreeBSDChina.org
*default release=cvs tag=RELENG_6

# cvsup -g -L 2 /usr/share/examples/cvsup/standard-supfile
# cvsup -g -L 2 /usr/share/examples/cvsup/ports-supfile

编译生成新的系统二进制文件

# cd /usr/src
# make buildworld
# make installworld
# reboot

现在,你的系统已经是最新的了。注意新的系统升级完成之后一些原先安装的软件最好重新安装,否则很容易引发一些意想不到的问题。

2.2 OPENBSD-3.8系统更新

# cd /home/pub
# wget ftp://openbsd.csie.nctu.edu.tw/pub/....8/ports.tar.gz
# wget ftp://openbsd.csie.nctu.edu.tw/pub/.../3.8/src.tar.gz
# wget ftp://openbsd.csie.nctu.edu.tw/pub/.../3.8/sys.tar.gz

# cd /usr
# tar zxvf /home/pub/ports.tar.gz //安装ports
# cd /usr/src
# tar zxvf /home/pub/src.tar.gz //安装系统代码
# tar zxvf /home/pub/sys.tar.gz //安装内核代码

通过cvsup得到最新的代码。

# pkg_add cvsup-16.1g-no_x11.tgz
# vi cvsup-supfile
============+===========+==============
# Defaults that apply to all the collections
*default release=cvs
*default delete use-rel-suffix
*default umask=002
*default host=openbsd.csie.nctu.edu.tw
*default base=/usr
*default prefix=/usr

# If your network link is T1 or faster, comment out the following line.
*default compress
#OpenBSD-all
OpenBSD-src
OpenBSD-www
OpenBSD-ports
#OpenBSD-x11
#OpenBSD-xf4
============+===========+==============

执行cvsup

# cvsup -g -L 2 cvsup-supfile

编译生成新的二进制文件

# cd /usr/src
# rm -r /usr/obj/*
# make obj && make build


3. 软件版本选择

我们在选择软件版本的时候常常陷入两难的境地,比较新的版本往往在性能上有所改进而且也许还加进了诱人的新功能。但新版本最致命的是你没办法知道它是否存在设计缺陷或安全方面的问题(因为没有足够长时间和足够多的人使用验证)。所以在把它用在生产环境之前需要非常慎重,即使你有勇气采用新发布的软件。从我个人来说不推荐使用版本比较新的尤其是新发布的软件版本。著名的WEB主机软件:APACHE做的就比较好,它有两个版本些列:稳定版本系列和新功能版本系列,这样的两条产品线方便了用户在两者中作出选择。总之用户在选择软件版本时要根据自己的实际情况,如果你部署的应用是非常关键的就一定要使用稳定成熟的版本,虽然这样的选择有时会带来一定程度上性能损失。
在FREEBSD系统上,官方推荐使用PORTS方式安装需要的软件包。这个做的好处是一方面简化了用户安装软件的过程,另一方面也可以在一定程度上保证了软件运行时的稳定和安全性(ports系统中会包含已发现软件的补丁,同时为提高软件的运行效率专门定制了软件编译参数),同时卸载通过PORTS安装的软件包也很容易。经常同步升级你的PORTS树对于软件的正确安装也是非常重要的,如果你发现每个软件包不能通过PORTS安装或在编译过程中出错,你首先应该考虑到的是升级同步PORTS树,如果还是不行再考虑其他的因素。
在OPENBSD系统上,我个人不推荐使用PORTS树来安装软件包,因为在每个OPENBSD的镜像站点上都有和PORTS中的软件相对应的二进制包。通过 下载或远程安装这些编译好了的二进制包可以大大缩短软件的编译时间。无论新手还是老手,这种软件安装的方法无疑都是很合适的。OPENBSD的系统安全是一个完整的体系,这里面包含系统基本的二进制文件和用户后来安装的软件包。为了不破坏这个安全体系不推荐用户自行在系统上通过软件源码来编译安装软件,除非你要使用的软件找不到官方提供的现成的二进制安装包。

4. 操作系统性能优化

操作系统的优化首先要做的是系统内核的优化,通常优化系统内核的侧重点是简化系统内核同时如果有必要还可以把一些系统功能外部实现添加到内核中。通过内核优化一方面减小了内核体积,另一方面通过内核的精简还可以提高系统的安全性。这里列出FREEBSD和OPENBSD的内核优化编译过程。

4.1 FREEBSD内核优化编译

在上文中系统代码树已经更新了,这里就不再重复了

# cd /usr/src/sys/i386/conf
# mv /home/upload/MYCONFIG ./ //这里是我做好的内核配置文件
# chmod 644 MYCONFIG
# chown root:wheel MYCONFIG
# config MYCONFIG
# cd /usr/src
# make cleandepend
# make buildkernel KERNCONF=MYCONFIG
# make installkernel KERNCONF=MYCONFIG
# reboot

4.2 OPENBSD内核优化编译

在上文中系统代码树已经更新了,这里就不再重复了

# cd /usr/src/sys/arch/i386/conf
# mv /home/upload/MYCONFIG ./ //这里是我做好的内核配置文件
# /usr/sbin/config MYCONFIG
# cd /usr/src/sys/arch/i386/compile/MYCONFIG
# make clean
# make depend
# make

# cp /bsd /bsd.old
# cp bsd /bsd
# reboot

如果编译的新核心启动失败,尝试启动旧内核

boot> bsd.old

操作系统的优化另一个方面要做的工作是提高系统的网络性能,毕竟操作系统是通过网络向外提供服务的,下面列出我现在使用的网络优化参数。

4.3 FREEBSD网络优化

# vi /etc/sysctl.conf
=========+===========+===========+============
net.inet.ip.check_interface=1
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
net.inet.tcp.recvspace=65535
net.inet.tcp.sendspace=65535
kern.ipc.somaxconn=32768
kern.ipc.maxsockbuf=2097152
net.inet.ip.redirect=0
net.inet.icmp.icmplim=100
net.inet.tcp.always_keepalive=1
net.inet.tcp.delayed_ack=1
net.inet.udp.maxdgram=65535
net.local.stream.sendspace=65535
net.local.stream.recvspace=65535
kern.maxfiles=65536
kern.maxfilesperproc=65536
net.inet.udp.checksum=1
net.inet.tcp.msl=7500
net.inet.tcp.syncookies=1
kern.securelevel=0
net.inet.icmp.bmcastecho=0
net.inet.icmp.maskrepl=0
=========+===========+===========+============
# vi /boot/loader.conf
=========+===========+===========+============
kern.maxdsiz="536870912" //这参数在你的内存小于512M时没必要设置
kern.ipc.maxsockets="4008"
kern.ipc.nmbclusters="32768"
kern.ipc.nmbufs="65535"
kern.ipc.nsfbufs="2496"
net.inet.tcp.tcbhashsize="2048"
=========+===========+===========+============

4.3 OPENBSD网络优化

# vi /etc/sysctl.conf
=========+===========+===========+============
kern.maxproc=65535
kern.maxfiles=65535
kern.somaxconn=2048
kern.maxclusters=32768
net.inet.tcp.recvspace=65535
net.inet.tcp.sendspace=65535
net.inet.udp.recvspace=65535
net.inet.udp.sendspace=32768
=========+===========+===========+============
上面各个参数的含义参看这里,这里就不写了:

http://fanqiang.chinaunix.net/syste...4-06/3101.shtml


5. 软件性能与安全设置

操作系统的优化还要做各个软件部分的性能优化,关于软件性能优化设计的内容很多,这里拿APACHE2+MYSQL+PHP为例简单说明一下。

5.1 APACHE性能与安全

# vi /usr/local/etc/apache2/httpd.conf
=========+===========+===========+============
<IfModule prefork.c>
StartServers 10
MinSpareServers 10
MaxSpareServers 15
ServerLimit 2000
MaxClients 1500
MaxRequestsPerChild 0 //这个数值不要改动,保持为“0”更好些
</IfModule>

AddDefaultCharset GB2312
ServerTokens Prod //安全设定
ServerSignature Email //安全设定

基于安全考虑如果用不到目录索引去掉下面一句中的“Indexes”:
Options Indexes FollowSymLinks
=========+===========+===========+============

有些网站设计者想限制下载用户所用的IP连接网站的并发连接数,这里有两种途径来做这件事:使用APACHE的模块mod_limitipconn和使用防火墙来作都可以做到。因为防火墙的处理IP连接的效率要大大高于APACHE本身所以使用防火墙做起来性能要好很多。下面简单说一下两者的做法。

5.2 使用MOD_LIMITIP限制IP连接数

# wget http://dominia.org/djao/limit/mod_l...onn-0.22.tar.gz
# tar –zxvf mod_limitipconn-0.22.tar.gz
# cd mod_limitipconn-0.22
# vi Makefile
修改相关路径适应你的系统
# make install

# vi /usr/local/etc/apache2/httpd.conf
=========+===========+===========+============
<IfModule mod_limitipconn.c>
<Location / > //设置要控制的目录
MaxConnPerIP 3 //限制单IP最大进程数
NoIPLimit image/* //非限制的文件类型
</Location>
<Location /mp3>
MaxConnPerIP 1
OnlyIPLimit audio/mpeg video //可选限制的文件类型
</Location>
</IfModule>
=========+===========+===========+============

5.2 使用PF防火墙限制IP连接数

# vi /etc/pf.conf
加上下面一句,每个IP最多可以同时建立3个连接:
pass in on $ext_if proto tcp to $web_server port www flags S/SA keep state /
(max 2000, source-track rule, max-src-nodes 1000, max-src-states 3)

5.3 使用PF防火墙如果用户恶意短时间内发起多个连接就BLOCK掉这个IP一段时间。

# vi /etc/pf.conf
加上下面一句,每个IP最多可以同时建立3个连接,如果连接超过了3个这个IP地址就会被BLOCK一段时间:
table <abusive_hosts> persist
block in quick on $ext_if inet proto tcp from <abusive_hosts> to $web port 80
pass in quick on $ext_if proto tcp from any to $web port 80 flags S/SA /
keep state (max-src-conn 100, max-src-conn-rate 3/1, max-src-states 3 /
overload <abusive_hosts> flush)

APACHE2.x在不修改源码的情况下,可以允许设置2万多个用户连接,一般来说这个数值绝对够用了。APACHE1.x在这种情况下最多允许256个用户访问,显然在大多数时候256显得太小了,需要修改源码来增加这个数值,以适应我们的需要。修改的方法很简单,在源码中找到httpd.h然后:

# vi httpd.h
=========+===========+===========+============
#define HARD_SERVER_LIMIT 256 //把256改为你需要的
=========+===========+===========+============

5.4 MYSQL性能与安全

如果你的MYSQL服务不需要和其他主机通信只是在本机上使用的话,这样设定一下很有必要:

# vi /etc/my.conf

[mysqld]
bind-address = 127.0.0.1 //加上这个设定

下面是MYSQL的几个常用的提高性能的设定,注意这个设置是针对2G内存设置的。

# vi /etc/my.conf
===========+===========+===========+============
[mysqld]
skip-innodb
skip-bdb
skip-name-resolve
skip-locking
#log-bin
set-variable = key_buffer=512M
set-variable = max_allowed_packet=4M
set-variable = table_cache=1024
set-variable = thread_cache=64
set-variable = join_buffer_size=32M
set-variable = sort_buffer=32M
set-variable = record_buffer=32M
set-variable = max_connections=512
set-variable = wait_timeout=120
set-variable = interactive_timeout=120
set-variable = max_connect_errors=30000
set-variable = long_query_time=1
set-variable = max_heap_table_size=256M
set-variable = tmp_table_size=128M
set-variable = thread_concurrency=8
set-variable = myisam_sort_buffer_size=128M
===========+===========+===========+============

还有一种提高数据库性能的方案就是在单机上运行多个MYSQL服务(每个服务监听不同的端口),这种方案对服务器硬件要求较高。

5.5 PHP性能与安全

如果下面的安全设定可能使你的某些PHP程序不能运行,酌情增减一下

# vi php.ini
===========+===========+===========+============
file_uploads=Off
register_globals = Off
safe_mode = On
display_errors = Off
disable_functions = passthru, exec, system, phpinfo, /
popen, chroot ,scandir ,chgrp , chown ,escapeshellcmd, escapeshellarg, /
shell_exec ,proc_open,proc_get_status
===========+===========+===========+============

6. 操作系统安全设置

6.1 FREEBSD安全设置

删除登陆时出现的系统信息提示

# > /etc/motd
# touch /etc/COPYRIGHT
# ee /etc/rc.conf
update_motd="NO"

关闭一些不安全的服务

# vi /etc/rc.conf

sendmail_enable="NONE"
nfs_server_enable="NO"
nfs_client_enable="NO"
portmap_enable="NO"
syslogd_enable="YES"
syslogd_flags="-ss"
icmp_drop_redirect="YES"
clear_tmp_enable="YES"
inetd_enable="NO"

禁止一般用户查看系统日志

# chmod g-w,o-r /var/log/*
# chmod 600 /etc/syslog.conf
# chmod 600 /etc/newsyslog.conf

为了防止cracker利用rootkit工具通过后门进入系统,对/bin,/sbin进行安全保护

# chflags schg /bin/*
# chflags schg /sbin/*

把系统的核心的运行层次设置为最安全的层次

# sysctl -w kern.securelevel=2

打开磁盘配额

# vi /etc/rc.conf
enable_quotas="YES"
check_quotas="YES"

禁止一般用户使用crontab,建立/etc/cron/allow文件把需要使用的用户放进去

# echo root > /var/cron/allow
# chmod 600 /var/cron/allow

6.2 OPENBSD安全设置

屏蔽登陆时的系统信息

# > /etc/motd
# vi /etc/rc //这里注释掉了MOTD相关的行
============================== rc ===========================
# patch /etc/motd
#if [ ! -f /etc/motd ]; then
# install -c -o root -g wheel -m 664 /dev/null /etc/motd
#fi
#T=`mktemp /tmp/_motd.XXXXXXXXXX`
#if [ $? -eq 0 ]; then
# sysctl -n kern.version | sed 1q > $T
# echo "" >> $T
# sed '1,/^$/d' < /etc/motd >> $T
# cmp -s $T /etc/motd || cp $T /etc/motd
# rm -f $T
#fi
============================== rc ===========================

停用SENDMAIL

# vi /etc/rc.conf
sendmail_flags=NO

修改计划任务
# vi /etc/daily
找到下面代码
===========+===========+===========+============
sh /etc/security 2>;&1 >; $OUT
if [ -s $OUT ]; then
mail -s "$host daily insecurity output" root < $OUT
fi
===========+===========+===========+============
修改如下
===========+===========+===========+============
sh /etc/security 2>;&1 >; $OUT.TMP
if [ -s $OUT.TMP ]; then
echo "$host daily insecurity output" >; $OUT
cat $OUT.TMP >;>; $OUT
rm $OUT.TMP
/usr/libexec/mail.local root >; $OUT
fi
===========+===========+===========+============

# crontab –e
将下面三行:
===========+===========+===========+============
30 1 * * * /bin/sh /etc/daily 2>;&1 | tee /var/log/daily.out | mail - s "`/bin/hostname` daily output" root
30 3 * * 6 /bin/sh /etc/weekly 2>;&1 | tee /var/log/weekly.out | mail -s "`/bin/hostname` weekly output" root
30 5 1 * * /bin/sh /etc/monthly 2>;&1 | tee /var/log/monthly.out | mail -s "`/bin/hostname` monthly output" root
===========+===========+===========+============
修改如下:
===========+===========+===========+============
30 1 * * * /bin/sh /etc/daily 2>;&1 | tee /var/log/daily.out | /usr/libexec/mail.local root
30 3 * * 6 /bin/sh /etc/weekly 2>;&1 | tee /var/log/weekly.out | /usr/libexec/mail.local root
30 5 1 * * /bin/sh /etc/monthly 2>;&1 | tee /var/log/monthly.out | /usr/libexec/mail.local root
===========+===========+===========+============

禁用由inetd启动的程序

# vi /etc/sysctl.conf
inetd=NO

禁止一般用户查看系统日志

# chmod g-w,o-r /var/log/*

为了防止cracker利用rootkit工具通过后门进入系统。对/bin,/sbin进行安全保护

# chflags schg /bin/*
# chflags schg /sbin/*

把系统的核心的运行层次设置为最安全的层次

# sysctl -w kern.securelevel=2

7.防火墙设置

防火墙是用户访问服务器的第一道屏障,简单有效的规则设计是防火墙设置的基本要求。在BSD系统中常用的防火墙有IPFILTER、IPFW、PF,现在PF防火墙在FREEBSD、OPENBSD、NETBSD中都可以运行了。之所以大家都用PF防火墙,我想是和PF防火墙不俗的表现有必然的联系。下面列出我的PF防火墙规则,供大家参考。

# vi /etc/pf.conf
===========+===========+===========+============
ext_if = "{ fxp0 }"
loop = "lo0"
noroute = "{ 127.0.0.1/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8, 255.255.255.255/32 }"
ports = "{ 20, 21, 22, 25, 53, 80, 110 }"
web = "{127.0.0.1}"

set block-policy return
set optimization aggressive
set loginterface fxp0
set skip on lo0

scrub in all
rdr on $ext_if proto tcp from any to $ext_if port 80 -> $web port 80

antispoof for $ext_if inet

block all
block return
block in quick on $ext_if os NMAP
block in quick on $ext_if from $noroute to any
block out quick on $ext_if from any to $noroute

pass in on $ext_if proto tcp from any to $web port 80 flags S/SA synproxy state

pass quick on $loop all
pass in quick on $ext_if proto {tcp,udp} from any to any port $ports keep state
pass in quick proto tcp from any to any port 55000 >< 56000 keep state
pass out quick on $ext_if all keep state
===========+===========+===========+============
FREEBSD系统给我们提供了一个很好用的PF服务启动教本

# /etc/rc.d/pf start | stop | reload | restart

但是在OPENBSD系统上没有这样一个教本,启动PF服务是有/etc/rc这个公用教本实现的,用户在管理PF服务是就不是很方便了,下面给出一个独立PF启动教本:

# /etc/rc.d/pf.sh

===========+===========+===========+============
#!/bin/sh
# made by llzqq
# 02/08/ 2005
# pf startup scripts

case "$1" in

start)
if ifconfig pflog0 >/dev/null 2>&1; then
ifconfig pflog0 up
pflogd ${pflogd_flags}
fi

if [ -f /etc/pf.conf ]; then
/sbin/pfctl -e -F all -f /etc/pf.conf
fi
;;

stop)
/sbin/pfctl -d -F all
/usr/bin/pkill pflogd
/sbin/ifconfig pflog0 down
;;
*)
echo "$0 start | stop"
;;

esac
exit 0
===========+===========+===========+============

# chmod 555 /etc/rc.d/pf.sh
# /etc/rc.d/pf.sh start | stop

在上面的规则中我把外面访问的80端口定向到了本机回环地址(127.0.0.1),当服务器器遭到DOS攻击时不会使APACHE服务因处理大量连接而崩溃。那些不正常的半连接都由PF防火墙来处理。这样在对付DOS时效率上会高一些。
另外在高负载服务器上,可以考虑关闭防火墙的日志服务(pflog),这样可以显著降低服务器负担。

8.服务器远程管理

服务器和它的管理者一般情况下是不在一块的,这就涉及到了服务器远程管理问题。目前都是通过SSH加密协议远程登陆到服务器上进行管理的。当管理员需要与服务器进行文件传输的时候首先想到的应该是通过SFTP进行传输。我在使用SFTP服务进行文件传输时发现个问题,就是传输速度总是不理想,很难超过1M/S。后来想想也难怪,通过SFTP服务进行传输时无论服务器端还是客户端都要进行高度数据加密和数据解密工作,这个应该是导致SFTP传输速度慢的根本原因。这里我向大家推荐使用FTP+SSL/TSLZ这种方式进行文件传输,速度上非常接近普通的FTP传输。这种方式的数据加密级别没有SFTP高,对加密级别没特殊要求的朋友不妨试试。关于FTP+SSL/TLS的配置文档详见这里 http://bbs.chinaunix.net/viewthr ... ge=1&highlight=

有时候我们在通过SSH登陆时会出现很长的延时才能连接到服务器上,这个现象尤其在高版本SSH服务器上比较严重。其原因归纳起来主要是由于SSH服务器在验证用户登陆时有反解析用户IP地址的操作,这需要一定的时间来完成,对登陆用户来说就是长时间的等待。解决这个问题也很简单,首先在/etc/ssh/sshd_config中禁用DNS解析,并且在/etc/hosts文件中添加登陆用户的IP和主机名信息即可。简单操作如下:

# vi /etc/ssh/sshd_config
UseDNS no
# vi /etc/hosts
221.62.x.x llzqq
# reboot

SSH的KEY验证方式被认为比PASSWORD验证起码高一个安全级。而且PASSWORD不可能设置的很长,所以总有密码被猜出的事件发生。因此使用KEY验证方式登陆就非常必要了。KEY验证方式登陆需要客户端软件支持这种登陆验证方式。我习惯使用SecureCRT作客户端。下面简单说明使用SecureCRT用KEY方式验证登陆SSH服务器。

SecureCRT生成的key和sshd不兼容需要转换才能使用,key.pub为SecureCRT生成的pubkey

# ssh-keygen -X -f key.pub > key.pub2

# mkdir ~/.ssh
# touch ~/.ssh/authorized_keys
# cat key.pub2 >> ~/.ssh/authorized_keys
# rm freebsd.pub*


# vi /etc/ssh/sshd_config

===========+===========+===========+============
Port 22
Protocol 2

PasswordAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
===========+===========+===========+============

好了,现在可以使用SecureCRT用KEY方式验证登陆SSH服务器了。


9.服务器负载均衡

服务器负载均衡到现在已经有很多成熟的技术实现,本文介绍两种成本低,容易实现的方案。一种是利用防火墙的IP地址重定向技术(rdr),另一种大家可能不是很成熟悉就是DNS负载均衡技术。
在BSD系统中IPF和PF防火墙都可以利用IP地址重定向技术实现服务器的负载均衡。具体操作也很简单。这种技术多用于为没有公网IP地址的多个服务器提供负载均衡这种情况。使用这种技术的好处是你只需要一个公网IP就可以了(本文中是:221.35.21.2),如下面例子:

使用pf防火墙实现服务器负载均衡:

web_servers = "{ 10.0.0.10, 10.0.0.11, 10.0.0.12, 10.0.0.13 }"
rdr on $ext_if proto tcp from any to any port 80 -> $web_servers /
round-robin sticky-address

使用ipfilter防火墙实现服务器负载均衡:

web_servers = "{ 10.0.0.10, 10.0.0.11, 10.0.0.12, 10.0.0.13 }"
rdr $ext_if 221.35.21.2/32 port 80 -> $web_servers port 80 tcp round-robin

IPFW防火墙没有使用过不知能否实现类似上面的技术。

要使用DNS服务器负载均衡技术,首先要自己建立自用DNS服务器(因为目前在公用DNS服务器上这个功能都没有开放),还要有合法的 域名(这个可能是废话)。在你的DNS服务器上和你 域名对应的ZONE文件中添加多个(具体是几个要看你要负载均衡的实际主机数) 域名记录。比如你申请了 域名home.com,而且你有3台需要负载均衡的主机,他们的IP地址分别是221.35.21.2,221.35.21.3,221.35.21.4。下面是ZONE文件中的设置:

# vi home.com
===========+===========+===========+============
$TTL 12h
$ORIGIN com.
@ IN SOA ns.home.com. root.home.com.(
2005121013 ; Serial
3600 ; Refresh ( seconds )
900 ; Retry ( seconds )
68400 ; Expire ( seconds )
12h ) ; Minimum TTL for Zone ( seconds )
;
@ IN NS ns.home.com.
www IN A 221.35.21.2
www IN A 221.35.21.3
www IN A 221.35.21.4
===========+===========+===========+============

上面是在你自己的DNS服务器上的设置,你还需要登陆域名提供商提供的域名管理后台那里修改关于home.com这个域名的NS记录为你自己的DNS服务器。所有设置完成后DNS负载均衡就做好了,从此互联网上的用户每次访问 www.home.com时解析到的IP都时不一样的,而且他解析到每个IP的几率是相同的,也就是说实现了三台主机的负载均衡。
以上简单介绍了使用防火墙和DNS服务器来实现多网络主机的负载均衡。对比一下,用防火墙实现的负载均衡在网络流量很大时防火墙本身会成为性能上的瓶颈,而采用DNS的负载均衡技术不存在这个问题。

10.结束语

就目前国内的网络状况看,南方电信和北方网通之间的网络互通是个突出的问题。而且有些朋友在国内和国外都托管了服务器想分别为国内外的用户提供服务器,但怎样实现就近访问两台服务器也是个比较头痛的问题。现在第三方DNS策略解析服务已经有了,关于这方面的技术问题文中没有提及,有这方面需求的朋友不妨和我取得联系。 
各种服务器配置说明 文档中描述了几种web服务器配置和经常遇到的一些配置问题和调优问题及处理方式 立即下载

相关推荐

通过iptables限制sftp端口连接数(运维笔记)

本文档详细介绍了通过iptables限制sftp端口连接数的运维操作方法,以及预防CC/DDOS攻击的设置措施.在此分享,希望能帮助到有用到的朋友!

BSD家族大观:FreeBSD、OpenBSD、NetBSD

暂时忘记Windows和Linux吧,不太出名的BSD也许才是你所需要的。如果提到Web或者阅读一本计算机杂志就不可能不涉及到Linux,它是由LinusTorvalds和其他人共同开发的伟大的操作系统。但是尽管Linux占据了最重要的位置,ISP和系统管理员们也经常选择BSD里的一种作为操作系统,BSD是一类建立在代码共享基础上的操作系统,在过去的20多年里,美国的顶尖学院都一直在对

王以山的专栏 2632

超级详细的服务器配置方案

超级详细的服务器配置方案,可以直接拿来用,如果你没写过类似文档,这个绝对有用

服务器运行环境配置流程

本文详细介绍了SpringBoot项目在Linux服务器上的环境配置流程,主要包括JDK1.8、MySQL 5.7和Redis的安装步骤。JDK部分涵盖了解压安装、环境变量配置和版本验证;MySQL安装涉及初始化设置、服务配置和远程访问权限调整;Redis则通过yum快速安装并设置开机自启。所有安装步骤均提供了详细命令和验证方法,确保开发人员能够顺利完成服务端运行环境的搭建工作。

HydeRobin的博客 903

Xiaojie雷达之路---毫米波雷达基础知识---角度估计

本篇文章主要介绍毫米波雷达的基础知识中的角度估计,对于本篇文章主要回答5个问题 1.在雷达的前方,如何估计前方一个物体的角度 2.角度测量的准确性 3.如何测量多个物体的角度 4.雷达可测的角度的视场最大值为多少 5.角度分辨率取决于什么因素 文章目录估计雷达前面一个物体的角度角度测量的准确性雷达的最大角视场测量雷达前方多个距离和速度相同的物体角度分辨率角度估计的流程 估计雷达前面一个物体的角度 估计一个物体的角度,最少需要两根接收天线 发射天线发送一个chirp,经过物体发射后信号,信号分别被第一根天

XiaoJie的博客 1万+

BAPI创建委外采购订单

使用BAPI BAPI_PO_CREATE1创建委外采购订单,组件为手工输入时,有几个点需要注意: 1、已通过CS01创建过BOM的物料,创建时会自动带出components。如果要修改当前组件清单,可以通过设置pocomponents-change_id = 'E’来实现 lv_sline = lv_sline + 1. ls_pocomponents-po_item = l_ebelp + 10. ls_pocomponents-ITEM_NO = l

Buffalo_soldier的博客 3262

服务器配置总结

服务器的配置总结 服务器配置是指根据企业的实际需求针对安装有服务器操作系统的设备进行软件或者硬件的相应设置、操作,从而实现企业的业务活动需求,分为WEB服务器,FTP服务器、SAMBA服务器、DNS服务器。Web服务器是指驻留于因特网上某种类型计算机的程序。 FTP服务器 1.选择“开始”→“控制面板”→“添加或删除程序” →“添加/删除Windows组件”,选取“应用程序服务器”后,单击“

xieboyang的博客 3006

芯片低功耗设计实战:CPF与UPF流程选择指南(附工具对比)

本文深入探讨了芯片低功耗设计实战中CPF与UPF流程的选择策略。文章从两者本质差异与演进脉络出发,结合Cadence与Synopsys工具链的深度支持实况,为工程师提供了基于项目场景的决策框架。重点分析了在混合工具链环境下如何实施流程与验证,并强调了利用Spyglass等工具确保功耗意图无损传递的关键技巧,旨在帮助团队做出明智的流程抉择,提升设计效率与可靠性。

weixin_29197051的博客 405

服务器配置要考虑哪些服务器主机配置介绍

因此,硬盘的读取/写入速率决定着服务器的处理速度和对客户的响应速率。服务器的主板相比普通PC 机的主板来说更加重要,因为在服务器主饭不仅决定了服务器所采用的最新技术,还决定了服务器整体性能的发挥。我们在购买服务器之前,得明确网站的类型主要是做什么,访问流量怎么样,数据路的大小,然后选择合适的服务器配置,那么服务器配置要考虑哪些?关于服务器主机配置我们就介绍到这里,在选择配置的时候,我们应该根据自己的实际情况来选择,不过现在服务商都提供了配置升级服务,后续可以根据自己的需要进行配置的升级,还是非常方便的。

chenrui310的博客 1万+

python + QXDM5高通平台通过自动化截取log方法及代码

python + QXDM5高通平台通过自动化截取log方法及代码

dgzj2001的博客 1819

kettle信息发送钉钉

由于其他的作业比较多,想要在job中加入一个转化发送消息到钉钉,其他的配置说明直接获取系统的信息。这样也避免直接修改其他的转换和大量的工作量。 步骤: 1、新建一个转换 拉取获取系统信息、获取变量、JavaScript代码、获取access_token组件。 2、获取系统信息设置 拿到需要的信息,比如作业的读写更新删除行数,job的日志内容 这个日志内容同在作业执行页面下输出的日志,所以可以在执行作业时选择是详细日志、基本日志还是错误日志。 3、获取变量 获取变量主要是想要去拿到job的名称,文件名。按

Deng_7788的博客 1448

Windows服务器配置_DNS服务器配置_DHCP服务器配置_ftp服务器配置

一、DNS服务配置 域名系统服务安装 打开控制面板-添加或删除程序-添加/删除windows组件 选择网络服务点击详细信息,在详细信息中选择域名系统 然后点击确定-下一步开始安装(安装过程需要将系统盘导入连接到计算机,操作步骤见之前文章) DNS服务器设置 点击开始-管理工具-DNS 查看DNS服务器的缓存:点击主机名,然后点击上方栏中查看-高级 此时可显示缓存 新建...

BeatRex的博客 4047

Hermes Agent 常见报错排查与问题解决

Hermes Agent 常见报错排查指南 摘要 本文全面梳理了 Hermes Agent 使用过程中的10类常见报错,按阶段划分为安装期、运行期认证类、后端基础设施类和长任务执行类四大类,并提供了系统化的排查流程: 安装期问题:包括命令未找到和Python版本不兼容,主要检查PATH环境和Python版本是否符合要求 认证类问题:涉及API Key认证失败和速率限制,需要验证密钥配置和配额状态 基础设施问题:包含Docker报错、MCP连接失败和OAuth令牌过期,需检查相关服务状态 执行类问题:主要是上

简简单单Onlinezuozuo 1346

服务器snmp信息如何配置,服务器snmp配置

服务器snmp配置 内容精选换一换为加强对系统数据的容灾管理,云堡垒机支持配置日志备份,提高审计数据安全性和系统可扩展性。本小节主要介绍如何在系统配置Syslog服务器参数,将日志远程备份至Syslog服务器。开启远程备份后,系统默认在每天零点备份前一天的系统数据。以天为单位自动备份,生成日志文件,并上传到Syslog服务器相应路径。支持备份至Syslog服务器的日志包括本章节介绍如何使用管理控制...

weixin_39622150的博客 1879

基于YOLOv10的机器人抓取引导系统:从物体检测到精准抓取

python# 数据标注工具简化版import os"""启动标注工具""""""标注单张图像"""print(f"标注图像: {os.path.basename(img_path)}")print("请在图像上绘制抓取矩形框...")# 这里应该实现交互式标注界面# 简化版本直接返回示例标注# 示例标注数据"""保存标注结果"""# 保存为YOLO格式# 转换为YOLO格式。

YOLO 378

第77步 时间序列建模实战:多因素预测 vol-2(以决策树回归为例)

第77步 时间序列建模实战:多因素预测 vol-2(以决策树回归为例)

Jet4505的博客 1008

如何配置Web服务器?web服务器配置方法步骤

我们配置Web服务器,就是在服务器上建立网站,并设置好相关的参数,至于网站中的网页应该由网站的维护人员制作并上传到服务器中,下面小编就来介绍下如何配置服务器。 IIS的安装 一般在安装操作系统时不默认安装IIS,所以在第一次配置Web服务器时需要安装IIS。安装方法为: 1、打开“控制面板”,打开“添加/删除程序”,弹出“添加/删除程序”窗口。 2、单击窗口中的“添加/删除Windows组件”图标,弹出“Windows组件向导”对话框。 添加/删除程序 3、选中“向导”中的“应用程序服务器”复选框。单击“

qq_780662763的博客 1万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

DNS服务器配置

DNS主/辅服务器配置

2301_80820096的博客 1401

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

php服务器配置 阿达

在互联网应用开发中,PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,特别适用于Web开发,并可以嵌入HTML中。为了能够让PHP代码正常运行,我们需要一个支持PHP的服务器环境。本文将详细介绍如何配置一个基本的PHP服务器环境,包括所需的软件安装、配置文件调整以及一些常见的优化建议。

x3088的博客 736

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

服务器如何配置域名呢?

(IPv4或IPv6)。如果是本地网络,需配置端口转发或DDNS(动态域名解析)。确保证书绑定的域名与访问的域名一致,检查服务器时间是否准确。检查DNS记录是否正确,清除本地DNS缓存(在域名注册商(莱卡云)注册一个域名(例如。确保Nginx/Apache配置中。TTL:默认即可(如600秒):将子域名指向其他域名(如。:填写服务器的公网IP。编辑虚拟主机文件(如。

m0_69484557的博客 1336

华为tftp服务器如何配置文件,配置tftp服务器

配置tftp服务器 内容精选换一换当您以云模式或独享模式添加防护网站后,如果需要修改防护网站的服务器信息或者需要添加服务器信息时,可以修改服务器配置信息。本章节可对以下场景提供指导:修改服务器信息,即修改对外协议、源站协议、VPC、源站地址、源站端口。添加服务器配置。更新证书,关于证书更新的详细内容可参见更新证书。修改服务器信息,即修改对外协议、源站协议、VPC、源站地址用户可以配置、修改和查看系...

weixin_42429109的博客 985

怎么查服务器的配置信息,怎么查自己服务器的配置信息

怎么查自己服务器的配置信息 内容精选换一换精简视图提供了云服务器资源概况和状态的可视化统计结果,帮助您直观的了解云服务器资源。在精简视图中,您可以快速获取弹性云服务器基本信息、登录信息、配置信息、监控信息。精简视图提供了云服务器资源概况和状态的可视化统计结果,直观的了解云服务器资源。请按以下步骤切换至精简视图:登录管理控制台。单击管理控制台左上角的,选择区域和项目。选择“计算 >云堡垒机与R...

weixin_29061531的博客 2072

如何配置CA服务器

1创建验证字权威数据库1)点击菜单"文件"--"数据库"--"新建"2)服务器:选择验证字权威服务器模板服务器:选择验证字权威服务器模板:点击"显示高级模板",选择"Domino R5验证字权威"模板(cca50.ntf)数据库名称:certca.nsf(在R4.6X中必须是该名称)3)点击"确定"按钮2配置验证字权威数据库1)打开验证字权威数据库,左边点击"验证字权威配置

问道-正确认识人生的规律,只有从人生的规律中才能求得实实在在的名与利 4276
上一篇: phpmyadmin连接不上mysql
下一篇: php jpgraph学习教程
cqinter
博客等级 码龄21年 14粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值