第1页 第2页 第3页 第4页 第5页 四、提高维基网站的安全性
1. 维基管理口令安全
Wiki以平和信任的观点来对待所有愿意接触它,了解它和壮大它的人,其根本理念就认为上认为不会有人故意破坏Wiki网站。Wiki是全开放的,万一有陌生人来网站上乱搞怎么办?别担心,所有的Wiki
页面都可以进行版本控制,你随时都可以找回之前的正确版本,有效地保护内容不会丢失。Wiki最高管理权限是Sysop用户,所以要合理设置其登录口令。
口令系统安全的第一道防线,但常常因为系统管理员对于“小概率事件”的错误印象变得很脆弱。用单词作密码是根本架不住暴力攻击的。黑客们经常用一些常用字来破解密码。曾经有一位美国黑客表示,只要用“password”这个字,就可以打开全美多数的计算机。其它常用的单词还有:account、ald、alpha、beta、computer、dead、demo、dollar、games、bod、hello、help、intro、kill、love、no、ok、okay、please、sex、secret、superuser、system、test、work、yes等。好的口令根本不是指口令本身,而是指这种方法:设置的密码容易记住,但很难被破解。我们所说的密码是指多个密码,这样即使有人猜出了其中一个口令,也不知道你的所有口令。以下是口令设置方面的准则,可以帮你创建无法被猜中但又容易记住的密码。选择核心短语。开始要选一个至少5个单字长的短语。这可以是某首歌的头一行、一句引语或者是书名——只要你记在脑海中的都行。然后利用该短语创建核心口令,通常的办法是取每个单词的头一个字母。比如tcith,这是书名《The
Cat in the
Hat》的头一个字母组成的口令。这个简单的步骤可以保护你,以免有人运行所谓的字典式攻击:字典里面的每个单字(还有许多专有名称)都被试过,直到正确的单字被找到为止,电脑可以在很短时间内完成字典式攻击。密码设置和原则:
1).足够长,指头只要多动一下为密码加一位,就可以让攻击者的辛苦增加十倍;
2). 不要用完整的单词,尽可能包括数字、标点符号和特殊字符等;
3).混用大小写字符;
4).经常修改。
2.使用.htaccess来保护Apache服务
.htaccess文件是Apache服务器上的一个设置文件。它是一个文本文件,可以使用任何文本编辑器进行编写。首先在要设置存取控制的目录(如htdocs)下建立一个文件,文件名可以自行设定,一般服务器都会设置为.htpasswd,该文件是不能由HTTP读取的。.htpasswd文件中的每一行代表一个使用者,使用者的名字及经过加密的密码以冒号:分隔。
3. 以安全模式运行PHP
以安全模式运行PHP是使PHP脚本安全使用的好方法,特别是在允许用户使用自己开发的PHP脚本时。使用安全模式会使PHP在运行函数时检查是否存在安全问题。include、readfile、fopen、file、unlink、rmdir等等:被包含的文件或者该文件所在目录的所有者必须是正在运行的脚本的所有者;
Mysql_Connect:这个函数用可选的用户名连接MySQL数据库。在安全模式下,用户名必须是当前被执行的脚本的所有者,或运行httpd的用户名(通常是nobody)。
HTTP
Authentication:包含HTTP验证代码脚本所有者的用户ID(数字型)会自动加到验证域。这样可以防止有人通过抓取密码的程序来欺骗同一个服务器上的HTTP验证脚本。
4.根据需要对系统服务进行控制 服务是一种在系统后台运行的应用程序类型,它与Linux守护进程类似。如果可能的话,尽量使用本地账号而不是域账号作为服务账号,因为如果某人物理上获得了服务器的访问权限,他可能会转储服务器的LSA机密,并泄露密码。如果你使用域密码,森林中的任何计算机都可以通过此密码获得域访问权限。而如果使用本地账户,密码只能在本地计算机上使用,不会给域带来任何威胁。一个基本原则告诉我们,在系统上运行的代码越多,包含漏洞的可能性就越大。你需要关注的一个重要安全策略是减少运行在你服务器上的代码。这么做能在减少安全隐患的同时增强服务器的性能。在Linux中缺省运行的服务有很多,但是有很大一部分服务在大多数环境中并派不上用场。
关闭MySQL的网络功能,mysqld进程启动时,会自动寻找/etc/my.conf这个配置文件。绑定网络地址需要通过命令行参数进行控制。比如,在/etc/init.d/mysql脚本中找到以下代码:
$bindir/safe_mysqld --datadir=$datadir
--pid-file=$pid_file&
并将其修改为:
$bindir/safe_mysqld --datadir=$datadir ...
--skip-networking&
这样就可以完全关闭MySQL的网络功能。
5.限制管理员权限
系统管理员具有最大的权限,而该权限可能会与其它的板主权限相冲突而造成不可预期的错误,所以最好不要让系统管理员当版主。另外用root权限运行MYSQL也不太安全,这里推荐使用其他用户运行MYSQL。方法是:
# mysql -u root -p Enter password:xxxxxxxxx
………
mysql>update user set user="cao" where user="root"; mysql> flush
privileges; mysql>quit Bye
以后就得通过cao帐号访问mysql数据库了。
6. 关闭Mysql远程连接
首先,应该关闭3306端口,这是MySQL的默认监听端口。由于此处MySQL只服务于本地脚本,所以不需要远程连接。尽管MySQL内建的安全机制很严格,但监听一个TCP端口仍然是危险的行为,因为如果MySQL程序本身有问题,那么未授权的访问完全可以绕过MySQL的内建安全机制。关闭网络监听的方法很简单,mysqld进程启动时,会自动寻找/etc/my.conf这个配置文件。在/etc/my.cnf文件中的[mysqld]部分,去掉#skip-networking前面的“#”即可。另外要尽量养成在mysql下输入密码的习惯,因为Shell下面输入的时候可能会被其它人看见。
总结:
LAMP和mediawiki可以组成一个优秀的维基网站,可以在互联网上运行,也可以在Linux局域网中运行。有了维基一个用户就可以低成本地发布、更新和维护自己的维基网站。在预算短缺的今天,LAMP+mediawiki组成维基网站无疑具备明显的价格优势。
(责任编辑:luwei)