Discuz! X2.5安全配置指引

系统安装

1、软件包选择:全不选,安装最小化的系统,不安装图形界面

2、root密码:必须超过8位,并且有符号和字母数字。

3、精简服务:关掉以下服务项

kudzu cpuspeed isdn portmap nfslock rpcidmapd rpcgssd bluetooth netfs pcscd apmd hidd autofs hplip cups gpm xfs avahi-daemon yum-updatesd firstboot haldaemon

4、数据分区 /home 或 /data 应使用 nodev,nosetuid,nosetgid 挂载

5、所有服务的启动脚本应为root权限,并且为755属性

6、web服务器只开放80与22端口

7、数据库服务器只开放3306与22端口

8、除80,443和22,udp161(snmp),5666(nrpe)外,不允许其他服务LISTEN外网IP,161和5666端口必须限制IP

9、如无必要,禁止开启FTP服务,FTP密码传输为明文,容易被监听。

10、禁止使用root权限运行任何服务

11、设置内核参数net.ipv4.tcp_syncookies = 1,打开syncookie支持,防止普通级别的synflood

12、设置内核参数net.ipv4.conf.all.log_martians = 1,开启arp地址变更的记录功能,以便发现arp spoof攻击

系统安装

1、必须设置的 php.ini 参数:

disable_functions= passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen

register_globals = Off

cgi.fix_pathinfo=0

magic_quotes_gpc = On

allow_url_include = Off

expose_php = Off

2、MYSQL禁止绑定外网地址,单机只允许绑定127.0.0.1,多台服务器绑定内网IP

3、php-fpm方式工作时,必须为每个站点设置一个独立的池,用不同的用户来运行

4、每个服务用独立的用户执行,比如:

WEB服务运行帐户为www

MySQL服务运行帐户为mysql

Memcached用户为memcache

Redis运行帐户为redis

站点安全

1、禁止长期放置phpinfo等探针,phpmyadmin等管理程序,需要的时候放置,用完后移走到非站点目录。

2、禁止在在运行的站点内放置测试程序,备份目录如bak,old文件夹一律移到非站点目录。

3、禁止放置install文件夹,以及upgrade、xconvert 相关升级和转换文件。

4、禁止目录下出现编辑器编辑后自动生成的备份文件,比如使用vim后留下的.swp ,Editplus留下的.bak文件。

5、打包站点得来的zip,tar.gz,tar文件,一律不能放到站点目录下。

6、除了以下目录外,其他目录设置成root权限,禁止其他用户组修改。目录是:config/、data/、uc_client/data/、uc_server/data/

7、设置禁止访问config/、data/、uc_client/data/、uc_server/data/下的php文件