昨天,应领导要求检查公司内网的安全,在检测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