Month: April 2020
How To Install and Configure OpenLDAP and phpLDAPadmin on an Ubuntu 14.04 Server | DigitalOcean
Install phpLDAPadmin to Manage LDAP with a Web Interface
Although it is very possible to administer LDAP through the command line, most users will find it easier to use a web interface. We’re going to install phpLDAPadmin, which provides this functionality, to help remove some of the friction of learning the LDAP tools.
The Ubuntu repositories contain the phpLDAPadmin package. You can install it by typing:
sudo apt-get install phpldapadmin
This should install the administration interface, enable the necessary Apache virtual hosts files, and reload Apache.
The web server is now configured to serve your application, but we will make some additional changes. We need to configure phpLDAPadmin to use the domain schema we configured for LDAP, and we are also going to make some adjustments to secure our configuration a little bit.
Configure phpLDAPadmin
Now that the package is installed, we need to configure a few things so that it can connect with the LDAP directory structure that was created during the OpenLDAP configuration stage.
Begin by opening the main configuration file with root privileges in your text editor:
sudo nano /etc/phpldapadmin/config.php
In this file, we need to add the configuration details that we set up for our LDAP server. Start by looking for the host parameter and setting it to your server’s domain name or public IP address. This parameter should reflect the way you plan on accessing the web interface:
$servers->setValue('server','host','server_domain_name_or_IP');
Next up, you’ll need to configure the domain name you selected for your LDAP server. Remember, in our example we selected test.com
. We need to translate this into LDAP syntax by replacing each domain component (everything not a dot) into the value of a dc
specification.
All this means is that instead of writing test.com
, we will write something like dc=test,dc=com
. We should find the parameter that sets the server base parameter and use the format we just discussed to reference the domain we decided on:
$servers->setValue('server','base',array('dc=test,dc=com'));
We need to adjust this same thing in our login bind_id parameter. The cn
parameter is already set as “admin”. This is correct. We just need to adjust the dc
portions again, just as we did above:
$servers->setValue('login','bind_id','cn=admin,dc=test,dc=com');
The last thing that we need to adjust is a setting that control the visibility of warning messages. By default phpLDAPadmin will throw quite a few annoying warning messages in its web interface about the template files that have no impact on the functionality.
We can hide these by searching for the hide_template_warning
parameter, uncommenting the line that contains it, and setting it to “true”:
$config->custom->appearance['hide_template_warning'] = true;
This is the last thing that we need to adjust. You can save and close the file when you are finished.
Create a Password Authentication File
We also want to password protect our phpLDAPadmin location. Even though phpLDAPadmin has password authentication, this will provide an extra level of protection.
The utility that we need is contained in an Apache utility package. Get it by typing:
sudo apt-get install apache2-utils
Now that you have the utility available, you can create a password file that will contain a username that you choose and the associated hashed password.
We will keep this in the /etc/apache2
directory. Create the file and specify the username you want to use by typing:
sudo htpasswd -c /etc/apache2/htpasswd demo_user
Now, we are ready to modify Apache to take advantage of our security upgrades.
Secure Apache
The first thing we should do is enable the SSL module in Apache. We can do this by typing:
sudo a2enmod ssl
This will enable the module, allowing us to use it. We still need to configure Apache to take advantage of this though.
Currently, Apache is reading a file called 000-default.conf
for regular, unencrypted HTTP connections. We need to tell it to redirect requests for our phpLDAPadmin interface to our HTTPS interface so that the connection is encrypted.
When we redirect traffic to use our SSL certificates, we’ll also implement the password file to authenticate users. While we’re modifying things, we’ll also change the location of the phpLDAPadmin interface itself to minimize targeted attacks.
Modify the phpLDAPadmin Apache Configuration
The first thing we will do is modify the alias that is set up to serve our phpLDAPadmin files.
Open the file with root privileges in your text editor:
sudo nano /etc/phpldapadmin/apache.conf
This is the place where we need to decide on the URL location where we want to access our interface. The default is /phpldapadmin
, but we want to change this to cut down on random login attempts by bots and malicious parties.
For this guide, we’re going to use the location /superldap
, but you should choose your own value.
We need to modify the line that specifies the Alias
. This should be in an IfModule mod_alias.c
block. When you are finished, it should look like this:
<IfModule mod_alias.c>
Alias /superldap /usr/share/phpldapadmin/htdocs
</IfModule>
When you are finished, safe and close the file.
Configure the HTTP Virtual Host
Next, we need to modify our current Virtual Hosts file. Open it with root privileges in your editor:
sudo nano /etc/apache2/sites-enabled/000-default.conf
Inside, you’ll see a rather bare configuration file that looks like this:
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
We want to add information about our domain name or IP address to define our server name and we want to set up our redirect to point all HTTP requests to the HTTPS interface. This will match the alias we configured in the last section.
The changes we discussed will end up looking like this. Modify the items in red with your own values:
<VirtualHost *:80> ServerAdmin webmaster@server_domain_or_IP DocumentRoot /var/www/html ServerName server_domain_or_IP Redirect permanent /superldap https://server_domain_or_IP/superldap ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Save and close the file when you are finished.
Source: How To Install and Configure OpenLDAP and phpLDAPadmin on an Ubuntu 14.04 Server | DigitalOcean
OpenLDAP password policy overlay
Top 5 Vulnerability Scanning Tools
How to install the OpenVAS vulnerability scanner on Ubuntu 16.04
How To Use Vuls as a Vulnerability Scanner on Ubuntu 18.04
Technicolor
What are CSS Modules and why do we need them?
What does this look like and why do it? We’ll get to that in a sec. First, remember how HTML and CSS normally work. A class is applied in HTML:
<h1 class="title">An example heading</h1>
And that class is styled in CSS:
.title {
background-color: red;
}
As long as that CSS is applied to the HTML document, the background of that <h1>
would be red. We don’t need to process the CSS or the HTML. The browser understands both those file formats.
Source: What are CSS Modules and why do we need them? | CSS-Tricks
Introduction | Vue I18n
Vue I18n is internationalization plugin of Vue.js. It easily integrates some localization features to your Vue.js Application.
Source: Introduction | Vue I18n
Pain and Glory (2019)
Anna Malikova
Sébastien Érard
Sébastien Érard (born Sebastian Erhard, 5 April 1752 – 5 August 1831) was a French instrument maker of German origin who specialised in the production of pianos and harps, developing the capacities of both instruments and pioneering the modern piano.