昨天,应领导要求检查公司内网的安全,在检测apache2服务时,为了尽量减少网站遭受Web攻击的机会,我们最好禁用目前不用的所有模块。
ubuntu系统的模块位于/etc/apache2/mods-available /etc/apache2/mods-enabled这两个目录下
LoadModule auth_basic_modulemodules/mod_auth_basic.so
LoadModule auth_digest_modulemodules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_alias_modulemodules/mod_authn_alias.so
LoadModule authn_anon_modulemodules/mod_authn_anon.so
LoadModule authn_dbm_modulemodules/mod_authn_dbm.so
LoadModule authn_default_modulemodules/mod_authn_default.so
LoadModule authz_host_modulemodules/mod_authz_host.so
LoadModule authz_user_modulemodules/mod_authz_user.so
LoadModule authz_owner_modulemodules/mod_authz_owner.so
LoadModule authz_groupfile_modulemodules/mod_authz_groupfile.so
LoadModule authz_dbm_modulemodules/mod_authz_dbm.so
LoadModule authz_default_modulemodules/mod_authz_default.so
LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_modulemodules/mod_authnz_ldap.so
LoadModule include_modulemodules/mod_include.so
LoadModule log_config_modulemodules/mod_log_config.so
LoadModule logio_modulemodules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule ext_filter_modulemodules/mod_ext_filter.so
……
上述模块在默认情况下都是启用的,但往往并不需要,特别是mod_imap,mod_include, mod_info, mod_userdir, mod_autoindex。要禁用特定的模块,可以在该模块所在行的开头插入“#”注释,并重新启动服务。
根据实际需要,将一些不需要的模块都给禁用了,同时禁用目录列表和关闭服务器端包含和CGI执行,重启apache2的时候出现如下错误:
错误一:aaa@boco:/etc/apache2/mods-available$ sudo service apache2 restart
Syntax error on line 160 of /etc/apache2/apache2.conf:
Invalid command 'Order', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.
The Apache error log may have more information.
...fail!
解决方法:如果之前有将/etc/apache2/mods-available/ authz_host.load的模块给禁用,只需要将这个模块给启动即可。
aaa@boco:/etc/apache2/mods-available$ cat authz_host.load
LoadModule authz_host_module /usr/lib/apache2/modules/mod_authz_host.so
再次重启apache2服务时报如下错误:
错误二:
aaa@boco:/etc/apache2/mods-available$ sudo service apache2 restart
Syntax error on line 22 of /etc/apache2/conf.d/nagios.conf:
Invalid command 'AuthUserFile', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.
The Apache error log may have more information.
解决方法:和上面的一样,只需要启动authn_file.load这个模块即可
aaa@boco:/etc/apache2/mods-available$ cat authn_file.load
LoadModule authn_file_module /usr/lib/apache2/modules/mod_authn_file.so
使用下面的方法同样可以解决上述两个问题:
a2enmod authn_file
sudo a2enmod authz_host
sudo /etc/init.d/apache2 restart