【PHP开源代码栏目提醒】:网学会员为广大网友收集整理了,moodle管理三大纪律八项注意_new - 其它论文,希望对大家有所帮助!
Moodle 管理“三大纪律,八项注意” 刘太如1 朱林辉2摘要:许多学校都已经构建了自己的 Moodle 服务器,但是 Moodle 服务器的维护工作却没有跟得上,本文针对 Moodle 操作中管理员容易疏忽的环节或常犯的错误,总结出“三大纪律,八项注意” ,从而指导 Moodle 管理员做好日常管理和维护工作。
关键字:MoodleMoodle 管理维护Moodle 安全服务器优化一、 问题的提出 随着 Moodle 应用的普及,很多学校都架构起了自己的 Moodle 服务器,但是在服务器的日常管理与维护中出现很多问题。
不少学校由于 Moodle 管理员不具备相关的知识技能,甚至没有专门的Moodle 服务器管理人员, 使他们的 Moodle 服务器常常因一些操作失误或者使用不规范、 存在安全漏洞、配置不当等等而造成很大损失。
为了帮助各学校 Moodle 管理员提高维护水平和管理质量,我们从日常工作中比较容易出错的几个地方出发,归纳了“三大纪律,八项注意” 。
首先声明本文所有
代码、配置等基于以下环境:CentOS5.2,Apache2.2.3,
php5.2.6,Mysql5.0.22。
二、 MOODLE 管理的三大纪律1. 第一大纪律:密码强化管理(强口令和更换机制) 作为服务器管理员, 掌控账号是最重要的职责之一,账号管理的好坏直接决定着服务器运行安全的优劣。
作为 Moodle 管理员需要特别重视和严格控制的账号包括: 操作系统账号、 数据库账号、Moodle系统账号。
(1)操作系统根管理员密码。
Linux 操作系统本身的安全性比较高,漏洞比较少,黑客攻击 Linux操作系统时,最常用的方法是破解密码,因此 Linux 系统密码安全成为保障 Linux 服务器安全的重中 、之重。
在日常的服务器管理中,管理员对此重视不够,常常设置一些弱口令如“123456”“111111”等,给操作系统安全留下了很大的安全隐患。
Linux 服务器默认支持的最少密码位数为 5,当前
常用的一些暴力破解软件随着计算机运算能力的不断提高很容易就能破解 6 位以内的密码, 因此管理员在设置密码时,应该至少设置更长位数和不同字符类型的密码,在此我们推荐密码设置为 8 位,采用字母大小写数字特殊字符的方式,如 Qip5309! 。
而且仅仅设置一个固定不变的强口令是不够的,因为强口令也能很容易的被监控类黑客软件所记录,所以还应该定期进行密码更改,具体更换周期可以根据服务器重启频率来定, 如果频率高了更换周期短一些。
在平时的服务器操作应该采用普通管理员用户口令,Root 口令应当只在需要超级管理员权限时使用。
在此还要注意的一点是,管理员自己一定要记清设置的密码,预防黑客的同时,不能把自己也关在 Linux 操作系统的大门之外。
我们认为,结合中文诗句的拼音或某种有规律的变换也是帮助记忆的 、办法,如用“BrysjHhrhl”代表“白日依山尽,黄河入河流”“2d10cfdy1024”代表“2 的 10 次方等于 1024”等等,但不管如何变化,最好要有专门的记录本记载并保管好。
万一如果不小心遗失密码,也可以采用如下方式解决。
① 进入单用户模式修改密码 进入单用户模式的方式有三种:第一种,使用 Linux 系统启动软盘(正常系统中创建)启动,出现提示符后输入: linuxsingle。
系统进入单用户模式。
第二种使用 linux
系统的引导程序 LILO,同样在出现提示符时输入: linuxsingle。
第三种方式是最常用的,即使用引导程序 GRUB。
启动 GRUB 后用上下键将高亮光标选择操作系统选项(…roroot…所在行) ,然后键入 e 进行编辑。
选择 kernel 开头的一行,再按 e 键,在末尾,按空格键后加入 single,按回车键退出编辑模式。
回到 GRUB 界面,键入 b 进入单用户模式。
进入单用户模式后,运行级别为 1,即独占模式。
在提示符“”后输入 passwdroot 后重设 root密码, 重启后密码会更新。
还有一种方式是通过修改/etc/shadow 文件来删除 root 密码。
在提示符“”后输入 vi/etc/shadow 将 root 后第一个“:”和第二个“:”之间的字符全部删除,即可清除 root 密码,然后输入 wq强行保存退出,再键入 reboot 命令重启后可以以空密码登录。
② 使用系统安装盘 如果①所述的方式都无法实现, 则只能采用 Linux 系统安装盘启动, 出现 boot 提示符后输入
linux1 刘太如,硕士研究生,上海师范大学教育技术系,2002342 朱林辉,
计算机高级教师,上海闵行区教师进修学院教育技术部,201100rescue,进入 linux 拯救模式,根据提示登入系统,重设 root 密码:chroot/mnt/sysimage让系统成为根环境 cd/mnt/sysimage passwdroot 更改密码后重启,既可以新密码登录。
(2) 数据库账号。
一些管理员在编译安装 mysql 后忘记设置 mysql 根密码,给 mysql 造成很大的安全隐患。
在 mysql 安装完成后,首先启动 mysql,然后在提示符后输入命令 mysqladmin–urootpassword‘密码’设置 mysql 根用户密码。
目前大多数管理员都采用 phpmyadmin 对
mysql 数据库进行管理,在安装 phpmyadmin 时,也应该设置登录验证方式,将 config.inc.
php(一般在 phpmyadmin 根目录下)中的认证方式改为 http,即cfgServersiauth_typehttp这样以后登录 phpmyadmin时就需要输入账号密码。
而且还应该修改 phpmyadmin 的文件夹名称, 隐藏 phpmyadmin 的登录路径,减少被暴力破解的机会,比如修改为 datamysqladmin,要管理数据库时,就通过 datamy
sqladmin 来访问 phpmyadmin。
(3) Moodle 管理员。
在 Moodle 管理员密码的设置同 linux 操作系统的管理员密码设置, 1.9.7 版本以后 Moodle 加强了管理员密码的安全性,将密码增加到最少 8 位,必须由大小写字母加数字和特殊字符组成,这样的密码强度,在目前的密码破解软件水平下已经很难被破解。
Moodle 管理员不应开设太多,一般两到三个管理员账号为佳,平时的一般操作尽量采用普通账号登录,尽量减少超级管理员账号的使用次数,降低暴露机会。
管理员账号一定要专人专用,避免出现一个账号多人使用的情况,这样出现
问题后无法确定问题的根源,加大了管理的难度。
万一把 Moodle 管理员的密码忘记了,可以采取下面的办法:方法一: ① 进入 phpmyadmin ② 打开 mdl_user 数据库 ③ 对相应 admin 的密码修改 注:由于密码字段采用了 MD5 加密(32 位) ,因此不能直接清空或按设定的密码原样输入,而应粘贴入相应的 MD5 编码。
如 123456 的 MD5 编码(32 位)为:e10adc3949ba59abbe56e057f20f883e。
如前所述,密码应当足够复杂和不同寻常,否则理论上不可逆解的 MD5 编码依然可以利用因特网上强大的数据库而进行分布式破解。
方法二: 通过上传
代码强制修改密码,具体
代码如下所示: ltphp require_onceconfig.
php require_oncelib/adminlib.
php adminget_admin adminusernameadmin‐gtusername echoquotltpgt当前要修改的是 adminusernamelt/pgtquot update_internal_user_pass
wordadminmoodle echoquot密码已成功修改为 moodle,记得删除此文件,现在可以用 moodle 做密码
登陆了! !quot gt 将如上
代码另存为 resetadmin.
php,然后上传到 moodle 根目录下,在浏览器里输入 http://你的moodle 地址/resetadmin.
php 看到修改密码成功后,即可把 admin 用户的密码修改为 moodle,在修改完成后记得删除 resetadmin.
php 密码。
2. 第二大纪律:版本及时升级 Moodle 是由分布在全球各地的程序员共同维护的
开源软件,
软件的开发过程中难免会出现很多漏洞,作为 Moodle 管理员应该时常关注 Moodle 的发展动态,出现漏洞后,及时升级 Moodle 系统,避免造成损失。
另外,最好将你的 Moodle 站点注册, Moodle 的创始人马丁及其团队会在公布发现的漏洞前将漏洞信息以及应对措施发到已
注册的网站管理员的邮箱,这样可以及时修正漏洞,避免遭受攻击。
在升级时,首先要做好系统及数据的备份工作;第二要注意尽量避免跨版本升级,比如从1.5 升级到 1.9,直接用 1.9 的网站文件覆盖 1.5 的文件是不正确的,首先应该将 1.5 升级到 1.6,然后升级到 1.7,再升到 1.8,最后才是 1.9,这样逐级升级会避免因为数据库的过大改动给平台造成的不兼容。
第三要将原来的配置文件、主题目录、语言包等复制和恢复。
升级时最容易造成首页访问权限混乱,比如升级前,学生用户角色登录能够看到首页上的课程列表以及添加的各个板块,升级后,学生用户看不到各个板块,这是因为在升级过程中,造成的首页权限变更,这时在首页/首页设置下将默认首页角色更改为 student(学生)即可。
升级的方法是用新版本的程序覆盖原来的程序,然后登录平台点击通告完成升级。
在升级过程中除了注意避免跨版本升级外,还应注意不要覆盖有改动的程序文件。
由于升级的过程是不可逆的,在升级之前一定要先做好备份。
备份方法为: 备份
程序文件,即 Moodle 的主程序;一般是整个文件夹备份。
备份 Moodle 数据文件,即 Moodledata 文件夹(注意其存放位置和修改的名称) ; 备份数据库文件,可以类似命令:mysqldumpMoodle 数据库名 gtmoodledata‐backup.sql,转 存为单独的 SQL 文件。
也可以采用 Phpmyadmin 的导出功能。
具体步骤为:登录 Phpmyadmin 数据库
管理系统,选择 Moodle 的数据库,然后选择导出,选中所有数据表,然后选择另存 为文件中的 zip
压缩,点击执行即可,具体设置如图所示。
图 1 数据备份设置页面3. 第三大纪律:访问有效控制(1) 角色管理策略 Moodle1.8 之后的新版本默认有七种角色:管理员、课程创建者、教师、没有编辑权限的教师、学生、认证用户和访客。
各个角色具有不同的权限和作用范围。
管理员具有站点全部权限,管理员还具有分配管理员的权限,在分配管理员角色时,应该慎重,因为分配管理员的同时,复制了自己的权限。
课程创建者,可以创建课程,可以分配课程内的以上七种角色,也可以对课程进行编辑加工和进行上课,课程创建者的角色可以在用户策略里设置,在创建课程时的默认角色,一般设为教师,即课程创建者默认为教师角色。
教师角色和课程创建者拥有的权限基本一致。
没有编辑权限的教师只能利用课程进行授课和批改
作业,不能编辑课程活动。
学生的权限比较低,只能参加
学习活动,参与讨论,浏览课程内容。
访客是课程内权限最低的角色,只有浏览的权限。
认证用户是以上七种角色除了访客外所有角色在登录平台后的统称,认证用户角色跟其他角色没有冲突,设置认证用户角色的目的是为了让所有登录用户能够参与网站层面的一些活动,比如讨论区,问卷调查等。
在分配角色时,还应注意几个层次:全局角色、
课程类别角色、课程角色的区别,全局角色对平台上所有的课程起作用;课程类别角色则对该类别或栏目内的课程起作用;课程角色只对本课程起作用。
例如课程管理员只能管理本课程内部的事务,全局管理员则可以管理包括课程管理员权限内事务的所有事务。
在分配全局角色时,应该慎重考虑是否必须设置为全局角色,优先考虑设置单个课程的角色。
Moodle 还支持自定义角色,管理员可以根据需要修改当前角色权限或者添加新的角色,比如添加一个家长的角色,可以在学生角色的基础上选中允许查看实时日志、课程日志、查看成绩报表等项目。
图 2Moodle 角色示意图(2) 文件夹读写权限策略 Linux 具有强大的文件权限控制能力,很多管理员在安装 Moodle 时没有注意到文件权限的重要性,如果黑客能够猜解到文件夹的路径,就能随便下载 Moodle 的数据文件,甚至可以提升权限从而控制整台服务器。
但是,设置不当或太苛刻,Moodle 系统也无法正常运行。
因此,设置恰当的文件(夹)的读写权限是必须的。
Linux 下的文件权限,如图 3 所示,左侧第一列为文件夹的权限,它所代表的意思分别为,d 表示是文件夹,如果是‐表示是普通文件。
d 之后分为三组设置,每组有三个字符,从左到右分别为,文件所有者权限(u) 、文件所在组权限g,和其他所有用户的权限o。
r 表示文件可读r4,w 表示可写w2,x 表示可执行x1。
Moodle 数据文件存放目录的正确权限应该为 rwxr‐xr‐x,即 755(10 进制表示,具体换算方式可参考相关文档) ,所属用户和组都为 apache。
其次,更改不恰当的权限,具体设置命令为 chown–Rapache:apachemoodledata(更改所属用户和组为 apache)和 chmod755moodledata将文件夹权限更改为文件所有者具有全部权限,所属组用户和其他所有用户具有可读可执行权限 图 3 文件夹权限
列表 密码强化管理、版本及时升级、访问有效控制策略是 Moodle 管理员所必须遵守基本“纪律” ,是保障 Moodle 运行安全的基础,Moodle 管理员在日常工作中应该遵守好,运用好这三大纪律,肯定会让你的日常管理事半功倍。
三、 八项注意 以下八项注意是我们在日常管理工作中总结而来,恰当的运用可以提高管理员的
工作效率,让管理员从繁重的日常维护工作中解放出来,专注于创造性的工作。
1. 第一项注意:服务器优化 在保证服务器安全的前提下,服务器性能决定了一切,如果在使用 Moodle 时,老是出现打不开网页或网速较“卡”的状况,会严重影响使用效果。
在此,从服务器硬件和软件两个方面对服务器性能进行优化设置。
① 硬件 在硬件方面制约 Moodle 访问性能的主要因素为内存和网络环境,而网络环境在排除木马或病毒攻击的正常情况下,大多数学校都基本上一致(校园网宽带) 。
因此引起访问行性能差别的主要为内存,Moodle 官方描述内存每 1G 可支持 50 个人的并发访问。
此外操作系统本身的运行还需要一定的内存保障,推荐为操作系统预留 1G 的内存。
如果用户同时访问的人数为 100 人,那么服务器内存最少应该 3G,所以我们发现安装服务器内存为 4G 时就较流畅(2008 年之前服务器普遍小于 4G,一般为 1G 或 2G) ,当然内存越高,服务器并发访问和数据处理的性能就越好。
除了内存和
网络环境外,其它硬件如 CPU 等对性能的影响也比较大,但是在目前普遍双核、四核 CPU 或更高配置的服务器水平下,基本都能满足需求,在此不再特别强调。
② 软件 Moodle 服务器软件是采用 ApachePHPMysql 方式构建,且版本尽量要新。
虽然 LAMP 黄金组合运行效率高, 但是如果设置不当, 同样无法发挥 LAMP 的优势。
Moodle 管理员在安装完 Zendoptimizer和 Eaccelerator 两个
PHP 加速软件后,还需要注意如下设置: Apache 在编译安装完 Apache 后, 许多管理员忘记了一件事情, 即取消包含 extra 目录下一些配置文件命令的注释,通常我们需要包含的文件包括: Includeconf/extra/httpd‐mpm.conf Includeconf/extra/httpd‐info.conf Includeconf/extra/httpd‐default.conf 取消注释的方法是去掉前面的号, 忘记取消注释的结果是 Apache 以默认的设置运行,没有发挥Apache 的最大优势。
另外我们还需要对 Apache 服务器进行优化设置。
在此,我们主要优化 httpd‐default.conf 文件,目的是让 Apache 能够支持大访问量。
httpd‐default.conf 文件的参数主要有:Timeout,Apache 接收请求或发送请求内容之前的最长等待时间,超过该时间时,放弃该请求,并释放连接。
默认为 300,推荐设置为 30 到 60, 对于访问量大的可以设置为 30 或 15, 设置一个较小值的好处是能够用有限的 cpu时间为更多的用户服务。
Keepalive,设置 Apache 是否允许在一个连接中有多个请求,一般情况下应该设置为 on,因为 Moodle 的一个页面会有多个请求。
MaxKeepAliveRequests,在一个连接中的最大请求数,推荐设置一个较高数值,如设置为 2048,默认为 100。
其余参数设置默认即可。
PHP 因为安装 Accelerator 和 Zendoptimizer 对
PHP 进行了优化, 所以
PHP 的设置一般不需要特别优化。
php.ini 的几个重要参数设置如下:max_execution_time,程序最长运行时间,一般设置为从 30 秒改为300 秒甚至更大。
max_input_time, 每个程序处理请求数据的最长时间, 可以设置与 max_execution_time时间相等或更长。
之所以把这两个参数设置较大,是因为 Moodle 经常需要进行备份和恢复工作,而一些课程往往比较大,特别是从电信外网对教育内网访问,需要耗费比较多的时间,所以设置较大的值避免操作超时。
memory_limit,程序允许占用内存数量(每个
PHP 页面吃掉的最大内存) ,一般 2G内存可设置为 128M。
另外,在平时的管理工作中, 管理员要注意 upload_max_filesize 与 post_max_size的区别,前者是程序允许上传的文件大小限制,后者是通过 post 方式上传文件的大小限制,默认值都不大,只有 2M。
现在课程中的多媒体文件使用较多,为了满足教师上传较大文件的需求,我们一 如般都改大了, 32M 甚至 128M, 在 一般情况下这两个参数的设置不要超过 memory_limit 的值, Moodle中大多使用 post 方式上传文件, 因此推荐这两个参数设置相同数值。
为了
PHP 的安全还应该在
php.ini中设置禁止一些危险函数的运行,即为 disable_functions 设置参数,如设置为 disable_functionsphpinfopassthruexecsystemchrootscandirchgrpchownshell_execproc_openproc_get_statusini_alterini_alterini_restoredlpfsockopenopenlogsyslogreadlinksymlinkpopepassthrustream_socket_server。
其余的设置保持默认即可,另外还要注意保证 register_globals 的值为 off,从而提高运行安全系数。
Mysql Mysql 本身提供了四种服务器设置方案,分别为 smallmediumlargehuge。
以当前的 Moodle 服务器状况来看, 学校层面的应用设置为 large 便能满足需求。
将 具体操作可在安装完 mysql 后, share/mysql下的 my‐large.cnf 复制到/etc 下并改名为 my.cnf。
操作命令为: cp /usr/local/mysql/share/mysql/my‐large.cnf /etc/my.cnf。
上面的优化
方案只能是“因地制宜” ,在具体的服务器环境中,受到访问者人数,以及网络环境等多种因素影响,还需要根据自己的实际情况进行试验比较,确定适合自己的优化方案。
我们在区域培训与考核中,上述 LAMP 配置轻松应对了 700 人同时网上考试的并发考验。
2. 第二项注意:故障排除 故障排除是服务器管理员的常态工作之一,Moodle 本身也具有强大的排错功能。
Moodle 管理员在遇到故障时, 应该怎样应对呢?首先应该分析出错原因, 思考是在什么操作之后造成的故障; 其次,尝试恢复刚才的操作, 如果故障依旧则继续排错; 第三,打开调试模式,打开调试模式的方式有三种:①以管理员身份登录网站,选择“服务器/调试” ,在设置页面中选中“显示错误信息” ,并根据需要设置显示什么样的调试信息,如“显示所有信息” 。
点击保存更改后再打开出现故障的页面即可显示详细的故障信息。
②通过链接直接进入调试设置页面。
如果首页无法显示,或者管理链接无法显示,此时可以直接通过链接地址进入调试设置页面,调试设置页面地址为:http://你的 Moodle 网站地址/admin/settings.phpsectiondebugging。
此时设置同①。
③如果上面两种方式已经都无法实现,此时可以直接修改 Moodle 的设置文件 config.
php,在
文档中添加这两段
代码:CFG‐gtdebug2047CFG‐gtdebugdisplay1或者CFG‐gtdebug6043CFG‐gtdebugdisplay1即可打开调试模式。
④浏览出错页面, 复制出错信息保存在一个
文档中,分析出错信息, 修复出错文件,如果不知道如何修复错误,也可以到有关网站贴出出错信息,请求大家帮助,或者求助于
搜索引擎。
⑤故障修复后,关掉调试模式。
⑥记录故障现象和解决方法,并存档,有助于以后同类问题的解决。
图 4 调试设置页面 3. 第三项注意:网站安全 Moodle 本身集成了丰富的安全相关设置,给管理员提供了许多安全选择。
Moodle 安全相关的设置包括网站策略,HTTP 安全,模块安全,通告和.