那麽建立凭证有没有很困难呢?没有啦!因为 CentOS 5.x 已经帮我们写好了 Makefile 了!你先到 /etc/pki/tls/certs 这个目录下,然後直接输入 make 这个指令,就能够看到所有可行的目标动作!我们就可以很快速的建置好凭证喔! 不过,因为预设的私钥档需要加上密码才能够进行建立,所以我们还得要额外进行一下动作就是了。好! 现在假设我们要建立的是名为 vbird 的凭证!那麽底下流程中,所有的关键字就是 vbird!简单流程如下所示: 这样就建立好凭证档了!接下来就是得要去处理 ssl.conf 这个设定内容喔!另外,这把凭证依旧只能使用 1 年!如果你想要建立十年的凭证,那就得要修改一下 Makefile 里面的内容,将 365 改成 3650 即可!
Tips:
如果你曾经多次重复进行上述的建立凭证动作,会发现到同一个凭证内容若制作多次,则最终用户端浏览器会出现一些错误讯息, 导致无法连线!因此,建议多加一个序号 (SERIAL) 的参数,可以修订这个错误喔! ?
修改 ssl.conf 的内容,使用自制凭证
修改 ssl.conf 的内容也是很简单!只要修改两个地方,亦即是档案档名的地方
即可!
图 20.5-4、检查凭证的详细内容!
20.5.3 将加密首页与非加密首页分离
? ?
一般明码传输的网页首页不要变更;
所以我们得先要设定 /var/www/https 目录才行!然後,只要修改 ssl.conf 档案内容即可!整个过程可以这样处理: 大部分都使用预设值,就是 DocumentRoot 以及 ServerName 需要留意就是了。如此一来,我们就将 https, http 两个完整的分开,你的重要资料需要加密的,终於有个可靠的地方摆放罗!^_^
20.5.4 防砍站软体
几个比较知名的网站管理员大概都有这样的困扰,那就是网站常被砍站软体所强力下载,结果造成主机的 CPU loading 过重,最後竟然会导致死掉~唉!真是的~人怕出名猪怕肥呐!先来解释一下什麽是砍站吧!
所谓的『砍站』,就是以类似多点连线下载的持续性讯息传递软体进行网站资料的下载,而且, 一启用该软体,该软体就将『整个网站』的内容都给他 download 下来,很厉害吧!没错!是很厉害,但是却也害死人了~怎麽说呢?
因为这种软体常常会为了加快 download 的速度,所以采用多点连线的方式,也就是会持续不断的向 Server 发出要求封包,而由於这些封包并不见得能够成功的让 Server 把资料传导给 Client 端,常常会无法投递就是啦!这样的结果就是...造成 Server 要一直不断的回应,又无法正确的回应出去, 此外,要求太过频繁,结果主机应接不暇,最後...就当机了...真的是林老师ㄌㄟ~ 鸟哥的鸟站主机古早以前,就是因为这样的原因,导致服务常常断断续续的,并且,由於 CPU loading 太高,结果让正常连线进来看资料的网友没有足够的资源,因此网页开启的速度就变的很慢~唉~ 这些砍站的人,也太不道德啦!
由於这种砍站软体真的很麻烦,一不注意马上就又会被砍站而当机,三天两头就要重新开机一次,完全让 Linux 的稳定性无法发挥!真是气死了~後来,鸟哥就自行写了一个 scripts 来挡这样的 IP !我的作法是这样的:
1. 由於砍站软体会多点连续下载,因此,同一个 IP 在同一个时间内,会有相当多的
连线发生;
2. 由於他是重复不断的要求连线,因此刚刚建立的连线在达成下载的目的後,会立刻
死掉, 而又多生出其他的连线出来,因此,这个时候他的连线情况就变的相当的不正常了!
3. 由於某些较旧的砍站软体并不会『欺骗』主机,所以,会在主机的登录档里面记录
住 Teleport 的标记!
4. 既然如此的话,那麽我就让我的主机每分钟去检查两个东西(1)先检查 log file ,如
果有发现到相关的 Teleport 字词,就将该 IP 抵挡掉;(2)使用 netstat 来检查同一个 IP 的同时连线,如果该连线超过一个值(例如同时有 12 个连线)的话,那麽就将该 IP 抵挡掉! 5. 此外,由於上面的方案可能会将 Proxy 的 Client 端也同时抵挡掉,真是可怜啊! 这
个时候,这支程式就会主动的将(1)的情况的主机抵挡 3 天,至於(2)的情况则抵挡2小时! 过了该抵挡的时限後,该 IP 即可又连上我们的主机了!
大致上就是这样吧!这样的一程式需要与 iptables 相互配合,所以,请先查阅一下第九章的防火墙内容,然後再来下载这支程式吧! 这支程式你可以在底下的网址下载喔!
?
详细的安装步骤鸟哥已经以中文写在该档案里面了,所以请先查看一下该档案的前面说明部分吧!此外, Study Area 的 netman 大哥也已经开发了一套很棒的防砍站的程式了! 在防堵砍站的原理上面是完全相同的,不过写法可能不是很雷同就是了!如果有需要的话,也可以前往 Study-Area 搜寻一下罗!
?
20.6 重点回顾
? ? ? ? ?
WWW 的传输协定使用 HTTP (Hyper Text Transport Protocol) ,最早是由欧洲核子物理实验室的伯纳斯-李所发展的;
WWW 在 server/client 端主要传递的讯息资料以 HTML (Hyper Text Markup Language) 语法为主;
3c.org 为制订与发布 WWW 标准语法的组织,你撰写网页最好依据该站之标准为宜;
Apache 是达成 WWW 伺服器的一项软体,至於用户端的浏览则使用浏览器,目前可使用 firefox
浏览器可达成的主机连结不止 http,可在网址列输入对应的『协定://主机[:port]/资源』即可取得不同的资料;
? ? ? ? ? ? ? ? ? ? ? 若要 WWW 伺服器可以达成与使用者资讯互动,尚须要网页程式语言 (如PHP, perl 等) 以及资料库软体 (如 MySQL, portgresql 等);
因为 http 使用的是明码传送,目前 WWW 可利用 SSL 等机制来进行资料加密的传输;
Apache 的设定档其实只有 httpd.conf 而已,其他的设定档都是被 Include 进来的; Apache 的首页目录以 DocumentRoot 决定,首页档案则以 DirectoryIndex 决定; Apache 可以透过虚拟主机的设定以指定不同主机名称到不同的 DocumentRoot 下;
Apache 是多执行绪的软体,可以启动多个程序来负责 WWW。主要的模组有 prefork 及 worker, 至於最大可连线的数量则以 MaxClients 来决定。 若要正确的让浏览器显示网页的编码格式,最好在网页上宣告语系,并将 Apache 的设定档 httpd.conf 内的 AddDefaultCharset 设定值取消;
在 Apache 可浏览的目录权限设定上 (Options 参数),最好将 Indexes拿掉; 透过 AllowOverride 与 .htaccess 可让使用者在自己管理的目录下制订自己的风格;
Apache 本身提供一个 apachectl 的 script 让使用者得以快速管理其 apache 的服务;
Apache 分析的资料如果比较重要时,务必以 SSL 或者是保护目录来保护。
20.7 本章习题
?
请问 LAMP 这个伺服器代表什麽意思?
这个名词代表了 Linux + Apache + MySQL + PHP 这个 WWW 伺服器的组成!
? Apache 的设定档档名一般为何?
Apache 的设定档档名为 httpd.conf ,不过,由於 httpd.conf 内容参数可以使用『 include \额外设定档名\』,所以也可能具有其他的额外设定档喔!
? 在 Apache 的设定档当中,哪一个参数是用来设定『主网页』的?
设定主网页的参数为:DocumentRoot 喔!後面接的是主网页放置的『目录』!
? 哪一个指令用来重新启动与关闭 Apache ?(请以 Apache 本身提供的功能来说明) 其实不论是 RPM 还是 Tarball 都是使用 apachectl 这个档案来启动 apache 的,不过 RPM 已经将该档案整合到 /etc/init.d/httpd 里面去而已
?
当我使用 ps -aux 的时候,发现好多的 httpd... 的程序,这是正常的吗? 最多可以有几个程序是在那个档案的那个参数所设定的?
由於 Apache 预设为多执行绪,所以启动多个 processes 是正常的。至於启动几个 process 则由很多设定所处理, 包括 MinSpareServers, MaxSpareServers, MaxClients