PHP 7 nginx
This commit is contained in:
parent
29ebf207a5
commit
a6bca40ea4
|
@ -1,21 +1,20 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<appendix id="a_security">
|
||||
<appendix id="a_security">
|
||||
<title>Security</title>
|
||||
|
||||
<section id="a_configPasswords">
|
||||
<title>LAM configuration passwords</title>
|
||||
|
||||
<para>LAM supports a two level authorization system for its
|
||||
configuration. Therefore, there are two types of configuration
|
||||
passwords:</para>
|
||||
<para>LAM supports a two level authorization system for its configuration.
|
||||
Therefore, there are two types of configuration passwords:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">master configuration
|
||||
password:</emphasis> needed to change general settings,
|
||||
create/delete server profiles and self service profiles</para>
|
||||
<para><emphasis role="bold">master configuration password:</emphasis>
|
||||
needed to change general settings, create/delete server profiles and
|
||||
self service profiles</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -26,8 +25,7 @@
|
|||
</itemizedlist>
|
||||
|
||||
<para>The master configuration password can be used to reset a server
|
||||
profile password. Each server profile has its own profile
|
||||
password.</para>
|
||||
profile password. Each server profile has its own profile password.</para>
|
||||
|
||||
<para>Both password types are stored as hash values in the configuration
|
||||
files for enhanced security.</para>
|
||||
|
@ -36,29 +34,28 @@
|
|||
<section>
|
||||
<title>Use of SSL</title>
|
||||
|
||||
<para>The data which is transfered between you and LAM is very
|
||||
sensitive. Please always use SSL encrypted connections between LAM and
|
||||
your browser to protect yourself against network sniffers.</para>
|
||||
<para>The data which is transfered between you and LAM is very sensitive.
|
||||
Please always use SSL encrypted connections between LAM and your browser
|
||||
to protect yourself against network sniffers.</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>LDAP with SSL and TLS</title>
|
||||
|
||||
<para>SSL will be used if you use ldaps://servername in your
|
||||
configuration profile. TLS can be activated with the "Activate TLS"
|
||||
option.</para>
|
||||
<para>SSL will be used if you use ldaps://servername in your configuration
|
||||
profile. TLS can be activated with the "Activate TLS" option.</para>
|
||||
|
||||
<para>If your LDAP server uses a SSL certificate of a well-know
|
||||
certificate authority (CA) then you probably need no changes. If you use
|
||||
a custom CA in your company then there are two ways to setup the CA
|
||||
certificate authority (CA) then you probably need no changes. If you use a
|
||||
custom CA in your company then there are two ways to setup the CA
|
||||
certificates.</para>
|
||||
|
||||
<section>
|
||||
<title>Setup SSL certificates in LAM general settings</title>
|
||||
|
||||
<para>This is much easier than system level setup and will only affect
|
||||
LAM. There might be some cases where other web applications on the
|
||||
same web server are influenced.</para>
|
||||
LAM. There might be some cases where other web applications on the same
|
||||
web server are influenced.</para>
|
||||
|
||||
<para>See <link linkend="conf_sslCert">here</link> for details.</para>
|
||||
</section>
|
||||
|
@ -69,11 +66,10 @@
|
|||
<para>This will make the CA certificates available also to other
|
||||
applications on your system (e.g. other web applications).</para>
|
||||
|
||||
<para>You will need to setup ldap.conf to trust your server
|
||||
certificate. Some installations use /etc/ldap.conf and some use
|
||||
/etc/ldap/ldap.conf. It is a good idea to symlink /etc/ldap.conf to
|
||||
/etc/ldap/ldap.conf. Specify the server CA certificate with the
|
||||
following option:</para>
|
||||
<para>You will need to setup ldap.conf to trust your server certificate.
|
||||
Some installations use /etc/ldap.conf and some use /etc/ldap/ldap.conf.
|
||||
It is a good idea to symlink /etc/ldap.conf to /etc/ldap/ldap.conf.
|
||||
Specify the server CA certificate with the following option:</para>
|
||||
|
||||
<programlisting>TLS_CACERT /etc/ldap/ca/myCA/cacert.pem</programlisting>
|
||||
|
||||
|
@ -94,8 +90,8 @@
|
|||
<title>Selinux</title>
|
||||
|
||||
<para>In case your server has selinux installed you might need to extend
|
||||
the selinux ruleset. E.g. your webserver might not be allowed to write
|
||||
in /var/lib.</para>
|
||||
the selinux ruleset. E.g. your webserver might not be allowed to write in
|
||||
/var/lib.</para>
|
||||
|
||||
<para><emphasis role="bold">Read selinux status</emphasis></para>
|
||||
|
||||
|
@ -112,8 +108,8 @@
|
|||
<para><emphasis role="bold">Set selinux to Permissive
|
||||
mode</emphasis></para>
|
||||
|
||||
<para>This will just log any access violations. You will need this to
|
||||
get a list of missing rights.</para>
|
||||
<para>This will just log any access violations. You will need this to get
|
||||
a list of missing rights.</para>
|
||||
|
||||
<programlisting>setenforce Permissive</programlisting>
|
||||
|
||||
|
@ -122,8 +118,8 @@
|
|||
|
||||
<para><emphasis role="bold">Extend selinux rules</emphasis></para>
|
||||
|
||||
<para>Selinux now has logged any violations to audit.log. You can use
|
||||
this now to extend your ruleset and enable enforcing later.</para>
|
||||
<para>Selinux now has logged any violations to audit.log. You can use this
|
||||
now to extend your ruleset and enable enforcing later.</para>
|
||||
|
||||
<para>The following example is for httpd. You can also adapt it to e.g.
|
||||
nginx.</para>
|
||||
|
@ -169,12 +165,12 @@ semodule -i httpdlocal.pp</programlisting>
|
|||
<section>
|
||||
<title>Chrooted servers</title>
|
||||
|
||||
<para>If your server is chrooted and you have no access to /dev/random
|
||||
or /dev/urandom this can be a security risk. LAM stores your LDAP
|
||||
password encrypted in the session. LAM uses rand() to generate the key
|
||||
if /dev/random and /dev/urandom are not accessible. Therefore the key
|
||||
can be easily guessed. An attaker needs read access to the session file
|
||||
(e.g. by another Apache instance) to exploit this.</para>
|
||||
<para>If your server is chrooted and you have no access to /dev/random or
|
||||
/dev/urandom this can be a security risk. LAM stores your LDAP password
|
||||
encrypted in the session. LAM uses rand() to generate the key if
|
||||
/dev/random and /dev/urandom are not accessible. Therefore the key can be
|
||||
easily guessed. An attaker needs read access to the session file (e.g. by
|
||||
another Apache instance) to exploit this.</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
|
@ -183,8 +179,8 @@ semodule -i httpdlocal.pp</programlisting>
|
|||
<para>You have to install the OpenSSL extension for PHP to enable
|
||||
encryption.</para>
|
||||
|
||||
<para>Your LDAP password is stored encrypted in the session file. The
|
||||
key and IV to decrypt it are stored in two cookies. We use OpenSSL/AES to
|
||||
<para>Your LDAP password is stored encrypted in the session file. The key
|
||||
and IV to decrypt it are stored in two cookies. We use OpenSSL/AES to
|
||||
encrypt the password. All data that was read from LDAP and needs to be
|
||||
stored in the session file is also encrypted.</para>
|
||||
</section>
|
||||
|
@ -195,21 +191,21 @@ semodule -i httpdlocal.pp</programlisting>
|
|||
<section>
|
||||
<title>Sensitive directories</title>
|
||||
|
||||
<para>LAM includes several .htaccess files to protect your
|
||||
configuration files and temporary data. Apache is often configured to
|
||||
not use .htaccess files by default. Therefore, please check your
|
||||
Apache configuration and change the override setting to:</para>
|
||||
<para>LAM includes several .htaccess files to protect your configuration
|
||||
files and temporary data. Apache is often configured to not use
|
||||
.htaccess files by default. Therefore, please check your Apache
|
||||
configuration and change the override setting to:</para>
|
||||
|
||||
<para>AllowOverride All</para>
|
||||
|
||||
<para>If you are experienced in configuring Apache then you can also
|
||||
copy the security settings from the .htaccess files to your main
|
||||
Apache configuration.</para>
|
||||
copy the security settings from the .htaccess files to your main Apache
|
||||
configuration.</para>
|
||||
|
||||
<para>If possible, you should not rely on .htaccess files but also
|
||||
move the config and sess directory to a place outside of your WWW
|
||||
root. You can put a symbolic link in the LAM directory so that LAM
|
||||
finds the configuration/session files.</para>
|
||||
<para>If possible, you should not rely on .htaccess files but also move
|
||||
the config and sess directory to a place outside of your WWW root. You
|
||||
can put a symbolic link in the LAM directory so that LAM finds the
|
||||
configuration/session files.</para>
|
||||
|
||||
<para>Security sensitive directories:</para>
|
||||
|
||||
|
@ -260,8 +256,8 @@ semodule -i httpdlocal.pp</programlisting>
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>directory contents must be accessible by browser but
|
||||
directory itself needs not to be browseable</para>
|
||||
<para>directory contents must be accessible by browser but directory
|
||||
itself needs not to be browseable</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
|
@ -269,14 +265,14 @@ semodule -i httpdlocal.pp</programlisting>
|
|||
<section id="apache_http_auth">
|
||||
<title>Use LDAP HTTP authentication for LAM</title>
|
||||
|
||||
<para>With HTTP authentication Apache will be responsible to ask for
|
||||
the user name and password. Both will then be forwarded to LAM which
|
||||
will use it to access LDAP. This approach gives you more flexibility
|
||||
to restrict the number of users that may access LAM (e.g. by requiring
|
||||
<para>With HTTP authentication Apache will be responsible to ask for the
|
||||
user name and password. Both will then be forwarded to LAM which will
|
||||
use it to access LDAP. This approach gives you more flexibility to
|
||||
restrict the number of users that may access LAM (e.g. by requiring
|
||||
group memberships).</para>
|
||||
|
||||
<para>First of all you need to load additional Apache modules. These
|
||||
are "<ulink
|
||||
<para>First of all you need to load additional Apache modules. These are
|
||||
"<ulink
|
||||
url="http://httpd.apache.org/docs/2.2/mod/mod_ldap.html">mod_ldap</ulink>"
|
||||
and "<ulink type=""
|
||||
url="http://httpd.apache.org/docs/2.2/mod/mod_authnz_ldap.html">mod_authnz_ldap</ulink>".</para>
|
||||
|
@ -317,9 +313,9 @@ semodule -i httpdlocal.pp</programlisting>
|
|||
<title>Self Service behind proxy in DMZ (LAM Pro)</title>
|
||||
|
||||
<para>In some cases you might want to make the self service accessible
|
||||
via the internet. Here is an Apache config to forward only the
|
||||
required URLs via a proxy server (lamproxy.company.com) in your DMZ to
|
||||
the internal LAM server (lam.company.com).</para>
|
||||
via the internet. Here is an Apache config to forward only the required
|
||||
URLs via a proxy server (lamproxy.company.com) in your DMZ to the
|
||||
internal LAM server (lam.company.com).</para>
|
||||
|
||||
<para><inlinemediaobject>
|
||||
<imageobject>
|
||||
|
@ -379,8 +375,8 @@ semodule -i httpdlocal.pp</programlisting>
|
|||
<title>RPM based installations</title>
|
||||
|
||||
<para>The RPM package has dependencies on Apache. Therefore, Nginx is
|
||||
not officially supported with this installation mode. Use tar.bz2 if
|
||||
you are unsure.</para>
|
||||
not officially supported with this installation mode. Use tar.bz2 if you
|
||||
are unsure.</para>
|
||||
|
||||
<para>However, the package also includes an Nginx configuration file.
|
||||
Please include it in your server directive like this:</para>
|
||||
|
@ -392,6 +388,10 @@ semodule -i httpdlocal.pp</programlisting>
|
|||
|
||||
...
|
||||
}</programlisting>
|
||||
|
||||
<para>The included config file uses PHP 5. In case you run with PHP 7
|
||||
please update the parameter "fastcgi_pass" to
|
||||
"/var/run/php7-fpm.sock".</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
|
@ -407,6 +407,10 @@ semodule -i httpdlocal.pp</programlisting>
|
|||
|
||||
...
|
||||
}</programlisting>
|
||||
|
||||
<para>The included config file uses PHP 5. In case you run with PHP 7
|
||||
please update the parameter "fastcgi_pass" to
|
||||
"/var/run/php7-fpm.sock".</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
|
@ -416,8 +420,9 @@ semodule -i httpdlocal.pp</programlisting>
|
|||
directive.</para>
|
||||
|
||||
<para>You will need to change the alias location
|
||||
("/usr/share/ldap-account-manager") and fastcgi_pass
|
||||
("/var/run/php5-fpm.sock") to match your installation.</para>
|
||||
("/usr/share/ldap-account-manager") and fastcgi_pass (e.g.
|
||||
"/var/run/php5-fpm.sock" or "/var/run/php7-fpm.sock") to match your
|
||||
installation.</para>
|
||||
|
||||
<programlisting>location /lam {
|
||||
index index.html;
|
||||
|
@ -441,4 +446,4 @@ semodule -i httpdlocal.pp</programlisting>
|
|||
</programlisting>
|
||||
</section>
|
||||
</section>
|
||||
</appendix>
|
||||
</appendix>
|
||||
|
|
Loading…
Reference in New Issue