wordpress hosting - vpn - cloud - statistiekservice - email

Archief op 2012

Beveiliging webmail aangescherpt

De LinuxPro webmail is voorzien van nieuwe software, de onderliggende emailsoftware (Cyrus) is tevens geupdate en de serverinstellingen voor de beveiligde SSL verbinding zijn aangepast. Deze aanpassing zorgt ervoor dat kwaadwillenden geen misbruik kunnen maken van ze zgn. Beast aanval. Hierbij kan een beveiligde verbinding worden overgenomen en misbruik van worden gemaakt.

Om dit misbruik te voorkomen zijn bovenstaande aanpassingen doorgevoerd en via de online SSL check van Qualys heeft LinuxPro Webmail nu de hoogste waardering, een A: https://www.ssllabs.com/ssltest/analyze.html?d=webmail.linuxpro.nl

Kortom, we waren al veilig en zijn nu nog beter beschermd tegen kwaadwillenden.

NGINX beveiligen tegen BEAST aanvallen

Algemeen

Dat een verbing met SSL niet altijd veilig hoeft te zijn is wel aangetoond d.m.v. veiligheidsproblemen in sommige SSL varianten. Het is echter eenvoudig om NGINX te beveiligen tegen het stelen van cookies tijdens een SSL sessie. Meer info over BEAST

Configuratie NGINX aanpassen

Pas de volgende parameters in de configuratie van NGINX aan:


ssl_ciphers RC4:HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

PS: Vergeet NGINX niet te herstarten na deze wijzingen.

 

Installatie van OpenLDAP

Algemeen

In dit gedeelte wordt uitgelegd hoe de OpenLDAP server te installeren is onder RedHat 6.x of afgeleiden linux distribities zoals Fedora of CentOS.

Installatie LDAP op RedHat 6 / Centos 6

Installeer de volgende packages:

  • openldap-servers
  • openldap-clients
  • pam_ldap
  • nss-pam-ldapd
  • glibc glibc-common
  • glibc-devel
  • libtool-ltdl
  • migrationtools

Update firewall rules:

  -A INPUT -m state --state NEW -m udp -p udp --dport 389 -j ACCEPT
  -A INPUT -m state --state NEW -m tcp -p tcp --dport 389 -j ACCEPT

Restart de firewall: service iptables restart

Verwijder evt. oude installatie / configuratie:

  rm -rf /etc/openldap/slapd.d/*
  rm -rf /var/lib/ldap/*

Copyeer DB bestand:

cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

initialiseer de database met: echo "" | slapadd -f /etc/openldap/slapd.conf

zet de rechten goed:

  chown -R ldap:ldap /var/lib/ldap
  chown -R ldap:ldap /etc/openldap/slapd.d

Copyeer legacy configuratiebestand:

cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf

Edit slapd.conf

  • Indien niet nodig, # voor allow bind_v2
  • pas de rootdn aan naar: “cn=admin,dc=linuxpro,dc=nl” voor dit uit overal waar cn=Manager,dc=my-domain,dc=com staat
  • genereer met slappasswd een password hash aan voor het password van admin:
  slappasswd
  New password:
  Re-enter new password:
  {SSHA}.........
  • pas de rootpw aan naar: rootpw {SSHA}……….
  • zet het legacy configuratiebestand aan naar de nieuwe config=cn modulair config:
  slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
  • Edit ldap.conf:
  BASE = dc=linuxpro, dc=nl
  URI = ldap://127.0.0.1
  • Start de LDAP server: service slapd start
  • Maak een initieel LDAP database aan in LDIF formaat met onderstaande inhoud en sla dit op als linuxpro.nl.diff:
  # ROOT ENTRY
  dn: dc=linuxpro,dc=nl
  objectClass: top
  objectClass: domain
  dc: linuxpro

  # ADMIN dn
  dn: cn=admin,dc=linuxpro,dc=nl
  objectclass: organizationalRole
  cn: admin

  # USERS
  dn: ou=users,dc=linuxpro,dc=nl
  changetype: add
  objectclass: top
  objectclass: organizationalUnit
  ou: users

  # GROUPS
  dn: ou=groups,dc=linuxpro,dc=nl
  changetype: add
  objectclass: top
  objectclass: organizationalUnit
  ou: groups
  • Laadt dit met: ldapadd -x -D 'cn=admin,dc=linuxpro,dc=nl' -f linuxpro.nl.diff
  • Controleer met: ldapsearch -x -b 'dc=linuxpro,dc=nl'

Migratie van /etc/passwd /etc/groups -> LDAP

Set defaults used by migration tools in /usr/share/migrationtools/migrate_common.ph file:

Default DNS domain

$DEFAULT_MAIL_DOMAIN = “minlinuxpro.nl”;

Default base

$DEFAULT_BASE = “dc=linuxpro,dc=nl”;

Naming context for user data according to users.example.com.ldif file above

$NAMINGCONTEXT{‘passwd’} = “ou=users”;

Naming context for group data according to groups.example.com.ldif file above

$NAMINGCONTEXT{‘group’} = “ou=groups”;

/usr/share/migrationtools/migrate_passwd.pl /etc/passwd passwd.ldif
/usr/share/migrationtools/migrate_group.pl /etc/groups group.ldif

Gebruik van putty en openssh

Gebruik van Putty en OpenSSH

Putty algemeen

Om beveiligde verbinding te maken vanaf een pc met Windows naar een linux/unix server kan Putty worden gebruikt. Dit gratis programma kan via http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html gedownload worden. Na het invullen van de hostname kan een via beveiligde verbinding worden gemaakt. Het is handig om voor elke server een aparte sessie aan te maken. Er wordt standaard gebruik gemaakt van een username en password combinatie. Een extra zekerheid kan worden ingebouwd als wordt ingelogd met een SSH key. Hoe dat gaat wordt in dit document besproken.

Inloggen met SSH key

In plaats van in te loggen met een username/password combinatie kan gekozen worden voor een veiligere manier met behulp van SSH keys. De gebruiker maakt een keypair aan. Dit keypair bestaat uit twee delen. Een privat en public key. Het publieke gedeelte wordt door de gebruiker te beschikking gesteld aan de beheerder. De gebruiker bewaart de privat key zo veilig mogelijk. Het is aan te raden dat de privat key met een zgn. passphrase beveiligd wordt. Dit voorkomt misbruik mocht deze onverhoopt toch in handen vallen van een derde.

Aanmaken SSH keypair

  • Start puttygen op en kies voor SSH2 DSA, laat Number of bits op 1024 staan
  • Klik op Generate
  • Beweeg de muis in het Key vlak op een zo onregelmatig mogelijke manier.
  • Beveilig de key met een passphrase. Hiermee wordt de private key beveiligd mocht deze onverhoopt in handen van derden vallen.
  • Sla de gegenereerde keys op door ‘Save public key’, kies als naam <gebruikersnaam.pub>, en klik vervolgens op ‘Save private key’ en sla deze op als <gebruikersnaam.ppk>

Configuratie putty

Nu moet in Putty de aangemaakte privat key als worden geladen.

SSH → Auth Browse naar de aangemaakte privat key en vink

Het maken van een RPM package

Het maken van een RPM package

vooraf

Er zijn allerlei goede redenen te verzinnen waarom een applicatie o.i.d. in plaats vanaf source te complileren en te installeren de installatie te doen via het packagemanagement systeem.

  • van alle geinstalleerde software is bekend welke versie geinstalleerd is
  • eventuele afhankelijkheden van andere software wordt inzichtelijk
  • mogelijkheid tot rollback indien na een update een applicatie o.i.d. niet of niet goed functioneert
  • sommige support contracten vereisen het gebruik van package-management

Een RPM package wordt bij voorkeur niet gemaakt indien met ingelogd is als root maar als gewone gebruiker

Voordat een RPM gemaakt kan worden zijn een aantal eenmalige stappen nodig:

  1. de rpm-build software
  2. de ontwikkelingomgeving
  3. een rpm-build directory structuur
  4. een GPG key

1. de rpm-build software

Het installeren van de rpm-build software is eenvoudig: yum install rpm-build

2. de ontwikkelomgeving

Afhankelijk van welke ontwikkelomgeving er nodig is om van de broncode (source) een executable te maken zijn onder andere de volgende pakketten nodig: gcc, make, automake, cpp enz. Raadpleeg hiervoor de documentatie van het desbetreffende programma om te zien wat er evt. nog meer nodig is.

3. een rpm-build directory structuur

Zoals al eerder aangegeven is het raadzaam om als gewone gebruiker en niet als root RPM’s te maken. Hiervoor is een rpm-build directory structuur nodig zoals volgt:

~/rpmbuild/BUILD
~/rpmbuild/SOURCES
~/rpmbuild/SRPMS
~/rpmbuild/RPMS
~/rpmbuild/SPECS

Zodra deze directory structuur is aangemaakt wordt deze in de configuratie van rpm-build aangegeven. Dit gebeurd in ~/.rpmmacros met behulp van de topdir parameter:

%_topdir /home/peter/rpmbuild

In dit voorbeeld staat de rpm directory structuur dus in de homedirectory van de user peter.

4. de GPG key

Om RPM’s te kunnen distruburern worden deze gesigned, voorzien van een digitale handtekening, zodat de RPMS’s als betrouwbaar kunenn worden gezien. Op het systeem waarop ze geinstellaard worden, wordt de publieke GPG sleutel (public key) geimporteerd en daardoor worden RPM’s die voorzien van een handtekening probleemloos geinstalleerd.

Aanmaken van een GPG sleutelpaar (keypair):

gpg --gen-key

Kies voor de standaardoptie (1) DSA and Elgmal, kies 1024 als grootte en kies (0) om een GPG sleutelpaar aan te maken wat niet verloopt. Vul de rest van de vragen in en wacht totdat het sleutelpaar is aangemaakt.

Bekijk het aangemaakte sleutelpaar door:

gpg --list-keys --fingerprint

Exporteer nu de publieke sleutel door in (dit voorbeeld naar het bestand gpg-public-key):

ggp --export -a {UID veld} > gpg-public-key

De aangemaakte GPG sleutel dient nog te worden toegevoegd aan het configuratiebestand ~/.rpmmacros van rpm-build:

%_gpg_name {UID veld}