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文件