本教程假设你已有一台在运行的Ubuntu服务器,网络方面已设置好,而且可以通过SSH进行访问。
Apache2是许多安装的Linux发行版使用的默认Web服务器。它不是对所有环境来说唯一可用的Web服务器,也不是最佳的Web服务器,但是它适合许多使用场景。在安装过程中,系统可能会询问你哪个Web服务器要自动重新配置。选择“apache2”即可。
安装Apache2
使用下面这个命令,安装Apache2及其他库。
?
1$
sudo
apt-get -y
install
apt-get
install
apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt libapache2-mod-suphp libopenssl-ruby libapache2-mod-ruby
更新时区(TimeZone)和检查正确时间
为了减小共享数据或镜像数据方面的混淆,所有服务器在运行时都应该尽可能接近同步状态。一些加密密钥管理系统需要准确的时间。最后,就企业服务器而言,《萨班斯-奥克斯利法案》(Sarbanes-Oxley)和《健康保险可携性及责任性法案》(HIPAA)的安全规则要求正确的时间戳机制。
?
1 2 3$ sudo apt-get -y install openntpd tzdata
$ sudo dpkg-reconfigure tzdata
$ sudo service openntpd restart
禁止AppArmor冲突
虽然AppArmor这个套件的确提供了一层额外的安全,但在我看来,需要为每个系统创建自定义配置文件。这不是本教程所探讨的内容。所以眼下,我们会禁用AppArmor,防止与任何默认的配置发生冲突。
?
1 2 3$
sudo
/etc/init
.d
/apparmor
stop
$
sudo
update-rc.d -f apparmor remove
$
sudo
apt-get remove apparmor apparmor-utils
注意:如果是生产环境下的Web服务器,不建议禁用AppArmor。如果有些人想创建自定义的AppArmor配置文件,请参阅官方说明文档(http://wiki.apparmor.net/index.php/Documentation)。
阻止分布式拒绝服务(DDoS)攻击
DDoS攻击是一种分布式拒绝服务攻击。有一个Apache模块可以阻止这类攻击。
?
1 2 3$
sudo
apt-get -y
install
libapache2-mod-evasive
$
sudo
mkdir
-p
/var/log/apache2/evasive
$
sudo
chown
-R www-data:root
/var/log/apache2/evasive
把下面这个命令添加到mod-evasive.load的末尾处。
?
1 2 3 4 5 6 7 8$
sudo
nano
/etc/apache2/mods-available/mod-evasive
.load DOSHashTableSize 2048
DOSPageCount 20
# 请求同一页面的最大数量
DOSSiteCount 300
# 同一侦听器上同一客户端IP请求任何对象的总数量
DOSPageInterval 1.0
# 页面数量阈值的间隔
DOSSiteInterval 1.0
# 站点数量阈值的间隔
DOSBlockingPeriod 10.0
# 客户机IP被阻止的时间段
DOSLogDir “
/var/log/apache2/evasive
”
DOSEmailNotify admin@domain.com
阻止Slowloris攻击
还有一个Apache模块可以阻止Slowloris攻击,不过模块名称取决于你使用的Ubuntu的具体版本。如果是Ubuntu 12.10或以后版本:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25$
sudo
apt-get -y
install
libapache2-mod-qos
然后,检查qos.conf中的配置:
$
sudo
nano
/etc/apache2/mods-available/qos
.conf
## 服务质量方面的设置
# 处理来自多达100000个不同IP的连接
QS_ClientEntries 100000
# 只允许每个IP仅50条连接
QS_SrvMaxConnPerIP 50
# 活动TCP连接的最大数量限制在256条
MaxClients 256
# 当70%的TCP连接被占用时,禁用保持活动连接状态
QS_SrvMaxConnClose 180
# 最小请求/响应速度(拒绝阻塞服务器的慢速客户端,即slowloris保持连接开启,不提出任何请求):
下一篇:使用Linux文件恢复工具