<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://mediawiki.a-eskwadraat.nl/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://mediawiki.a-eskwadraat.nl/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Albertp</id>
		<title>A-Eskwiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://mediawiki.a-eskwadraat.nl/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Albertp"/>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Special:Contributions/Albertp"/>
		<updated>2026-08-10T09:32:40Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.23.2</generator>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Bestuurswissel_Sysop</id>
		<title>Bestuurswissel Sysop</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Bestuurswissel_Sysop"/>
				<updated>2019-01-28T15:18:35Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: privacymail&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Sysop]]&lt;br /&gt;
&lt;br /&gt;
Bestuursrechten op het systeem en in IPA worden indirect geleverd door middel van het kb-account van het desbetreffende bestuur. Door de group van het kb-account (bv de group kb1617) in de user groups van de group bestuur te zetten, krijgen alle users in de kb-group alle bestuursrechten op het systeem.&lt;br /&gt;
&lt;br /&gt;
De rechten van de individuele bestuursaccount zoals voorz, secr, etc, gebeurt door de nieuwe bestuursleden bij de groepen op de A-Eskwadraatwebsite te zetten. De website zet ze dan ook automatisch in de juiste group in IPA.&lt;br /&gt;
&lt;br /&gt;
De mailaliases zijn aan de bestuursfuncties gekoppeld en hoeven niet veranderd te worden, met uitzondering van privacy@a-eskwadraat.nl die in de aliases van [[Mail|postfix]] op de juiste persoon ingesteld moet worden.&lt;br /&gt;
&lt;br /&gt;
Wat dan nog niet automatisch gebeurt zijn de symlinks in de ~/cies/ van de nieuwe bestuursleden, dit moet nog handmatig gebeuren.&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Nieuw_Subdomein</id>
		<title>Nieuw Subdomein</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Nieuw_Subdomein"/>
				<updated>2018-12-03T19:00:27Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: -&amp;gt; DMZ&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Outdated}}&lt;br /&gt;
'''Voor de huidige configuratie, zie [[DMZ]]. Dit is nu de verantwoordelijkheid van de sysop.'''&lt;br /&gt;
[[Category:WebCie]]&lt;br /&gt;
==Documentatie mbt het aanmaken van een a-eskwadraat subdomein (vhost) voor een commissie==&lt;br /&gt;
&lt;br /&gt;
Stapjes die uitgevoerd moeten worden (als www @ max ):&lt;br /&gt;
&lt;br /&gt;
de documentroot aanmaken &amp;amp; permissies zetten:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mkdir /srv/http/$cielogin&lt;br /&gt;
$ chown www:www-dmz /srv/http/$cielogin&lt;br /&gt;
$ chmod g+s,o= /srv/http/$cielogin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
checken dat het goed is, met:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ls -ld /srv/http/$cielogin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
de regel moet er uitzien als:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
drwxr-s--- 2 $cielogin www-dmz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dan ga je naar vhost config fixen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /etc/apache2-dmz/sites-available&lt;br /&gt;
$ cp sympo1011b $cielogin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ik gebruik hier sympo1011b als basis&lt;br /&gt;
(kies iets wat het meest lijkt op wat ze willen)&lt;br /&gt;
open bestand en wijzig de nodige dingen...&lt;br /&gt;
even opletten met dingen als sympo.a-eskwadraat.nl en andere generieke&lt;br /&gt;
ServerAlias-en niet door meerdere vhosts gebruikt worden&lt;br /&gt;
(kan zijn dat een andere/oudere cie hem gebruikt, noprob, gewoon daar uit de config&lt;br /&gt;
halen, let even op dat er een ServerName $cielogin.a-eskwadraat.nl achterblijft)&lt;br /&gt;
&lt;br /&gt;
vervolgens de config activeren:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd ../sites-enabled&lt;br /&gt;
$ ln -s ../sites-available/$cielogin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dan apache2 restarten (reloaden is voor nieuwe vhosts genoeg (?))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ a2dmz restart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
check dat apache2-dmz weer netjes gestart word&lt;br /&gt;
(double check dit door naar http://home.a-eskwadraat.nl te browsen)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Op dit punt is (bijna) al het nodige webcie spul gedaan.&lt;br /&gt;
&lt;br /&gt;
Om te zorgen dat de vhost werkt moet sysop DNS instellingen wijzigen&lt;br /&gt;
zodat dat de ServerName en ServerAlias naar circle wijzen.&lt;br /&gt;
(circle is ons 2e ip waar de dmz apache op draait)&lt;br /&gt;
&lt;br /&gt;
Om te zorgen dat de cie er iets mee kan moet sysop de eigenaar van&lt;br /&gt;
/srv/http/$cielogin veranderen naar $cielogin:www-dmz (het liefst met&lt;br /&gt;
behoudt van de permissies die we eerder ingesteld hebben: rwxr-s---).&lt;br /&gt;
En als bonus is het (voor de $cie) fijn als ze in symlink in hun home&lt;br /&gt;
krijgen die naar /srv/http/$cielogin wijst.&lt;br /&gt;
&lt;br /&gt;
sysop doet dan ongeveer het volgende (als root):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# chown $cielogin:www-dmz /srv/http/$cielogin&lt;br /&gt;
# chmod u+rwx,g+s,o= /srv/http/$cielogin&lt;br /&gt;
# cd /home/cies/$cielogin&lt;br /&gt;
# ln -s /srv/http/$cielogin website&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als DNS en /srv/http/$cielogin gefixed zijn door sysop moet je nog&lt;br /&gt;
even de $cie mailen dat ze nu met hun site aan de gang kunnen&lt;br /&gt;
&lt;br /&gt;
Het laatste webcie dingetjes wat nog moet gebeuren is dat je de&lt;br /&gt;
wijzigingen in /etc/apache2-dmz netjes commit.  Als je dit vergeet&lt;br /&gt;
krijgt iedereen dagelijks reminder mails van cron :P&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/DMZ</id>
		<title>DMZ</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/DMZ"/>
				<updated>2018-11-19T21:35:35Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: Container &amp;amp; pagina in sysop-categorie zetten&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Op het moment van schrijven onderhoudt de sysop de [[Container|container]] ct-www-dmz. Hier staan alle a-eskwadraat-gerelateerde websites en subdomeinen&amp;amp;nbsp;van commissies op die niet onder www.a-eskwadraat.nl vallen. Denk hierbij aan een website voor het pion, de studiereis,&amp;amp;nbsp;symposium of intro.&lt;br /&gt;
&lt;br /&gt;
== Subdomein aanmaken ==&lt;br /&gt;
&lt;br /&gt;
Als eerste moet je er zeker van zijn dat de configuratie voor je subdomein in ernst staat zodat hij weet naar welke machine hij het subdomein moet sturen. Op ernst staat in /etc/nginx/conf.d een bestsand vm-www-dmz.aeslist. Zet hier je subdomein neer als die er al niet tussen staat. Reload daarna nginx (NIET restarten, dat duurt lang en dan doen alle a-eskwadraatwebsites het even niet).&lt;br /&gt;
&lt;br /&gt;
De vm-www-dmz werkt met apache. De configuratiebestanden hiervoor kan je vinden in /etc/httpd/conf.d. In die map staat de map sites-available (komt nog van het oude debian-tijdperk) waarin alle subdomeinen staan. Voor een nieuw subdomein is het het handigst als je hiervoor een nieuw bestand aanmaakt. Stel je wilt voor de pion2016 een subdomein maken. Maak dan het bestand pion2016 aan. Zet daar dan het volgende in:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; DocumentRoot /srv/http/pion2016&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; ServerName pion2016.a-eskwadraat.nl&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; CustomLog /var/log/httpd/pion2016-access.log combined&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; AssignUserId pion2016 pion2016&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De DocumentRoot is de plek op het fs waar de map staat waar de site in staat, de ServerName is de url van het subdomein, CustomLog is het bestand waar de logs voor dit subdomein naar toe moeten worden geschreven. AssignUserId moet je ook niet vergeten, die zorgt ervoor dat in de waar de website staat de cie en leden van de cie alles kunnen beheren zonder dat alle groeprechten op apache moeten staan.&lt;br /&gt;
&lt;br /&gt;
Als je een wat algemener subdomein aanmaakt waar er al vorige instanties van zijn geweest (denk bijvoorbeeld aan pion.a-eskwadraat.nl), zet dan simpelweg hetzelfde VirtualHost-blok neer maar verander de servername. Vergeet ook niet om de al eerder bestaande pion.a-eskwadraat.nl configuratie weg te halen, want die wordt toch niet meer gebruikt.&lt;br /&gt;
&lt;br /&gt;
Maak nu in /srv/http de map aan zoals je die hebt beschreven in je virtualhost. Zet de rechten op de commissie die de site beheert (bv: chown pion2016:pion2016 /srv/http/pion2016) en zet de groeprechten op ook schrijfbaar (BELANGRIJK!) (bv: chmod g+w /srv/http/pion2016).&lt;br /&gt;
&lt;br /&gt;
Je subdomein is nu goed geconfigureerd! Vaak is het ook nog netjes om een symlink in de homdir van de cie naar de dir van de website neer te zetten (dus in dit geval: ln -s /srv/http/pion2016 ~pion2016/site).&lt;br /&gt;
&lt;br /&gt;
[[Category:Sysop]]&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Container</id>
		<title>Container</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Container"/>
				<updated>2018-10-22T18:30:11Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: NFS mount&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Op [[Stephen]] gebruiken we geen vm's maar containers.&lt;br /&gt;
&lt;br /&gt;
=== Nieuwe container ===&lt;br /&gt;
Op Stephen staat een template voor een container, die een salt-minion bevat. Met Proxmox kun je een nieuwe container maken door deze template te clonen. '''Gebruik een naam die met ct- begint''', want daar wordt in salt op gefilterd.&lt;br /&gt;
&lt;br /&gt;
Na het maken van een container, vergeet niet om '''eerst''' het MAC-adres van de container in [[dnsmasq]] op de [[Router|router]] te zetten en vergeet niet om dnsmasq daarop te herstarten, anders wordt de salt-minion met de verkeerde hostname ingesteld.&lt;br /&gt;
&lt;br /&gt;
Daarna kun je de container opstarten, en deze zal zich aanmelden bij Salt de eerste keer dat die opgestart wordt. Ga naar de vm-salt-master en accepteer eerst de vm met salt-key, voer daarna een 'highstate' uit zoals beschreven op de [[Salt#Salt_minion_config|Salt]] pagina.&lt;br /&gt;
&lt;br /&gt;
Nu staat alle standaardconfiguratie op de container, zoals het rootwachtwoord, de ssh-key en nuttige software.&lt;br /&gt;
&lt;br /&gt;
Als de container een van de nfs-schijven nodig heeft, stel dat dan in op [[Stephen#NFS_mounten|Stephen]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Sysop]]&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Salt</id>
		<title>Salt</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Salt"/>
				<updated>2018-10-22T18:28:15Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: /* Salt minion config */ verduidelijking&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:sysop]]&lt;br /&gt;
&lt;br /&gt;
Salt is verantwoordelijk voor het configureren van de systemen in gebruik bij [[A-Eskwadraat]].&lt;br /&gt;
Onder configuratie valt bijvoorbeeld het installeren van packages, het updaten van packages, en het configureren van services.&lt;br /&gt;
De zogenaamde salt-master is verantwoordelijk voor het onderhouden van de salt-minions.&lt;br /&gt;
De huidige salt-master service draait op vm-salt-master, en de salt-minion service draait onder andere in de vm's op Haskell en de workstations.&lt;br /&gt;
&lt;br /&gt;
==Salt master config==&lt;br /&gt;
Installeer salt-master&lt;br /&gt;
 yum install salt-master&lt;br /&gt;
 chkconfig salt-master on&lt;br /&gt;
 service salt-master start&lt;br /&gt;
&lt;br /&gt;
Open firewallpoorten tcp 4505 en tcp 4506&lt;br /&gt;
&lt;br /&gt;
==Salt minion config==&lt;br /&gt;
Salt-minion wordt automatisch geïnstalleerd bij [[kickstart]]en of in de template voor [[Container|containers]].&lt;br /&gt;
&lt;br /&gt;
Om een nieuwe machine aan salt toe te voegen, kijk of de machine al is gevonden door salt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
salt-key -L&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En zo ja, voeg deze dan toe:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
salt-key -a &amp;lt;hostname&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Om de machine voor het eerst te configureren, of om deze te herconfigureren, voer dit uit op vm-salt-master:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@vm-salt-master ~]# salt '&amp;lt;hostname&amp;gt;' state.highstate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als er een serieuze fout optreedt bij de salt-minion kan het nodig zijn om de service te herstarten:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@host ~]# service salt-minion restart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Salt .sls Config==&lt;br /&gt;
De configuratie van een systeem is gespecificeerd in een bestand genaamd init.sls.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Dit is een actueel voorbeeld van een init.sls uit de configuratie van vm-mail.&lt;br /&gt;
# Gebruik voor de indentatie van het bestand alleen tabs, anders krijg je vreselijke foutmeldingen.&lt;br /&gt;
&lt;br /&gt;
# Deze sectie is verantwoordelijk voor de installatie van de service Exim.&lt;br /&gt;
exim:&lt;br /&gt;
  pkg:&lt;br /&gt;
    - installed&lt;br /&gt;
  service:&lt;br /&gt;
    # Check met regelmaat of de service nog draait.&lt;br /&gt;
    - running&lt;br /&gt;
    # Laat de service automatisch opstarten.&lt;br /&gt;
    - enable: True&lt;br /&gt;
    # Herstart de service als er een bestand gewijzigd word in de map /etc/exim/.&lt;br /&gt;
    - watch:&lt;br /&gt;
      - file: /etc/exim&lt;br /&gt;
&lt;br /&gt;
# Deze sectie is verantwoordelijk voor het kopiëren van configuratie bestanden naar de minion.&lt;br /&gt;
/etc/exim:&lt;br /&gt;
  # Kopieer recursief de bestanden in salt://aes-vm/vm-mail/exim naar de map /etc/exim op de salt-minion.&lt;br /&gt;
  file.recurse:&lt;br /&gt;
    - source: salt://aes-vm/vm-mail/exim&lt;br /&gt;
    - name: /etc/exim&lt;br /&gt;
    - user: root&lt;br /&gt;
    - group: root&lt;br /&gt;
    - file_mode: 644&lt;br /&gt;
    - require:&lt;br /&gt;
      - pkg: exim&lt;br /&gt;
&lt;br /&gt;
# Met de for loop kan je handmatig bestanden kopieren. Gebruik de recursieve methode indien mogelijk.&lt;br /&gt;
# Let op dat gevoelige bestanden zoals certificaten de juiste file permissies krijgen.&lt;br /&gt;
{% for e in 'dkim_alef.crt','dkim_alef.key','exim.cert' %}&lt;br /&gt;
/etc/exim/{{ e }}:&lt;br /&gt;
  file.managed:&lt;br /&gt;
    - source: salt://aes-vm/vm-mail/exim/{{ e }}&lt;br /&gt;
    - user: exim&lt;br /&gt;
    - group: exim&lt;br /&gt;
    - mode: 640&lt;br /&gt;
{% endfor %}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Let op: als er een syntax fout staat in de configuratie krijg je een interne python error.&lt;br /&gt;
De configuratie is extreem gevoelig voor fouten in spaties / tabs.&lt;br /&gt;
Gebruik bijv. de syntax highlighting van vim om fouten te vinden. &lt;br /&gt;
&lt;br /&gt;
==Salt Maps==&lt;br /&gt;
De configuratie bestanden van de salt-minions zijn te vinden in de map /srv/salt/.   &lt;br /&gt;
&lt;br /&gt;
* /srv/salt/top.sls : in deze file zijn worden hostnames met een specifieke configuratie verbonden.&lt;br /&gt;
* /srv/salt/id_rsa_sysop.pub: deze public key wordt gebruikt voor authenticatie van sysop leden.&lt;br /&gt;
* /srv/salt/centos/ : in deze map staan de configuraties voor alle centos-gebaseerde machines, zoals de meeste virtuele machines.&lt;br /&gt;
* /srv/salt/fedora/ : in deze map staat de configuratie voor alle fedora-gebaseerde machines, zoals de workstations.&lt;br /&gt;
* /srv/salt/ernst/ : in deze map staat de configuratie voor [[ernst]].&lt;br /&gt;
&lt;br /&gt;
Wanneer een bestand onder beheer van salt wordt gewijzigd op een salt-minion dient deze ook te worden gewijzigd op de salt-master.&lt;br /&gt;
Daarna moeten de wijzigingen in de /srv/salt map worden gecommit in de [[SVN]]-repository.&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Container</id>
		<title>Container</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Container"/>
				<updated>2018-10-22T18:27:12Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: links gefixt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Op [[Stephen]] gebruiken we geen vm's maar containers.&lt;br /&gt;
&lt;br /&gt;
=== Nieuwe container ===&lt;br /&gt;
Op Stephen staat een template voor een container, die een salt-minion bevat. Met Proxmox kun je een nieuwe container maken door deze template te clonen. '''Gebruik een naam die met ct- begint''', want daar wordt in salt op gefilterd.&lt;br /&gt;
&lt;br /&gt;
Na het maken van een container, vergeet niet om '''eerst''' het MAC-adres van de container in [[dnsmasq]] op de [[Router|router]] te zetten en vergeet niet om dnsmasq daarop te herstarten, anders wordt de salt-minion met de verkeerde hostname ingesteld.&lt;br /&gt;
&lt;br /&gt;
Daarna kun je de container opstarten, en deze zal zich aanmelden bij Salt de eerste keer dat die opgestart wordt. Ga naar de vm-salt-master en accepteer eerst de vm met salt-key, voer daarna een 'highstate' uit zoals beschreven op de [[Salt#Salt_minion_config|Salt]] pagina.&lt;br /&gt;
&lt;br /&gt;
Nu staat alle standaardconfiguratie op de container, zoals het rootwachtwoord, de ssh-key en nuttige software.&lt;br /&gt;
&lt;br /&gt;
[[Category:Sysop]]&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Salt</id>
		<title>Salt</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Salt"/>
				<updated>2018-10-22T18:25:32Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: /* Salt minion config */ salt-key&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:sysop]]&lt;br /&gt;
&lt;br /&gt;
Salt is verantwoordelijk voor het configureren van de systemen in gebruik bij [[A-Eskwadraat]].&lt;br /&gt;
Onder configuratie valt bijvoorbeeld het installeren van packages, het updaten van packages, en het configureren van services.&lt;br /&gt;
De zogenaamde salt-master is verantwoordelijk voor het onderhouden van de salt-minions.&lt;br /&gt;
De huidige salt-master service draait op vm-salt-master, en de salt-minion service draait onder andere in de vm's op Haskell en de workstations.&lt;br /&gt;
&lt;br /&gt;
==Salt master config==&lt;br /&gt;
Installeer salt-master&lt;br /&gt;
 yum install salt-master&lt;br /&gt;
 chkconfig salt-master on&lt;br /&gt;
 service salt-master start&lt;br /&gt;
&lt;br /&gt;
Open firewallpoorten tcp 4505 en tcp 4506&lt;br /&gt;
&lt;br /&gt;
==Salt minion config==&lt;br /&gt;
Gebeurt automagisch bij  [[kickstart]]en of in de template voor [[Container|containers]].&lt;br /&gt;
&lt;br /&gt;
Om een nieuwe machine aan salt toe te voegen, kijk of de machine al is gevonden door salt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
salt-key -L&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En zo ja, voeg deze dan toe:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
salt-key -a &amp;lt;hostname&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Om de machine voor het eerst te configureren, of om deze te herconfigureren, voer dit uit op vm-salt-master:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@vm-salt-master ~]# salt '&amp;lt;hostname&amp;gt;' state.highstate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als er een serieuze fout optreedt bij de salt-minion kan het nodig zijn om de service te herstarten:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@host ~]# service salt-minion restart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Salt .sls Config==&lt;br /&gt;
De configuratie van een systeem is gespecificeerd in een bestand genaamd init.sls.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Dit is een actueel voorbeeld van een init.sls uit de configuratie van vm-mail.&lt;br /&gt;
# Gebruik voor de indentatie van het bestand alleen tabs, anders krijg je vreselijke foutmeldingen.&lt;br /&gt;
&lt;br /&gt;
# Deze sectie is verantwoordelijk voor de installatie van de service Exim.&lt;br /&gt;
exim:&lt;br /&gt;
  pkg:&lt;br /&gt;
    - installed&lt;br /&gt;
  service:&lt;br /&gt;
    # Check met regelmaat of de service nog draait.&lt;br /&gt;
    - running&lt;br /&gt;
    # Laat de service automatisch opstarten.&lt;br /&gt;
    - enable: True&lt;br /&gt;
    # Herstart de service als er een bestand gewijzigd word in de map /etc/exim/.&lt;br /&gt;
    - watch:&lt;br /&gt;
      - file: /etc/exim&lt;br /&gt;
&lt;br /&gt;
# Deze sectie is verantwoordelijk voor het kopiëren van configuratie bestanden naar de minion.&lt;br /&gt;
/etc/exim:&lt;br /&gt;
  # Kopieer recursief de bestanden in salt://aes-vm/vm-mail/exim naar de map /etc/exim op de salt-minion.&lt;br /&gt;
  file.recurse:&lt;br /&gt;
    - source: salt://aes-vm/vm-mail/exim&lt;br /&gt;
    - name: /etc/exim&lt;br /&gt;
    - user: root&lt;br /&gt;
    - group: root&lt;br /&gt;
    - file_mode: 644&lt;br /&gt;
    - require:&lt;br /&gt;
      - pkg: exim&lt;br /&gt;
&lt;br /&gt;
# Met de for loop kan je handmatig bestanden kopieren. Gebruik de recursieve methode indien mogelijk.&lt;br /&gt;
# Let op dat gevoelige bestanden zoals certificaten de juiste file permissies krijgen.&lt;br /&gt;
{% for e in 'dkim_alef.crt','dkim_alef.key','exim.cert' %}&lt;br /&gt;
/etc/exim/{{ e }}:&lt;br /&gt;
  file.managed:&lt;br /&gt;
    - source: salt://aes-vm/vm-mail/exim/{{ e }}&lt;br /&gt;
    - user: exim&lt;br /&gt;
    - group: exim&lt;br /&gt;
    - mode: 640&lt;br /&gt;
{% endfor %}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Let op: als er een syntax fout staat in de configuratie krijg je een interne python error.&lt;br /&gt;
De configuratie is extreem gevoelig voor fouten in spaties / tabs.&lt;br /&gt;
Gebruik bijv. de syntax highlighting van vim om fouten te vinden. &lt;br /&gt;
&lt;br /&gt;
==Salt Maps==&lt;br /&gt;
De configuratie bestanden van de salt-minions zijn te vinden in de map /srv/salt/.   &lt;br /&gt;
&lt;br /&gt;
* /srv/salt/top.sls : in deze file zijn worden hostnames met een specifieke configuratie verbonden.&lt;br /&gt;
* /srv/salt/id_rsa_sysop.pub: deze public key wordt gebruikt voor authenticatie van sysop leden.&lt;br /&gt;
* /srv/salt/centos/ : in deze map staan de configuraties voor alle centos-gebaseerde machines, zoals de meeste virtuele machines.&lt;br /&gt;
* /srv/salt/fedora/ : in deze map staat de configuratie voor alle fedora-gebaseerde machines, zoals de workstations.&lt;br /&gt;
* /srv/salt/ernst/ : in deze map staat de configuratie voor [[ernst]].&lt;br /&gt;
&lt;br /&gt;
Wanneer een bestand onder beheer van salt wordt gewijzigd op een salt-minion dient deze ook te worden gewijzigd op de salt-master.&lt;br /&gt;
Daarna moeten de wijzigingen in de /srv/salt map worden gecommit in de [[SVN]]-repository.&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Container</id>
		<title>Container</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Container"/>
				<updated>2018-10-22T17:59:41Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: Created page with &amp;quot;Op Stephen gebruiken we geen vm's maar containers.  === Nieuwe container === Op Stephen staat een template voor een container, die een salt-minion bevat. Met Proxmox kun j...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Op [[Stephen]] gebruiken we geen vm's maar containers.&lt;br /&gt;
&lt;br /&gt;
=== Nieuwe container ===&lt;br /&gt;
Op Stephen staat een template voor een container, die een salt-minion bevat. Met Proxmox kun je een nieuwe container maken door deze template te clonen. '''Gebruik een naam die met ct- begint''', want daar wordt in salt op gefilterd.&lt;br /&gt;
&lt;br /&gt;
Na het maken van een container, vergeet niet om '''eerst''' het MAC-adres van de container in [[dnsmasq]] op de [[Router|router]] te zetten en vergeet niet om dnsmasq daarop te herstarten, anders wordt de salt-minion met de verkeerde hostname ingesteld.&lt;br /&gt;
&lt;br /&gt;
Daarna kun je de container opstarten, en deze zal zich aanmelden bij Salt de eerste keer dat die opgestart wordt. Ga naar de [[Salt|vm-salt-master]] en accepteer eerst de vm met salt-key, voer daarna een 'highstate' uit zoals beschreven op de [[Salt]] pagina.&lt;br /&gt;
&lt;br /&gt;
Nu staat alle standaardconfiguratie op de container, zoals het rootwachtwoord, de ssh-key en nuttige software.&lt;br /&gt;
&lt;br /&gt;
[[Category:Sysop]]&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Webcie-vm</id>
		<title>Webcie-vm</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Webcie-vm"/>
				<updated>2018-10-08T20:39:10Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: /* IPA */ ifp config&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Zie ook: [[Webcie-vms]] (!)&lt;br /&gt;
&lt;br /&gt;
== Nieuwe vm-webcie-debug&amp;amp;nbsp;aanmaken ==&lt;br /&gt;
&lt;br /&gt;
Maak een nieuwe vm vm-webcie-debug aan. Kickstart de vm en highstate de vm met salt. Installeer mariadb met het volgende commando:&lt;br /&gt;
&amp;lt;pre&amp;gt;/usr/bin/mysql_secure_installation&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zet het rootwachtwoord en disalow root login remotely. Let op: de rootwachtwoorden van de databases van de vm-webcie/www en vm-webcie/www-debug moeten hetzelfde zijn!&lt;br /&gt;
&lt;br /&gt;
Maak in de home van de root het bestandje .my.cnf aan (zet de rechten op 0600!) met de volgende content:&lt;br /&gt;
&amp;lt;pre&amp;gt;[client]&lt;br /&gt;
user = root&lt;br /&gt;
pass = root-database-wachtwoord&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maak ook de juiste databases aan (bv test_whoswho4, test_benamite of boeken. Denk eraan dat op een vm-webcie/www-machine er zowel de normal db als test_db moeten zijn). Kopieër nu de databases. Vergeet ook niet de mysql-database te kopieëren, daar staan de rechten van de verschillende gebruikers in.&amp;amp;nbsp;Maak eerst een dump op de oude vm:&lt;br /&gt;
&amp;lt;pre&amp;gt;mysqldump 'dbnaam' &amp;gt; 'dbnaam'.db&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kopieër het dumpbestand naar de nieuwe vm en laad de dump in op de nieuwe vm:&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql 'dbnaam' &amp;lt; 'dbnaam'.db&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Opzetten vm-www2 ==&lt;br /&gt;
&lt;br /&gt;
Deze instructies zijn bedoeld voor de WebCie. We gaan ervan uit dat je het WebCie-wachtwoord uit je hoofd kent.&lt;br /&gt;
&lt;br /&gt;
Vraag de Sysop om een nieuwe vm (ik bedoel uiteraard container ;)) met subdomein (in dit geval: vm-www2.a-eskwadraat.nl) en dezelfde mounts als de originele vm. Zorg ervoor dat sendmail vanaf de nieuwe vm werkt. Verkrijg roottoegang op de vm-www2.&lt;br /&gt;
&lt;br /&gt;
In het begin heeft yum nog een update voor repositorygegevens nodig: doe &amp;lt;code&amp;gt;yum clean all&amp;lt;/code&amp;gt; voordat je een ander yum-commando draait.&lt;br /&gt;
&lt;br /&gt;
=== Mariadb en replicatie ===&lt;br /&gt;
&lt;br /&gt;
Installeer mariadb als op de vm-www-debug: &amp;lt;code&amp;gt;yum install mariadb mariadb-server&amp;lt;/code&amp;gt; (let op: ivm backwards incompatibility willen we versie 5.5 voorlopig), &amp;lt;code&amp;gt;systemctl enable mariadb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;systemctl start mariadb&amp;lt;/code&amp;gt; en dan &amp;lt;code&amp;gt;/usr/bin/mysql_secure_installation&amp;lt;/code&amp;gt;. Check even of inloggen nog werkt: &amp;lt;code&amp;gt;mysql -u root -p&amp;lt;/code&amp;gt;. Check ook dat je verbinding kan maken met mysql op de originele host vanaf de nieuwe host: &amp;lt;code&amp;gt;mysql -h vm-www -u root -p&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Nu gaan we [https://mariadb.com/kb/en/library/replication-overview/ replicatie] opzetten (master-master). We moeten hiervoor een random wachtwoord genereren, bewaar die goed! Open in een nieuwe terminal op de originele host, en pas de &amp;lt;code&amp;gt;my.cnf&amp;lt;/code&amp;gt; aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
server-id=1&lt;br /&gt;
log-bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Herstart mysqld/mariadb om de wijzigingen toe te passen. Log in als root op mysql en geef permissies: &amp;lt;code&amp;gt;grant replication slave on *.* to repli@'vm-www2.a-eskwadraat.nl' identified by 'replipassword'; flush privileges;&amp;lt;/code&amp;gt;. Zet de tabellen op slot terwijl we de rest doen: &amp;lt;code&amp;gt;flush tables with read lock;&amp;lt;/code&amp;gt;. Ten slotte moeten we wat gegevens bekomen: &amp;lt;code&amp;gt; show master status\G&amp;lt;/code&amp;gt;. Log niet uit tot we klaar zijn, dan gaan de tabellen weer van het slot af.&lt;br /&gt;
&lt;br /&gt;
In de andere terminal op &amp;lt;code&amp;gt;vm-www2&amp;lt;/code&amp;gt; gaan we ook de &amp;lt;code&amp;gt;my.cnf&amp;lt;/code&amp;gt; aanpassen (ik heb de wijzigingen in &amp;lt;code&amp;gt;/etc/my.cnf.d/webcie.cnf&amp;lt;/code&amp;gt; gezet):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
&lt;br /&gt;
server-id=2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Herstart mariadb om de wijzigingen toe te passen. We moeten ook de volledige(!!!) [https://stackoverflow.com/questions/1078196/how-to-take-complete-backup-of-mysql-database-using-mysqldump-command-line-utili#27400627 databaasinhoud overzetten]. (Dit is een van de redenen dat je een read lock hebt.) Doe een mysqldump van de gehele database inclusief tabellen, permissies en inhoud en pas die toe op de nieuwe db.&lt;br /&gt;
&lt;br /&gt;
Log in op de nieuwe db met &amp;lt;code&amp;gt;mysql -u root -p&amp;lt;/code&amp;gt; en stel replicatie in:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHANGE MASTER TO&lt;br /&gt;
  MASTER_HOST='master.domain.com',&lt;br /&gt;
  MASTER_USER='replication_user',&lt;br /&gt;
  MASTER_PASSWORD='bigs3cret',&lt;br /&gt;
  MASTER_PORT=3306,&lt;br /&gt;
  MASTER_LOG_FILE='mariadb-bin.000096',&lt;br /&gt;
  MASTER_LOG_POS=568,&lt;br /&gt;
  MASTER_CONNECT_RETRY=10;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(De juiste waarden haal je uit de uitvoer van &amp;lt;code&amp;gt; show master status\G&amp;lt;/code&amp;gt; op de originele host.) Vervolgens &amp;lt;code&amp;gt;START SLAVE; SHOW SLAVE STATUS \G&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Als de uitvoer een beetje sense maakt, dan heb je succesvol een master-slave replicatie van de oude naar de nieuwe host opgezet. Doe &amp;lt;code&amp;gt;UNLOCK TABLES;&amp;lt;/code&amp;gt; op de originele host en probeer wat aan te passen. Dit zou op de nieuwe host terecht moeten komen.&lt;br /&gt;
&lt;br /&gt;
Als een error bij de slave gebeurd is die niet op master voorkwam, gaat die blokkeren tot je het fixt. Wat je kan doen als het echt helemaal in de soep loopt, is opnieuw alles op slot gooien, een dbdump overnemen van master naar slave. Doe weer &amp;lt;code&amp;gt; show master status\G&amp;lt;/code&amp;gt; en unlock de master. Vervolgens doe je op de slave &amp;lt;code&amp;gt;change master to MASTER_LOG_POS=37071; START SLAVE;&amp;lt;/code&amp;gt; en dan zou die automatisch alles wat sinds de backup is gebeurd, weer naar binnen gaan slurpen.&lt;br /&gt;
&lt;br /&gt;
Nu gaan we de replicatie de andere kant op sturen. Dit is in principe het precies omgekeerde van wat we hiervoor deden. Pas op vm-www2 de &amp;lt;code&amp;gt;my.cnf&amp;lt;/code&amp;gt; aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
server-id=2&lt;br /&gt;
log-bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
en herstart mariadb. Voeg de repli-user toe op de vm-www2: &amp;lt;code&amp;gt;grant replication slave on *.* to repli@'vm-www.a-eskwadraat.nl' identified by 'replipassword'; flush privileges;&amp;lt;/code&amp;gt;. Doe op allebei de hosts een table lock, doe op de nieuwe host &amp;lt;code&amp;gt;show master status\G&amp;lt;/code&amp;gt; en op de originele host de replicatie-instellingen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHANGE MASTER TO&lt;br /&gt;
  MASTER_HOST='master.domain.com',&lt;br /&gt;
  MASTER_USER='replication_user',&lt;br /&gt;
  MASTER_PASSWORD='bigs3cret',&lt;br /&gt;
  MASTER_PORT=3306,&lt;br /&gt;
  MASTER_LOG_FILE='mariadb-bin.000096',&lt;br /&gt;
  MASTER_LOG_POS=568,&lt;br /&gt;
  MASTER_CONNECT_RETRY=10;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En nu kun je op de originele host &amp;lt;code&amp;gt;start slave;&amp;lt;/code&amp;gt; runnen, en je hebt een master-masterreplicatie :D&lt;br /&gt;
&lt;br /&gt;
=== Installeer Apache, PHP en PHP-FPM ===&lt;br /&gt;
&lt;br /&gt;
Doe &amp;lt;code&amp;gt;yum install httpd&amp;lt;/code&amp;gt; voor Apache.&lt;br /&gt;
Voor een niet verschrikkelijk antieke PHP moet je extra dingen installeren (zie ook [https://rpms.remirepo.net/wizard/]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yum install epel-release&lt;br /&gt;
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm&lt;br /&gt;
yum install yum-utils&lt;br /&gt;
yum-config-manager --enable remi-php56 # of php72 of andere versie&lt;br /&gt;
yum install php php-fpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installeer ook alle [[PHP-extensies]] die nodig zijn. (Zie die pagina voor de lijst.)&lt;br /&gt;
&lt;br /&gt;
Overige dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yum install gettext java npm python36 python36-virtualenv&lt;br /&gt;
npm install -g bower&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nu moeten we PHP-instellingen regelen. Maak een checkout van de website, en doe daarin:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir config/vm-www2&lt;br /&gt;
ln -s /etc/php.ini config/vm-www2/&lt;br /&gt;
vim config/vm-www2/php.ini # Pas hier alle relevante config van de vm-www toe.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cron instellen ===&lt;br /&gt;
&lt;br /&gt;
Maak een map &amp;lt;code&amp;gt;/website-output&amp;lt;/code&amp;gt; aan en chown die naar &amp;lt;code&amp;gt;apache:apache&amp;lt;/code&amp;gt; (en zorg ervoor dat apache ernaar kan schrijven :P). Hierin komt alle output van cronjobs enzo.&lt;br /&gt;
&lt;br /&gt;
Je kan in principe de crontab van de oude vm overnemen, dus ga naar de checkout, en doe:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp scripts/cron/crontab-$VMOUD-apache scripts/cron/crontab-$VMNIEUW-apache&lt;br /&gt;
crontab -u apache scripts/cron/crontab-$VMNIEUW-apache&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
om de cronjobs te activeren.&lt;br /&gt;
&lt;br /&gt;
=== Mail werkend krijgen ===&lt;br /&gt;
&lt;br /&gt;
De website gebruikt sendmail-commando's om te mailen. Normaal stuurt sendmail de mails direct het web op, maar we willen dat deze door de vm-mailpp heen gestuurd wordt zodat de berichten juist zijn ondertekend en door spamfilters heen komen. Hiervoor gebruiken we het sendmail-commando dat uit postfix komt. Installeer postfix met:&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install postfix&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De configuratie van postfix ongeveer dezelfde als op alle CentOS7 machines en is te vinden op de vm-salt-master in &amp;lt;code&amp;gt;/srv/salt/centos7/global/main.cf&amp;lt;/code&amp;gt;. Je moet de volgende parameters aanpassen zodat mail naar buiten mag:&lt;br /&gt;
&amp;lt;pre&amp;gt;mydomain = a-eskwadraat.nl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Om mailings te configureren, voeg de volgende parameters toe aan &amp;lt;code&amp;gt;main.cf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
inet_interfaces = all&lt;br /&gt;
relay_domains = a-eskwadraat.nl&lt;br /&gt;
smtpd_recipient_restrictions = check_recipient_access regexp:/etc/postfix/access, reject_unauth_destination&amp;lt;/pre&amp;gt;&lt;br /&gt;
En voeg de volgende regels toe aan &amp;lt;code&amp;gt;/etc/postfix/master.cf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bughook unix - n n - - pipe&lt;br /&gt;
    flags=F user=webcie argv=/website/scripts/mail_process_bug_vm-www ${sender} ${size} ${recipient}&lt;br /&gt;
lidhook unix - n n - - pipe&lt;br /&gt;
    flags=F user=webcie argv=/website/scripts/mail_process_lid ${sender} ${size} ${recipient}&lt;br /&gt;
bouncehook unix - n n - - pipe&lt;br /&gt;
    flags=F user=webcie argv=/website/scripts/mail_process_bounce ${sender} ${size} ${recipient}&lt;br /&gt;
mailinghook unix - n n - - pipe&lt;br /&gt;
    flags=F user=webcie argv=/website/scripts/mail_process_incoming_mailing.php ${sender} ${size} $$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En plaats de volgende regels in &amp;lt;code&amp;gt;/etc/postfix/access&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/^lid-[0-9]+@a-es((kwadraat)|(2))\.nl$/ FILTER lidhook:&lt;br /&gt;
/^bug(([0-9]+)|(s))@a-es((kwadraat)|(2))\.nl$/ FILTER bughook:&lt;br /&gt;
/^bounce-[0-9]+@a-es((kwadraat)|(2))\.nl$/ FILTER bouncehook:&lt;br /&gt;
/^((.*-)|)mailing((s)|)@a-es((kwadraat)|(2))\.nl$/ FILTER mailinghook:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Stel nu in dat het sendmail-commando uit postfix gebruikt wordt in plaats van de standaard sendmail:&lt;br /&gt;
&amp;lt;pre&amp;gt;update-alternatives --config mta&amp;lt;/pre&amp;gt;&lt;br /&gt;
En start dan de postfix service met &amp;lt;code&amp;gt;service postfix start&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Zo worden de mails doorgestuurd naar de juiste scriptjes van de WebCie. Zie [[Mail sturen naar de site]]&lt;br /&gt;
&lt;br /&gt;
=== IPA ===&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install ipa-client&amp;lt;/pre&amp;gt;&lt;br /&gt;
Voor autologin:&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install mod_auth_kerb mod_authnz_pam mod_lookup_ident sssd-dbus&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Het volgende moet de sysop regelen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipa-client-install &lt;br /&gt;
ipa host-add dummyhost.example.com --desc=&amp;quot;Dummy Host&amp;quot; --location=&amp;quot;&amp;lt;fqdn-of-webserver&amp;gt;&amp;quot;&lt;br /&gt;
ipa host-add-managedby dummyhost.example.com --hosts=&amp;quot;&amp;lt;fqdn-of-webserver&amp;gt;&amp;quot;&lt;br /&gt;
ipa service-add HTTP/dummyhost.example.com&lt;br /&gt;
ipa service-add-host HTTP/dummyhost.example.com --hosts=&amp;quot;&amp;lt;fqdn-of-webserver&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ga naar de ipa webinterface &lt;br /&gt;
Ga naar de tab hosts &lt;br /&gt;
Ga naar de juiste host&lt;br /&gt;
klik op actions -&amp;gt; add New certificate &lt;br /&gt;
&lt;br /&gt;
Voer nu de volgende commands uit in de commandline:&lt;br /&gt;
mkdir /etc/nssdb&lt;br /&gt;
cd /etc/nssdb&lt;br /&gt;
certutil -N -d . &lt;br /&gt;
&lt;br /&gt;
mkdir /etc/httpd/certs&lt;br /&gt;
ipa-getcert request -r -f /etc/httpd/certs/dummyhost.crt -k /etc/httpd/certs/dummyhost.key -N CN=dummyhost.example.com -D \&lt;br /&gt;
  dummyhost.example.com -K HTTP/dummyhost.example.com&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voor autologin op de site:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipa-getkeytab -s ipa05.a-eskwadraat.nl -p HTTP/www-auth.a-eskwadraat.nl -k /etc/httpd/conf/httpd.keytab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Stel de volgende gegevens in in &amp;lt;code&amp;gt;/etc/sssd/sssd.conf&amp;lt;/code&amp;gt; voor zover deze nog niet bestaat.&lt;br /&gt;
&lt;br /&gt;
Onder &amp;lt;code&amp;gt;[domain/a-eskwadraat.nl]&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;ldap_user_extra_attrs = mail,memberId,email:mail&amp;lt;/pre&amp;gt;&lt;br /&gt;
Onder &amp;lt;code&amp;gt;[sssd]&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;services = nss, sudo, pam, ssh, ifp&amp;lt;/pre&amp;gt;&lt;br /&gt;
Onder &amp;lt;code&amp;gt;[ifp]&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
allowed_uids = apache, root&lt;br /&gt;
user_attributes = +memberId&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Overige tsjak ter installatie ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install git sudo vim wget&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== De website opzetten ===&lt;br /&gt;
&lt;br /&gt;
Heb je alles geïnstalleerd, dan ben je klaar voor de laatste fase.&lt;br /&gt;
&lt;br /&gt;
Vertel de scripts dat dit een host is: &amp;lt;code&amp;gt;vim /etc/function&amp;lt;/code&amp;gt; en stop daarin &amp;lt;code&amp;gt;server&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ga naar de checkout van de website, kopieer handmatig de secret.php en doe daarin manage build. (Dit moet na de php-instellingen gebeuren want manage voert php uit.)&lt;br /&gt;
&lt;br /&gt;
Pas de httpd-configuratie aan om de juiste paden in te stellen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp config/vm-www/httpd/conf.d/website.conf /etc/httpd/conf.d/&lt;br /&gt;
ln -s /etc/httpd config/vm-www2/httpd&lt;br /&gt;
vim config/vm-www2/httpd/conf.d/website.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nu kun je de webserver aanzwengelen :D &amp;lt;code&amp;gt;systemctl restart httpd&amp;lt;code&amp;gt; &amp;lt;code&amp;gt;systemctl restart php-fpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Je moet waarschijnlijk nog wat chmod'en en paden aanmaken, zie daarvoor de logs in &amp;lt;code&amp;gt;/var/log/httpd/error_log&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;/var/log/php-fpm/error.log&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;/var/log/www/php-warnings.log&amp;lt;/code&amp;gt; (in volgorde van dingen werkend krijgen).&lt;br /&gt;
&lt;br /&gt;
[[Category:Sysop]] [[Category:WebCie]]&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Webcie-vm</id>
		<title>Webcie-vm</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Webcie-vm"/>
				<updated>2018-10-08T19:06:47Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: /* IPA */ keytab pad gecorrigeerd&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Zie ook: [[Webcie-vms]] (!)&lt;br /&gt;
&lt;br /&gt;
== Nieuwe vm-webcie-debug&amp;amp;nbsp;aanmaken ==&lt;br /&gt;
&lt;br /&gt;
Maak een nieuwe vm vm-webcie-debug aan. Kickstart de vm en highstate de vm met salt. Installeer mariadb met het volgende commando:&lt;br /&gt;
&amp;lt;pre&amp;gt;/usr/bin/mysql_secure_installation&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zet het rootwachtwoord en disalow root login remotely. Let op: de rootwachtwoorden van de databases van de vm-webcie/www en vm-webcie/www-debug moeten hetzelfde zijn!&lt;br /&gt;
&lt;br /&gt;
Maak in de home van de root het bestandje .my.cnf aan (zet de rechten op 0600!) met de volgende content:&lt;br /&gt;
&amp;lt;pre&amp;gt;[client]&lt;br /&gt;
user = root&lt;br /&gt;
pass = root-database-wachtwoord&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maak ook de juiste databases aan (bv test_whoswho4, test_benamite of boeken. Denk eraan dat op een vm-webcie/www-machine er zowel de normal db als test_db moeten zijn). Kopieër nu de databases. Vergeet ook niet de mysql-database te kopieëren, daar staan de rechten van de verschillende gebruikers in.&amp;amp;nbsp;Maak eerst een dump op de oude vm:&lt;br /&gt;
&amp;lt;pre&amp;gt;mysqldump 'dbnaam' &amp;gt; 'dbnaam'.db&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kopieër het dumpbestand naar de nieuwe vm en laad de dump in op de nieuwe vm:&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql 'dbnaam' &amp;lt; 'dbnaam'.db&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Opzetten vm-www2 ==&lt;br /&gt;
&lt;br /&gt;
Deze instructies zijn bedoeld voor de WebCie. We gaan ervan uit dat je het WebCie-wachtwoord uit je hoofd kent.&lt;br /&gt;
&lt;br /&gt;
Vraag de Sysop om een nieuwe vm (ik bedoel uiteraard container ;)) met subdomein (in dit geval: vm-www2.a-eskwadraat.nl) en dezelfde mounts als de originele vm. Zorg ervoor dat sendmail vanaf de nieuwe vm werkt. Verkrijg roottoegang op de vm-www2.&lt;br /&gt;
&lt;br /&gt;
In het begin heeft yum nog een update voor repositorygegevens nodig: doe &amp;lt;code&amp;gt;yum clean all&amp;lt;/code&amp;gt; voordat je een ander yum-commando draait.&lt;br /&gt;
&lt;br /&gt;
=== Mariadb en replicatie ===&lt;br /&gt;
&lt;br /&gt;
Installeer mariadb als op de vm-www-debug: &amp;lt;code&amp;gt;yum install mariadb mariadb-server&amp;lt;/code&amp;gt; (let op: ivm backwards incompatibility willen we versie 5.5 voorlopig), &amp;lt;code&amp;gt;systemctl enable mariadb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;systemctl start mariadb&amp;lt;/code&amp;gt; en dan &amp;lt;code&amp;gt;/usr/bin/mysql_secure_installation&amp;lt;/code&amp;gt;. Check even of inloggen nog werkt: &amp;lt;code&amp;gt;mysql -u root -p&amp;lt;/code&amp;gt;. Check ook dat je verbinding kan maken met mysql op de originele host vanaf de nieuwe host: &amp;lt;code&amp;gt;mysql -h vm-www -u root -p&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Nu gaan we [https://mariadb.com/kb/en/library/replication-overview/ replicatie] opzetten (master-master). We moeten hiervoor een random wachtwoord genereren, bewaar die goed! Open in een nieuwe terminal op de originele host, en pas de &amp;lt;code&amp;gt;my.cnf&amp;lt;/code&amp;gt; aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
server-id=1&lt;br /&gt;
log-bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Herstart mysqld/mariadb om de wijzigingen toe te passen. Log in als root op mysql en geef permissies: &amp;lt;code&amp;gt;grant replication slave on *.* to repli@'vm-www2.a-eskwadraat.nl' identified by 'replipassword'; flush privileges;&amp;lt;/code&amp;gt;. Zet de tabellen op slot terwijl we de rest doen: &amp;lt;code&amp;gt;flush tables with read lock;&amp;lt;/code&amp;gt;. Ten slotte moeten we wat gegevens bekomen: &amp;lt;code&amp;gt; show master status\G&amp;lt;/code&amp;gt;. Log niet uit tot we klaar zijn, dan gaan de tabellen weer van het slot af.&lt;br /&gt;
&lt;br /&gt;
In de andere terminal op &amp;lt;code&amp;gt;vm-www2&amp;lt;/code&amp;gt; gaan we ook de &amp;lt;code&amp;gt;my.cnf&amp;lt;/code&amp;gt; aanpassen (ik heb de wijzigingen in &amp;lt;code&amp;gt;/etc/my.cnf.d/webcie.cnf&amp;lt;/code&amp;gt; gezet):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
&lt;br /&gt;
server-id=2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Herstart mariadb om de wijzigingen toe te passen. We moeten ook de volledige(!!!) [https://stackoverflow.com/questions/1078196/how-to-take-complete-backup-of-mysql-database-using-mysqldump-command-line-utili#27400627 databaasinhoud overzetten]. (Dit is een van de redenen dat je een read lock hebt.) Doe een mysqldump van de gehele database inclusief tabellen, permissies en inhoud en pas die toe op de nieuwe db.&lt;br /&gt;
&lt;br /&gt;
Log in op de nieuwe db met &amp;lt;code&amp;gt;mysql -u root -p&amp;lt;/code&amp;gt; en stel replicatie in:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHANGE MASTER TO&lt;br /&gt;
  MASTER_HOST='master.domain.com',&lt;br /&gt;
  MASTER_USER='replication_user',&lt;br /&gt;
  MASTER_PASSWORD='bigs3cret',&lt;br /&gt;
  MASTER_PORT=3306,&lt;br /&gt;
  MASTER_LOG_FILE='mariadb-bin.000096',&lt;br /&gt;
  MASTER_LOG_POS=568,&lt;br /&gt;
  MASTER_CONNECT_RETRY=10;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(De juiste waarden haal je uit de uitvoer van &amp;lt;code&amp;gt; show master status\G&amp;lt;/code&amp;gt; op de originele host.) Vervolgens &amp;lt;code&amp;gt;START SLAVE; SHOW SLAVE STATUS \G&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Als de uitvoer een beetje sense maakt, dan heb je succesvol een master-slave replicatie van de oude naar de nieuwe host opgezet. Doe &amp;lt;code&amp;gt;UNLOCK TABLES;&amp;lt;/code&amp;gt; op de originele host en probeer wat aan te passen. Dit zou op de nieuwe host terecht moeten komen.&lt;br /&gt;
&lt;br /&gt;
Als een error bij de slave gebeurd is die niet op master voorkwam, gaat die blokkeren tot je het fixt. Wat je kan doen als het echt helemaal in de soep loopt, is opnieuw alles op slot gooien, een dbdump overnemen van master naar slave. Doe weer &amp;lt;code&amp;gt; show master status\G&amp;lt;/code&amp;gt; en unlock de master. Vervolgens doe je op de slave &amp;lt;code&amp;gt;change master to MASTER_LOG_POS=37071; START SLAVE;&amp;lt;/code&amp;gt; en dan zou die automatisch alles wat sinds de backup is gebeurd, weer naar binnen gaan slurpen.&lt;br /&gt;
&lt;br /&gt;
Nu gaan we de replicatie de andere kant op sturen. Dit is in principe het precies omgekeerde van wat we hiervoor deden. Pas op vm-www2 de &amp;lt;code&amp;gt;my.cnf&amp;lt;/code&amp;gt; aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
server-id=2&lt;br /&gt;
log-bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
en herstart mariadb. Voeg de repli-user toe op de vm-www2: &amp;lt;code&amp;gt;grant replication slave on *.* to repli@'vm-www.a-eskwadraat.nl' identified by 'replipassword'; flush privileges;&amp;lt;/code&amp;gt;. Doe op allebei de hosts een table lock, doe op de nieuwe host &amp;lt;code&amp;gt;show master status\G&amp;lt;/code&amp;gt; en op de originele host de replicatie-instellingen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHANGE MASTER TO&lt;br /&gt;
  MASTER_HOST='master.domain.com',&lt;br /&gt;
  MASTER_USER='replication_user',&lt;br /&gt;
  MASTER_PASSWORD='bigs3cret',&lt;br /&gt;
  MASTER_PORT=3306,&lt;br /&gt;
  MASTER_LOG_FILE='mariadb-bin.000096',&lt;br /&gt;
  MASTER_LOG_POS=568,&lt;br /&gt;
  MASTER_CONNECT_RETRY=10;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En nu kun je op de originele host &amp;lt;code&amp;gt;start slave;&amp;lt;/code&amp;gt; runnen, en je hebt een master-masterreplicatie :D&lt;br /&gt;
&lt;br /&gt;
=== Installeer Apache, PHP en PHP-FPM ===&lt;br /&gt;
&lt;br /&gt;
Doe &amp;lt;code&amp;gt;yum install httpd&amp;lt;/code&amp;gt; voor Apache.&lt;br /&gt;
Voor een niet verschrikkelijk antieke PHP moet je extra dingen installeren (zie ook [https://rpms.remirepo.net/wizard/]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yum install epel-release&lt;br /&gt;
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm&lt;br /&gt;
yum install yum-utils&lt;br /&gt;
yum-config-manager --enable remi-php56 # of php72 of andere versie&lt;br /&gt;
yum install php php-fpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installeer ook alle [[PHP-extensies]] die nodig zijn. (Zie die pagina voor de lijst.)&lt;br /&gt;
&lt;br /&gt;
Overige dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yum install gettext java npm python36 python36-virtualenv&lt;br /&gt;
npm install -g bower&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nu moeten we PHP-instellingen regelen. Maak een checkout van de website, en doe daarin:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir config/vm-www2&lt;br /&gt;
ln -s /etc/php.ini config/vm-www2/&lt;br /&gt;
vim config/vm-www2/php.ini # Pas hier alle relevante config van de vm-www toe.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cron instellen ===&lt;br /&gt;
&lt;br /&gt;
Maak een map &amp;lt;code&amp;gt;/website-output&amp;lt;/code&amp;gt; aan en chown die naar &amp;lt;code&amp;gt;apache:apache&amp;lt;/code&amp;gt; (en zorg ervoor dat apache ernaar kan schrijven :P). Hierin komt alle output van cronjobs enzo.&lt;br /&gt;
&lt;br /&gt;
Je kan in principe de crontab van de oude vm overnemen, dus ga naar de checkout, en doe:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp scripts/cron/crontab-$VMOUD-apache scripts/cron/crontab-$VMNIEUW-apache&lt;br /&gt;
crontab -u apache scripts/cron/crontab-$VMNIEUW-apache&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
om de cronjobs te activeren.&lt;br /&gt;
&lt;br /&gt;
=== Mail werkend krijgen ===&lt;br /&gt;
&lt;br /&gt;
De website gebruikt sendmail-commando's om te mailen. Normaal stuurt sendmail de mails direct het web op, maar we willen dat deze door de vm-mailpp heen gestuurd wordt zodat de berichten juist zijn ondertekend en door spamfilters heen komen. Hiervoor gebruiken we het sendmail-commando dat uit postfix komt. Installeer postfix met:&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install postfix&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De configuratie van postfix ongeveer dezelfde als op alle CentOS7 machines en is te vinden op de vm-salt-master in &amp;lt;code&amp;gt;/srv/salt/centos7/global/main.cf&amp;lt;/code&amp;gt;. Je moet de volgende parameters aanpassen zodat mail naar buiten mag:&lt;br /&gt;
&amp;lt;pre&amp;gt;mydomain = a-eskwadraat.nl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Om mailings te configureren, voeg de volgende parameters toe aan &amp;lt;code&amp;gt;main.cf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
inet_interfaces = all&lt;br /&gt;
relay_domains = a-eskwadraat.nl&lt;br /&gt;
smtpd_recipient_restrictions = check_recipient_access regexp:/etc/postfix/access, reject_unauth_destination&amp;lt;/pre&amp;gt;&lt;br /&gt;
En voeg de volgende regels toe aan &amp;lt;code&amp;gt;/etc/postfix/master.cf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bughook unix - n n - - pipe&lt;br /&gt;
    flags=F user=webcie argv=/website/scripts/mail_process_bug_vm-www ${sender} ${size} ${recipient}&lt;br /&gt;
lidhook unix - n n - - pipe&lt;br /&gt;
    flags=F user=webcie argv=/website/scripts/mail_process_lid ${sender} ${size} ${recipient}&lt;br /&gt;
bouncehook unix - n n - - pipe&lt;br /&gt;
    flags=F user=webcie argv=/website/scripts/mail_process_bounce ${sender} ${size} ${recipient}&lt;br /&gt;
mailinghook unix - n n - - pipe&lt;br /&gt;
    flags=F user=webcie argv=/website/scripts/mail_process_incoming_mailing.php ${sender} ${size} $$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En plaats de volgende regels in &amp;lt;code&amp;gt;/etc/postfix/access&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/^lid-[0-9]+@a-es((kwadraat)|(2))\.nl$/ FILTER lidhook:&lt;br /&gt;
/^bug(([0-9]+)|(s))@a-es((kwadraat)|(2))\.nl$/ FILTER bughook:&lt;br /&gt;
/^bounce-[0-9]+@a-es((kwadraat)|(2))\.nl$/ FILTER bouncehook:&lt;br /&gt;
/^((.*-)|)mailing((s)|)@a-es((kwadraat)|(2))\.nl$/ FILTER mailinghook:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Stel nu in dat het sendmail-commando uit postfix gebruikt wordt in plaats van de standaard sendmail:&lt;br /&gt;
&amp;lt;pre&amp;gt;update-alternatives --config mta&amp;lt;/pre&amp;gt;&lt;br /&gt;
En start dan de postfix service met &amp;lt;code&amp;gt;service postfix start&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Zo worden de mails doorgestuurd naar de juiste scriptjes van de WebCie. Zie [[Mail sturen naar de site]]&lt;br /&gt;
&lt;br /&gt;
=== IPA ===&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install ipa-client&amp;lt;/pre&amp;gt;&lt;br /&gt;
Voor autologin:&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install mod_auth_kerb mod_authnz_pam mod_lookup_ident sssd-dbus&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Het volgende moet de sysop regelen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipa-client-install &lt;br /&gt;
ipa host-add dummyhost.example.com --desc=&amp;quot;Dummy Host&amp;quot; --location=&amp;quot;&amp;lt;fqdn-of-webserver&amp;gt;&amp;quot;&lt;br /&gt;
ipa host-add-managedby dummyhost.example.com --hosts=&amp;quot;&amp;lt;fqdn-of-webserver&amp;gt;&amp;quot;&lt;br /&gt;
ipa service-add HTTP/dummyhost.example.com&lt;br /&gt;
ipa service-add-host HTTP/dummyhost.example.com --hosts=&amp;quot;&amp;lt;fqdn-of-webserver&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ga naar de ipa webinterface &lt;br /&gt;
Ga naar de tab hosts &lt;br /&gt;
Ga naar de juiste host&lt;br /&gt;
klik op actions -&amp;gt; add New certificate &lt;br /&gt;
&lt;br /&gt;
Voer nu de volgende commands uit in de commandline:&lt;br /&gt;
mkdir /etc/nssdb&lt;br /&gt;
cd /etc/nssdb&lt;br /&gt;
certutil -N -d . &lt;br /&gt;
&lt;br /&gt;
mkdir /etc/httpd/certs&lt;br /&gt;
ipa-getcert request -r -f /etc/httpd/certs/dummyhost.crt -k /etc/httpd/certs/dummyhost.key -N CN=dummyhost.example.com -D \&lt;br /&gt;
  dummyhost.example.com -K HTTP/dummyhost.example.com&lt;br /&gt;
&lt;br /&gt;
Voor autologin op de site:&lt;br /&gt;
ipa-getkeytab -s ipa05.a-eskwadraat.nl -p HTTP/www-auth.a-eskwadraat.nl -k /etc/httpd/conf/httpd.keytab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Overige tsjak ter installatie ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install git sudo vim wget&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== De website opzetten ===&lt;br /&gt;
&lt;br /&gt;
Heb je alles geïnstalleerd, dan ben je klaar voor de laatste fase.&lt;br /&gt;
&lt;br /&gt;
Vertel de scripts dat dit een host is: &amp;lt;code&amp;gt;vim /etc/function&amp;lt;/code&amp;gt; en stop daarin &amp;lt;code&amp;gt;server&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ga naar de checkout van de website, kopieer handmatig de secret.php en doe daarin manage build. (Dit moet na de php-instellingen gebeuren want manage voert php uit.)&lt;br /&gt;
&lt;br /&gt;
Pas de httpd-configuratie aan om de juiste paden in te stellen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp config/vm-www/httpd/conf.d/website.conf /etc/httpd/conf.d/&lt;br /&gt;
ln -s /etc/httpd config/vm-www2/httpd&lt;br /&gt;
vim config/vm-www2/httpd/conf.d/website.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nu kun je de webserver aanzwengelen :D &amp;lt;code&amp;gt;systemctl restart httpd&amp;lt;code&amp;gt; &amp;lt;code&amp;gt;systemctl restart php-fpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Je moet waarschijnlijk nog wat chmod'en en paden aanmaken, zie daarvoor de logs in &amp;lt;code&amp;gt;/var/log/httpd/error_log&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;/var/log/php-fpm/error.log&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;/var/log/www/php-warnings.log&amp;lt;/code&amp;gt; (in volgorde van dingen werkend krijgen).&lt;br /&gt;
&lt;br /&gt;
[[Category:Sysop]] [[Category:WebCie]]&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Webcie-vm</id>
		<title>Webcie-vm</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Webcie-vm"/>
				<updated>2018-10-08T19:05:40Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: /* IPA */ sssd-dbus installeren&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Zie ook: [[Webcie-vms]] (!)&lt;br /&gt;
&lt;br /&gt;
== Nieuwe vm-webcie-debug&amp;amp;nbsp;aanmaken ==&lt;br /&gt;
&lt;br /&gt;
Maak een nieuwe vm vm-webcie-debug aan. Kickstart de vm en highstate de vm met salt. Installeer mariadb met het volgende commando:&lt;br /&gt;
&amp;lt;pre&amp;gt;/usr/bin/mysql_secure_installation&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zet het rootwachtwoord en disalow root login remotely. Let op: de rootwachtwoorden van de databases van de vm-webcie/www en vm-webcie/www-debug moeten hetzelfde zijn!&lt;br /&gt;
&lt;br /&gt;
Maak in de home van de root het bestandje .my.cnf aan (zet de rechten op 0600!) met de volgende content:&lt;br /&gt;
&amp;lt;pre&amp;gt;[client]&lt;br /&gt;
user = root&lt;br /&gt;
pass = root-database-wachtwoord&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maak ook de juiste databases aan (bv test_whoswho4, test_benamite of boeken. Denk eraan dat op een vm-webcie/www-machine er zowel de normal db als test_db moeten zijn). Kopieër nu de databases. Vergeet ook niet de mysql-database te kopieëren, daar staan de rechten van de verschillende gebruikers in.&amp;amp;nbsp;Maak eerst een dump op de oude vm:&lt;br /&gt;
&amp;lt;pre&amp;gt;mysqldump 'dbnaam' &amp;gt; 'dbnaam'.db&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kopieër het dumpbestand naar de nieuwe vm en laad de dump in op de nieuwe vm:&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql 'dbnaam' &amp;lt; 'dbnaam'.db&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Opzetten vm-www2 ==&lt;br /&gt;
&lt;br /&gt;
Deze instructies zijn bedoeld voor de WebCie. We gaan ervan uit dat je het WebCie-wachtwoord uit je hoofd kent.&lt;br /&gt;
&lt;br /&gt;
Vraag de Sysop om een nieuwe vm (ik bedoel uiteraard container ;)) met subdomein (in dit geval: vm-www2.a-eskwadraat.nl) en dezelfde mounts als de originele vm. Zorg ervoor dat sendmail vanaf de nieuwe vm werkt. Verkrijg roottoegang op de vm-www2.&lt;br /&gt;
&lt;br /&gt;
In het begin heeft yum nog een update voor repositorygegevens nodig: doe &amp;lt;code&amp;gt;yum clean all&amp;lt;/code&amp;gt; voordat je een ander yum-commando draait.&lt;br /&gt;
&lt;br /&gt;
=== Mariadb en replicatie ===&lt;br /&gt;
&lt;br /&gt;
Installeer mariadb als op de vm-www-debug: &amp;lt;code&amp;gt;yum install mariadb mariadb-server&amp;lt;/code&amp;gt; (let op: ivm backwards incompatibility willen we versie 5.5 voorlopig), &amp;lt;code&amp;gt;systemctl enable mariadb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;systemctl start mariadb&amp;lt;/code&amp;gt; en dan &amp;lt;code&amp;gt;/usr/bin/mysql_secure_installation&amp;lt;/code&amp;gt;. Check even of inloggen nog werkt: &amp;lt;code&amp;gt;mysql -u root -p&amp;lt;/code&amp;gt;. Check ook dat je verbinding kan maken met mysql op de originele host vanaf de nieuwe host: &amp;lt;code&amp;gt;mysql -h vm-www -u root -p&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Nu gaan we [https://mariadb.com/kb/en/library/replication-overview/ replicatie] opzetten (master-master). We moeten hiervoor een random wachtwoord genereren, bewaar die goed! Open in een nieuwe terminal op de originele host, en pas de &amp;lt;code&amp;gt;my.cnf&amp;lt;/code&amp;gt; aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
server-id=1&lt;br /&gt;
log-bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Herstart mysqld/mariadb om de wijzigingen toe te passen. Log in als root op mysql en geef permissies: &amp;lt;code&amp;gt;grant replication slave on *.* to repli@'vm-www2.a-eskwadraat.nl' identified by 'replipassword'; flush privileges;&amp;lt;/code&amp;gt;. Zet de tabellen op slot terwijl we de rest doen: &amp;lt;code&amp;gt;flush tables with read lock;&amp;lt;/code&amp;gt;. Ten slotte moeten we wat gegevens bekomen: &amp;lt;code&amp;gt; show master status\G&amp;lt;/code&amp;gt;. Log niet uit tot we klaar zijn, dan gaan de tabellen weer van het slot af.&lt;br /&gt;
&lt;br /&gt;
In de andere terminal op &amp;lt;code&amp;gt;vm-www2&amp;lt;/code&amp;gt; gaan we ook de &amp;lt;code&amp;gt;my.cnf&amp;lt;/code&amp;gt; aanpassen (ik heb de wijzigingen in &amp;lt;code&amp;gt;/etc/my.cnf.d/webcie.cnf&amp;lt;/code&amp;gt; gezet):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
&lt;br /&gt;
server-id=2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Herstart mariadb om de wijzigingen toe te passen. We moeten ook de volledige(!!!) [https://stackoverflow.com/questions/1078196/how-to-take-complete-backup-of-mysql-database-using-mysqldump-command-line-utili#27400627 databaasinhoud overzetten]. (Dit is een van de redenen dat je een read lock hebt.) Doe een mysqldump van de gehele database inclusief tabellen, permissies en inhoud en pas die toe op de nieuwe db.&lt;br /&gt;
&lt;br /&gt;
Log in op de nieuwe db met &amp;lt;code&amp;gt;mysql -u root -p&amp;lt;/code&amp;gt; en stel replicatie in:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHANGE MASTER TO&lt;br /&gt;
  MASTER_HOST='master.domain.com',&lt;br /&gt;
  MASTER_USER='replication_user',&lt;br /&gt;
  MASTER_PASSWORD='bigs3cret',&lt;br /&gt;
  MASTER_PORT=3306,&lt;br /&gt;
  MASTER_LOG_FILE='mariadb-bin.000096',&lt;br /&gt;
  MASTER_LOG_POS=568,&lt;br /&gt;
  MASTER_CONNECT_RETRY=10;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(De juiste waarden haal je uit de uitvoer van &amp;lt;code&amp;gt; show master status\G&amp;lt;/code&amp;gt; op de originele host.) Vervolgens &amp;lt;code&amp;gt;START SLAVE; SHOW SLAVE STATUS \G&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Als de uitvoer een beetje sense maakt, dan heb je succesvol een master-slave replicatie van de oude naar de nieuwe host opgezet. Doe &amp;lt;code&amp;gt;UNLOCK TABLES;&amp;lt;/code&amp;gt; op de originele host en probeer wat aan te passen. Dit zou op de nieuwe host terecht moeten komen.&lt;br /&gt;
&lt;br /&gt;
Als een error bij de slave gebeurd is die niet op master voorkwam, gaat die blokkeren tot je het fixt. Wat je kan doen als het echt helemaal in de soep loopt, is opnieuw alles op slot gooien, een dbdump overnemen van master naar slave. Doe weer &amp;lt;code&amp;gt; show master status\G&amp;lt;/code&amp;gt; en unlock de master. Vervolgens doe je op de slave &amp;lt;code&amp;gt;change master to MASTER_LOG_POS=37071; START SLAVE;&amp;lt;/code&amp;gt; en dan zou die automatisch alles wat sinds de backup is gebeurd, weer naar binnen gaan slurpen.&lt;br /&gt;
&lt;br /&gt;
Nu gaan we de replicatie de andere kant op sturen. Dit is in principe het precies omgekeerde van wat we hiervoor deden. Pas op vm-www2 de &amp;lt;code&amp;gt;my.cnf&amp;lt;/code&amp;gt; aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
server-id=2&lt;br /&gt;
log-bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
en herstart mariadb. Voeg de repli-user toe op de vm-www2: &amp;lt;code&amp;gt;grant replication slave on *.* to repli@'vm-www.a-eskwadraat.nl' identified by 'replipassword'; flush privileges;&amp;lt;/code&amp;gt;. Doe op allebei de hosts een table lock, doe op de nieuwe host &amp;lt;code&amp;gt;show master status\G&amp;lt;/code&amp;gt; en op de originele host de replicatie-instellingen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHANGE MASTER TO&lt;br /&gt;
  MASTER_HOST='master.domain.com',&lt;br /&gt;
  MASTER_USER='replication_user',&lt;br /&gt;
  MASTER_PASSWORD='bigs3cret',&lt;br /&gt;
  MASTER_PORT=3306,&lt;br /&gt;
  MASTER_LOG_FILE='mariadb-bin.000096',&lt;br /&gt;
  MASTER_LOG_POS=568,&lt;br /&gt;
  MASTER_CONNECT_RETRY=10;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En nu kun je op de originele host &amp;lt;code&amp;gt;start slave;&amp;lt;/code&amp;gt; runnen, en je hebt een master-masterreplicatie :D&lt;br /&gt;
&lt;br /&gt;
=== Installeer Apache, PHP en PHP-FPM ===&lt;br /&gt;
&lt;br /&gt;
Doe &amp;lt;code&amp;gt;yum install httpd&amp;lt;/code&amp;gt; voor Apache.&lt;br /&gt;
Voor een niet verschrikkelijk antieke PHP moet je extra dingen installeren (zie ook [https://rpms.remirepo.net/wizard/]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yum install epel-release&lt;br /&gt;
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm&lt;br /&gt;
yum install yum-utils&lt;br /&gt;
yum-config-manager --enable remi-php56 # of php72 of andere versie&lt;br /&gt;
yum install php php-fpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installeer ook alle [[PHP-extensies]] die nodig zijn. (Zie die pagina voor de lijst.)&lt;br /&gt;
&lt;br /&gt;
Overige dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yum install gettext java npm python36 python36-virtualenv&lt;br /&gt;
npm install -g bower&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nu moeten we PHP-instellingen regelen. Maak een checkout van de website, en doe daarin:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir config/vm-www2&lt;br /&gt;
ln -s /etc/php.ini config/vm-www2/&lt;br /&gt;
vim config/vm-www2/php.ini # Pas hier alle relevante config van de vm-www toe.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cron instellen ===&lt;br /&gt;
&lt;br /&gt;
Maak een map &amp;lt;code&amp;gt;/website-output&amp;lt;/code&amp;gt; aan en chown die naar &amp;lt;code&amp;gt;apache:apache&amp;lt;/code&amp;gt; (en zorg ervoor dat apache ernaar kan schrijven :P). Hierin komt alle output van cronjobs enzo.&lt;br /&gt;
&lt;br /&gt;
Je kan in principe de crontab van de oude vm overnemen, dus ga naar de checkout, en doe:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp scripts/cron/crontab-$VMOUD-apache scripts/cron/crontab-$VMNIEUW-apache&lt;br /&gt;
crontab -u apache scripts/cron/crontab-$VMNIEUW-apache&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
om de cronjobs te activeren.&lt;br /&gt;
&lt;br /&gt;
=== Mail werkend krijgen ===&lt;br /&gt;
&lt;br /&gt;
De website gebruikt sendmail-commando's om te mailen. Normaal stuurt sendmail de mails direct het web op, maar we willen dat deze door de vm-mailpp heen gestuurd wordt zodat de berichten juist zijn ondertekend en door spamfilters heen komen. Hiervoor gebruiken we het sendmail-commando dat uit postfix komt. Installeer postfix met:&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install postfix&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De configuratie van postfix ongeveer dezelfde als op alle CentOS7 machines en is te vinden op de vm-salt-master in &amp;lt;code&amp;gt;/srv/salt/centos7/global/main.cf&amp;lt;/code&amp;gt;. Je moet de volgende parameters aanpassen zodat mail naar buiten mag:&lt;br /&gt;
&amp;lt;pre&amp;gt;mydomain = a-eskwadraat.nl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Om mailings te configureren, voeg de volgende parameters toe aan &amp;lt;code&amp;gt;main.cf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
inet_interfaces = all&lt;br /&gt;
relay_domains = a-eskwadraat.nl&lt;br /&gt;
smtpd_recipient_restrictions = check_recipient_access regexp:/etc/postfix/access, reject_unauth_destination&amp;lt;/pre&amp;gt;&lt;br /&gt;
En voeg de volgende regels toe aan &amp;lt;code&amp;gt;/etc/postfix/master.cf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bughook unix - n n - - pipe&lt;br /&gt;
    flags=F user=webcie argv=/website/scripts/mail_process_bug_vm-www ${sender} ${size} ${recipient}&lt;br /&gt;
lidhook unix - n n - - pipe&lt;br /&gt;
    flags=F user=webcie argv=/website/scripts/mail_process_lid ${sender} ${size} ${recipient}&lt;br /&gt;
bouncehook unix - n n - - pipe&lt;br /&gt;
    flags=F user=webcie argv=/website/scripts/mail_process_bounce ${sender} ${size} ${recipient}&lt;br /&gt;
mailinghook unix - n n - - pipe&lt;br /&gt;
    flags=F user=webcie argv=/website/scripts/mail_process_incoming_mailing.php ${sender} ${size} $$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En plaats de volgende regels in &amp;lt;code&amp;gt;/etc/postfix/access&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/^lid-[0-9]+@a-es((kwadraat)|(2))\.nl$/ FILTER lidhook:&lt;br /&gt;
/^bug(([0-9]+)|(s))@a-es((kwadraat)|(2))\.nl$/ FILTER bughook:&lt;br /&gt;
/^bounce-[0-9]+@a-es((kwadraat)|(2))\.nl$/ FILTER bouncehook:&lt;br /&gt;
/^((.*-)|)mailing((s)|)@a-es((kwadraat)|(2))\.nl$/ FILTER mailinghook:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Stel nu in dat het sendmail-commando uit postfix gebruikt wordt in plaats van de standaard sendmail:&lt;br /&gt;
&amp;lt;pre&amp;gt;update-alternatives --config mta&amp;lt;/pre&amp;gt;&lt;br /&gt;
En start dan de postfix service met &amp;lt;code&amp;gt;service postfix start&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Zo worden de mails doorgestuurd naar de juiste scriptjes van de WebCie. Zie [[Mail sturen naar de site]]&lt;br /&gt;
&lt;br /&gt;
=== IPA ===&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install ipa-client&amp;lt;/pre&amp;gt;&lt;br /&gt;
Voor autologin:&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install mod_auth_kerb mod_authnz_pam mod_lookup_ident sssd-dbus&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Het volgende moet de sysop regelen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipa-client-install &lt;br /&gt;
ipa host-add dummyhost.example.com --desc=&amp;quot;Dummy Host&amp;quot; --location=&amp;quot;&amp;lt;fqdn-of-webserver&amp;gt;&amp;quot;&lt;br /&gt;
ipa host-add-managedby dummyhost.example.com --hosts=&amp;quot;&amp;lt;fqdn-of-webserver&amp;gt;&amp;quot;&lt;br /&gt;
ipa service-add HTTP/dummyhost.example.com&lt;br /&gt;
ipa service-add-host HTTP/dummyhost.example.com --hosts=&amp;quot;&amp;lt;fqdn-of-webserver&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ga naar de ipa webinterface &lt;br /&gt;
Ga naar de tab hosts &lt;br /&gt;
Ga naar de juiste host&lt;br /&gt;
klik op actions -&amp;gt; add New certificate &lt;br /&gt;
&lt;br /&gt;
Voer nu de volgende commands uit in de commandline:&lt;br /&gt;
mkdir /etc/nssdb&lt;br /&gt;
cd /etc/nssdb&lt;br /&gt;
certutil -N -d . &lt;br /&gt;
&lt;br /&gt;
mkdir /etc/httpd/certs&lt;br /&gt;
ipa-getcert request -r -f /etc/httpd/certs/dummyhost.crt -k /etc/httpd/certs/dummyhost.key -N CN=dummyhost.example.com -D \&lt;br /&gt;
  dummyhost.example.com -K HTTP/dummyhost.example.com&lt;br /&gt;
&lt;br /&gt;
Voor autologin op de site:&lt;br /&gt;
ipa-getkeytab -s ipa05.a-eskwadraat.nl -p HTTP/*hostname*.a-eskwadraat.nl -k /var/www/website-ipa.keytab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Overige tsjak ter installatie ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install git sudo vim wget&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== De website opzetten ===&lt;br /&gt;
&lt;br /&gt;
Heb je alles geïnstalleerd, dan ben je klaar voor de laatste fase.&lt;br /&gt;
&lt;br /&gt;
Vertel de scripts dat dit een host is: &amp;lt;code&amp;gt;vim /etc/function&amp;lt;/code&amp;gt; en stop daarin &amp;lt;code&amp;gt;server&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ga naar de checkout van de website, kopieer handmatig de secret.php en doe daarin manage build. (Dit moet na de php-instellingen gebeuren want manage voert php uit.)&lt;br /&gt;
&lt;br /&gt;
Pas de httpd-configuratie aan om de juiste paden in te stellen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp config/vm-www/httpd/conf.d/website.conf /etc/httpd/conf.d/&lt;br /&gt;
ln -s /etc/httpd config/vm-www2/httpd&lt;br /&gt;
vim config/vm-www2/httpd/conf.d/website.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nu kun je de webserver aanzwengelen :D &amp;lt;code&amp;gt;systemctl restart httpd&amp;lt;code&amp;gt; &amp;lt;code&amp;gt;systemctl restart php-fpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Je moet waarschijnlijk nog wat chmod'en en paden aanmaken, zie daarvoor de logs in &amp;lt;code&amp;gt;/var/log/httpd/error_log&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;/var/log/php-fpm/error.log&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;/var/log/www/php-warnings.log&amp;lt;/code&amp;gt; (in volgorde van dingen werkend krijgen).&lt;br /&gt;
&lt;br /&gt;
[[Category:Sysop]] [[Category:WebCie]]&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Webcie-vm</id>
		<title>Webcie-vm</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Webcie-vm"/>
				<updated>2018-10-08T18:21:35Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: /* IPA */ autologin packages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Zie ook: [[Webcie-vms]] (!)&lt;br /&gt;
&lt;br /&gt;
== Nieuwe vm-webcie-debug&amp;amp;nbsp;aanmaken ==&lt;br /&gt;
&lt;br /&gt;
Maak een nieuwe vm vm-webcie-debug aan. Kickstart de vm en highstate de vm met salt. Installeer mariadb met het volgende commando:&lt;br /&gt;
&amp;lt;pre&amp;gt;/usr/bin/mysql_secure_installation&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zet het rootwachtwoord en disalow root login remotely. Let op: de rootwachtwoorden van de databases van de vm-webcie/www en vm-webcie/www-debug moeten hetzelfde zijn!&lt;br /&gt;
&lt;br /&gt;
Maak in de home van de root het bestandje .my.cnf aan (zet de rechten op 0600!) met de volgende content:&lt;br /&gt;
&amp;lt;pre&amp;gt;[client]&lt;br /&gt;
user = root&lt;br /&gt;
pass = root-database-wachtwoord&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maak ook de juiste databases aan (bv test_whoswho4, test_benamite of boeken. Denk eraan dat op een vm-webcie/www-machine er zowel de normal db als test_db moeten zijn). Kopieër nu de databases. Vergeet ook niet de mysql-database te kopieëren, daar staan de rechten van de verschillende gebruikers in.&amp;amp;nbsp;Maak eerst een dump op de oude vm:&lt;br /&gt;
&amp;lt;pre&amp;gt;mysqldump 'dbnaam' &amp;gt; 'dbnaam'.db&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kopieër het dumpbestand naar de nieuwe vm en laad de dump in op de nieuwe vm:&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql 'dbnaam' &amp;lt; 'dbnaam'.db&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Opzetten vm-www2 ==&lt;br /&gt;
&lt;br /&gt;
Deze instructies zijn bedoeld voor de WebCie. We gaan ervan uit dat je het WebCie-wachtwoord uit je hoofd kent.&lt;br /&gt;
&lt;br /&gt;
Vraag de Sysop om een nieuwe vm (ik bedoel uiteraard container ;)) met subdomein (in dit geval: vm-www2.a-eskwadraat.nl) en dezelfde mounts als de originele vm. Zorg ervoor dat sendmail vanaf de nieuwe vm werkt. Verkrijg roottoegang op de vm-www2.&lt;br /&gt;
&lt;br /&gt;
In het begin heeft yum nog een update voor repositorygegevens nodig: doe &amp;lt;code&amp;gt;yum clean all&amp;lt;/code&amp;gt; voordat je een ander yum-commando draait.&lt;br /&gt;
&lt;br /&gt;
=== Mariadb en replicatie ===&lt;br /&gt;
&lt;br /&gt;
Installeer mariadb als op de vm-www-debug: &amp;lt;code&amp;gt;yum install mariadb mariadb-server&amp;lt;/code&amp;gt; (let op: ivm backwards incompatibility willen we versie 5.5 voorlopig), &amp;lt;code&amp;gt;systemctl enable mariadb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;systemctl start mariadb&amp;lt;/code&amp;gt; en dan &amp;lt;code&amp;gt;/usr/bin/mysql_secure_installation&amp;lt;/code&amp;gt;. Check even of inloggen nog werkt: &amp;lt;code&amp;gt;mysql -u root -p&amp;lt;/code&amp;gt;. Check ook dat je verbinding kan maken met mysql op de originele host vanaf de nieuwe host: &amp;lt;code&amp;gt;mysql -h vm-www -u root -p&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Nu gaan we [https://mariadb.com/kb/en/library/replication-overview/ replicatie] opzetten (master-master). We moeten hiervoor een random wachtwoord genereren, bewaar die goed! Open in een nieuwe terminal op de originele host, en pas de &amp;lt;code&amp;gt;my.cnf&amp;lt;/code&amp;gt; aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
server-id=1&lt;br /&gt;
log-bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Herstart mysqld/mariadb om de wijzigingen toe te passen. Log in als root op mysql en geef permissies: &amp;lt;code&amp;gt;grant replication slave on *.* to repli@'vm-www2.a-eskwadraat.nl' identified by 'replipassword'; flush privileges;&amp;lt;/code&amp;gt;. Zet de tabellen op slot terwijl we de rest doen: &amp;lt;code&amp;gt;flush tables with read lock;&amp;lt;/code&amp;gt;. Ten slotte moeten we wat gegevens bekomen: &amp;lt;code&amp;gt; show master status\G&amp;lt;/code&amp;gt;. Log niet uit tot we klaar zijn, dan gaan de tabellen weer van het slot af.&lt;br /&gt;
&lt;br /&gt;
In de andere terminal op &amp;lt;code&amp;gt;vm-www2&amp;lt;/code&amp;gt; gaan we ook de &amp;lt;code&amp;gt;my.cnf&amp;lt;/code&amp;gt; aanpassen (ik heb de wijzigingen in &amp;lt;code&amp;gt;/etc/my.cnf.d/webcie.cnf&amp;lt;/code&amp;gt; gezet):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
&lt;br /&gt;
server-id=2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Herstart mariadb om de wijzigingen toe te passen. We moeten ook de volledige(!!!) [https://stackoverflow.com/questions/1078196/how-to-take-complete-backup-of-mysql-database-using-mysqldump-command-line-utili#27400627 databaasinhoud overzetten]. (Dit is een van de redenen dat je een read lock hebt.) Doe een mysqldump van de gehele database inclusief tabellen, permissies en inhoud en pas die toe op de nieuwe db.&lt;br /&gt;
&lt;br /&gt;
Log in op de nieuwe db met &amp;lt;code&amp;gt;mysql -u root -p&amp;lt;/code&amp;gt; en stel replicatie in:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHANGE MASTER TO&lt;br /&gt;
  MASTER_HOST='master.domain.com',&lt;br /&gt;
  MASTER_USER='replication_user',&lt;br /&gt;
  MASTER_PASSWORD='bigs3cret',&lt;br /&gt;
  MASTER_PORT=3306,&lt;br /&gt;
  MASTER_LOG_FILE='mariadb-bin.000096',&lt;br /&gt;
  MASTER_LOG_POS=568,&lt;br /&gt;
  MASTER_CONNECT_RETRY=10;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(De juiste waarden haal je uit de uitvoer van &amp;lt;code&amp;gt; show master status\G&amp;lt;/code&amp;gt; op de originele host.) Vervolgens &amp;lt;code&amp;gt;START SLAVE; SHOW SLAVE STATUS \G&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Als de uitvoer een beetje sense maakt, dan heb je succesvol een master-slave replicatie van de oude naar de nieuwe host opgezet. Doe &amp;lt;code&amp;gt;UNLOCK TABLES;&amp;lt;/code&amp;gt; op de originele host en probeer wat aan te passen. Dit zou op de nieuwe host terecht moeten komen.&lt;br /&gt;
&lt;br /&gt;
Als een error bij de slave gebeurd is die niet op master voorkwam, gaat die blokkeren tot je het fixt. Wat je kan doen als het echt helemaal in de soep loopt, is opnieuw alles op slot gooien, een dbdump overnemen van master naar slave. Doe weer &amp;lt;code&amp;gt; show master status\G&amp;lt;/code&amp;gt; en unlock de master. Vervolgens doe je op de slave &amp;lt;code&amp;gt;change master to MASTER_LOG_POS=37071; START SLAVE;&amp;lt;/code&amp;gt; en dan zou die automatisch alles wat sinds de backup is gebeurd, weer naar binnen gaan slurpen.&lt;br /&gt;
&lt;br /&gt;
Nu gaan we de replicatie de andere kant op sturen. Dit is in principe het precies omgekeerde van wat we hiervoor deden. Pas op vm-www2 de &amp;lt;code&amp;gt;my.cnf&amp;lt;/code&amp;gt; aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
server-id=2&lt;br /&gt;
log-bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
en herstart mariadb. Voeg de repli-user toe op de vm-www2: &amp;lt;code&amp;gt;grant replication slave on *.* to repli@'vm-www.a-eskwadraat.nl' identified by 'replipassword'; flush privileges;&amp;lt;/code&amp;gt;. Doe op allebei de hosts een table lock, doe op de nieuwe host &amp;lt;code&amp;gt;show master status\G&amp;lt;/code&amp;gt; en op de originele host de replicatie-instellingen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHANGE MASTER TO&lt;br /&gt;
  MASTER_HOST='master.domain.com',&lt;br /&gt;
  MASTER_USER='replication_user',&lt;br /&gt;
  MASTER_PASSWORD='bigs3cret',&lt;br /&gt;
  MASTER_PORT=3306,&lt;br /&gt;
  MASTER_LOG_FILE='mariadb-bin.000096',&lt;br /&gt;
  MASTER_LOG_POS=568,&lt;br /&gt;
  MASTER_CONNECT_RETRY=10;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En nu kun je op de originele host &amp;lt;code&amp;gt;start slave;&amp;lt;/code&amp;gt; runnen, en je hebt een master-masterreplicatie :D&lt;br /&gt;
&lt;br /&gt;
=== Installeer Apache, PHP en PHP-FPM ===&lt;br /&gt;
&lt;br /&gt;
Doe &amp;lt;code&amp;gt;yum install httpd&amp;lt;/code&amp;gt; voor Apache.&lt;br /&gt;
Voor een niet verschrikkelijk antieke PHP moet je extra dingen installeren (zie ook [https://rpms.remirepo.net/wizard/]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yum install epel-release&lt;br /&gt;
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm&lt;br /&gt;
yum install yum-utils&lt;br /&gt;
yum-config-manager --enable remi-php56 # of php72 of andere versie&lt;br /&gt;
yum install php php-fpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installeer ook alle [[PHP-extensies]] die nodig zijn. (Zie die pagina voor de lijst.)&lt;br /&gt;
&lt;br /&gt;
Overige dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yum install gettext java npm python36 python36-virtualenv&lt;br /&gt;
npm install -g bower&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nu moeten we PHP-instellingen regelen. Maak een checkout van de website, en doe daarin:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir config/vm-www2&lt;br /&gt;
ln -s /etc/php.ini config/vm-www2/&lt;br /&gt;
vim config/vm-www2/php.ini # Pas hier alle relevante config van de vm-www toe.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cron instellen ===&lt;br /&gt;
&lt;br /&gt;
Maak een map &amp;lt;code&amp;gt;/website-output&amp;lt;/code&amp;gt; aan en chown die naar &amp;lt;code&amp;gt;apache:apache&amp;lt;/code&amp;gt; (en zorg ervoor dat apache ernaar kan schrijven :P). Hierin komt alle output van cronjobs enzo.&lt;br /&gt;
&lt;br /&gt;
Je kan in principe de crontab van de oude vm overnemen, dus ga naar de checkout, en doe:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp scripts/cron/crontab-$VMOUD-apache scripts/cron/crontab-$VMNIEUW-apache&lt;br /&gt;
crontab -u apache scripts/cron/crontab-$VMNIEUW-apache&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
om de cronjobs te activeren.&lt;br /&gt;
&lt;br /&gt;
=== Mail werkend krijgen ===&lt;br /&gt;
&lt;br /&gt;
De website gebruikt sendmail-commando's om te mailen. Normaal stuurt sendmail de mails direct het web op, maar we willen dat deze door de vm-mailpp heen gestuurd wordt zodat de berichten juist zijn ondertekend en door spamfilters heen komen. Hiervoor gebruiken we het sendmail-commando dat uit postfix komt. Installeer postfix met:&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install postfix&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De configuratie van postfix ongeveer dezelfde als op alle CentOS7 machines en is te vinden op de vm-salt-master in &amp;lt;code&amp;gt;/srv/salt/centos7/global/main.cf&amp;lt;/code&amp;gt;. Je moet de volgende parameters aanpassen zodat mail naar buiten mag:&lt;br /&gt;
&amp;lt;pre&amp;gt;mydomain = a-eskwadraat.nl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Om mailings te configureren, voeg de volgende parameters toe aan &amp;lt;code&amp;gt;main.cf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
inet_interfaces = all&lt;br /&gt;
relay_domains = a-eskwadraat.nl&lt;br /&gt;
smtpd_recipient_restrictions = check_recipient_access regexp:/etc/postfix/access, reject_unauth_destination&amp;lt;/pre&amp;gt;&lt;br /&gt;
En voeg de volgende regels toe aan &amp;lt;code&amp;gt;/etc/postfix/master.cf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bughook unix - n n - - pipe&lt;br /&gt;
    flags=F user=webcie argv=/website/scripts/mail_process_bug_vm-www ${sender} ${size} ${recipient}&lt;br /&gt;
lidhook unix - n n - - pipe&lt;br /&gt;
    flags=F user=webcie argv=/website/scripts/mail_process_lid ${sender} ${size} ${recipient}&lt;br /&gt;
bouncehook unix - n n - - pipe&lt;br /&gt;
    flags=F user=webcie argv=/website/scripts/mail_process_bounce ${sender} ${size} ${recipient}&lt;br /&gt;
mailinghook unix - n n - - pipe&lt;br /&gt;
    flags=F user=webcie argv=/website/scripts/mail_process_incoming_mailing.php ${sender} ${size} $$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En plaats de volgende regels in &amp;lt;code&amp;gt;/etc/postfix/access&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/^lid-[0-9]+@a-es((kwadraat)|(2))\.nl$/ FILTER lidhook:&lt;br /&gt;
/^bug(([0-9]+)|(s))@a-es((kwadraat)|(2))\.nl$/ FILTER bughook:&lt;br /&gt;
/^bounce-[0-9]+@a-es((kwadraat)|(2))\.nl$/ FILTER bouncehook:&lt;br /&gt;
/^((.*-)|)mailing((s)|)@a-es((kwadraat)|(2))\.nl$/ FILTER mailinghook:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Stel nu in dat het sendmail-commando uit postfix gebruikt wordt in plaats van de standaard sendmail:&lt;br /&gt;
&amp;lt;pre&amp;gt;update-alternatives --config mta&amp;lt;/pre&amp;gt;&lt;br /&gt;
En start dan de postfix service met &amp;lt;code&amp;gt;service postfix start&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Zo worden de mails doorgestuurd naar de juiste scriptjes van de WebCie. Zie [[Mail sturen naar de site]]&lt;br /&gt;
&lt;br /&gt;
=== IPA ===&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install ipa-client&amp;lt;/pre&amp;gt;&lt;br /&gt;
Voor autologin:&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install mod_auth_kerb mod_authnz_pam mod_lookup_ident&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Het volgende moet de sysop regelen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipa-client-install &lt;br /&gt;
ipa host-add dummyhost.example.com --desc=&amp;quot;Dummy Host&amp;quot; --location=&amp;quot;&amp;lt;fqdn-of-webserver&amp;gt;&amp;quot;&lt;br /&gt;
ipa host-add-managedby dummyhost.example.com --hosts=&amp;quot;&amp;lt;fqdn-of-webserver&amp;gt;&amp;quot;&lt;br /&gt;
ipa service-add HTTP/dummyhost.example.com&lt;br /&gt;
ipa service-add-host HTTP/dummyhost.example.com --hosts=&amp;quot;&amp;lt;fqdn-of-webserver&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ga naar de ipa webinterface &lt;br /&gt;
Ga naar de tab hosts &lt;br /&gt;
Ga naar de juiste host&lt;br /&gt;
klik op actions -&amp;gt; add New certificate &lt;br /&gt;
&lt;br /&gt;
Voer nu de volgende commands uit in de commandline:&lt;br /&gt;
mkdir /etc/nssdb&lt;br /&gt;
cd /etc/nssdb&lt;br /&gt;
certutil -N -d . &lt;br /&gt;
&lt;br /&gt;
mkdir /etc/httpd/certs&lt;br /&gt;
ipa-getcert request -r -f /etc/httpd/certs/dummyhost.crt -k /etc/httpd/certs/dummyhost.key -N CN=dummyhost.example.com -D \&lt;br /&gt;
  dummyhost.example.com -K HTTP/dummyhost.example.com&lt;br /&gt;
&lt;br /&gt;
Voor autologin op de site:&lt;br /&gt;
ipa-getkeytab -s ipa05.a-eskwadraat.nl -p HTTP/*hostname*.a-eskwadraat.nl -k /var/www/website-ipa.keytab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Overige tsjak ter installatie ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install git sudo vim wget&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== De website opzetten ===&lt;br /&gt;
&lt;br /&gt;
Heb je alles geïnstalleerd, dan ben je klaar voor de laatste fase.&lt;br /&gt;
&lt;br /&gt;
Vertel de scripts dat dit een host is: &amp;lt;code&amp;gt;vim /etc/function&amp;lt;/code&amp;gt; en stop daarin &amp;lt;code&amp;gt;server&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ga naar de checkout van de website, kopieer handmatig de secret.php en doe daarin manage build. (Dit moet na de php-instellingen gebeuren want manage voert php uit.)&lt;br /&gt;
&lt;br /&gt;
Pas de httpd-configuratie aan om de juiste paden in te stellen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp config/vm-www/httpd/conf.d/website.conf /etc/httpd/conf.d/&lt;br /&gt;
ln -s /etc/httpd config/vm-www2/httpd&lt;br /&gt;
vim config/vm-www2/httpd/conf.d/website.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nu kun je de webserver aanzwengelen :D &amp;lt;code&amp;gt;systemctl restart httpd&amp;lt;code&amp;gt; &amp;lt;code&amp;gt;systemctl restart php-fpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Je moet waarschijnlijk nog wat chmod'en en paden aanmaken, zie daarvoor de logs in &amp;lt;code&amp;gt;/var/log/httpd/error_log&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;/var/log/php-fpm/error.log&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;/var/log/www/php-warnings.log&amp;lt;/code&amp;gt; (in volgorde van dingen werkend krijgen).&lt;br /&gt;
&lt;br /&gt;
[[Category:Sysop]] [[Category:WebCie]]&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Webcie-vm</id>
		<title>Webcie-vm</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Webcie-vm"/>
				<updated>2018-10-08T18:03:56Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: /* IPA */ autologin keytab&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Zie ook: [[Webcie-vms]] (!)&lt;br /&gt;
&lt;br /&gt;
== Nieuwe vm-webcie-debug&amp;amp;nbsp;aanmaken ==&lt;br /&gt;
&lt;br /&gt;
Maak een nieuwe vm vm-webcie-debug aan. Kickstart de vm en highstate de vm met salt. Installeer mariadb met het volgende commando:&lt;br /&gt;
&amp;lt;pre&amp;gt;/usr/bin/mysql_secure_installation&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zet het rootwachtwoord en disalow root login remotely. Let op: de rootwachtwoorden van de databases van de vm-webcie/www en vm-webcie/www-debug moeten hetzelfde zijn!&lt;br /&gt;
&lt;br /&gt;
Maak in de home van de root het bestandje .my.cnf aan (zet de rechten op 0600!) met de volgende content:&lt;br /&gt;
&amp;lt;pre&amp;gt;[client]&lt;br /&gt;
user = root&lt;br /&gt;
pass = root-database-wachtwoord&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maak ook de juiste databases aan (bv test_whoswho4, test_benamite of boeken. Denk eraan dat op een vm-webcie/www-machine er zowel de normal db als test_db moeten zijn). Kopieër nu de databases. Vergeet ook niet de mysql-database te kopieëren, daar staan de rechten van de verschillende gebruikers in.&amp;amp;nbsp;Maak eerst een dump op de oude vm:&lt;br /&gt;
&amp;lt;pre&amp;gt;mysqldump 'dbnaam' &amp;gt; 'dbnaam'.db&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kopieër het dumpbestand naar de nieuwe vm en laad de dump in op de nieuwe vm:&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql 'dbnaam' &amp;lt; 'dbnaam'.db&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Opzetten vm-www2 ==&lt;br /&gt;
&lt;br /&gt;
Deze instructies zijn bedoeld voor de WebCie. We gaan ervan uit dat je het WebCie-wachtwoord uit je hoofd kent.&lt;br /&gt;
&lt;br /&gt;
Vraag de Sysop om een nieuwe vm (ik bedoel uiteraard container ;)) met subdomein (in dit geval: vm-www2.a-eskwadraat.nl) en dezelfde mounts als de originele vm. Zorg ervoor dat sendmail vanaf de nieuwe vm werkt. Verkrijg roottoegang op de vm-www2.&lt;br /&gt;
&lt;br /&gt;
In het begin heeft yum nog een update voor repositorygegevens nodig: doe &amp;lt;code&amp;gt;yum clean all&amp;lt;/code&amp;gt; voordat je een ander yum-commando draait.&lt;br /&gt;
&lt;br /&gt;
=== Mariadb en replicatie ===&lt;br /&gt;
&lt;br /&gt;
Installeer mariadb als op de vm-www-debug: &amp;lt;code&amp;gt;yum install mariadb mariadb-server&amp;lt;/code&amp;gt; (let op: ivm backwards incompatibility willen we versie 5.5 voorlopig), &amp;lt;code&amp;gt;systemctl enable mariadb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;systemctl start mariadb&amp;lt;/code&amp;gt; en dan &amp;lt;code&amp;gt;/usr/bin/mysql_secure_installation&amp;lt;/code&amp;gt;. Check even of inloggen nog werkt: &amp;lt;code&amp;gt;mysql -u root -p&amp;lt;/code&amp;gt;. Check ook dat je verbinding kan maken met mysql op de originele host vanaf de nieuwe host: &amp;lt;code&amp;gt;mysql -h vm-www -u root -p&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Nu gaan we [https://mariadb.com/kb/en/library/replication-overview/ replicatie] opzetten (master-master). We moeten hiervoor een random wachtwoord genereren, bewaar die goed! Open in een nieuwe terminal op de originele host, en pas de &amp;lt;code&amp;gt;my.cnf&amp;lt;/code&amp;gt; aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
server-id=1&lt;br /&gt;
log-bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Herstart mysqld/mariadb om de wijzigingen toe te passen. Log in als root op mysql en geef permissies: &amp;lt;code&amp;gt;grant replication slave on *.* to repli@'vm-www2.a-eskwadraat.nl' identified by 'replipassword'; flush privileges;&amp;lt;/code&amp;gt;. Zet de tabellen op slot terwijl we de rest doen: &amp;lt;code&amp;gt;flush tables with read lock;&amp;lt;/code&amp;gt;. Ten slotte moeten we wat gegevens bekomen: &amp;lt;code&amp;gt; show master status\G&amp;lt;/code&amp;gt;. Log niet uit tot we klaar zijn, dan gaan de tabellen weer van het slot af.&lt;br /&gt;
&lt;br /&gt;
In de andere terminal op &amp;lt;code&amp;gt;vm-www2&amp;lt;/code&amp;gt; gaan we ook de &amp;lt;code&amp;gt;my.cnf&amp;lt;/code&amp;gt; aanpassen (ik heb de wijzigingen in &amp;lt;code&amp;gt;/etc/my.cnf.d/webcie.cnf&amp;lt;/code&amp;gt; gezet):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
&lt;br /&gt;
server-id=2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Herstart mariadb om de wijzigingen toe te passen. We moeten ook de volledige(!!!) [https://stackoverflow.com/questions/1078196/how-to-take-complete-backup-of-mysql-database-using-mysqldump-command-line-utili#27400627 databaasinhoud overzetten]. (Dit is een van de redenen dat je een read lock hebt.) Doe een mysqldump van de gehele database inclusief tabellen, permissies en inhoud en pas die toe op de nieuwe db.&lt;br /&gt;
&lt;br /&gt;
Log in op de nieuwe db met &amp;lt;code&amp;gt;mysql -u root -p&amp;lt;/code&amp;gt; en stel replicatie in:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHANGE MASTER TO&lt;br /&gt;
  MASTER_HOST='master.domain.com',&lt;br /&gt;
  MASTER_USER='replication_user',&lt;br /&gt;
  MASTER_PASSWORD='bigs3cret',&lt;br /&gt;
  MASTER_PORT=3306,&lt;br /&gt;
  MASTER_LOG_FILE='mariadb-bin.000096',&lt;br /&gt;
  MASTER_LOG_POS=568,&lt;br /&gt;
  MASTER_CONNECT_RETRY=10;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(De juiste waarden haal je uit de uitvoer van &amp;lt;code&amp;gt; show master status\G&amp;lt;/code&amp;gt; op de originele host.) Vervolgens &amp;lt;code&amp;gt;START SLAVE; SHOW SLAVE STATUS \G&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Als de uitvoer een beetje sense maakt, dan heb je succesvol een master-slave replicatie van de oude naar de nieuwe host opgezet. Doe &amp;lt;code&amp;gt;UNLOCK TABLES;&amp;lt;/code&amp;gt; op de originele host en probeer wat aan te passen. Dit zou op de nieuwe host terecht moeten komen.&lt;br /&gt;
&lt;br /&gt;
Als een error bij de slave gebeurd is die niet op master voorkwam, gaat die blokkeren tot je het fixt. Wat je kan doen als het echt helemaal in de soep loopt, is opnieuw alles op slot gooien, een dbdump overnemen van master naar slave. Doe weer &amp;lt;code&amp;gt; show master status\G&amp;lt;/code&amp;gt; en unlock de master. Vervolgens doe je op de slave &amp;lt;code&amp;gt;change master to MASTER_LOG_POS=37071; START SLAVE;&amp;lt;/code&amp;gt; en dan zou die automatisch alles wat sinds de backup is gebeurd, weer naar binnen gaan slurpen.&lt;br /&gt;
&lt;br /&gt;
Nu gaan we de replicatie de andere kant op sturen. Dit is in principe het precies omgekeerde van wat we hiervoor deden. Pas op vm-www2 de &amp;lt;code&amp;gt;my.cnf&amp;lt;/code&amp;gt; aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
server-id=2&lt;br /&gt;
log-bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
en herstart mariadb. Voeg de repli-user toe op de vm-www2: &amp;lt;code&amp;gt;grant replication slave on *.* to repli@'vm-www.a-eskwadraat.nl' identified by 'replipassword'; flush privileges;&amp;lt;/code&amp;gt;. Doe op allebei de hosts een table lock, doe op de nieuwe host &amp;lt;code&amp;gt;show master status\G&amp;lt;/code&amp;gt; en op de originele host de replicatie-instellingen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHANGE MASTER TO&lt;br /&gt;
  MASTER_HOST='master.domain.com',&lt;br /&gt;
  MASTER_USER='replication_user',&lt;br /&gt;
  MASTER_PASSWORD='bigs3cret',&lt;br /&gt;
  MASTER_PORT=3306,&lt;br /&gt;
  MASTER_LOG_FILE='mariadb-bin.000096',&lt;br /&gt;
  MASTER_LOG_POS=568,&lt;br /&gt;
  MASTER_CONNECT_RETRY=10;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En nu kun je op de originele host &amp;lt;code&amp;gt;start slave;&amp;lt;/code&amp;gt; runnen, en je hebt een master-masterreplicatie :D&lt;br /&gt;
&lt;br /&gt;
=== Installeer Apache, PHP en PHP-FPM ===&lt;br /&gt;
&lt;br /&gt;
Doe &amp;lt;code&amp;gt;yum install httpd&amp;lt;/code&amp;gt; voor Apache.&lt;br /&gt;
Voor een niet verschrikkelijk antieke PHP moet je extra dingen installeren (zie ook [https://rpms.remirepo.net/wizard/]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yum install epel-release&lt;br /&gt;
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm&lt;br /&gt;
yum install yum-utils&lt;br /&gt;
yum-config-manager --enable remi-php56 # of php72 of andere versie&lt;br /&gt;
yum install php php-fpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installeer ook alle [[PHP-extensies]] die nodig zijn. (Zie die pagina voor de lijst.)&lt;br /&gt;
&lt;br /&gt;
Overige dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yum install gettext java npm python36 python36-virtualenv&lt;br /&gt;
npm install -g bower&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nu moeten we PHP-instellingen regelen. Maak een checkout van de website, en doe daarin:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir config/vm-www2&lt;br /&gt;
ln -s /etc/php.ini config/vm-www2/&lt;br /&gt;
vim config/vm-www2/php.ini # Pas hier alle relevante config van de vm-www toe.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cron instellen ===&lt;br /&gt;
&lt;br /&gt;
Maak een map &amp;lt;code&amp;gt;/website-output&amp;lt;/code&amp;gt; aan en chown die naar &amp;lt;code&amp;gt;apache:apache&amp;lt;/code&amp;gt; (en zorg ervoor dat apache ernaar kan schrijven :P). Hierin komt alle output van cronjobs enzo.&lt;br /&gt;
&lt;br /&gt;
Je kan in principe de crontab van de oude vm overnemen, dus ga naar de checkout, en doe:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp scripts/cron/crontab-$VMOUD-apache scripts/cron/crontab-$VMNIEUW-apache&lt;br /&gt;
crontab -u apache scripts/cron/crontab-$VMNIEUW-apache&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
om de cronjobs te activeren.&lt;br /&gt;
&lt;br /&gt;
=== Mail werkend krijgen ===&lt;br /&gt;
&lt;br /&gt;
De website gebruikt sendmail-commando's om te mailen. Normaal stuurt sendmail de mails direct het web op, maar we willen dat deze door de vm-mailpp heen gestuurd wordt zodat de berichten juist zijn ondertekend en door spamfilters heen komen. Hiervoor gebruiken we het sendmail-commando dat uit postfix komt. Installeer postfix met:&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install postfix&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De configuratie van postfix ongeveer dezelfde als op alle CentOS7 machines en is te vinden op de vm-salt-master in &amp;lt;code&amp;gt;/srv/salt/centos7/global/main.cf&amp;lt;/code&amp;gt;. Je moet de volgende parameters aanpassen zodat mail naar buiten mag:&lt;br /&gt;
&amp;lt;pre&amp;gt;mydomain = a-eskwadraat.nl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Om mailings te configureren, voeg de volgende parameters toe aan &amp;lt;code&amp;gt;main.cf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
inet_interfaces = all&lt;br /&gt;
relay_domains = a-eskwadraat.nl&lt;br /&gt;
smtpd_recipient_restrictions = check_recipient_access regexp:/etc/postfix/access, reject_unauth_destination&amp;lt;/pre&amp;gt;&lt;br /&gt;
En voeg de volgende regels toe aan &amp;lt;code&amp;gt;/etc/postfix/master.cf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bughook unix - n n - - pipe&lt;br /&gt;
    flags=F user=webcie argv=/website/scripts/mail_process_bug_vm-www ${sender} ${size} ${recipient}&lt;br /&gt;
lidhook unix - n n - - pipe&lt;br /&gt;
    flags=F user=webcie argv=/website/scripts/mail_process_lid ${sender} ${size} ${recipient}&lt;br /&gt;
bouncehook unix - n n - - pipe&lt;br /&gt;
    flags=F user=webcie argv=/website/scripts/mail_process_bounce ${sender} ${size} ${recipient}&lt;br /&gt;
mailinghook unix - n n - - pipe&lt;br /&gt;
    flags=F user=webcie argv=/website/scripts/mail_process_incoming_mailing.php ${sender} ${size} $$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En plaats de volgende regels in &amp;lt;code&amp;gt;/etc/postfix/access&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/^lid-[0-9]+@a-es((kwadraat)|(2))\.nl$/ FILTER lidhook:&lt;br /&gt;
/^bug(([0-9]+)|(s))@a-es((kwadraat)|(2))\.nl$/ FILTER bughook:&lt;br /&gt;
/^bounce-[0-9]+@a-es((kwadraat)|(2))\.nl$/ FILTER bouncehook:&lt;br /&gt;
/^((.*-)|)mailing((s)|)@a-es((kwadraat)|(2))\.nl$/ FILTER mailinghook:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Stel nu in dat het sendmail-commando uit postfix gebruikt wordt in plaats van de standaard sendmail:&lt;br /&gt;
&amp;lt;pre&amp;gt;update-alternatives --config mta&amp;lt;/pre&amp;gt;&lt;br /&gt;
En start dan de postfix service met &amp;lt;code&amp;gt;service postfix start&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Zo worden de mails doorgestuurd naar de juiste scriptjes van de WebCie. Zie [[Mail sturen naar de site]]&lt;br /&gt;
&lt;br /&gt;
=== IPA ===&lt;br /&gt;
yum install ipa-client&lt;br /&gt;
&lt;br /&gt;
Het volgende moet de sysop regelen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipa-client-install &lt;br /&gt;
ipa host-add dummyhost.example.com --desc=&amp;quot;Dummy Host&amp;quot; --location=&amp;quot;&amp;lt;fqdn-of-webserver&amp;gt;&amp;quot;&lt;br /&gt;
ipa host-add-managedby dummyhost.example.com --hosts=&amp;quot;&amp;lt;fqdn-of-webserver&amp;gt;&amp;quot;&lt;br /&gt;
ipa service-add HTTP/dummyhost.example.com&lt;br /&gt;
ipa service-add-host HTTP/dummyhost.example.com --hosts=&amp;quot;&amp;lt;fqdn-of-webserver&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ga naar de ipa webinterface &lt;br /&gt;
Ga naar de tab hosts &lt;br /&gt;
Ga naar de juiste host&lt;br /&gt;
klik op actions -&amp;gt; add New certificate &lt;br /&gt;
&lt;br /&gt;
Voer nu de volgende commands uit in de commandline:&lt;br /&gt;
mkdir /etc/nssdb&lt;br /&gt;
cd /etc/nssdb&lt;br /&gt;
certutil -N -d . &lt;br /&gt;
&lt;br /&gt;
mkdir /etc/httpd/certs&lt;br /&gt;
ipa-getcert request -r -f /etc/httpd/certs/dummyhost.crt -k /etc/httpd/certs/dummyhost.key -N CN=dummyhost.example.com -D \&lt;br /&gt;
  dummyhost.example.com -K HTTP/dummyhost.example.com&lt;br /&gt;
&lt;br /&gt;
Voor autologin op de site:&lt;br /&gt;
ipa-getkeytab -s ipa05.a-eskwadraat.nl -p HTTP/*hostname*.a-eskwadraat.nl -k /var/www/website-ipa.keytab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Overige tsjak ter installatie ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install git sudo vim wget&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== De website opzetten ===&lt;br /&gt;
&lt;br /&gt;
Heb je alles geïnstalleerd, dan ben je klaar voor de laatste fase.&lt;br /&gt;
&lt;br /&gt;
Vertel de scripts dat dit een host is: &amp;lt;code&amp;gt;vim /etc/function&amp;lt;/code&amp;gt; en stop daarin &amp;lt;code&amp;gt;server&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ga naar de checkout van de website, kopieer handmatig de secret.php en doe daarin manage build. (Dit moet na de php-instellingen gebeuren want manage voert php uit.)&lt;br /&gt;
&lt;br /&gt;
Pas de httpd-configuratie aan om de juiste paden in te stellen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp config/vm-www/httpd/conf.d/website.conf /etc/httpd/conf.d/&lt;br /&gt;
ln -s /etc/httpd config/vm-www2/httpd&lt;br /&gt;
vim config/vm-www2/httpd/conf.d/website.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nu kun je de webserver aanzwengelen :D &amp;lt;code&amp;gt;systemctl restart httpd&amp;lt;code&amp;gt; &amp;lt;code&amp;gt;systemctl restart php-fpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Je moet waarschijnlijk nog wat chmod'en en paden aanmaken, zie daarvoor de logs in &amp;lt;code&amp;gt;/var/log/httpd/error_log&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;/var/log/php-fpm/error.log&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;/var/log/www/php-warnings.log&amp;lt;/code&amp;gt; (in volgorde van dingen werkend krijgen).&lt;br /&gt;
&lt;br /&gt;
[[Category:Sysop]] [[Category:WebCie]]&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Webcie-vm</id>
		<title>Webcie-vm</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Webcie-vm"/>
				<updated>2018-10-04T08:51:36Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: /* Mail werkend krijgen */ postfix config afmaken&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Zie ook: [[Webcie-vms]] (!)&lt;br /&gt;
&lt;br /&gt;
== Nieuwe vm-webcie-debug&amp;amp;nbsp;aanmaken ==&lt;br /&gt;
&lt;br /&gt;
Maak een nieuwe vm vm-webcie-debug aan. Kickstart de vm en highstate de vm met salt. Installeer mariadb met het volgende commando:&lt;br /&gt;
&amp;lt;pre&amp;gt;/usr/bin/mysql_secure_installation&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zet het rootwachtwoord en disalow root login remotely. Let op: de rootwachtwoorden van de databases van de vm-webcie/www en vm-webcie/www-debug moeten hetzelfde zijn!&lt;br /&gt;
&lt;br /&gt;
Maak in de home van de root het bestandje .my.cnf aan (zet de rechten op 0600!) met de volgende content:&lt;br /&gt;
&amp;lt;pre&amp;gt;[client]&lt;br /&gt;
user = root&lt;br /&gt;
pass = root-database-wachtwoord&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maak ook de juiste databases aan (bv test_whoswho4, test_benamite of boeken. Denk eraan dat op een vm-webcie/www-machine er zowel de normal db als test_db moeten zijn). Kopieër nu de databases. Vergeet ook niet de mysql-database te kopieëren, daar staan de rechten van de verschillende gebruikers in.&amp;amp;nbsp;Maak eerst een dump op de oude vm:&lt;br /&gt;
&amp;lt;pre&amp;gt;mysqldump 'dbnaam' &amp;gt; 'dbnaam'.db&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kopieër het dumpbestand naar de nieuwe vm en laad de dump in op de nieuwe vm:&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql 'dbnaam' &amp;lt; 'dbnaam'.db&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Opzetten vm-www2 ==&lt;br /&gt;
&lt;br /&gt;
Deze instructies zijn bedoeld voor de WebCie. We gaan ervan uit dat je het WebCie-wachtwoord uit je hoofd kent.&lt;br /&gt;
&lt;br /&gt;
Vraag de Sysop om een nieuwe vm (ik bedoel uiteraard container ;)) met subdomein (in dit geval: vm-www2.a-eskwadraat.nl) en dezelfde mounts als de originele vm. Zorg ervoor dat sendmail vanaf de nieuwe vm werkt. Verkrijg roottoegang op de vm-www2.&lt;br /&gt;
&lt;br /&gt;
In het begin heeft yum nog een update voor repositorygegevens nodig: doe &amp;lt;code&amp;gt;yum clean all&amp;lt;/code&amp;gt; voordat je een ander yum-commando draait.&lt;br /&gt;
&lt;br /&gt;
=== Mariadb en replicatie ===&lt;br /&gt;
&lt;br /&gt;
Installeer mariadb als op de vm-www-debug: &amp;lt;code&amp;gt;yum install mariadb mariadb-server&amp;lt;/code&amp;gt; (let op: ivm backwards incompatibility willen we versie 5.5 voorlopig), &amp;lt;code&amp;gt;systemctl enable mariadb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;systemctl start mariadb&amp;lt;/code&amp;gt; en dan &amp;lt;code&amp;gt;/usr/bin/mysql_secure_installation&amp;lt;/code&amp;gt;. Check even of inloggen nog werkt: &amp;lt;code&amp;gt;mysql -u root -p&amp;lt;/code&amp;gt;. Check ook dat je verbinding kan maken met mysql op de originele host vanaf de nieuwe host: &amp;lt;code&amp;gt;mysql -h vm-www -u root -p&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Nu gaan we [https://mariadb.com/kb/en/library/replication-overview/ replicatie] opzetten (master-master). We moeten hiervoor een random wachtwoord genereren, bewaar die goed! Open in een nieuwe terminal op de originele host, en pas de &amp;lt;code&amp;gt;my.cnf&amp;lt;/code&amp;gt; aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
server-id=1&lt;br /&gt;
log-bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Herstart mysqld/mariadb om de wijzigingen toe te passen. Log in als root op mysql en geef permissies: &amp;lt;code&amp;gt;grant replication slave on *.* to repli@'vm-www2.a-eskwadraat.nl' identified by 'replipassword'; flush privileges;&amp;lt;/code&amp;gt;. Zet de tabellen op slot terwijl we de rest doen: &amp;lt;code&amp;gt;flush tables with read lock;&amp;lt;/code&amp;gt;. Ten slotte moeten we wat gegevens bekomen: &amp;lt;code&amp;gt; show master status\G&amp;lt;/code&amp;gt;. Log niet uit tot we klaar zijn, dan gaan de tabellen weer van het slot af.&lt;br /&gt;
&lt;br /&gt;
In de andere terminal op &amp;lt;code&amp;gt;vm-www2&amp;lt;/code&amp;gt; gaan we ook de &amp;lt;code&amp;gt;my.cnf&amp;lt;/code&amp;gt; aanpassen (ik heb de wijzigingen in &amp;lt;code&amp;gt;/etc/my.cnf.d/webcie.cnf&amp;lt;/code&amp;gt; gezet):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
&lt;br /&gt;
server-id=2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Herstart mariadb om de wijzigingen toe te passen. We moeten ook de volledige(!!!) [https://stackoverflow.com/questions/1078196/how-to-take-complete-backup-of-mysql-database-using-mysqldump-command-line-utili#27400627 databaasinhoud overzetten]. (Dit is een van de redenen dat je een read lock hebt.) Doe een mysqldump van de gehele database inclusief tabellen, permissies en inhoud en pas die toe op de nieuwe db.&lt;br /&gt;
&lt;br /&gt;
Log in op de nieuwe db met &amp;lt;code&amp;gt;mysql -u root -p&amp;lt;/code&amp;gt; en stel replicatie in:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHANGE MASTER TO&lt;br /&gt;
  MASTER_HOST='master.domain.com',&lt;br /&gt;
  MASTER_USER='replication_user',&lt;br /&gt;
  MASTER_PASSWORD='bigs3cret',&lt;br /&gt;
  MASTER_PORT=3306,&lt;br /&gt;
  MASTER_LOG_FILE='mariadb-bin.000096',&lt;br /&gt;
  MASTER_LOG_POS=568,&lt;br /&gt;
  MASTER_CONNECT_RETRY=10;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(De juiste waarden haal je uit de uitvoer van &amp;lt;code&amp;gt; show master status\G&amp;lt;/code&amp;gt; op de originele host.) Vervolgens &amp;lt;code&amp;gt;START SLAVE; SHOW SLAVE STATUS \G&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Als de uitvoer een beetje sense maakt, dan heb je succesvol een master-slave replicatie van de oude naar de nieuwe host opgezet. Doe &amp;lt;code&amp;gt;UNLOCK TABLES;&amp;lt;/code&amp;gt; op de originele host en probeer wat aan te passen. Dit zou op de nieuwe host terecht moeten komen.&lt;br /&gt;
&lt;br /&gt;
Als een error bij de slave gebeurd is die niet op master voorkwam, gaat die blokkeren tot je het fixt. Wat je kan doen als het echt helemaal in de soep loopt, is opnieuw alles op slot gooien, een dbdump overnemen van master naar slave. Doe weer &amp;lt;code&amp;gt; show master status\G&amp;lt;/code&amp;gt; en unlock de master. Vervolgens doe je op de slave &amp;lt;code&amp;gt;change master to MASTER_LOG_POS=37071; START SLAVE;&amp;lt;/code&amp;gt; en dan zou die automatisch alles wat sinds de backup is gebeurd, weer naar binnen gaan slurpen.&lt;br /&gt;
&lt;br /&gt;
Nu gaan we de replicatie de andere kant op sturen. Dit is in principe het precies omgekeerde van wat we hiervoor deden. Pas op vm-www2 de &amp;lt;code&amp;gt;my.cnf&amp;lt;/code&amp;gt; aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
server-id=2&lt;br /&gt;
log-bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
en herstart mariadb. Voeg de repli-user toe op de vm-www2: &amp;lt;code&amp;gt;grant replication slave on *.* to repli@'vm-www.a-eskwadraat.nl' identified by 'replipassword'; flush privileges;&amp;lt;/code&amp;gt;. Doe op allebei de hosts een table lock, doe op de nieuwe host &amp;lt;code&amp;gt;show master status\G&amp;lt;/code&amp;gt; en op de originele host de replicatie-instellingen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHANGE MASTER TO&lt;br /&gt;
  MASTER_HOST='master.domain.com',&lt;br /&gt;
  MASTER_USER='replication_user',&lt;br /&gt;
  MASTER_PASSWORD='bigs3cret',&lt;br /&gt;
  MASTER_PORT=3306,&lt;br /&gt;
  MASTER_LOG_FILE='mariadb-bin.000096',&lt;br /&gt;
  MASTER_LOG_POS=568,&lt;br /&gt;
  MASTER_CONNECT_RETRY=10;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En nu kun je op de originele host &amp;lt;code&amp;gt;start slave;&amp;lt;/code&amp;gt; runnen, en je hebt een master-masterreplicatie :D&lt;br /&gt;
&lt;br /&gt;
=== Installeer Apache, PHP en PHP-FPM ===&lt;br /&gt;
&lt;br /&gt;
Doe &amp;lt;code&amp;gt;yum install httpd&amp;lt;/code&amp;gt; voor Apache.&lt;br /&gt;
Voor een niet verschrikkelijk antieke PHP moet je extra dingen installeren (zie ook [https://rpms.remirepo.net/wizard/]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yum install epel-release&lt;br /&gt;
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm&lt;br /&gt;
yum install yum-utils&lt;br /&gt;
yum-config-manager --enable remi-php56 # of php72 of andere versie&lt;br /&gt;
yum install php php-fpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installeer ook alle [[PHP-extensies]] die nodig zijn. (Zie die pagina voor de lijst.)&lt;br /&gt;
&lt;br /&gt;
Overige dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yum install gettext java npm python36 python36-virtualenv&lt;br /&gt;
npm install -g bower&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nu moeten we PHP-instellingen regelen. Maak een checkout van de website, en doe daarin:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir config/vm-www2&lt;br /&gt;
ln -s /etc/php.ini config/vm-www2/&lt;br /&gt;
vim config/vm-www2/php.ini # Pas hier alle relevante config van de vm-www toe.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mail werkend krijgen ===&lt;br /&gt;
&lt;br /&gt;
De website gebruikt sendmail-commando's om te mailen. Normaal stuurt sendmail de mails direct het web op, maar we willen dat deze door de vm-mailpp heen gestuurd wordt zodat de berichten juist zijn ondertekend en door spamfilters heen komen. Hiervoor gebruiken we het sendmail-commando dat uit postfix komt. Installeer postfix met:&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install postfix&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De configuratie van postfix ongeveer dezelfde als op alle CentOS7 machines en is te vinden op de vm-salt-master in &amp;lt;code&amp;gt;/srv/salt/centos7/global/main.cf&amp;lt;/code&amp;gt;. Je moet de volgende parameters aanpassen zodat mail naar buiten mag:&lt;br /&gt;
&amp;lt;pre&amp;gt;mydomain = a-eskwadraat.nl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Om mailings te configureren, voeg de volgende parameters toe aan &amp;lt;code&amp;gt;main.cf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
inet_interfaces = all&lt;br /&gt;
relay_domains = a-eskwadraat.nl&lt;br /&gt;
smtpd_recipient_restrictions = check_recipient_access regexp:/etc/postfix/access, reject_unauth_destination&amp;lt;/pre&amp;gt;&lt;br /&gt;
En voeg de volgende regels toe aan &amp;lt;code&amp;gt;/etc/postfix/master.cf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bughook unix - n n - - pipe&lt;br /&gt;
    flags=F user=webcie argv=/website/scripts/mail_process_bug_vm-www ${sender} ${size} ${recipient}&lt;br /&gt;
lidhook unix - n n - - pipe&lt;br /&gt;
    flags=F user=webcie argv=/website/scripts/mail_process_lid ${sender} ${size} ${recipient}&lt;br /&gt;
bouncehook unix - n n - - pipe&lt;br /&gt;
    flags=F user=webcie argv=/website/scripts/mail_process_bounce ${sender} ${size} ${recipient}&lt;br /&gt;
mailinghook unix - n n - - pipe&lt;br /&gt;
    flags=F user=webcie argv=/website/scripts/mail_process_incoming_mailing.php ${sender} ${size} $$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En plaats de volgende regels in &amp;lt;code&amp;gt;/etc/postfix/access&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/^lid-[0-9]+@a-es((kwadraat)|(2))\.nl$/ FILTER lidhook:&lt;br /&gt;
/^bug(([0-9]+)|(s))@a-es((kwadraat)|(2))\.nl$/ FILTER bughook:&lt;br /&gt;
/^bounce-[0-9]+@a-es((kwadraat)|(2))\.nl$/ FILTER bouncehook:&lt;br /&gt;
/^((.*-)|)mailing((s)|)@a-es((kwadraat)|(2))\.nl$/ FILTER mailinghook:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Stel nu in dat het sendmail-commando uit postfix gebruikt wordt in plaats van de standaard sendmail:&lt;br /&gt;
&amp;lt;pre&amp;gt;update-alternatives --config mta&amp;lt;/pre&amp;gt;&lt;br /&gt;
En start dan de postfix service met &amp;lt;code&amp;gt;service postfix start&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Zo worden de mails doorgestuurd naar de juiste scriptjes van de WebCie. Zie [[Mail sturen naar de site]]&lt;br /&gt;
&lt;br /&gt;
=== IPA ===&lt;br /&gt;
yum install ipa-client&lt;br /&gt;
&lt;br /&gt;
Het volgende moet de sysop regelen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipa-client-install &lt;br /&gt;
ipa host-add dummyhost.example.com --desc=&amp;quot;Dummy Host&amp;quot; --location=&amp;quot;&amp;lt;fqdn-of-webserver&amp;gt;&amp;quot;&lt;br /&gt;
ipa host-add-managedby dummyhost.example.com --hosts=&amp;quot;&amp;lt;fqdn-of-webserver&amp;gt;&amp;quot;&lt;br /&gt;
ipa service-add HTTP/dummyhost.example.com&lt;br /&gt;
ipa service-add-host HTTP/dummyhost.example.com --hosts=&amp;quot;&amp;lt;fqdn-of-webserver&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ga naar de ipa webinterface &lt;br /&gt;
Ga naar de tab hosts &lt;br /&gt;
Ga naar de juiste host&lt;br /&gt;
klik op actions -&amp;gt; add New certificate &lt;br /&gt;
&lt;br /&gt;
Voer nu de volgende commands uit in de commandline:&lt;br /&gt;
mkdir /etc/nssdb&lt;br /&gt;
cd /etc/nssdb&lt;br /&gt;
certutil -N -d . &lt;br /&gt;
&lt;br /&gt;
mkdir /etc/httpd/certs&lt;br /&gt;
ipa-getcert request -r -f /etc/httpd/certs/dummyhost.crt -k /etc/httpd/certs/dummyhost.key -N CN=dummyhost.example.com -D \&lt;br /&gt;
  dummyhost.example.com -K HTTP/dummyhost.example.com&lt;br /&gt;
ipa-getkeytab -s ipa05.a-eskwadraat.nl -p HTTP/*hostname*.a-eskwadraat.nl -k /etc/httpd/conf/httpd.keytab #nog testen of nodig is&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Overige tsjak ter installatie ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install git sudo vim wget&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== De website opzetten ===&lt;br /&gt;
&lt;br /&gt;
Heb je alles geïnstalleerd, dan ben je klaar voor de laatste fase.&lt;br /&gt;
&lt;br /&gt;
Vertel de scripts dat dit een host is: &amp;lt;code&amp;gt;vim /etc/function&amp;lt;/code&amp;gt; en stop daarin &amp;lt;code&amp;gt;server&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ga naar de checkout van de website, kopieer handmatig de secret.php en doe daarin manage build. (Dit moet na de php-instellingen gebeuren want manage voert php uit.)&lt;br /&gt;
&lt;br /&gt;
Pas de httpd-configuratie aan om de juiste paden in te stellen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp config/vm-www/httpd/conf.d/website.conf /etc/httpd/conf.d/&lt;br /&gt;
ln -s /etc/httpd config/vm-www2/httpd&lt;br /&gt;
vim config/vm-www2/httpd/conf.d/website.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nu kun je de webserver aanzwengelen :D &amp;lt;code&amp;gt;systemctl restart httpd&amp;lt;code&amp;gt; &amp;lt;code&amp;gt;systemctl restart php-fpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Je moet waarschijnlijk nog wat chmod'en en paden aanmaken, zie daarvoor de logs in &amp;lt;code&amp;gt;/var/log/httpd/error_log&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;/var/log/php-fpm/error.log&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;/var/log/www/php-warnings.log&amp;lt;/code&amp;gt; (in volgorde van dingen werkend krijgen).&lt;br /&gt;
&lt;br /&gt;
[[Category:Sysop]] [[Category:WebCie]]&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Webcie-vm</id>
		<title>Webcie-vm</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Webcie-vm"/>
				<updated>2018-09-27T09:32:05Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: /* Mail werkend krijgen */ -de&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Zie ook: [[Webcie-vms]] (!)&lt;br /&gt;
&lt;br /&gt;
== Nieuwe vm-webcie-debug&amp;amp;nbsp;aanmaken ==&lt;br /&gt;
&lt;br /&gt;
Maak een nieuwe vm vm-webcie-debug aan. Kickstart de vm en highstate de vm met salt. Installeer mariadb met het volgende commando:&lt;br /&gt;
&amp;lt;pre&amp;gt;/usr/bin/mysql_secure_installation&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zet het rootwachtwoord en disalow root login remotely. Let op: de rootwachtwoorden van de databases van de vm-webcie/www en vm-webcie/www-debug moeten hetzelfde zijn!&lt;br /&gt;
&lt;br /&gt;
Maak in de home van de root het bestandje .my.cnf aan (zet de rechten op 0600!) met de volgende content:&lt;br /&gt;
&amp;lt;pre&amp;gt;[client]&lt;br /&gt;
user = root&lt;br /&gt;
pass = root-database-wachtwoord&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maak ook de juiste databases aan (bv test_whoswho4, test_benamite of boeken. Denk eraan dat op een vm-webcie/www-machine er zowel de normal db als test_db moeten zijn). Kopieër nu de databases. Vergeet ook niet de mysql-database te kopieëren, daar staan de rechten van de verschillende gebruikers in.&amp;amp;nbsp;Maak eerst een dump op de oude vm:&lt;br /&gt;
&amp;lt;pre&amp;gt;mysqldump 'dbnaam' &amp;gt; 'dbnaam'.db&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kopieër het dumpbestand naar de nieuwe vm en laad de dump in op de nieuwe vm:&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql 'dbnaam' &amp;lt; 'dbnaam'.db&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Opzetten vm-www2 ==&lt;br /&gt;
&lt;br /&gt;
Deze instructies zijn bedoeld voor de WebCie. We gaan ervan uit dat je het WebCie-wachtwoord uit je hoofd kent.&lt;br /&gt;
&lt;br /&gt;
Vraag de Sysop om een nieuwe vm (ik bedoel uiteraard container ;)) met subdomein (in dit geval: vm-www2.a-eskwadraat.nl) en dezelfde mounts als de originele vm. Zorg ervoor dat sendmail vanaf de nieuwe vm werkt. Verkrijg roottoegang op de vm-www2.&lt;br /&gt;
&lt;br /&gt;
In het begin heeft yum nog een update voor repositorygegevens nodig: doe &amp;lt;code&amp;gt;yum clean all&amp;lt;/code&amp;gt; voordat je een ander yum-commando draait.&lt;br /&gt;
&lt;br /&gt;
=== Mariadb en replicatie ===&lt;br /&gt;
&lt;br /&gt;
Installeer mariadb als op de vm-www-debug: &amp;lt;code&amp;gt;yum install mariadb mariadb-server&amp;lt;/code&amp;gt; (let op: ivm backwards incompatibility willen we versie 5.5 voorlopig), &amp;lt;code&amp;gt;systemctl enable mariadb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;systemctl start mariadb&amp;lt;/code&amp;gt; en dan &amp;lt;code&amp;gt;/usr/bin/mysql_secure_installation&amp;lt;/code&amp;gt;. Check even of inloggen nog werkt: &amp;lt;code&amp;gt;mysql -u root -p&amp;lt;/code&amp;gt;. Check ook dat je verbinding kan maken met mysql op de originele host vanaf de nieuwe host: &amp;lt;code&amp;gt;mysql -h vm-www -u root -p&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Nu gaan we [https://mariadb.com/kb/en/library/replication-overview/ replicatie] opzetten (master-master). We moeten hiervoor een random wachtwoord genereren, bewaar die goed! Open in een nieuwe terminal op de originele host, en pas de &amp;lt;code&amp;gt;my.cnf&amp;lt;/code&amp;gt; aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
server-id=1&lt;br /&gt;
log-bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Herstart mysqld/mariadb om de wijzigingen toe te passen. Log in als root op mysql en geef permissies: &amp;lt;code&amp;gt;grant replication slave on *.* to repli@'vm-www2.a-eskwadraat.nl' identified by 'replipassword'; flush privileges;&amp;lt;/code&amp;gt;. Zet de tabellen op slot terwijl we de rest doen: &amp;lt;code&amp;gt;flush tables with read lock;&amp;lt;/code&amp;gt;. Ten slotte moeten we wat gegevens bekomen: &amp;lt;code&amp;gt; show master status\G&amp;lt;/code&amp;gt;. Log niet uit tot we klaar zijn, dan gaan de tabellen weer van het slot af.&lt;br /&gt;
&lt;br /&gt;
In de andere terminal op &amp;lt;code&amp;gt;vm-www2&amp;lt;/code&amp;gt; gaan we ook de &amp;lt;code&amp;gt;my.cnf&amp;lt;/code&amp;gt; aanpassen (ik heb de wijzigingen in &amp;lt;code&amp;gt;/etc/my.cnf.d/webcie.cnf&amp;lt;/code&amp;gt; gezet):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
&lt;br /&gt;
server-id=2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Herstart mariadb om de wijzigingen toe te passen. We moeten ook de volledige(!!!) [https://stackoverflow.com/questions/1078196/how-to-take-complete-backup-of-mysql-database-using-mysqldump-command-line-utili#27400627 databaasinhoud overzetten]. (Dit is een van de redenen dat je een read lock hebt.) Doe een mysqldump van de gehele database inclusief tabellen, permissies en inhoud en pas die toe op de nieuwe db.&lt;br /&gt;
&lt;br /&gt;
Log in op de nieuwe db met &amp;lt;code&amp;gt;mysql -u root -p&amp;lt;/code&amp;gt; en stel replicatie in:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHANGE MASTER TO&lt;br /&gt;
  MASTER_HOST='master.domain.com',&lt;br /&gt;
  MASTER_USER='replication_user',&lt;br /&gt;
  MASTER_PASSWORD='bigs3cret',&lt;br /&gt;
  MASTER_PORT=3306,&lt;br /&gt;
  MASTER_LOG_FILE='mariadb-bin.000096',&lt;br /&gt;
  MASTER_LOG_POS=568,&lt;br /&gt;
  MASTER_CONNECT_RETRY=10;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(De juiste waarden haal je uit de uitvoer van &amp;lt;code&amp;gt; show master status\G&amp;lt;/code&amp;gt; op de originele host.) Vervolgens &amp;lt;code&amp;gt;START SLAVE; SHOW SLAVE STATUS \G&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Als de uitvoer een beetje sense maakt, dan heb je succesvol een master-slave replicatie van de oude naar de nieuwe host opgezet. Doe &amp;lt;code&amp;gt;UNLOCK TABLES;&amp;lt;/code&amp;gt; op de originele host en probeer wat aan te passen. Dit zou op de nieuwe host terecht moeten komen.&lt;br /&gt;
&lt;br /&gt;
Als een error bij de slave gebeurd is die niet op master voorkwam, gaat die blokkeren tot je het fixt. Wat je kan doen als het echt helemaal in de soep loopt, is opnieuw alles op slot gooien, een dbdump overnemen van master naar slave. Doe weer &amp;lt;code&amp;gt; show master status\G&amp;lt;/code&amp;gt; en unlock de master. Vervolgens doe je op de slave &amp;lt;code&amp;gt;change master to MASTER_LOG_POS=37071; START SLAVE;&amp;lt;/code&amp;gt; en dan zou die automatisch alles wat sinds de backup is gebeurd, weer naar binnen gaan slurpen.&lt;br /&gt;
&lt;br /&gt;
Nu gaan we de replicatie de andere kant op sturen. Dit is in principe het precies omgekeerde van wat we hiervoor deden. Pas op vm-www2 de &amp;lt;code&amp;gt;my.cnf&amp;lt;/code&amp;gt; aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
server-id=2&lt;br /&gt;
log-bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
en herstart mariadb. Voeg de repli-user toe op de vm-www2: &amp;lt;code&amp;gt;grant replication slave on *.* to repli@'vm-www.a-eskwadraat.nl' identified by 'replipassword'; flush privileges;&amp;lt;/code&amp;gt;. Doe op allebei de hosts een table lock, doe op de nieuwe host &amp;lt;code&amp;gt;show master status\G&amp;lt;/code&amp;gt; en op de originele host de replicatie-instellingen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHANGE MASTER TO&lt;br /&gt;
  MASTER_HOST='master.domain.com',&lt;br /&gt;
  MASTER_USER='replication_user',&lt;br /&gt;
  MASTER_PASSWORD='bigs3cret',&lt;br /&gt;
  MASTER_PORT=3306,&lt;br /&gt;
  MASTER_LOG_FILE='mariadb-bin.000096',&lt;br /&gt;
  MASTER_LOG_POS=568,&lt;br /&gt;
  MASTER_CONNECT_RETRY=10;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En nu kun je op de originele host &amp;lt;code&amp;gt;start slave;&amp;lt;/code&amp;gt; runnen, en je hebt een master-masterreplicatie :D&lt;br /&gt;
&lt;br /&gt;
=== Installeer Apache, PHP en PHP-FPM ===&lt;br /&gt;
&lt;br /&gt;
Doe &amp;lt;code&amp;gt;yum install httpd&amp;lt;/code&amp;gt; voor Apache.&lt;br /&gt;
Voor een niet verschrikkelijk antieke PHP moet je extra dingen installeren (zie ook [https://rpms.remirepo.net/wizard/]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yum install epel-release&lt;br /&gt;
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm&lt;br /&gt;
yum install yum-utils&lt;br /&gt;
yum-config-manager --enable remi-php56 # of php72 of andere versie&lt;br /&gt;
yum install php php-fpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installeer ook alle [[PHP-extensies]] die nodig zijn. (Zie die pagina voor de lijst.)&lt;br /&gt;
&lt;br /&gt;
Overige dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yum install gettext java npm python36 python36-virtualenv&lt;br /&gt;
npm install -g bower&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nu moeten we PHP-instellingen regelen. Maak een checkout van de website, en doe daarin:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir config/vm-www2&lt;br /&gt;
ln -s /etc/php.ini config/vm-www2/&lt;br /&gt;
vim config/vm-www2/php.ini # Pas hier alle relevante config van de vm-www toe.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mail werkend krijgen ===&lt;br /&gt;
&lt;br /&gt;
De website gebruikt sendmail-commando's om te mailen. Normaal stuurt sendmail de mails direct het web op, maar we willen dat deze door de vm-mailpp heen gestuurd wordt zodat de berichten juist zijn ondertekend en door spamfilters heen komen. Hiervoor gebruiken we het sendmail-commando dat uit postfix komt. Installeer postfix met:&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install postfix&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De configuratie van postfix ongeveer dezelfde als op alle CentOS7 machines en is te vinden op de vm-salt-master in &amp;lt;code&amp;gt;/srv/salt/centos7/global/main.cf&amp;lt;/code&amp;gt;. Je moet alleen even de &amp;lt;code&amp;gt;mydomain&amp;lt;/code&amp;gt; parameter aanpassen zodat Apache kan mailen:&lt;br /&gt;
&amp;lt;pre&amp;gt;mydomain = a-eskwadraat.nl&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nadat je die configuratie op de webserver in de map &amp;lt;code&amp;gt;/etc/postfix&amp;lt;/code&amp;gt; hebt geplaatst, start je de postfix service (of reload als die al gestart was). (In de andere configuratiebestanden, zoals master.cf, kun je de standaardinstellingen laten staan.)&lt;br /&gt;
&lt;br /&gt;
Stel nu in dat het sendmail-commando uit postfix gebruikt wordt in plaats van de standaard sendmail:&lt;br /&gt;
&amp;lt;pre&amp;gt;update-alternatives --config mta&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== IPA ===&lt;br /&gt;
yum install ipa-client&lt;br /&gt;
&lt;br /&gt;
Het volgende moet de sysop regelen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipa-client-install &lt;br /&gt;
ipa-getkeytab -s ipa05.a-eskwadraat.nl -p HTTP/*hostname*.a-eskwadraat.nl -k /etc/httpd/conf/httpd.keytab&lt;br /&gt;
ipa host-add dummyhost.example.com --desc=&amp;quot;Dummy Host&amp;quot; --location=&amp;quot;&amp;lt;fqdn-of-webserver&amp;gt;&amp;quot;&lt;br /&gt;
ipa host-add-managedby dummyhost.example.com --hosts=&amp;quot;&amp;lt;fqdn-of-webserver&amp;gt;&amp;quot;&lt;br /&gt;
ipa service-add HTTP/dummyhost.example.com&lt;br /&gt;
ipa service-add-host HTTP/dummyhost.example.com --hosts=&amp;quot;&amp;lt;fqdn-of-webserver&amp;gt;&amp;quot;&lt;br /&gt;
ipa-getcert request -r -f /etc/httpd/certs/dummyhost.crt -k /etc/httpd/certs/dummyhost.key -N CN=dummyhost.example.com -D \&lt;br /&gt;
  dummyhost.example.com -K HTTP/dummyhost.example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Overige tsjak ter installatie ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install git sudo vim wget&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== De website opzetten ===&lt;br /&gt;
&lt;br /&gt;
Heb je alles geïnstalleerd, dan ben je klaar voor de laatste fase.&lt;br /&gt;
&lt;br /&gt;
Vertel de scripts dat dit een host is: &amp;lt;code&amp;gt;vim /etc/function&amp;lt;/code&amp;gt; en stop daarin &amp;lt;code&amp;gt;server&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ga naar de checkout van de website, kopieer handmatig de secret.php en doe daarin manage build. (Dit moet na de php-instellingen gebeuren want manage voert php uit.)&lt;br /&gt;
&lt;br /&gt;
Pas de httpd-configuratie aan om de juiste paden in te stellen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp config/vm-www/httpd/conf.d/website.conf /etc/httpd/conf.d/&lt;br /&gt;
ln -s /etc/httpd config/vm-www2/httpd&lt;br /&gt;
vim config/vm-www2/httpd/conf.d/website.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nu kun je de webserver aanzwengelen :D &amp;lt;code&amp;gt;systemctl restart httpd&amp;lt;code&amp;gt; &amp;lt;code&amp;gt;systemctl restart php-fpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Je moet waarschijnlijk nog wat chmod'en en paden aanmaken, zie daarvoor de logs in &amp;lt;code&amp;gt;/var/log/httpd/error_log&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;/var/log/php-fpm/error.log&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;/var/log/www/php-warnings.log&amp;lt;/code&amp;gt; (in volgorde van dingen werkend krijgen).&lt;br /&gt;
&lt;br /&gt;
[[Category:Sysop]] [[Category:WebCie]]&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Webcie-vm</id>
		<title>Webcie-vm</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Webcie-vm"/>
				<updated>2018-09-27T09:31:45Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: /* Mail werkend krijgen */ domein instellen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Zie ook: [[Webcie-vms]] (!)&lt;br /&gt;
&lt;br /&gt;
== Nieuwe vm-webcie-debug&amp;amp;nbsp;aanmaken ==&lt;br /&gt;
&lt;br /&gt;
Maak een nieuwe vm vm-webcie-debug aan. Kickstart de vm en highstate de vm met salt. Installeer mariadb met het volgende commando:&lt;br /&gt;
&amp;lt;pre&amp;gt;/usr/bin/mysql_secure_installation&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zet het rootwachtwoord en disalow root login remotely. Let op: de rootwachtwoorden van de databases van de vm-webcie/www en vm-webcie/www-debug moeten hetzelfde zijn!&lt;br /&gt;
&lt;br /&gt;
Maak in de home van de root het bestandje .my.cnf aan (zet de rechten op 0600!) met de volgende content:&lt;br /&gt;
&amp;lt;pre&amp;gt;[client]&lt;br /&gt;
user = root&lt;br /&gt;
pass = root-database-wachtwoord&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maak ook de juiste databases aan (bv test_whoswho4, test_benamite of boeken. Denk eraan dat op een vm-webcie/www-machine er zowel de normal db als test_db moeten zijn). Kopieër nu de databases. Vergeet ook niet de mysql-database te kopieëren, daar staan de rechten van de verschillende gebruikers in.&amp;amp;nbsp;Maak eerst een dump op de oude vm:&lt;br /&gt;
&amp;lt;pre&amp;gt;mysqldump 'dbnaam' &amp;gt; 'dbnaam'.db&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kopieër het dumpbestand naar de nieuwe vm en laad de dump in op de nieuwe vm:&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql 'dbnaam' &amp;lt; 'dbnaam'.db&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Opzetten vm-www2 ==&lt;br /&gt;
&lt;br /&gt;
Deze instructies zijn bedoeld voor de WebCie. We gaan ervan uit dat je het WebCie-wachtwoord uit je hoofd kent.&lt;br /&gt;
&lt;br /&gt;
Vraag de Sysop om een nieuwe vm (ik bedoel uiteraard container ;)) met subdomein (in dit geval: vm-www2.a-eskwadraat.nl) en dezelfde mounts als de originele vm. Zorg ervoor dat sendmail vanaf de nieuwe vm werkt. Verkrijg roottoegang op de vm-www2.&lt;br /&gt;
&lt;br /&gt;
In het begin heeft yum nog een update voor repositorygegevens nodig: doe &amp;lt;code&amp;gt;yum clean all&amp;lt;/code&amp;gt; voordat je een ander yum-commando draait.&lt;br /&gt;
&lt;br /&gt;
=== Mariadb en replicatie ===&lt;br /&gt;
&lt;br /&gt;
Installeer mariadb als op de vm-www-debug: &amp;lt;code&amp;gt;yum install mariadb mariadb-server&amp;lt;/code&amp;gt; (let op: ivm backwards incompatibility willen we versie 5.5 voorlopig), &amp;lt;code&amp;gt;systemctl enable mariadb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;systemctl start mariadb&amp;lt;/code&amp;gt; en dan &amp;lt;code&amp;gt;/usr/bin/mysql_secure_installation&amp;lt;/code&amp;gt;. Check even of inloggen nog werkt: &amp;lt;code&amp;gt;mysql -u root -p&amp;lt;/code&amp;gt;. Check ook dat je verbinding kan maken met mysql op de originele host vanaf de nieuwe host: &amp;lt;code&amp;gt;mysql -h vm-www -u root -p&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Nu gaan we [https://mariadb.com/kb/en/library/replication-overview/ replicatie] opzetten (master-master). We moeten hiervoor een random wachtwoord genereren, bewaar die goed! Open in een nieuwe terminal op de originele host, en pas de &amp;lt;code&amp;gt;my.cnf&amp;lt;/code&amp;gt; aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
server-id=1&lt;br /&gt;
log-bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Herstart mysqld/mariadb om de wijzigingen toe te passen. Log in als root op mysql en geef permissies: &amp;lt;code&amp;gt;grant replication slave on *.* to repli@'vm-www2.a-eskwadraat.nl' identified by 'replipassword'; flush privileges;&amp;lt;/code&amp;gt;. Zet de tabellen op slot terwijl we de rest doen: &amp;lt;code&amp;gt;flush tables with read lock;&amp;lt;/code&amp;gt;. Ten slotte moeten we wat gegevens bekomen: &amp;lt;code&amp;gt; show master status\G&amp;lt;/code&amp;gt;. Log niet uit tot we klaar zijn, dan gaan de tabellen weer van het slot af.&lt;br /&gt;
&lt;br /&gt;
In de andere terminal op &amp;lt;code&amp;gt;vm-www2&amp;lt;/code&amp;gt; gaan we ook de &amp;lt;code&amp;gt;my.cnf&amp;lt;/code&amp;gt; aanpassen (ik heb de wijzigingen in &amp;lt;code&amp;gt;/etc/my.cnf.d/webcie.cnf&amp;lt;/code&amp;gt; gezet):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
&lt;br /&gt;
server-id=2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Herstart mariadb om de wijzigingen toe te passen. We moeten ook de volledige(!!!) [https://stackoverflow.com/questions/1078196/how-to-take-complete-backup-of-mysql-database-using-mysqldump-command-line-utili#27400627 databaasinhoud overzetten]. (Dit is een van de redenen dat je een read lock hebt.) Doe een mysqldump van de gehele database inclusief tabellen, permissies en inhoud en pas die toe op de nieuwe db.&lt;br /&gt;
&lt;br /&gt;
Log in op de nieuwe db met &amp;lt;code&amp;gt;mysql -u root -p&amp;lt;/code&amp;gt; en stel replicatie in:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHANGE MASTER TO&lt;br /&gt;
  MASTER_HOST='master.domain.com',&lt;br /&gt;
  MASTER_USER='replication_user',&lt;br /&gt;
  MASTER_PASSWORD='bigs3cret',&lt;br /&gt;
  MASTER_PORT=3306,&lt;br /&gt;
  MASTER_LOG_FILE='mariadb-bin.000096',&lt;br /&gt;
  MASTER_LOG_POS=568,&lt;br /&gt;
  MASTER_CONNECT_RETRY=10;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(De juiste waarden haal je uit de uitvoer van &amp;lt;code&amp;gt; show master status\G&amp;lt;/code&amp;gt; op de originele host.) Vervolgens &amp;lt;code&amp;gt;START SLAVE; SHOW SLAVE STATUS \G&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Als de uitvoer een beetje sense maakt, dan heb je succesvol een master-slave replicatie van de oude naar de nieuwe host opgezet. Doe &amp;lt;code&amp;gt;UNLOCK TABLES;&amp;lt;/code&amp;gt; op de originele host en probeer wat aan te passen. Dit zou op de nieuwe host terecht moeten komen.&lt;br /&gt;
&lt;br /&gt;
Als een error bij de slave gebeurd is die niet op master voorkwam, gaat die blokkeren tot je het fixt. Wat je kan doen als het echt helemaal in de soep loopt, is opnieuw alles op slot gooien, een dbdump overnemen van master naar slave. Doe weer &amp;lt;code&amp;gt; show master status\G&amp;lt;/code&amp;gt; en unlock de master. Vervolgens doe je op de slave &amp;lt;code&amp;gt;change master to MASTER_LOG_POS=37071; START SLAVE;&amp;lt;/code&amp;gt; en dan zou die automatisch alles wat sinds de backup is gebeurd, weer naar binnen gaan slurpen.&lt;br /&gt;
&lt;br /&gt;
Nu gaan we de replicatie de andere kant op sturen. Dit is in principe het precies omgekeerde van wat we hiervoor deden. Pas op vm-www2 de &amp;lt;code&amp;gt;my.cnf&amp;lt;/code&amp;gt; aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
server-id=2&lt;br /&gt;
log-bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
en herstart mariadb. Voeg de repli-user toe op de vm-www2: &amp;lt;code&amp;gt;grant replication slave on *.* to repli@'vm-www.a-eskwadraat.nl' identified by 'replipassword'; flush privileges;&amp;lt;/code&amp;gt;. Doe op allebei de hosts een table lock, doe op de nieuwe host &amp;lt;code&amp;gt;show master status\G&amp;lt;/code&amp;gt; en op de originele host de replicatie-instellingen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHANGE MASTER TO&lt;br /&gt;
  MASTER_HOST='master.domain.com',&lt;br /&gt;
  MASTER_USER='replication_user',&lt;br /&gt;
  MASTER_PASSWORD='bigs3cret',&lt;br /&gt;
  MASTER_PORT=3306,&lt;br /&gt;
  MASTER_LOG_FILE='mariadb-bin.000096',&lt;br /&gt;
  MASTER_LOG_POS=568,&lt;br /&gt;
  MASTER_CONNECT_RETRY=10;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En nu kun je op de originele host &amp;lt;code&amp;gt;start slave;&amp;lt;/code&amp;gt; runnen, en je hebt een master-masterreplicatie :D&lt;br /&gt;
&lt;br /&gt;
=== Installeer Apache, PHP en PHP-FPM ===&lt;br /&gt;
&lt;br /&gt;
Doe &amp;lt;code&amp;gt;yum install httpd&amp;lt;/code&amp;gt; voor Apache.&lt;br /&gt;
Voor een niet verschrikkelijk antieke PHP moet je extra dingen installeren (zie ook [https://rpms.remirepo.net/wizard/]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yum install epel-release&lt;br /&gt;
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm&lt;br /&gt;
yum install yum-utils&lt;br /&gt;
yum-config-manager --enable remi-php56 # of php72 of andere versie&lt;br /&gt;
yum install php php-fpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installeer ook alle [[PHP-extensies]] die nodig zijn. (Zie die pagina voor de lijst.)&lt;br /&gt;
&lt;br /&gt;
Overige dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yum install gettext java npm python36 python36-virtualenv&lt;br /&gt;
npm install -g bower&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nu moeten we PHP-instellingen regelen. Maak een checkout van de website, en doe daarin:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir config/vm-www2&lt;br /&gt;
ln -s /etc/php.ini config/vm-www2/&lt;br /&gt;
vim config/vm-www2/php.ini # Pas hier alle relevante config van de vm-www toe.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mail werkend krijgen ===&lt;br /&gt;
&lt;br /&gt;
De website gebruikt sendmail-commando's om te mailen. Normaal stuurt sendmail de mails direct het web op, maar we willen dat deze door de vm-mailpp heen gestuurd wordt zodat de berichten juist zijn ondertekend en door spamfilters heen komen. Hiervoor gebruiken we het sendmail-commando dat uit postfix komt. Installeer postfix met:&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install postfix&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De configuratie van postfix ongeveer dezelfde als op alle CentOS7 machines en is te vinden op de vm-salt-master in &amp;lt;code&amp;gt;/srv/salt/centos7/global/main.cf&amp;lt;/code&amp;gt;. Je moet alleen even de &amp;lt;code&amp;gt;mydomain&amp;lt;/code&amp;gt; parameter aanpassen zodat de Apache kan mailen:&lt;br /&gt;
&amp;lt;pre&amp;gt;mydomain = a-eskwadraat.nl&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nadat je die configuratie op de webserver in de map &amp;lt;code&amp;gt;/etc/postfix&amp;lt;/code&amp;gt; hebt geplaatst, start je de postfix service (of reload als die al gestart was). (In de andere configuratiebestanden, zoals master.cf, kun je de standaardinstellingen laten staan.)&lt;br /&gt;
&lt;br /&gt;
Stel nu in dat het sendmail-commando uit postfix gebruikt wordt in plaats van de standaard sendmail:&lt;br /&gt;
&amp;lt;pre&amp;gt;update-alternatives --config mta&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== IPA ===&lt;br /&gt;
yum install ipa-client&lt;br /&gt;
&lt;br /&gt;
Het volgende moet de sysop regelen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipa-client-install &lt;br /&gt;
ipa-getkeytab -s ipa05.a-eskwadraat.nl -p HTTP/*hostname*.a-eskwadraat.nl -k /etc/httpd/conf/httpd.keytab&lt;br /&gt;
ipa host-add dummyhost.example.com --desc=&amp;quot;Dummy Host&amp;quot; --location=&amp;quot;&amp;lt;fqdn-of-webserver&amp;gt;&amp;quot;&lt;br /&gt;
ipa host-add-managedby dummyhost.example.com --hosts=&amp;quot;&amp;lt;fqdn-of-webserver&amp;gt;&amp;quot;&lt;br /&gt;
ipa service-add HTTP/dummyhost.example.com&lt;br /&gt;
ipa service-add-host HTTP/dummyhost.example.com --hosts=&amp;quot;&amp;lt;fqdn-of-webserver&amp;gt;&amp;quot;&lt;br /&gt;
ipa-getcert request -r -f /etc/httpd/certs/dummyhost.crt -k /etc/httpd/certs/dummyhost.key -N CN=dummyhost.example.com -D \&lt;br /&gt;
  dummyhost.example.com -K HTTP/dummyhost.example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Overige tsjak ter installatie ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install git sudo vim wget&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== De website opzetten ===&lt;br /&gt;
&lt;br /&gt;
Heb je alles geïnstalleerd, dan ben je klaar voor de laatste fase.&lt;br /&gt;
&lt;br /&gt;
Vertel de scripts dat dit een host is: &amp;lt;code&amp;gt;vim /etc/function&amp;lt;/code&amp;gt; en stop daarin &amp;lt;code&amp;gt;server&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ga naar de checkout van de website, kopieer handmatig de secret.php en doe daarin manage build. (Dit moet na de php-instellingen gebeuren want manage voert php uit.)&lt;br /&gt;
&lt;br /&gt;
Pas de httpd-configuratie aan om de juiste paden in te stellen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp config/vm-www/httpd/conf.d/website.conf /etc/httpd/conf.d/&lt;br /&gt;
ln -s /etc/httpd config/vm-www2/httpd&lt;br /&gt;
vim config/vm-www2/httpd/conf.d/website.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nu kun je de webserver aanzwengelen :D &amp;lt;code&amp;gt;systemctl restart httpd&amp;lt;code&amp;gt; &amp;lt;code&amp;gt;systemctl restart php-fpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Je moet waarschijnlijk nog wat chmod'en en paden aanmaken, zie daarvoor de logs in &amp;lt;code&amp;gt;/var/log/httpd/error_log&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;/var/log/php-fpm/error.log&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;/var/log/www/php-warnings.log&amp;lt;/code&amp;gt; (in volgorde van dingen werkend krijgen).&lt;br /&gt;
&lt;br /&gt;
[[Category:Sysop]] [[Category:WebCie]]&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Stephen</id>
		<title>Stephen</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Stephen"/>
				<updated>2018-09-24T19:41:51Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Stephen is de server van A-Eskwadraat. De server is vernoemd naar [https://nl.wikipedia.org/wiki/Stephen_Hawking Stephen Hawking] en tot leven gekomen op 28 augustus 2018.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NFS mounten ==&lt;br /&gt;
&lt;br /&gt;
NFS mounten op een unprivileged container is op het moment van schrijven niet mogelijk.&lt;br /&gt;
&lt;br /&gt;
Installeer nfs-utils op de host (al gebeurd).&lt;br /&gt;
&lt;br /&gt;
We mounten daarom de benodigde filessystems via NFS op de host: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
haskell:/srv/home /srv/home nfs rw,_netdev 0 0 #mount /srv/home/mensjes from haskell&lt;br /&gt;
haskell:/srv/www/srv /srv/www/srv nfs vers=3,rw,noatime 0 0 #mount /srv/www/srv from haskell&lt;br /&gt;
haskell:/srv/www/archief /srv/www/archief nfs vers=3,rw,noatime 0 0&lt;br /&gt;
haskell:/srv/scratch /srv/scratch nfs vers=3,rw,noatime 0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vervolgens kunnen de filesystems mounten in een container. Door de volgende het volgende toe te voegen aan &amp;lt;code&amp;gt;/etc/pve/lxc/&amp;lt;id&amp;gt;.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lxc.mount.entry: /srv/home/mensjes home/mensjes none bind 0 0&lt;br /&gt;
lxc.mount.entry: /srv/home/cies home/cies none bind 0 0&lt;br /&gt;
lxc.mount.entry: /srv/www/srv srv none bind 0 0&lt;br /&gt;
lxc.mount.entry: /srv/www/archief /archief&lt;br /&gt;
lxc.mount.entry: /srv/scratch /scratch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Sysop]]&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Webcie-vm</id>
		<title>Webcie-vm</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Webcie-vm"/>
				<updated>2018-09-20T17:57:23Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: /* Opzetten vm-www2 */ De mail!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Zie ook: [[Webcie-vms]] (!)&lt;br /&gt;
&lt;br /&gt;
== Nieuwe vm-webcie-debug&amp;amp;nbsp;aanmaken ==&lt;br /&gt;
&lt;br /&gt;
Maak een nieuwe vm vm-webcie-debug aan. Kickstart de vm en highstate de vm met salt. Installeer mariadb met het volgende commando:&lt;br /&gt;
&amp;lt;pre&amp;gt;/usr/bin/mysql_secure_installation&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zet het rootwachtwoord en disalow root login remotely. Let op: de rootwachtwoorden van de databases van de vm-webcie/www en vm-webcie/www-debug moeten hetzelfde zijn!&lt;br /&gt;
&lt;br /&gt;
Maak in de home van de root het bestandje .my.cnf aan (zet de rechten op 0600!) met de volgende content:&lt;br /&gt;
&amp;lt;pre&amp;gt;[client]&lt;br /&gt;
user = root&lt;br /&gt;
pass = root-database-wachtwoord&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maak ook de juiste databases aan (bv test_whoswho4, test_benamite of boeken. Denk eraan dat op een vm-webcie/www-machine er zowel de normal db als test_db moeten zijn). Kopieër nu de databases. Vergeet ook niet de mysql-database te kopieëren, daar staan de rechten van de verschillende gebruikers in.&amp;amp;nbsp;Maak eerst een dump op de oude vm:&lt;br /&gt;
&amp;lt;pre&amp;gt;mysqldump 'dbnaam' &amp;gt; 'dbnaam'.db&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kopieër het dumpbestand naar de nieuwe vm en laad de dump in op de nieuwe vm:&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql 'dbnaam' &amp;lt; 'dbnaam'.db&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Opzetten vm-www2 ==&lt;br /&gt;
&lt;br /&gt;
Deze instructies zijn bedoeld voor de WebCie. We gaan ervan uit dat je het WebCie-wachtwoord uit je hoofd kent.&lt;br /&gt;
&lt;br /&gt;
Vraag de Sysop om een nieuwe vm (ik bedoel uiteraard container ;)) met subdomein (in dit geval: vm-www2.a-eskwadraat.nl) en dezelfde mounts als de originele vm. Zorg ervoor dat sendmail vanaf de nieuwe vm werkt. Verkrijg roottoegang op de vm-www2.&lt;br /&gt;
&lt;br /&gt;
In het begin heeft yum nog een update voor repositorygegevens nodig: doe &amp;lt;code&amp;gt;yum clean all&amp;lt;/code&amp;gt; voordat je een ander yum-commando draait.&lt;br /&gt;
&lt;br /&gt;
=== Mariadb en replicatie ===&lt;br /&gt;
&lt;br /&gt;
Installeer mariadb als op de vm-www-debug: &amp;lt;code&amp;gt;yum install mariadb mariadb-server&amp;lt;/code&amp;gt; (let op: ivm backwards incompatibility willen we versie 5.5 voorlopig), &amp;lt;code&amp;gt;systemctl enable mariadb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;systemctl start mariadb&amp;lt;/code&amp;gt; en dan &amp;lt;code&amp;gt;/usr/bin/mysql_secure_installation&amp;lt;/code&amp;gt;. Check even of inloggen nog werkt: &amp;lt;code&amp;gt;mysql -u root -p&amp;lt;/code&amp;gt;. Check ook dat je verbinding kan maken met mysql op de originele host vanaf de nieuwe host: &amp;lt;code&amp;gt;mysql -h vm-www -u root -p&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Nu gaan we [https://mariadb.com/kb/en/library/replication-overview/ replicatie] opzetten (master-master). We moeten hiervoor een random wachtwoord genereren, bewaar die goed! Open in een nieuwe terminal op de originele host, en pas de &amp;lt;code&amp;gt;my.cnf&amp;lt;/code&amp;gt; aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
server-id=1&lt;br /&gt;
log-bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Herstart mysqld/mariadb om de wijzigingen toe te passen. Log in als root op mysql en geef permissies: &amp;lt;code&amp;gt;grant replication slave on *.* to repli@'vm-www2.a-eskwadraat.nl' identified by 'replipassword'; flush privileges;&amp;lt;/code&amp;gt;. Zet de tabellen op slot terwijl we de rest doen: &amp;lt;code&amp;gt;flush tables with read lock;&amp;lt;/code&amp;gt;. Ten slotte moeten we wat gegevens bekomen: &amp;lt;code&amp;gt; show master status\G&amp;lt;/code&amp;gt;. Log niet uit tot we klaar zijn, dan gaan de tabellen weer van het slot af.&lt;br /&gt;
&lt;br /&gt;
In de andere terminal op &amp;lt;code&amp;gt;vm-www2&amp;lt;/code&amp;gt; gaan we ook de &amp;lt;code&amp;gt;my.cnf&amp;lt;/code&amp;gt; aanpassen (ik heb de wijzigingen in &amp;lt;code&amp;gt;/etc/my.cnf.d/webcie.cnf&amp;lt;/code&amp;gt; gezet):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
&lt;br /&gt;
server-id=2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Herstart mariadb om de wijzigingen toe te passen. We moeten ook de volledige(!!!) [https://stackoverflow.com/questions/1078196/how-to-take-complete-backup-of-mysql-database-using-mysqldump-command-line-utili#27400627 databaasinhoud overzetten]. (Dit is een van de redenen dat je een read lock hebt.) Doe een mysqldump van de gehele database inclusief tabellen, permissies en inhoud en pas die toe op de nieuwe db.&lt;br /&gt;
&lt;br /&gt;
Log in op de nieuwe db met &amp;lt;code&amp;gt;mysql -u root -p&amp;lt;/code&amp;gt; en stel replicatie in:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHANGE MASTER TO&lt;br /&gt;
  MASTER_HOST='master.domain.com',&lt;br /&gt;
  MASTER_USER='replication_user',&lt;br /&gt;
  MASTER_PASSWORD='bigs3cret',&lt;br /&gt;
  MASTER_PORT=3306,&lt;br /&gt;
  MASTER_LOG_FILE='mariadb-bin.000096',&lt;br /&gt;
  MASTER_LOG_POS=568,&lt;br /&gt;
  MASTER_CONNECT_RETRY=10;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(De juiste waarden haal je uit de uitvoer van &amp;lt;code&amp;gt; show master status\G&amp;lt;/code&amp;gt; op de originele host.) Vervolgens &amp;lt;code&amp;gt;START SLAVE; SHOW SLAVE STATUS \G&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Als de uitvoer een beetje sense maakt, dan heb je succesvol een master-slave replicatie van de oude naar de nieuwe host opgezet. Doe &amp;lt;code&amp;gt;UNLOCK TABLES;&amp;lt;/code&amp;gt; op de originele host en probeer wat aan te passen. Dit zou op de nieuwe host terecht moeten komen.&lt;br /&gt;
&lt;br /&gt;
Als een error bij de slave gebeurd is die niet op master voorkwam, gaat die blokkeren tot je het fixt. Wat je kan doen als het echt helemaal in de soep loopt, is opnieuw alles op slot gooien, een dbdump overnemen van master naar slave. Doe weer &amp;lt;code&amp;gt; show master status\G&amp;lt;/code&amp;gt; en unlock de master. Vervolgens doe je op de slave &amp;lt;code&amp;gt;change master to MASTER_LOG_POS=37071; START SLAVE;&amp;lt;/code&amp;gt; en dan zou die automatisch alles wat sinds de backup is gebeurd, weer naar binnen gaan slurpen.&lt;br /&gt;
&lt;br /&gt;
Nu gaan we de replicatie de andere kant op sturen. Dit is in principe het precies omgekeerde van wat we hiervoor deden. Pas op vm-www2 de &amp;lt;code&amp;gt;my.cnf&amp;lt;/code&amp;gt; aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
server-id=2&lt;br /&gt;
log-bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
en herstart mariadb. Voeg de repli-user toe op de vm-www2: &amp;lt;code&amp;gt;grant replication slave on *.* to repli@'vm-www.a-eskwadraat.nl' identified by 'replipassword'; flush privileges;&amp;lt;/code&amp;gt;. Doe op allebei de hosts een table lock, doe op de nieuwe host &amp;lt;code&amp;gt;show master status\G&amp;lt;/code&amp;gt; en op de originele host de replicatie-instellingen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHANGE MASTER TO&lt;br /&gt;
  MASTER_HOST='master.domain.com',&lt;br /&gt;
  MASTER_USER='replication_user',&lt;br /&gt;
  MASTER_PASSWORD='bigs3cret',&lt;br /&gt;
  MASTER_PORT=3306,&lt;br /&gt;
  MASTER_LOG_FILE='mariadb-bin.000096',&lt;br /&gt;
  MASTER_LOG_POS=568,&lt;br /&gt;
  MASTER_CONNECT_RETRY=10;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En nu kun je op de originele host &amp;lt;code&amp;gt;start slave;&amp;lt;/code&amp;gt; runnen, en je hebt een master-masterreplicatie :D&lt;br /&gt;
&lt;br /&gt;
=== Installeer Apache, PHP en PHP-FPM ===&lt;br /&gt;
&lt;br /&gt;
Doe &amp;lt;code&amp;gt;yum install httpd&amp;lt;/code&amp;gt; voor Apache.&lt;br /&gt;
Voor een niet verschrikkelijk antieke PHP moet je extra dingen installeren (zie ook [https://rpms.remirepo.net/wizard/]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yum install epel-release&lt;br /&gt;
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm&lt;br /&gt;
yum install yum-utils&lt;br /&gt;
yum-config-manager --enable remi-php56 # of php72 of andere versie&lt;br /&gt;
yum install php php-fpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installeer ook alle [[PHP-extensies]] die nodig zijn. (Zie die pagina voor de lijst.)&lt;br /&gt;
&lt;br /&gt;
Overige dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
yum install gettext java npm python36 python36-virtualenv&lt;br /&gt;
npm install -g bower&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nu moeten we PHP-instellingen regelen. Maak een checkout van de website, en doe daarin:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir config/vm-www2&lt;br /&gt;
ln -s /etc/php.ini config/vm-www2/&lt;br /&gt;
vim config/vm-www2/php.ini # Pas hier alle relevante config van de vm-www toe.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mail werkend krijgen ===&lt;br /&gt;
&lt;br /&gt;
De website gebruikt sendmail-commando's om te mailen. Normaal stuurt sendmail de mails direct het web op, maar we willen dat deze door de vm-mailpp heen gestuurd wordt zodat de berichten juist zijn ondertekend en door spamfilters heen komen. Hiervoor gebruiken we het sendmail-commando dat uit postfix komt. Installeer postfix met:&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install postfix&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De configuratie van postfix is dezelfde als op alle CentOS7 machines en is te vinden op de vm-salt-master in &amp;lt;code&amp;gt;/srv/salt/centos7/global/main.cf&amp;lt;/code&amp;gt;. Nadat je die configuratie op de webserver in de map &amp;lt;code&amp;gt;/etc/postfix&amp;lt;/code&amp;gt; hebt geplaatst, start je de postfix service (of reload als die al gestart was). (In de andere configuratiebestanden, zoals master.cf, kun je de standaardinstellingen laten staan.)&lt;br /&gt;
&lt;br /&gt;
Stel nu in dat het sendmail-commando uit postfix gebruikt wordt in plaats van de standaard sendmail:&lt;br /&gt;
&amp;lt;pre&amp;gt;update-alternatives --config mta&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Overige tsjak ter installatie ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install git sudo vim wget&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== De website opzetten ===&lt;br /&gt;
&lt;br /&gt;
Heb je alles geïnstalleerd, dan ben je klaar voor de laatste fase.&lt;br /&gt;
&lt;br /&gt;
Vertel de scripts dat dit een host is: &amp;lt;code&amp;gt;vim /etc/function&amp;lt;/code&amp;gt; en stop daarin &amp;lt;code&amp;gt;server&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ga naar de checkout van de website, kopieer handmatig de secret.php en doe daarin manage build. (Dit moet na de php-instellingen gebeuren want manage voert php uit.)&lt;br /&gt;
&lt;br /&gt;
Pas de httpd-configuratie aan om de juiste paden in te stellen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp config/vm-www/httpd/conf.d/website.conf /etc/httpd/conf.d/&lt;br /&gt;
ln -s /etc/httpd config/vm-www2/httpd&lt;br /&gt;
vim config/vm-www2/httpd/conf.d/website.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nu kun je de webserver aanzwengelen :D &amp;lt;code&amp;gt;systemctl restart httpd&amp;lt;code&amp;gt; &amp;lt;code&amp;gt;systemctl restart php-fpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Je moet waarschijnlijk nog wat chmod'en en paden aanmaken, zie daarvoor de logs in &amp;lt;code&amp;gt;/var/log/httpd/error_log&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;/var/log/php-fpm/error.log&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;/var/log/www/php-warnings.log&amp;lt;/code&amp;gt; (in volgorde van dingen werkend krijgen).&lt;br /&gt;
&lt;br /&gt;
[[Category:Sysop]] [[Category:WebCie]]&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/IPA</id>
		<title>IPA</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/IPA"/>
				<updated>2017-01-23T19:06:04Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: /* Client installatie */ iets meer tekst bij sudo en hbac&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FreeIPA is a Red Hat sponsored open source project which aims to provide an easily managed Identity, Policy and Audit (IPA) suite primarily targeted towards networks of Linux and Unix computers. FreeIPA can be compared to Novell's Identity Manager or Microsoft's Active Directory in that the goals and mechanisms used are similar.&lt;br /&gt;
&lt;br /&gt;
FreeIPA currently uses 389 Directory Server for its LDAP implementation, MIT's Kerberos 5 for authentication and single sign-on, the Apache and Python for the management framework and Web UI, and (optionally) Dogtag for the integrated CA and BIND with a custom plugin for the integrated DNS. Development versions also use Samba to integrate with Microsoft's Active Directory by way of Cross Forest Trusts.&lt;br /&gt;
&lt;br /&gt;
While each of the major components of FreeIPA is a pre-existing open source project it is the bundling of these components into a single manageable suite with a Comprehensive Management Interface that make FreeIPA more comparable to its proprietary software cousins, Identity Manager and Active Directory.&lt;br /&gt;
&lt;br /&gt;
FreeIPA aims to provide support not just for Linux and Unix based computers but ultimately Microsoft Windows and Apple Macintosh computers also.&lt;br /&gt;
&lt;br /&gt;
De webinterface van de IPA van A-Eskwadraat is te benaderen via [http://ipa01.a-eskwadraat.nl http://ipa01.a-eskwadraat.nl]. Hiervoor moet je wel op het netwerk van A-Eskwadraat zitten, dit is niet van buiten af te benaderen.&lt;br /&gt;
&lt;br /&gt;
== Server installatie ==&lt;br /&gt;
&lt;br /&gt;
Installeer &amp;lt;code&amp;gt;ipa-server&amp;lt;/code&amp;gt; met alle dependencies. Zorg ervoor dat alle benodigde firewall-poorten open staan, na een schone kickstart hoeft enkel poort 7389 tcp nog geopend te worden. Vervolgens, om ipa-server te installeren ''zonder'' NTP-server:&lt;br /&gt;
&lt;br /&gt;
 ipa-server-install -N&lt;br /&gt;
&lt;br /&gt;
Na de installatie moet de server nog een beveiligings-certificaat krijgen. Voer hiervoor het volgende commando uit:&lt;br /&gt;
&lt;br /&gt;
 ipa-getcert request -d /etc/pki/nssdb/ -n ipaserver-cert&lt;br /&gt;
&lt;br /&gt;
Sudo gegevens zijn niet anoniem uit IPA te halen, daarom moet er voor de standaard user &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; een wachtwoord ingesteld worden (''zou kunnen dat dit niet meer nodig is''). Doe dit met&lt;br /&gt;
&lt;br /&gt;
 ldappasswd -Y GSSAPI uid=sudo,cn=sysaccounts,cn=etc,dc=a-eskwadraat,dc=nl -s sudopasswd&lt;br /&gt;
&lt;br /&gt;
=== Firewall ===&lt;br /&gt;
&lt;br /&gt;
IPA heeft een aantal poorten nodig om correct te werken:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;30%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''''Service'''''&lt;br /&gt;
| '''''Poort'''''&lt;br /&gt;
| '''''Type'''''&lt;br /&gt;
|-&lt;br /&gt;
| HTTP/HTTPS&lt;br /&gt;
| 80,443&lt;br /&gt;
| tcp&lt;br /&gt;
|-&lt;br /&gt;
| LDAP/LDAPS&lt;br /&gt;
| 389,636&lt;br /&gt;
| tcp&lt;br /&gt;
|-&lt;br /&gt;
| Kerberos&lt;br /&gt;
| 88,464&lt;br /&gt;
| tcp,udp&lt;br /&gt;
|-&lt;br /&gt;
| DNS&lt;br /&gt;
| 53&lt;br /&gt;
| tcp,udp&lt;br /&gt;
|-&lt;br /&gt;
| NTP&lt;br /&gt;
| 123&lt;br /&gt;
| udp&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Client installatie ==&lt;br /&gt;
&lt;br /&gt;
{{opmerking| Bij migratie naar een andere IPA-server moet &amp;lt;code&amp;gt;/etc/ipa&amp;lt;/code&amp;gt; leeg zijn.}}&lt;br /&gt;
&lt;br /&gt;
=== ipa-client-install ===&lt;br /&gt;
&lt;br /&gt;
Installeer een IPA-client als volgt (uiteraard als root):&lt;br /&gt;
&lt;br /&gt;
 ipa-client-install&lt;br /&gt;
&lt;br /&gt;
Er wordt tijdens de installatie gevraagd om een gebruikersnaam, gebruik daarvoor gewoon je eigen account.&lt;br /&gt;
&lt;br /&gt;
'''''Reboot het systeem als de installatie voltooid is.'''''&lt;br /&gt;
&lt;br /&gt;
=== sudo ===&lt;br /&gt;
&lt;br /&gt;
Om sudoregels te gebruiken op systemen ouder dan CentOS 7, zie [[Sudo]].&lt;br /&gt;
&lt;br /&gt;
=== httpd ===&lt;br /&gt;
&lt;br /&gt;
Om in websites IPA te gebruiken is het nodig een PAM- en HBAC-service toe te voegen. Zie ook [[HBAC]].&lt;br /&gt;
&lt;br /&gt;
== Schema ==&lt;br /&gt;
&lt;br /&gt;
Aan het standaard schema van IPA is de objectClass 'aesAccount' met attribuut 'memberId'. Zie de volgende LDIF:&lt;br /&gt;
&lt;br /&gt;
 dn: cn=schema&lt;br /&gt;
 changetype: modify&lt;br /&gt;
 add: attributetypes&lt;br /&gt;
 attributetypes:( 1.3.6.1.4.1.44413.1.1.1 NAME 'memberId' DESC 'MemberId of person' &lt;br /&gt;
 EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )&lt;br /&gt;
 -&lt;br /&gt;
 add: objectclasses&lt;br /&gt;
 objectclasses: ( 1.3.6.1.4.1.44413.1.2.1 NAME 'aesAccount' SUP top AUXILIARY &lt;br /&gt;
 DESC 'A-Eskwadraat account information' MAY  ( memberId ) )&lt;br /&gt;
&lt;br /&gt;
=== Lidnummer toevoegen ===&lt;br /&gt;
&lt;br /&gt;
'mensjeadd' vraagt bij het aanmaken van een account om een lidnummer. Mocht er onverhoopt iets misgaan, met de onderstaande LDIF is het mogelijk om een lidnummer aan een account toe te voegen:&lt;br /&gt;
&lt;br /&gt;
 dn: uid=$login,cn=users,cn=accounts,dc=a-eskwadraat,dc=nl&lt;br /&gt;
 changetype: modify&lt;br /&gt;
 add: memberId&lt;br /&gt;
 memberId: $lidnummer&lt;br /&gt;
&lt;br /&gt;
== Replication ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;Er zijn op dit moment drie IPA-servers met de volgende replication agreements:&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;ipa01 &amp;amp;lt;=&amp;amp;gt; ipa02&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;ipa01 &amp;amp;lt;=&amp;amp;gt; ipa03&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;ipa02 &amp;amp;lt;=&amp;amp;gt; ipa03&amp;lt;/s&amp;gt;&lt;br /&gt;
[[Category:Software]] [[Category:Sysop]]&lt;br /&gt;
&lt;br /&gt;
== Gebruik ipa ==&lt;br /&gt;
&lt;br /&gt;
Op de webinterface van IPA zijn alle eigenschappen van gebruikers en groepen te wijzigen onder het tabblad &amp;quot;Identity&amp;quot;. Dit spreekt redelijk voor zich. Bij &amp;quot;Policy&amp;quot; zijn host-based access control en sudoregels in te stellen.&lt;br /&gt;
&lt;br /&gt;
=== Host-based access control ===&lt;br /&gt;
&lt;br /&gt;
Op alle clients waar ipa is geïnstalleerd, wordt bij het inloggen sssd gebruikt om te authenticeren. Deze controleert op de ipa server of de gebruiker op die machine mag inloggen. Het is gewone gebruikers bijvoorbeeld alleen toegestaan om in te loggen op workstations, niet op virtuele machines en een aantal daarvan zijn wel ipa client. Bij Policy &amp;gt; Host-based Access Control in de IPA webinterface zijn de regels in te stellen die bepalen wie waar mag inloggen. Een regel bevat: de gebruikers waarvoor deze van toepassing is, de computers waarop deze van toepassing is, en de services waarmee ingelogd kan worden. Bij alle drie is er een optie om alles/iedereen toe te staan.&lt;br /&gt;
&lt;br /&gt;
=== Sudoregels ===&lt;br /&gt;
&lt;br /&gt;
Sudoregels staan toe dat een gebruiker een commando uitvoert als iemand anders. Het geeft gebruikers de mogelijkheid om commando's namens hun commissies uit te voeren, of sysop om overal sudo te gebruiken om root te worden. Deze zijn in de webinterface in te stellen bij Policy &amp;gt; Sudo. Een regel bestaat uit: welke gebruiker(s), welke computer(s), welke commando(s) en als welke gebruiker(s). Verder kunnen er opties worden toegevoegd, deze zijn gelijk aan opties die gewoonlijk in sudoers ingesteld kunnen worden, zoals !authenticate die bepaalt dat er geen wachtwoord ingevoerd hoeft te worden voor die regel.&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/IPA</id>
		<title>IPA</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/IPA"/>
				<updated>2017-01-23T18:52:06Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: gebruik toegevoegd&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FreeIPA is a Red Hat sponsored open source project which aims to provide an easily managed Identity, Policy and Audit (IPA) suite primarily targeted towards networks of Linux and Unix computers. FreeIPA can be compared to Novell's Identity Manager or Microsoft's Active Directory in that the goals and mechanisms used are similar.&lt;br /&gt;
&lt;br /&gt;
FreeIPA currently uses 389 Directory Server for its LDAP implementation, MIT's Kerberos 5 for authentication and single sign-on, the Apache and Python for the management framework and Web UI, and (optionally) Dogtag for the integrated CA and BIND with a custom plugin for the integrated DNS. Development versions also use Samba to integrate with Microsoft's Active Directory by way of Cross Forest Trusts.&lt;br /&gt;
&lt;br /&gt;
While each of the major components of FreeIPA is a pre-existing open source project it is the bundling of these components into a single manageable suite with a Comprehensive Management Interface that make FreeIPA more comparable to its proprietary software cousins, Identity Manager and Active Directory.&lt;br /&gt;
&lt;br /&gt;
FreeIPA aims to provide support not just for Linux and Unix based computers but ultimately Microsoft Windows and Apple Macintosh computers also.&lt;br /&gt;
&lt;br /&gt;
De webinterface van de IPA van A-Eskwadraat is te benaderen via [http://ipa01.a-eskwadraat.nl http://ipa01.a-eskwadraat.nl]. Hiervoor moet je wel op het netwerk van A-Eskwadraat zitten, dit is niet van buiten af te benaderen.&lt;br /&gt;
&lt;br /&gt;
== Server installatie ==&lt;br /&gt;
&lt;br /&gt;
Installeer &amp;lt;code&amp;gt;ipa-server&amp;lt;/code&amp;gt; met alle dependencies. Zorg ervoor dat alle benodigde firewall-poorten open staan, na een schone kickstart hoeft enkel poort 7389 tcp nog geopend te worden. Vervolgens, om ipa-server te installeren ''zonder'' NTP-server:&lt;br /&gt;
&lt;br /&gt;
 ipa-server-install -N&lt;br /&gt;
&lt;br /&gt;
Na de installatie moet de server nog een beveiligings-certificaat krijgen. Voer hiervoor het volgende commando uit:&lt;br /&gt;
&lt;br /&gt;
 ipa-getcert request -d /etc/pki/nssdb/ -n ipaserver-cert&lt;br /&gt;
&lt;br /&gt;
Sudo gegevens zijn niet anoniem uit IPA te halen, daarom moet er voor de standaard user &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; een wachtwoord ingesteld worden (''zou kunnen dat dit niet meer nodig is''). Doe dit met&lt;br /&gt;
&lt;br /&gt;
 ldappasswd -Y GSSAPI uid=sudo,cn=sysaccounts,cn=etc,dc=a-eskwadraat,dc=nl -s sudopasswd&lt;br /&gt;
&lt;br /&gt;
=== Firewall ===&lt;br /&gt;
&lt;br /&gt;
IPA heeft een aantal poorten nodig om correct te werken:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;30%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''''Service'''''&lt;br /&gt;
| '''''Poort'''''&lt;br /&gt;
| '''''Type'''''&lt;br /&gt;
|-&lt;br /&gt;
| HTTP/HTTPS&lt;br /&gt;
| 80,443&lt;br /&gt;
| tcp&lt;br /&gt;
|-&lt;br /&gt;
| LDAP/LDAPS&lt;br /&gt;
| 389,636&lt;br /&gt;
| tcp&lt;br /&gt;
|-&lt;br /&gt;
| Kerberos&lt;br /&gt;
| 88,464&lt;br /&gt;
| tcp,udp&lt;br /&gt;
|-&lt;br /&gt;
| DNS&lt;br /&gt;
| 53&lt;br /&gt;
| tcp,udp&lt;br /&gt;
|-&lt;br /&gt;
| NTP&lt;br /&gt;
| 123&lt;br /&gt;
| udp&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Client installatie ==&lt;br /&gt;
&lt;br /&gt;
{{opmerking| Bij migratie naar een andere IPA-server moet &amp;lt;code&amp;gt;/etc/ipa&amp;lt;/code&amp;gt; leeg zijn.}}&lt;br /&gt;
&lt;br /&gt;
=== ipa-client-install ===&lt;br /&gt;
&lt;br /&gt;
Installeer een IPA-client als volgt (uiteraard als root):&lt;br /&gt;
&lt;br /&gt;
 ipa-client-install&lt;br /&gt;
&lt;br /&gt;
Er wordt tijdens de installatie gevraagd om een gebruikersnaam, gebruik daarvoor gewoon je eigen account.&lt;br /&gt;
&lt;br /&gt;
'''''Reboot het systeem als de installatie voltooid is.'''''&lt;br /&gt;
&lt;br /&gt;
=== sudo ===&lt;br /&gt;
&lt;br /&gt;
Zie [[Sudo|sudo]].&lt;br /&gt;
&lt;br /&gt;
=== httpd ===&lt;br /&gt;
&lt;br /&gt;
Zie [[HBAC]].&lt;br /&gt;
&lt;br /&gt;
== Schema ==&lt;br /&gt;
&lt;br /&gt;
Aan het standaard schema van IPA is de objectClass 'aesAccount' met attribuut 'memberId'. Zie de volgende LDIF:&lt;br /&gt;
&lt;br /&gt;
 dn: cn=schema&lt;br /&gt;
 changetype: modify&lt;br /&gt;
 add: attributetypes&lt;br /&gt;
 attributetypes:( 1.3.6.1.4.1.44413.1.1.1 NAME 'memberId' DESC 'MemberId of person' &lt;br /&gt;
 EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )&lt;br /&gt;
 -&lt;br /&gt;
 add: objectclasses&lt;br /&gt;
 objectclasses: ( 1.3.6.1.4.1.44413.1.2.1 NAME 'aesAccount' SUP top AUXILIARY &lt;br /&gt;
 DESC 'A-Eskwadraat account information' MAY  ( memberId ) )&lt;br /&gt;
&lt;br /&gt;
=== Lidnummer toevoegen ===&lt;br /&gt;
&lt;br /&gt;
'mensjeadd' vraagt bij het aanmaken van een account om een lidnummer. Mocht er onverhoopt iets misgaan, met de onderstaande LDIF is het mogelijk om een lidnummer aan een account toe te voegen:&lt;br /&gt;
&lt;br /&gt;
 dn: uid=$login,cn=users,cn=accounts,dc=a-eskwadraat,dc=nl&lt;br /&gt;
 changetype: modify&lt;br /&gt;
 add: memberId&lt;br /&gt;
 memberId: $lidnummer&lt;br /&gt;
&lt;br /&gt;
== Replication ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;Er zijn op dit moment drie IPA-servers met de volgende replication agreements:&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;ipa01 &amp;amp;lt;=&amp;amp;gt; ipa02&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;ipa01 &amp;amp;lt;=&amp;amp;gt; ipa03&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;ipa02 &amp;amp;lt;=&amp;amp;gt; ipa03&amp;lt;/s&amp;gt;&lt;br /&gt;
[[Category:Software]] [[Category:Sysop]]&lt;br /&gt;
&lt;br /&gt;
== Gebruik ipa ==&lt;br /&gt;
&lt;br /&gt;
Op de webinterface van IPA zijn alle eigenschappen van gebruikers en groepen te wijzigen onder het tabblad &amp;quot;Identity&amp;quot;. Dit spreekt redelijk voor zich. Bij &amp;quot;Policy&amp;quot; zijn host-based access control en sudoregels in te stellen.&lt;br /&gt;
&lt;br /&gt;
=== Host-based access control ===&lt;br /&gt;
&lt;br /&gt;
Op alle clients waar ipa is geïnstalleerd, wordt bij het inloggen sssd gebruikt om te authenticeren. Deze controleert op de ipa server of de gebruiker op die machine mag inloggen. Het is gewone gebruikers bijvoorbeeld alleen toegestaan om in te loggen op workstations, niet op virtuele machines en een aantal daarvan zijn wel ipa client. Bij Policy &amp;gt; Host-based Access Control in de IPA webinterface zijn de regels in te stellen die bepalen wie waar mag inloggen. Een regel bevat: de gebruikers waarvoor deze van toepassing is, de computers waarop deze van toepassing is, en de services waarmee ingelogd kan worden. Bij alle drie is er een optie om alles/iedereen toe te staan.&lt;br /&gt;
&lt;br /&gt;
=== Sudoregels ===&lt;br /&gt;
&lt;br /&gt;
Sudoregels staan toe dat een gebruiker een commando uitvoert als iemand anders. Het geeft gebruikers de mogelijkheid om commando's namens hun commissies uit te voeren, of sysop om overal sudo te gebruiken om root te worden. Deze zijn in de webinterface in te stellen bij Policy &amp;gt; Sudo. Een regel bestaat uit: welke gebruiker(s), welke computer(s), welke commando(s) en als welke gebruiker(s). Verder kunnen er opties worden toegevoegd, deze zijn gelijk aan opties die gewoonlijk in sudoers ingesteld kunnen worden, zoals !authenticate die bepaalt dat er geen wachtwoord ingevoerd hoeft te worden voor die regel.&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Dnsmasq</id>
		<title>Dnsmasq</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Dnsmasq"/>
				<updated>2016-11-14T21:01:36Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: ip-adressen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:sysop]]&lt;br /&gt;
Binnen het A&amp;amp;ndash;Eskwadraat netwerk worden de IP-adressen uitgedeeld door de [[router]], middels dnsmasq. Dnsmasq zorgt ervoor dat iedere computer een IP-adres krijgt aan de hand van een mac-adres. Hierbij kan ook de naam van de computer gekoppeld worden.&lt;br /&gt;
&lt;br /&gt;
In principe hebben alle computers en virtuele machines een vast IP-adres aan de hand van het MAC-adres. Deze IP-adressen zijn in een aantal verschillende ranges verdeeld:&lt;br /&gt;
* 10.14.0.*: fysieke machines en andere apparaten met een netwerkaansluiting zoals printers en webcams&lt;br /&gt;
* 10.14.2.*: automatisch toegewezen adressen aan computers die niet bekend zijn in dnsmasq&lt;br /&gt;
* 10.14.3.1: IP-adres voor de routers, zie [[Router]]&lt;br /&gt;
* 10.14.3.*: virtuele machines&lt;br /&gt;
&lt;br /&gt;
== Configuratie ==&lt;br /&gt;
Op de [[router]] is in de '/etc/dnsmasq.d' de configuratie van dnsmasq te vinden. Om wijzigingen in de configuratie door te voeren, dient dnsmasq opnieuw opgestart te worden middels:&lt;br /&gt;
 service dnsmasq restart&lt;br /&gt;
&lt;br /&gt;
=== Host-entry ===&lt;br /&gt;
Een host-entry ziet er als volgt uit:&lt;br /&gt;
 dhcp-host=[mac-adres],[hostname],[ip]&lt;br /&gt;
Het is ook mogelijk om een extra naam (CNAME) aan een host te hangen:&lt;br /&gt;
 cname=[new-hostname],[real-hostname]&lt;br /&gt;
&lt;br /&gt;
== PXE ==&lt;br /&gt;
Dnsmasq bevat naast de dhcp/dns functionaliteit ook een tftp-server. Hierdoor is het mogelijk om dnsmasq als een PXE-bootserver te gebruiken. Zoals geconfigureerd in '/etc/dnsmasq.d/tftp.conf'.&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Router</id>
		<title>Router</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Router"/>
				<updated>2016-11-14T20:54:12Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: /* DHCP server */ uitleg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:sysop]]&lt;br /&gt;
&lt;br /&gt;
==Router==&lt;br /&gt;
De router is de spin in ons netwerk. Hij bepaalt welke diensten beschikbaar zijn en hoe je die kunt benaderen. Hierbij is de router verantwoordelijk voor het afhandelen van al het inkomende en uitgaande dataverkeer van [[A-Eskwadraat]]. Op het moment zijn [[Ernst]] en [[oclaude]] de huidige routers.&lt;br /&gt;
&lt;br /&gt;
De router die in gebruik is, is naast zijn eigen IP op het IP-adres 10.14.3.1 (vm-netstack.a-eskwadraat.nl) te benaderen. Dit adres wordt gebruikt als default route op alle andere computers. Een backup-router zou dit snel kunnen overnemen als ernst uitvalt, maar dat is op het moment van schrijven nog niet geïmplementeerd.&lt;br /&gt;
&lt;br /&gt;
==Firewall==&lt;br /&gt;
Voor de firewall maken we gebruik van [http://shorewall.net/ shorewall]. De config is terug te vinden in [[salt]], en in /etc/shorewall op [[Ernst]] en [[oclaude]] zelf. Shorewall zorgt voor de iptables regels die de daadwerkelijke firewall vormen.&lt;br /&gt;
&lt;br /&gt;
===Zones===&lt;br /&gt;
Een firewall bestaat uit meerdere zones. Deze zijn er om onderscheid te maken tussen verschillende bronnen/bestemmingen. Op dit moment maken we gebruik van de zones firewall(fw), extern(ext) en intern(int). Het is ook mogelijk om zones binnen een zone aan te maken zoals voor virtuele machines(vm) die binnen de interne zone zitten, echter gebruiken we deze nog niet. De configuratie voor de zones is te vinden in /etc/shorewall/zones. Een voorbeeld zoals deze op het moment van schrijven staat ingesteld:&lt;br /&gt;
 #{zone} {type}&lt;br /&gt;
  fw     firewall&lt;br /&gt;
  ext    ipv4&lt;br /&gt;
  int    ipv4&lt;br /&gt;
  vm:int ipv4&lt;br /&gt;
&lt;br /&gt;
===Interfaces===&lt;br /&gt;
De interfaces van de router zijn in te stellen in /etc/shorewall/interfaces. Hierbij maken we onderscheid tussen intern(int) en extern(ext). Een voorbeeld zoals deze op [[oclaude]] staat ingesteld:&lt;br /&gt;
 #{zone} {interface} {opties}&lt;br /&gt;
  ext    enp4s0      blacklist,norfc1918&lt;br /&gt;
  int    enp3s0      dhcp,routeback&lt;br /&gt;
&lt;br /&gt;
===Variabelen===&lt;br /&gt;
Voor het gemak zijn er in shorewall enkel variabelen te gebruiken. Deze variabelen zijn in te stellen in /ets/shorewall/params. Bijvoorbeeld voor vm-mail:&lt;br /&gt;
 #{naam}={waarde}&lt;br /&gt;
  VM_MAIL=10.14.3.6&lt;br /&gt;
&lt;br /&gt;
===Port Forward===&lt;br /&gt;
De port forwards worden door de firewall geregeld in /etc/shorewall/rules. Deze file bevat alle speciale regels, waar port forwards dus ook toe behoren. Een portforward bestaat uit 2 regels, namelijk een regel voor verkeer afkomstig van het internet en een regel voor verkeer afkomstig van het interne netwerk. Daarnaast is er voor verkeer afkomstig van het interne netwerk een speciale masq regel nodig, welke ervoor zorgt dat het verkeer via de router loopt in plaats van direct.&lt;br /&gt;
&lt;br /&gt;
====Extern voorbeeld====&lt;br /&gt;
Voorbeeld regel voor externe forward in /etc/shorewall/rules, hierbij wordt de externe tcp-poort 25 doorgestuurd naar poort 25 van vm-mail:&lt;br /&gt;
 #{soort} {bron} {bestemming}    {tcp/udp} {inkomende poort}&lt;br /&gt;
  DNAT    ext    int:$vm-mail:25 tcp       25&lt;br /&gt;
&lt;br /&gt;
====Intern voorbeeld====&lt;br /&gt;
Voorbeeld regel voor interne forward in /etc/shorewall/rules, hierbij wordt de interne tcp-poort 25 doorgestuurd naar poort 25 van vm-mail, hierbij wordt de bron van het pakket omgezet naar de het externe ip van de router:&lt;br /&gt;
 #{soort} {bron} {bestemming}    {tcp/udp} {inkomende poort} {bron poort} {bron}&lt;br /&gt;
  DNAT    int    int:$vm-mail:25 tcp       25                -            $EXT_IP_VIRT&lt;br /&gt;
Om wijziging van de bron van het pakket te laten werken moet er ook een overeenkomstige regel aangemaakt worden /etc/shorewall/masq:&lt;br /&gt;
 #{interface:bestemming} {oorsprong} {bron}        {tcp/udp} {poort}&lt;br /&gt;
  enp3s0:$VM_MAIL        $INT_RANGE  $EXT_IP_VIRT  tcp       25&lt;br /&gt;
&lt;br /&gt;
==DHCP server==&lt;br /&gt;
Alle computers in het netwerk krijgen hun IP-adres van de router via DHCP. Zie [[Dnsmasq|dnsmasq]] voor details.&lt;br /&gt;
&lt;br /&gt;
==Reverse Proxy==&lt;br /&gt;
De reverse proxy zorgt ervoor dat bezoekers van de websites, die gehost worden bij A-Eskwadraat, terecht komen bij de juiste webserver. Verder is dit het SSL-eindpunt zodat er verbindingen met https mogelijk zijn, zonder dat op iedere webserver het certificaat hoeft te staan.&lt;br /&gt;
We gebruiken hiervoor [http://nginx.org/ nginx]. Iedere webserver heeft een aparte file voor de configuratie in /etc/nginx/conf.d/ met de extensie conf.&lt;br /&gt;
&lt;br /&gt;
Als je website door de vm-www-dmz wordt gehost en je wilt deze in de router toevoegen, doe dit in het bestand vm-www-dmz.aeslist.&lt;br /&gt;
&lt;br /&gt;
Als je website op een eigen virtuele machine bij A-Eskwadraat staat is het volgende commando te gebruiken vanuit /etc/nginx/conf.d om een subdomein te maken:&lt;br /&gt;
 sed 's/template/{virtuele machine}/g' vm.template &amp;gt; vm-{virtuele machine}.conf&lt;br /&gt;
Daarbij wordt de volgende template gebruikt:&lt;br /&gt;
 ##Vervang hier alle verwijzingen met template naar de naam de virtuele machine&lt;br /&gt;
 # vm-template&lt;br /&gt;
 upstream vm-template {&lt;br /&gt;
     server vm-template:80; # Should be IP&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
     #listen 80; # accepteer poort 80&lt;br /&gt;
     include /etc/nginx/conf.d/https.common; # accepteer ssl verbinding met a-eskwadraat certificaat&lt;br /&gt;
 &lt;br /&gt;
     server_name template.a-eskwadraat.nl;&lt;br /&gt;
 &lt;br /&gt;
     access_log /var/log/nginx/access-vm-template.log main;&lt;br /&gt;
     error_log /var/log/nginx/error-vm-template.log;&lt;br /&gt;
     root /usr/share/nginx/html;&lt;br /&gt;
     index index.html;&lt;br /&gt;
 &lt;br /&gt;
     location / {&lt;br /&gt;
         proxy_pass http://vm-template;&lt;br /&gt;
         include /etc/nginx/conf.d/proxy.common;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Vergeet niet om de configuratie in salt op te slaan als je deze aanpast.&lt;br /&gt;
&lt;br /&gt;
===Redirects===&lt;br /&gt;
Naast dat nginx gebruikt wordt als reverse proxy, zorgt deze ook voor de verwijzingen. Deze zijn te vinden in /etc/nginx/conf.d/www-redirects.conf. Een voorbeeld functie van het redirecten is al het verkeer voor http://a-es2.nl wordt doorverwezen naar https://www.a-eskwadraat.nl.&lt;br /&gt;
&lt;br /&gt;
==Yum Cache==&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Firewall</id>
		<title>Firewall</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Firewall"/>
				<updated>2016-11-14T20:45:34Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: oud&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:sysop oud]]&lt;br /&gt;
&lt;br /&gt;
'''Deze pagina moet nog bijgewerkt worden met de huidige configuratie van Ernst'''&lt;br /&gt;
&lt;br /&gt;
''Op de pagina [[Router]] staan al up-to-date details over shorewall''&lt;br /&gt;
&lt;br /&gt;
Op [[Ernst]] draait de '''firewall''' [http://www.shorewall.net/ Shorewall].&lt;br /&gt;
&lt;br /&gt;
== iptables ==&lt;br /&gt;
Shorewall is een wrapper rond iptables, de low-level-configuratie die bepaalt wie naar de machine informatie over het netwerk mogen sturen. Met het commando ''iptables --list'' is deze configuratie op te vragen. Gebruik geen andere ''iptables''-commando's, in het bijzonder niet ''iptables --flush''; deze kunnen heel snel het systeem kapot maken.&lt;br /&gt;
&lt;br /&gt;
== Configuratie ==&lt;br /&gt;
De configuratie van shorewall gebeurt middels meerdere configuratie bestanden in ''/etc/shorewall''. Er zijn meer bestanden aanwezig dan hieronder beschreven, maar deze zijn dan niet aangepast ten opzichte van de standaard. &lt;br /&gt;
&lt;br /&gt;
=== shorewall.conf ===&lt;br /&gt;
Bevat de algemene instellingen voor shorewall, zoals logging, paden, &lt;br /&gt;
&lt;br /&gt;
=== interfaces ===&lt;br /&gt;
Bevat de koppeling tussen de interfaces en de zones.&lt;br /&gt;
&lt;br /&gt;
=== maclist ===&lt;br /&gt;
Bevat een lijst van mac-adressen van de vertrouwde machines binnen het lokale netwerk.&lt;br /&gt;
&lt;br /&gt;
=== params ===&lt;br /&gt;
Bevat variabelen die in andere configuratie bestanden van shorewall gebruikt kunnen worden.&lt;br /&gt;
&lt;br /&gt;
=== policy ===&lt;br /&gt;
Bevat de acties die toegestaan zijn tussen de verschillende zones.&lt;br /&gt;
&lt;br /&gt;
=== zones ===&lt;br /&gt;
Bevat zoals de naam al aangeeft de verschillende zones die gebruikt worden. Dit zijn:&lt;br /&gt;
* fw - firewall&lt;br /&gt;
* net - internet&lt;br /&gt;
* loc - lokaal netwerk&lt;br /&gt;
* ltr -  local netwerk&lt;br /&gt;
* vpn - externe gebruikers&lt;br /&gt;
* wlan - draadloos&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Router</id>
		<title>Router</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Router"/>
				<updated>2016-11-14T20:21:55Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: /* Router */ 10.14.3.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:sysop]]&lt;br /&gt;
&lt;br /&gt;
==Router==&lt;br /&gt;
De router is de spin in ons netwerk. Hij bepaalt welke diensten beschikbaar zijn en hoe je die kunt benaderen. Hierbij is de router verantwoordelijk voor het afhandelen van al het inkomende en uitgaande dataverkeer van [[A-Eskwadraat]]. Op het moment zijn [[Ernst]] en [[oclaude]] de huidige routers.&lt;br /&gt;
&lt;br /&gt;
De router die in gebruik is, is naast zijn eigen IP op het IP-adres 10.14.3.1 (vm-netstack.a-eskwadraat.nl) te benaderen. Dit adres wordt gebruikt als default route op alle andere computers. Een backup-router zou dit snel kunnen overnemen als ernst uitvalt, maar dat is op het moment van schrijven nog niet geïmplementeerd.&lt;br /&gt;
&lt;br /&gt;
==Firewall==&lt;br /&gt;
Voor de firewall maken we gebruik van [http://shorewall.net/ shorewall]. De config is terug te vinden in [[salt]], en in /etc/shorewall op [[Ernst]] en [[oclaude]] zelf. Shorewall zorgt voor de iptables regels die de daadwerkelijke firewall vormen.&lt;br /&gt;
&lt;br /&gt;
===Zones===&lt;br /&gt;
Een firewall bestaat uit meerdere zones. Deze zijn er om onderscheid te maken tussen verschillende bronnen/bestemmingen. Op dit moment maken we gebruik van de zones firewall(fw), extern(ext) en intern(int). Het is ook mogelijk om zones binnen een zone aan te maken zoals voor virtuele machines(vm) die binnen de interne zone zitten, echter gebruiken we deze nog niet. De configuratie voor de zones is te vinden in /etc/shorewall/zones. Een voorbeeld zoals deze op het moment van schrijven staat ingesteld:&lt;br /&gt;
 #{zone} {type}&lt;br /&gt;
  fw     firewall&lt;br /&gt;
  ext    ipv4&lt;br /&gt;
  int    ipv4&lt;br /&gt;
  vm:int ipv4&lt;br /&gt;
&lt;br /&gt;
===Interfaces===&lt;br /&gt;
De interfaces van de router zijn in te stellen in /etc/shorewall/interfaces. Hierbij maken we onderscheid tussen intern(int) en extern(ext). Een voorbeeld zoals deze op [[oclaude]] staat ingesteld:&lt;br /&gt;
 #{zone} {interface} {opties}&lt;br /&gt;
  ext    enp4s0      blacklist,norfc1918&lt;br /&gt;
  int    enp3s0      dhcp,routeback&lt;br /&gt;
&lt;br /&gt;
===Variabelen===&lt;br /&gt;
Voor het gemak zijn er in shorewall enkel variabelen te gebruiken. Deze variabelen zijn in te stellen in /ets/shorewall/params. Bijvoorbeeld voor vm-mail:&lt;br /&gt;
 #{naam}={waarde}&lt;br /&gt;
  VM_MAIL=10.14.3.6&lt;br /&gt;
&lt;br /&gt;
===Port Forward===&lt;br /&gt;
De port forwards worden door de firewall geregeld in /etc/shorewall/rules. Deze file bevat alle speciale regels, waar port forwards dus ook toe behoren. Een portforward bestaat uit 2 regels, namelijk een regel voor verkeer afkomstig van het internet en een regel voor verkeer afkomstig van het interne netwerk. Daarnaast is er voor verkeer afkomstig van het interne netwerk een speciale masq regel nodig, welke ervoor zorgt dat het verkeer via de router loopt in plaats van direct.&lt;br /&gt;
&lt;br /&gt;
====Extern voorbeeld====&lt;br /&gt;
Voorbeeld regel voor externe forward in /etc/shorewall/rules, hierbij wordt de externe tcp-poort 25 doorgestuurd naar poort 25 van vm-mail:&lt;br /&gt;
 #{soort} {bron} {bestemming}    {tcp/udp} {inkomende poort}&lt;br /&gt;
  DNAT    ext    int:$vm-mail:25 tcp       25&lt;br /&gt;
&lt;br /&gt;
====Intern voorbeeld====&lt;br /&gt;
Voorbeeld regel voor interne forward in /etc/shorewall/rules, hierbij wordt de interne tcp-poort 25 doorgestuurd naar poort 25 van vm-mail, hierbij wordt de bron van het pakket omgezet naar de het externe ip van de router:&lt;br /&gt;
 #{soort} {bron} {bestemming}    {tcp/udp} {inkomende poort} {bron poort} {bron}&lt;br /&gt;
  DNAT    int    int:$vm-mail:25 tcp       25                -            $EXT_IP_VIRT&lt;br /&gt;
Om wijziging van de bron van het pakket te laten werken moet er ook een overeenkomstige regel aangemaakt worden /etc/shorewall/masq:&lt;br /&gt;
 #{interface:bestemming} {oorsprong} {bron}        {tcp/udp} {poort}&lt;br /&gt;
  enp3s0:$VM_MAIL        $INT_RANGE  $EXT_IP_VIRT  tcp       25&lt;br /&gt;
&lt;br /&gt;
==DHCP server==&lt;br /&gt;
Zie [[Dnsmasq|dnsmasq]].&lt;br /&gt;
&lt;br /&gt;
==Reverse Proxy==&lt;br /&gt;
De reverse proxy zorgt ervoor dat bezoekers van de websites, die gehost worden bij A-Eskwadraat, terecht komen bij de juiste webserver. Verder is dit het SSL-eindpunt zodat er verbindingen met https mogelijk zijn, zonder dat op iedere webserver het certificaat hoeft te staan.&lt;br /&gt;
We gebruiken hiervoor [http://nginx.org/ nginx]. Iedere webserver heeft een aparte file voor de configuratie in /etc/nginx/conf.d/ met de extensie conf.&lt;br /&gt;
&lt;br /&gt;
Als je website door de vm-www-dmz wordt gehost en je wilt deze in de router toevoegen, doe dit in het bestand vm-www-dmz.aeslist.&lt;br /&gt;
&lt;br /&gt;
Als je website op een eigen virtuele machine bij A-Eskwadraat staat is het volgende commando te gebruiken vanuit /etc/nginx/conf.d om een subdomein te maken:&lt;br /&gt;
 sed 's/template/{virtuele machine}/g' vm.template &amp;gt; vm-{virtuele machine}.conf&lt;br /&gt;
Daarbij wordt de volgende template gebruikt:&lt;br /&gt;
 ##Vervang hier alle verwijzingen met template naar de naam de virtuele machine&lt;br /&gt;
 # vm-template&lt;br /&gt;
 upstream vm-template {&lt;br /&gt;
     server vm-template:80; # Should be IP&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
     #listen 80; # accepteer poort 80&lt;br /&gt;
     include /etc/nginx/conf.d/https.common; # accepteer ssl verbinding met a-eskwadraat certificaat&lt;br /&gt;
 &lt;br /&gt;
     server_name template.a-eskwadraat.nl;&lt;br /&gt;
 &lt;br /&gt;
     access_log /var/log/nginx/access-vm-template.log main;&lt;br /&gt;
     error_log /var/log/nginx/error-vm-template.log;&lt;br /&gt;
     root /usr/share/nginx/html;&lt;br /&gt;
     index index.html;&lt;br /&gt;
 &lt;br /&gt;
     location / {&lt;br /&gt;
         proxy_pass http://vm-template;&lt;br /&gt;
         include /etc/nginx/conf.d/proxy.common;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Vergeet niet om de configuratie in salt op te slaan als je deze aanpast.&lt;br /&gt;
&lt;br /&gt;
===Redirects===&lt;br /&gt;
Naast dat nginx gebruikt wordt als reverse proxy, zorgt deze ook voor de verwijzingen. Deze zijn te vinden in /etc/nginx/conf.d/www-redirects.conf. Een voorbeeld functie van het redirecten is al het verkeer voor http://a-es2.nl wordt doorverwezen naar https://www.a-eskwadraat.nl.&lt;br /&gt;
&lt;br /&gt;
==Yum Cache==&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Router</id>
		<title>Router</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Router"/>
				<updated>2016-11-14T17:01:35Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: dnsmasq vermelden en nginx doet ook ssl eindpunt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:sysop]]&lt;br /&gt;
&lt;br /&gt;
==Router==&lt;br /&gt;
De router is de spin in ons netwerk. Hij bepaalt welke diensten beschikbaar zijn en hoe je die kunt benaderen. Hierbij is de router verantwoordelijk voor het afhandelen van al het inkomende en uitgaande dataverkeer van [[A-Eskwadraat]]. Op het moment zijn [[Ernst]] en [[oclaude]] de huidige routers.&lt;br /&gt;
&lt;br /&gt;
==Firewall==&lt;br /&gt;
Voor de firewall maken we gebruik van [http://shorewall.net/ shorewall]. De config is terug te vinden in [[salt]], en in /etc/shorewall op [[Ernst]] en [[oclaude]] zelf. Shorewall zorgt voor de iptables regels die de daadwerkelijke firewall vormen.&lt;br /&gt;
&lt;br /&gt;
===Zones===&lt;br /&gt;
Een firewall bestaat uit meerdere zones. Deze zijn er om onderscheid te maken tussen verschillende bronnen/bestemmingen. Op dit moment maken we gebruik van de zones firewall(fw), extern(ext) en intern(int). Het is ook mogelijk om zones binnen een zone aan te maken zoals voor virtuele machines(vm) die binnen de interne zone zitten, echter gebruiken we deze nog niet. De configuratie voor de zones is te vinden in /etc/shorewall/zones. Een voorbeeld zoals deze op het moment van schrijven staat ingesteld:&lt;br /&gt;
 #{zone} {type}&lt;br /&gt;
  fw     firewall&lt;br /&gt;
  ext    ipv4&lt;br /&gt;
  int    ipv4&lt;br /&gt;
  vm:int ipv4&lt;br /&gt;
&lt;br /&gt;
===Interfaces===&lt;br /&gt;
De interfaces van de router zijn in te stellen in /etc/shorewall/interfaces. Hierbij maken we onderscheid tussen intern(int) en extern(ext). Een voorbeeld zoals deze op [[oclaude]] staat ingesteld:&lt;br /&gt;
 #{zone} {interface} {opties}&lt;br /&gt;
  ext    enp4s0      blacklist,norfc1918&lt;br /&gt;
  int    enp3s0      dhcp,routeback&lt;br /&gt;
&lt;br /&gt;
===Variabelen===&lt;br /&gt;
Voor het gemak zijn er in shorewall enkel variabelen te gebruiken. Deze variabelen zijn in te stellen in /ets/shorewall/params. Bijvoorbeeld voor vm-mail:&lt;br /&gt;
 #{naam}={waarde}&lt;br /&gt;
  VM_MAIL=10.14.3.6&lt;br /&gt;
&lt;br /&gt;
===Port Forward===&lt;br /&gt;
De port forwards worden door de firewall geregeld in /etc/shorewall/rules. Deze file bevat alle speciale regels, waar port forwards dus ook toe behoren. Een portforward bestaat uit 2 regels, namelijk een regel voor verkeer afkomstig van het internet en een regel voor verkeer afkomstig van het interne netwerk. Daarnaast is er voor verkeer afkomstig van het interne netwerk een speciale masq regel nodig, welke ervoor zorgt dat het verkeer via de router loopt in plaats van direct.&lt;br /&gt;
&lt;br /&gt;
====Extern voorbeeld====&lt;br /&gt;
Voorbeeld regel voor externe forward in /etc/shorewall/rules, hierbij wordt de externe tcp-poort 25 doorgestuurd naar poort 25 van vm-mail:&lt;br /&gt;
 #{soort} {bron} {bestemming}    {tcp/udp} {inkomende poort}&lt;br /&gt;
  DNAT    ext    int:$vm-mail:25 tcp       25&lt;br /&gt;
&lt;br /&gt;
====Intern voorbeeld====&lt;br /&gt;
Voorbeeld regel voor interne forward in /etc/shorewall/rules, hierbij wordt de interne tcp-poort 25 doorgestuurd naar poort 25 van vm-mail, hierbij wordt de bron van het pakket omgezet naar de het externe ip van de router:&lt;br /&gt;
 #{soort} {bron} {bestemming}    {tcp/udp} {inkomende poort} {bron poort} {bron}&lt;br /&gt;
  DNAT    int    int:$vm-mail:25 tcp       25                -            $EXT_IP_VIRT&lt;br /&gt;
Om wijziging van de bron van het pakket te laten werken moet er ook een overeenkomstige regel aangemaakt worden /etc/shorewall/masq:&lt;br /&gt;
 #{interface:bestemming} {oorsprong} {bron}        {tcp/udp} {poort}&lt;br /&gt;
  enp3s0:$VM_MAIL        $INT_RANGE  $EXT_IP_VIRT  tcp       25&lt;br /&gt;
&lt;br /&gt;
==DHCP server==&lt;br /&gt;
Zie [[Dnsmasq|dnsmasq]].&lt;br /&gt;
&lt;br /&gt;
==Reverse Proxy==&lt;br /&gt;
De reverse proxy zorgt ervoor dat bezoekers van de websites, die gehost worden bij A-Eskwadraat, terecht komen bij de juiste webserver. Verder is dit het SSL-eindpunt zodat er verbindingen met https mogelijk zijn, zonder dat op iedere webserver het certificaat hoeft te staan.&lt;br /&gt;
We gebruiken hiervoor [http://nginx.org/ nginx]. Iedere webserver heeft een aparte file voor de configuratie in /etc/nginx/conf.d/ met de extensie conf.&lt;br /&gt;
&lt;br /&gt;
Als je website door de vm-www-dmz wordt gehost en je wilt deze in de router toevoegen, doe dit in het bestand vm-www-dmz.aeslist.&lt;br /&gt;
&lt;br /&gt;
Als je website op een eigen virtuele machine bij A-Eskwadraat staat is het volgende commando te gebruiken vanuit /etc/nginx/conf.d om een subdomein te maken:&lt;br /&gt;
 sed 's/template/{virtuele machine}/g' vm.template &amp;gt; vm-{virtuele machine}.conf&lt;br /&gt;
Daarbij wordt de volgende template gebruikt:&lt;br /&gt;
 ##Vervang hier alle verwijzingen met template naar de naam de virtuele machine&lt;br /&gt;
 # vm-template&lt;br /&gt;
 upstream vm-template {&lt;br /&gt;
     server vm-template:80; # Should be IP&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
     #listen 80; # accepteer poort 80&lt;br /&gt;
     include /etc/nginx/conf.d/https.common; # accepteer ssl verbinding met a-eskwadraat certificaat&lt;br /&gt;
 &lt;br /&gt;
     server_name template.a-eskwadraat.nl;&lt;br /&gt;
 &lt;br /&gt;
     access_log /var/log/nginx/access-vm-template.log main;&lt;br /&gt;
     error_log /var/log/nginx/error-vm-template.log;&lt;br /&gt;
     root /usr/share/nginx/html;&lt;br /&gt;
     index index.html;&lt;br /&gt;
 &lt;br /&gt;
     location / {&lt;br /&gt;
         proxy_pass http://vm-template;&lt;br /&gt;
         include /etc/nginx/conf.d/proxy.common;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Vergeet niet om de configuratie in salt op te slaan als je deze aanpast.&lt;br /&gt;
&lt;br /&gt;
===Redirects===&lt;br /&gt;
Naast dat nginx gebruikt wordt als reverse proxy, zorgt deze ook voor de verwijzingen. Deze zijn te vinden in /etc/nginx/conf.d/www-redirects.conf. Een voorbeeld functie van het redirecten is al het verkeer voor http://a-es2.nl wordt doorverwezen naar https://www.a-eskwadraat.nl.&lt;br /&gt;
&lt;br /&gt;
==Yum Cache==&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Ernst</id>
		<title>Ernst</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Ernst"/>
				<updated>2016-11-14T16:39:44Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: toch maar alle software bij router zetten&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:sysop]]&lt;br /&gt;
&lt;br /&gt;
Ernst is de huidige [[Router]] van het computerpark. De naam komt van [http://en.wikipedia.org/wiki/Ernst_Mach Ernst Mach], een bekende natuurkundige. Ernst moest de Haskell vervangen als router vanwege de snelheid, vandaar de keuze voor de naam Mach.&lt;br /&gt;
&lt;br /&gt;
Voor de software op Ernst, zie [[Router]].&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* Kast: LC Power LC-1350mi - - bureaumodel slimline - mini ITX - netspanningsadapter 75 Watt - zwart - USB/Audio&lt;br /&gt;
* Moederbord &amp;amp; Processor: Gigabyte GA-C1037UN - Mini-ITX - Intel Celeron 1037U - NM70 - 2 x Gigabit Ethernet - HD Graphics - eSATA&lt;br /&gt;
* SSD: Kingston SSDNow V300 - 60 GB - intern - 2.5&lt;br /&gt;
* Geheugen: Crucial - 4 GB - DIMM 240-pins - DDR3 - 1600 MHz / PC3-12800 - CL11 - 1.5 V - niet-gebufferd - niet-ECC&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Dnsmasq</id>
		<title>Dnsmasq</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Dnsmasq"/>
				<updated>2016-11-14T16:32:34Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: spacewalk eruit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:sysop]]&lt;br /&gt;
Binnen het A&amp;amp;ndash;Eskwadraat netwerk worden de IP-adressen uitgedeeld door de [[router]], middels dnsmasq. Dnsmasq zorgt ervoor dat iedere computer een IP-adres krijgt aan de hand van een mac-adres. Hierbij kan ook de naam van de computer gekoppeld worden.&lt;br /&gt;
&lt;br /&gt;
== Configuratie ==&lt;br /&gt;
Op de [[router]] is in de '/etc/dnsmasq.d' de configuratie van dnsmasq te vinden. Om wijzigingen in de configuratie door te voeren, dient dnsmasq opnieuw opgestart te worden middels:&lt;br /&gt;
 service dnsmasq restart&lt;br /&gt;
&lt;br /&gt;
=== Host-entry ===&lt;br /&gt;
Een host-entry ziet er als volgt uit:&lt;br /&gt;
 dhcp-host=[mac-adres],[hostname],[ip]&lt;br /&gt;
Het is ook mogelijk om een extra naam (CNAME) aan een host te hangen:&lt;br /&gt;
 cname=[new-hostname],[real-hostname]&lt;br /&gt;
&lt;br /&gt;
== PXE ==&lt;br /&gt;
Dnsmasq bevat naast de dhcp/dns functionaliteit ook een tftp-server. Hierdoor is het mogelijk om dnsmasq als een PXE-bootserver te gebruiken. Zoals geconfigureerd in '/etc/dnsmasq.d/tftp.conf'.&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Ernst</id>
		<title>Ernst</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Ernst"/>
				<updated>2016-11-14T16:23:38Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: ernst lijst met software&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:sysop]]&lt;br /&gt;
&lt;br /&gt;
Ernst is de huidige [[Router]] van het computerpark. De naam komt van [http://en.wikipedia.org/wiki/Ernst_Mach Ernst Mach], een bekende natuurkundige. Ernst moest de Haskell vervangen als router vanwege de snelheid, vandaar de keuze voor de naam Mach.&lt;br /&gt;
&lt;br /&gt;
Op Ernst wordt de volgende software uitgevoerd:&lt;br /&gt;
* Firewall: [[Firewall|shorewall]]&lt;br /&gt;
* DHCP server: dnsmasq&lt;br /&gt;
* HTTP proxy: nginx&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* Kast: LC Power LC-1350mi - - bureaumodel slimline - mini ITX - netspanningsadapter 75 Watt - zwart - USB/Audio&lt;br /&gt;
* Moederbord &amp;amp; Processor: Gigabyte GA-C1037UN - Mini-ITX - Intel Celeron 1037U - NM70 - 2 x Gigabit Ethernet - HD Graphics - eSATA&lt;br /&gt;
* SSD: Kingston SSDNow V300 - 60 GB - intern - 2.5&lt;br /&gt;
* Geheugen: Crucial - 4 GB - DIMM 240-pins - DDR3 - 1600 MHz / PC3-12800 - CL11 - 1.5 V - niet-gebufferd - niet-ECC&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Firewall</id>
		<title>Firewall</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Firewall"/>
				<updated>2016-11-14T16:20:56Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: shorewall draait op ernst - verder is deze pagina verouderd&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:sysop]]&lt;br /&gt;
&lt;br /&gt;
'''Deze pagina moet nog bijgewerkt worden met de huidige configuratie van Ernst'''&lt;br /&gt;
&lt;br /&gt;
Op [[Ernst]] draait de '''firewall''' [http://www.shorewall.net/ Shorewall].&lt;br /&gt;
&lt;br /&gt;
== iptables ==&lt;br /&gt;
Shorewall is een wrapper rond iptables, de low-level-configuratie die bepaalt wie naar de machine informatie over het netwerk mogen sturen. Met het commando ''iptables --list'' is deze configuratie op te vragen. Gebruik geen andere ''iptables''-commando's, in het bijzonder niet ''iptables --flush''; deze kunnen heel snel het systeem kapot maken.&lt;br /&gt;
&lt;br /&gt;
== Configuratie ==&lt;br /&gt;
De configuratie van shorewall gebeurt middels meerdere configuratie bestanden in ''/etc/shorewall''. Er zijn meer bestanden aanwezig dan hieronder beschreven, maar deze zijn dan niet aangepast ten opzichte van de standaard. &lt;br /&gt;
&lt;br /&gt;
=== shorewall.conf ===&lt;br /&gt;
Bevat de algemene instellingen voor shorewall, zoals logging, paden, &lt;br /&gt;
&lt;br /&gt;
=== interfaces ===&lt;br /&gt;
Bevat de koppeling tussen de interfaces en de zones.&lt;br /&gt;
&lt;br /&gt;
=== maclist ===&lt;br /&gt;
Bevat een lijst van mac-adressen van de vertrouwde machines binnen het lokale netwerk.&lt;br /&gt;
&lt;br /&gt;
=== params ===&lt;br /&gt;
Bevat variabelen die in andere configuratie bestanden van shorewall gebruikt kunnen worden.&lt;br /&gt;
&lt;br /&gt;
=== policy ===&lt;br /&gt;
Bevat de acties die toegestaan zijn tussen de verschillende zones.&lt;br /&gt;
&lt;br /&gt;
=== zones ===&lt;br /&gt;
Bevat zoals de naam al aangeeft de verschillende zones die gebruikt worden. Dit zijn:&lt;br /&gt;
* fw - firewall&lt;br /&gt;
* net - internet&lt;br /&gt;
* loc - lokaal netwerk&lt;br /&gt;
* ltr -  local netwerk&lt;br /&gt;
* vpn - externe gebruikers&lt;br /&gt;
* wlan - draadloos&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Workstations</id>
		<title>Workstations</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Workstations"/>
				<updated>2016-10-03T18:49:19Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: scanner instellen bij installatie workstation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:sysop]]&lt;br /&gt;
De '''workstations''' zijn de computers waarop gebruikers in kunnen loggen.&lt;br /&gt;
&lt;br /&gt;
== Workstations ==&lt;br /&gt;
De huidige workstations zijn:&lt;br /&gt;
* [[hendrik]] (Bestuurskamer)&lt;br /&gt;
* [[dennis]]&lt;br /&gt;
* [[pafnuty]]&lt;br /&gt;
* [[ada]] (Gezelligheidskamer)&lt;br /&gt;
* [[alonzo]]&lt;br /&gt;
* [[paul]] ([[ssh-extern]])&lt;br /&gt;
* [[felix]]&lt;br /&gt;
&lt;br /&gt;
== Installeren/updaten ==&lt;br /&gt;
'''&lt;br /&gt;
=== Installeren ===&lt;br /&gt;
&lt;br /&gt;
# Start de Fedora workstation kickstart van [[netboot]].&lt;br /&gt;
# Haal een kop koffie terwijl de installatie bezig is met installeren.&lt;br /&gt;
# Voeg de volgende regel toe aan /etc/dnsmasq.d/workstations.conf op de [[router]]:&lt;br /&gt;
#:*cname=&amp;lt;hostname&amp;gt;.localdomain,&amp;lt;hostname&amp;gt;.a-eskwadraat.nl&lt;br /&gt;
#:*dhcp-host=&amp;lt;mac-address&amp;gt;,tag:old,dennis,&amp;lt;ip&amp;gt;,infinite&lt;br /&gt;
# Gebruik de &amp;lt;hostname&amp;gt; en het &amp;lt;mac-address&amp;gt; van de nieuwe host, en een niet bezet ip-adres.&lt;br /&gt;
# Reboot nu de host zodat de veranderingen van hostname plaatsnemen.&lt;br /&gt;
# SSH naar de '''vm-salt-master''' en sta de nieuwe host toe met: &amp;lt;pre&amp;gt; [root@vm-salt-master]# salt-key -A &amp;lt;hostname&amp;gt;.a-eskwadraat.nl&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Zet in de /srv/salt/top.sls op de '''vm-salt-master''' de nieuwe workstation met de juiste configuratie&lt;br /&gt;
# Dwing nu een update af met salt. Zet de host niet uit! &amp;lt;pre&amp;gt;[root@vm-salt-master]# salt '&amp;lt;hostname&amp;gt;.a-eskwadraat.nl' state.highstate &amp;lt;/pre&amp;gt;&lt;br /&gt;
# Installeer nu bindfs (zie [[Bindfs]])&lt;br /&gt;
# Doe een IPA client install (zie [[IPA]]). Vergeet ook niet op in ipa de workstation in de host groups workstations te zetten!&lt;br /&gt;
# Installeer kernel-ml&lt;br /&gt;
# Het zou kunnen zijn dat er in de grub nog standaard de niet main line kernel geladen wordt. Verander dit in grub door eerst te kijken welke opties grub heeft met &amp;lt;pre&amp;gt;awk -F\' '$1==&amp;quot;menuentry &amp;quot; {print $2}' /etc/grub2-efi.cfg&amp;lt;/pre&amp;gt;. Je kan de huidige standaard optie zien met &amp;lt;pre&amp;gt;grub2-editenv list&amp;lt;/pre&amp;gt;. Om de default te veranderen naar een andere kernel doe je bv &amp;lt;pre&amp;gt;grub2-set-default 0&amp;lt;/pre&amp;gt; (0 is de eerste entry, 1 de volgende, etc.).&lt;br /&gt;
# Stel de scannersoftware van OKI in (zie [[Scanner]]).&lt;br /&gt;
# Reboot de workstation en highstate nog een keer voor de zekerheid&lt;br /&gt;
# De workstation is nu klaar voor gebruik.&lt;br /&gt;
&lt;br /&gt;
=== Updaten ===&lt;br /&gt;
Roep het volgende commando aan op de vm-salt-master. Vervang &amp;lt;hostname&amp;gt; met de lokale hostname. Onderbreek het proces niet!&lt;br /&gt;
&amp;lt;pre&amp;gt;[root@vm-salt-master]# salt '&amp;lt;hostname&amp;gt;.a-eskwadraat.nl' state.highstate &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Installeren -- Outdated! ===&lt;br /&gt;
Stappenplan om een nieuwe workstation te installeren:&lt;br /&gt;
&lt;br /&gt;
# Start een default Debian netinstall (van [[netboot]] of CD/DVD)&lt;br /&gt;
# Configureer de partities van de nieuwe workstation als volgt:&lt;br /&gt;
#* sda1: 200MB ext3 voor ''/boot''&lt;br /&gt;
#* sda2: als physical volume voor LVM volume group met naam ''ws_storage''. Maak de volgende Logical Volumes aan:&lt;br /&gt;
#** image1: 20GB ext3 voor ''/''&lt;br /&gt;
#** image2: 20GB ext3 (niet gebruiken)&lt;br /&gt;
#** swap: 4GB&lt;br /&gt;
#** local: 4GB ext3 (niet gebruiken)&lt;br /&gt;
#** tmp: 2GB ext3 (niet gebruiken)&lt;br /&gt;
# Maak een zo simpel mogelijke Debian installatie naar ''image1'' binnen LVM. (Ondertussen kunnen de volgende twee stappen uitgevoerd worden.)&lt;br /&gt;
# Voeg het ip- en MAC-adres van de nieuwe workstation toe aan de volgende bestanden op [[square]]:&lt;br /&gt;
#* ''/etc/dhcp/dhcpd.conf''&lt;br /&gt;
#* ''/etc/nsd3/zones/localdomain.zone''&lt;br /&gt;
#* ''/etc/[[shorewall]]/maclist''&lt;br /&gt;
# Voeg de machine toe in [[LDAP]].&lt;br /&gt;
# Reboot de machine in de nieuwe Debian installatie, installeer rsync en gebruik ''scp'' om de scripts &amp;quot;ws-update&amp;quot; en &amp;quot;ws-mkhostlink&amp;quot; naar ''/usr/local/sbin''.&lt;br /&gt;
# Configureer labels voor ''ext3'' filesystems:&lt;br /&gt;
#* e2label /dev/ws_storage/image1 image1&lt;br /&gt;
#* e2label /dev/ws_storage/image2 image2&lt;br /&gt;
#* e2label /dev/ws_storage/local local&lt;br /&gt;
#* e2label /dev/ws_storage/tmp tmp&lt;br /&gt;
# Pas ''/etc/fstab'' aan naar eigen wensen, bekijk ''/etc/fstab'' op een andere workstation ter referentie&lt;br /&gt;
# Kopieer ''/etc/fstab'' naar wsmaster: &amp;lt;pre&amp;gt;scp /etc/fstab wsmaster:/etc/fstab%mijnhostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Kopieer ''/etc/udev/rules.d/70-persistent-net.rules'' naar wsmaster: &amp;lt;pre&amp;gt;scp /etc/udev/rules.d/70-persistent-net.rules wsmaster:/etc/udev/rules.d/70-persistent-net.rules%mijnhostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Haal alle ssh configuratie op van ws-master (/root/.ssh/* en /etc/ssh/*)&lt;br /&gt;
# Haal het systeem op van wsmaster: &amp;lt;pre&amp;gt;ws-update --bootstrap /&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Als alles goed is gegaan, heeft ''ws-update'' een nieuwe Workstation image naar ''image2'' geschreven. Ook zijn de laatste kernels in ''/boot'' neergezet, maar ''/boot/grub/*'' is nog niet geschikt om van te booten. Elke workstation heeft z'n eigen Grubconfiguratie in ''/boot/grub'', kopieer er eentje van een andere workstation naar je nieuwe workstation en pas desgewenst ''menu.lst'' aan.&lt;br /&gt;
# Installeer Grub in de MBR van ''/dev/sda'': &amp;lt;pre&amp;gt;grub-install /dev/sda&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Updaten ===&lt;br /&gt;
# Draai &amp;lt;pre&amp;gt;ws-update&amp;lt;/pre&amp;gt; Door het gebruik van ''rsync'' zal dit tamelijk snel zijn als er weinig wijzigingen zijn. De oude inhoud doet er (muv. snelheid natuurlijk) niet toe: alles wat er niet hoort, wordt verwijderd.&lt;br /&gt;
# Reboot. De workstation zal als het goed is vanzelf in de nieuwe, geüpdatet image booten.&lt;br /&gt;
&lt;br /&gt;
=== Partities ===&lt;br /&gt;
&lt;br /&gt;
Op de workstations wordt de volgende indeling aangehouden voor de harde schijf:&lt;br /&gt;
&lt;br /&gt;
* Een primaire partitie voor ''/boot'' van 200MB&lt;br /&gt;
* Een tweede primaire partitie voor een grote LVM Volume Group (genaamd ''ws_storage''). In de LVM Volume Group de volgende Logical Volumes:&lt;br /&gt;
** Twee volumes voor twee images (''image1'' en ''image2''). De image is op het moment (februari 2009) 6.5 GB, dus met 8-20 GB zitten we voorlopig goed.&lt;br /&gt;
** Een volume met label ''local'' voor host-specifieke spullen van ongeveer 5 GB.&lt;br /&gt;
** Een volume voor swap van ongeveer 2 GB.&lt;br /&gt;
** Een volume van ca 2 GB voor ''/tmp'' met label ''tmp''. Doe: &amp;lt;pre&amp;gt;chmod a+rwxt /tmp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== fstab ===&lt;br /&gt;
&lt;br /&gt;
''/etc/fstab'' is nauwelijks nog host-specifiek, door het gebruik van labels.&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Geschiedenis ==&lt;br /&gt;
Aan al het goede komt een einde, zo ook aan de bruikbaarheid van onze computers. We willen onze oude beestjes na jaren trouwe dienst een ereplaats op de wiki geven.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table cellpadding=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Leonhard]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Intel Core 2 Quad, 4GB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Workstation&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Debian GNU/Linux (squeeze)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Edsger]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sempron 2600+, 2GB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Workstation&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Debian GNU/Linux (squeeze)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Grace]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sempron 2600+, 1GB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Workstation&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Debian GNU/Linux (squeeze)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Kurt]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Intel Pentium 4, 512MB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Boekverkoop-workstation&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Debian GNU/Linux (lenny)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Youg]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;486DX/4, 26MB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Mailterminal&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Debian GNU/Linux (woody)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Euclides]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Athlon 64 3000+, 1GB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;server, workstation&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Debian GNU/Linux (lenny)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Alan]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Athlon XP 2000, 1GB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;server, boekverkoop-workstation&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Debian GNU/Linux (lenny)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Janos]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Athlon XP 2200, 768MB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;workstation&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Debian GNU/Linux (etch)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Isaac]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Athlon XP 1800, 1GB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;workstation&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Debian GNU/Linux (etch)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Niels]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Athlon 900Mhz, 384MB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;workstation&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Debian GNU/Linux (sarge)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Leonardo]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pentium III 666MHz, 128MB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;workstation&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Debian GNU/Linux (sarge)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Georg]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pentium III 666MHz, 128MB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;workstation&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Debian GNU/Linux (sarge)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Emmy]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pentium III 666MHz, 128MB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;workstation&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Windows 2000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Richard]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Dual Celeron 400Mhz, 256MB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;workstation&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Debian GNU/Linux (sarge)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Marie]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pentium 3 666Mhz, 128MB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;VNC server&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Windows 2000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Albert]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Dual Celeron 466Mhz, 256MB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;server&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Debian GNU/Linux (woody)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Benjamin]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pentium 150Mhz, 128MB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;terminal&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Debian GNU/Linux (potato)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Piet]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pentium 100Mhz, 54MB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Debian development&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Debian GNU/Linux (sid)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Scanner</id>
		<title>Scanner</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Scanner"/>
				<updated>2016-10-03T18:46:31Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Om de OKI MC342 scanner ''pinky'' op een nieuwe workstation in te stellen zijn enkele stappen nodig.&lt;br /&gt;
&lt;br /&gt;
Uit de sysop-repo wordt bij een salt highstate het pakket &amp;lt;code&amp;gt;okimfpsdrv&amp;lt;/code&amp;gt; geïnstalleerd. Deze moet nog even ingesteld worden, dit gebeurt met het commando &amp;lt;code&amp;gt;okiscanadm&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Voer &amp;lt;code&amp;gt;okiscanadm&amp;lt;/code&amp;gt; uit als root, kies dan '''1''' om een scanner toe te voegen, daarna de volgende opties:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Searching for network scanner . . .:  ([y]/n)&amp;lt;/code&amp;gt; '''n'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Please enter scanner IP Address:&amp;lt;/code&amp;gt; '''10.14.0.24'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Please enter scanner name:&amp;lt;/code&amp;gt; '''pinky'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Alle andere opties laat je op hun standaardinstellingen staan, die tussen vierkante haken zijn gegeven.&lt;br /&gt;
&lt;br /&gt;
Ter bevestiging worden nog even de instellingen geprint, kies ja ter bevestiging als het klopt:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Proceed? (y/[n])&amp;lt;/code&amp;gt; '''y'''&lt;br /&gt;
&lt;br /&gt;
====== Voorbeeld: ======&lt;br /&gt;
&amp;lt;pre&amp;gt;# okiscanadm&lt;br /&gt;
Network Scanner Utility&lt;br /&gt;
&lt;br /&gt;
 1)  Add Network Scanner&lt;br /&gt;
 2)  Delete Network Scanner&lt;br /&gt;
&lt;br /&gt;
Please select option: 1&lt;br /&gt;
Searching for network scanner . . .:  ([y]/n) n&lt;br /&gt;
Please enter scanner IP Address: 10.14.0.24&lt;br /&gt;
Please enter scanner name: pinky&lt;br /&gt;
Please enter scanner port #[9967]: &lt;br /&gt;
Please enter PC Domain Name[felix.a-eskwadraat.nl]: &lt;br /&gt;
Please enter PC IP Address[10.14.0.35]: &lt;br /&gt;
Please enter PC port #[9968]: &lt;br /&gt;
&lt;br /&gt;
Scanner added . . .&lt;br /&gt;
&lt;br /&gt;
IP Address : 10.14.0.24&lt;br /&gt;
MAC Address : 00:25:36:1e:5b:f2&lt;br /&gt;
Model name : MC342&lt;br /&gt;
Scanner name : pinky&lt;br /&gt;
Scanner port # : 9967&lt;br /&gt;
PC Domain Name : felix.a-eskwadraat.nl&lt;br /&gt;
PC IP Address : 10.14.0.35&lt;br /&gt;
PC port # : 9968&lt;br /&gt;
&lt;br /&gt;
Proceed? (y/[n]) y&lt;br /&gt;
&lt;br /&gt;
* Added a network scanner on this PC.&lt;br /&gt;
* Added this PC on a MFP.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na deze installatie, herstart de computer of start zelf de &amp;lt;code&amp;gt;okiscand&amp;lt;/code&amp;gt; service:&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl start okiscand.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hierna is het mogelijk om scanprogramma's zoals &amp;lt;code&amp;gt;simple-scan&amp;lt;/code&amp;gt; te gebruiken.&lt;br /&gt;
[[Category:Sysop]]&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Scanner</id>
		<title>Scanner</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Scanner"/>
				<updated>2016-10-03T18:46:00Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: Scanner pagina gemaakt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Om de OKI MC342 scanner ''pinky'' op een nieuwe workstation in te stellen zijn enkele stappen nodig.&lt;br /&gt;
&lt;br /&gt;
Uit de sysop-repo wordt bij een salt highstate het pakket &amp;lt;code&amp;gt;okimfpsdrv&amp;lt;/code&amp;gt; geïnstalleerd. Deze moet nog even ingesteld worden, dit gebeurt met het commando &amp;lt;code&amp;gt;okiscanadm&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Voer &amp;lt;code&amp;gt;okiscanadm&amp;lt;/code&amp;gt; uit als root, kies dan '''1''' om een scanner toe te voegen, daarna de volgende opties:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Searching for network scanner . . .:  ([y]/n)&amp;lt;/code&amp;gt; '''n'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Please enter scanner IP Address:&amp;lt;/code&amp;gt; '''10.14.0.24'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Please enter scanner name:&amp;lt;/code&amp;gt; '''pinky'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Alle andere opties laat je op hun standaardinstellingen staan, die tussen vierkante haken zijn gegeven.&lt;br /&gt;
&lt;br /&gt;
Ter bevestiging worden nog even de instellingen geprint, kies ja ter bevestiging als het klopt:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Proceed? (y/[n])&amp;lt;/code&amp;gt; '''y'''&lt;br /&gt;
&lt;br /&gt;
====== Voorbeeld: ======&lt;br /&gt;
&amp;lt;pre&amp;gt;# okiscanadm&lt;br /&gt;
Network Scanner Utility&lt;br /&gt;
&lt;br /&gt;
 1)  Add Network Scanner&lt;br /&gt;
 2)  Delete Network Scanner&lt;br /&gt;
&lt;br /&gt;
Please select option: 1&lt;br /&gt;
Searching for network scanner . . .:  ([y]/n) n&lt;br /&gt;
Please enter scanner IP Address: 10.14.0.24&lt;br /&gt;
Please enter scanner name: pinky&lt;br /&gt;
Please enter scanner port #[9967]: &lt;br /&gt;
Please enter PC Domain Name[felix.a-eskwadraat.nl]: &lt;br /&gt;
Please enter PC IP Address[10.14.0.35]: &lt;br /&gt;
Please enter PC port #[9968]: &lt;br /&gt;
&lt;br /&gt;
Scanner added . . .&lt;br /&gt;
&lt;br /&gt;
IP Address : 10.14.0.24&lt;br /&gt;
MAC Address : 00:25:36:1e:5b:f2&lt;br /&gt;
Model name : MC342&lt;br /&gt;
Scanner name : pinky&lt;br /&gt;
Scanner port # : 9967&lt;br /&gt;
PC Domain Name : felix.a-eskwadraat.nl&lt;br /&gt;
PC IP Address : 10.14.0.35&lt;br /&gt;
PC port # : 9968&lt;br /&gt;
&lt;br /&gt;
Proceed? (y/[n]) y&lt;br /&gt;
&lt;br /&gt;
* Added a network scanner on this PC.&lt;br /&gt;
* Added this PC on a MFP.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na deze installatie, herstart de computer of start zelf de &amp;lt;code&amp;gt;okiscand&amp;lt;/code&amp;gt; service:&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl start okiscand.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hierna is het mogelijk om scanprogramma's zoals &amp;lt;code&amp;gt;simple-scan&amp;lt;/code&amp;gt; te gebruiken.&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/RootWachtwoord</id>
		<title>RootWachtwoord</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/RootWachtwoord"/>
				<updated>2016-03-30T15:43:47Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: deze pagina is oud&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Wijzigen ==&lt;br /&gt;
&lt;br /&gt;
Het rootwachtwoord moet op verschillende plekken gewijzigd worden:&lt;br /&gt;
&lt;br /&gt;
*In [[LDAP|LDAP]], root. Dit kan met:&lt;br /&gt;
&lt;br /&gt;
 # passwd&lt;br /&gt;
&lt;br /&gt;
*In LDAP, admin. Dit kan op square met:&lt;br /&gt;
&lt;br /&gt;
 # ldappasswd -x cn=admin,dc=a-eskwadraat,dc=nl -W -S&lt;br /&gt;
&lt;br /&gt;
*Lokaal op [[Square|square]]. Schakel alles behalve ''pam_unix'' uit in ''/etc/pam.d/common-password'', en haal achter ''pam_unix'' de optie ''use_first_pass'' weg; stel het nieuwe wachtwoord in met ''passwd''; en herstel de ''pam-config''.&lt;br /&gt;
*Lokaal op de [[Workstations|workstations]]. Alleen ''[[Wsmaster|wsmaster]]'' is genoeg als je het niet erg vindt om te wachten op een ''[[Ws-update|ws-update]]''. Gaat op dezelfde manier als lokaal op square.&lt;br /&gt;
&lt;br /&gt;
*In LDAP, Aministrator. Dit kan op square met:&lt;br /&gt;
&lt;br /&gt;
 # passwd Administrator&lt;br /&gt;
&lt;br /&gt;
*Lokaal op [[Windows|Windows]], Administrator. Log als ''Administrator'' lokaal in op de Windows template image en verander het wachtwoord via Start &amp;gt; Settings &amp;gt; Control Panel &amp;gt; User Accounts.&lt;br /&gt;
[[Category:Sysop oud]]&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Domeinen</id>
		<title>Domeinen</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Domeinen"/>
				<updated>2016-02-17T20:58:04Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: link naar nieuwe DNS pagina toegevoegd.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A-Eskwadraat regelt de domeinen via [https://www.xel.nl/cc https://www.xel.nl/cc]. Domeinen kunnen daar bekeken en aangevraagd worden. Hierbij moet het een &amp;quot;complete domain&amp;quot; zijn.&lt;br /&gt;
&lt;br /&gt;
Als een nieuw domein is aangevraagd, dient deze geconfigureerd te worden. Hiervoor moet het domein ingesteld worden via de &amp;quot;zonefile manager&amp;quot;, zodat er een eigen master server opgegeven kan worden. De dns master dient dan ingesteld te worden op 131.211.39.72.&lt;br /&gt;
&lt;br /&gt;
Vervolgens dient de [[DNS|vm-dns-auth]] bij a-eskwadraat aangepast te worden om het geregistreerde domein op te vangen. Daar dient een bestand aangemaakt te worden in /etc/nsd/zones. Kopieer hiervoor een van de bestanden, waar weinig bijzonderheden in staan. Pas vervolgens het domein in het bestand aan en de serial. Tot slot pas je /etc/nsd/nsd.conf aan, zodat deze ook de zone zal inladen. Als dit goed staat kan nsd het nieuwe bestand inladen.&lt;br /&gt;
&lt;br /&gt;
Test vervolgens de instelling middels nslookup of dig, dit kan direct naar de vm-dns-auth. Als dit correct is kan getest worden of het domein ook extern goed staat, dit kan echter even duren.&lt;br /&gt;
&lt;br /&gt;
De volgende stap is om het domein op te vangen bij de goede server. Oorspronkelijk wordt het niet opgevangen als er een request binnen komt, waardoor het op de a-eskwadraat site uit zal komen.&lt;br /&gt;
&lt;br /&gt;
Hierna dient er een pagina gemaakt te worden die de bezoeker zal opvangen, dit gebeurt meestal op vm-www-dmz. In /etc/httpd/conf.d/sites-available/ dient dan een extra bestand aangemaakt te worden, wederom is een eenvoudige config te kopieren en met kleine aanpassingen te gebruiken. Herstart vervolgens de httpd service.&lt;br /&gt;
&lt;br /&gt;
Als laatste zal er in de reverse proxy een aanpassing gemaakt moeten worden, zodat deze de bezoeker ook op de goed plek laat terecht komen. In het simpelste geval hoeft alleen /etc/nginx/conf.d/vm-www-dmz.list aangepast te worden, zodat het verkeer bij vm-www-dmz aankomt. Zorg vervolgens dat de config ingeladen wordt.&lt;br /&gt;
&lt;br /&gt;
Als laatste moet alle config die is aangepast ook in salt terecht komen, zodat het bewaard blijft en niet per ongeluk verwijderd wordt.&lt;br /&gt;
[[Category:Sysop]]&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/DNS</id>
		<title>DNS</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/DNS"/>
				<updated>2016-02-17T20:57:18Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: oude config vervangen door verhaal over nsd&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Alle internetdiensten van A-Eskwadraat worden bereikt, door het IP-adres dat bij de domeinnaam hoort op te zoeken in het DNS-systeem. Ieder domein heeft een zogeheten ''authoritative DNS server'': de server die de meest up-to-date configuratie hoort te hebben voor de DNS gegevens. Dit is bij A-Eskwadraat de ''vm-dns-auth'', een virtuele machine op [[Haskell]].&lt;br /&gt;
&lt;br /&gt;
Er zijn bij DNS verschillende typen ''records'': met een ''A''Het ''A'' record is het type dat je het vaakst zult gebruiken.&amp;lt;br/&amp;gt;Daarnaast bestaat er een ''CNAME'' record om aan te geven dat de server van een bepaald domein onder een andere naam (de ''canonical name'') beter bekend is, en dat het IP-adres daarvan opgezocht moet worden.&amp;lt;br/&amp;gt;Voor mail is er het ''MX''-record: dit geeft aan, waar de mailserver te vinden is van een domein. Hier wordt opgezocht waar mail afgeleverd moet worden die naar @''domein'' wordt opgestuurd. Er staat een getal bij om de prioriteit aan te geven, gebruik dit als er meerder mailservers voor een domein zijn en de tweede dient als backup mocht de eerste niet bereikbaar zijn/mails niet accepteren.&amp;lt;br/&amp;gt;'''Let op:''' Een ''MX'' record dat naar een ''CNAME'' record verwijst mag officieel niet. Sommige e-mailproviders (bijvoorbeeld GMX.de) weigeren mail naar het domein te sturen als het zo is ingesteld.&lt;br /&gt;
&lt;br /&gt;
== vm-dns-auth ==&lt;br /&gt;
&lt;br /&gt;
De software die wij op vm-dns-auth gebruiken heet [http://www.nlnetlabs.nl/nsd/ nsd]. Dit is een alternatief voor BIND, dat ook op veel DNS-servers toegepast wordt.&lt;br /&gt;
&lt;br /&gt;
In het bestand ''/etc/nsd/nsd.conf'' staan alle domeinen van A-Eskwadraat. Ieder domein heeft een eigen bestand in de map ''/etc/nsd/zones/'', met daarin alle hierboven beschreven records. De inhoud spreekt redelijk voor zich.&amp;lt;br/&amp;gt;'''Let wel op:''' bovenaan iedere zonefile staat een &amp;quot;serial&amp;quot;. Pas deze '''ALTIJD''' aan als je een wijziging aanbrengt, dit is belangrijk voor andere servers die DNS-records van ons in het cache bewaren (en nog belangrijker voor Xel, zie hieronder).&lt;br /&gt;
&lt;br /&gt;
=== Secondary DNS servers bij Xel ===&lt;br /&gt;
&lt;br /&gt;
Bij Xel, het bedrijf waar de [[Domeinen|domeinen]] beheerd worden, gebruiken wij twee servers, ns2.xel.nl en ns3.xel.nl als &amp;quot;secondary&amp;quot; DNS servers om de bereikbaarheid van een DNS server voor de A-Eskwadraat domeinen ook te garanderen als de server tijdelijk offline is. Om de DNS configuratie automatisch naar de servers bij Xel op te sturen is er een bestand ''/etc/nsd/acl/xel'' waarin de IP-adressen van deze servers staan. Dit bestand moet in ''/etc/nsd/nsd.conf'' genoemd moet worden bij ieder domein dat via Xel is aangevraagd. Vergeet verder niet, om bij iedere wijziging in een zonefile de serial aan te passen bovenaan dat bestand: als de serial niet wordt aangepast, blijft er verouderde configuratie op de servers van Xel staan, die er voor onbepaalde tijd blijft staan.&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Mail</id>
		<title>Mail</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Mail"/>
				<updated>2016-02-17T19:58:22Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: zin weggevallen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bij A–Eskwadraat gebruiken we '''Maildir''' voor de opslag van e-mail van gebruikers. We raden gebruikers aan om niet direct de Maildirmappen te benaderen, maar om dit via [http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol IMAP] of [http://www.washington.edu/alpine/ Alpine] te doen. De standaardconfiguratie van de meeste mailclients staat hier ook voor ingesteld.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
Op [[Haskell|haskell]] draait de virtuele machine vm-mailpp (spreek uit: mail plus plus) om het mailverkeer van en naar A-Eskwadraat te regelen:&lt;br /&gt;
&lt;br /&gt;
*[http://www.postfix.org/ postfix] (''/etc/postfix/'') verwerkt in principe alle binnenkomende mails, en wat er waarheen doorgestuurd moet worden;&lt;br /&gt;
*[http://www.dovecot.org/ dovecot] (''/etc/dovecot/'') neemt de POP- en IMAP-servers voor zijn rekening;&lt;br /&gt;
*[https://www.amavis.org/ amavis] (''/etc/amavisd/'') geeft alle binnenkomende mails door aan SpamAssassin en ClamAV om gefilterd te worden;&lt;br /&gt;
*[http://spamassassin.apache.org/ SpamAssassin] (''/etc/mail/spamassassin/'') [[Mailfiltering|filtert]] de spam uit het binnenkomende mailverkeer;&lt;br /&gt;
*[http://http://www.clamav.net/lang/en/ ClamAV] (''/etc/clamd.d/'') scant het mailverkeer voor virussen en dergelijke;&lt;br /&gt;
*[https://roundcube.net/ RoundCube] (''/etc/roundcubemail/'', ''/usr/share/roundcubemail'') is een webmailclient die in een [https://www.apache.org/ apache] webserver op vm-mailpp draait;&lt;br /&gt;
*[http://www.list.org/ Mailman] (''/etc/mailman/'') Mailman is verantwoordelijk voor de mailing lists, zoals de BBCie-announce.&lt;br /&gt;
&lt;br /&gt;
== Naamgeving Maildirmappen ==&lt;br /&gt;
&lt;br /&gt;
Let op dat om voor dovecot begrijpbare namen te hebben, de mappen op in ''~/Maildir'' altijd met een punt moeten beginnen. Submappen werken ook op deze manier. Een paar voorbeelden:&lt;br /&gt;
&lt;br /&gt;
*''~/Maildir/.Intro/'' voor de IMAP-map ''Intro'';&lt;br /&gt;
*''~/Maildir/.Sysop.postmaster/'' voor de map ''postmaster'' als submap van ''Sysop''.&lt;br /&gt;
&lt;br /&gt;
Als de mappen via IMAP worden aangemaakt gebeurt dit automatisch.&lt;br /&gt;
&lt;br /&gt;
== Postfix ==&lt;br /&gt;
&lt;br /&gt;
Postfix is de SMTP server voor de vm-mailpp.&lt;br /&gt;
&lt;br /&gt;
Postfix gebruikt meerdere ports om mail te ontvangen en te verwerken. Mail die wordt gestuurd door leden moet naar de SMTP daemon op port 587 (''submission'' poort) worden gestuurd. Authenticatie en TLS encryptie zijn een vereiste op deze verbinding. In de toekomst zal de [[Router|Router]] de encryptie tussen client en mail-server regelen. Alle andere mail komt binnen op port 25. Spam- en virus-filtering gebeurd via de SMTP daemons op ports 10025 en 10027 voor onbekende en bekende mail, respectievelijk.&lt;br /&gt;
&lt;br /&gt;
In ''/etc/postfix/master.cf'' staat de configuratie van deze daemons. De configuratie in ''/etc/postfix/main.cf'' wordt gebruikt voor zaken die niet in ''master.cf'' zijn opgegeven; in principe staat hier de configuratie voor poort 25 en worden de opties specifiek voor de andere poorten opgegeven in ''master.cf''.&lt;br /&gt;
&lt;br /&gt;
=== Transport ===&lt;br /&gt;
&lt;br /&gt;
Eerst checkt Postfix of de inkomende mail aan een lokaal mailadres is gestuurd. Welke domeinen als 'lokaal' worden bestempeld staat in ''/etc/postfix/domains/local''. Voor lokale mailadressen geldt, dat het domein in de verdere configuratie kan worden weggelaten.&amp;lt;br/&amp;gt;Daarna checkt Postfix of de inkomende mail naar een virtueel domein is gestuurd. Mailadressen van domeinen zoals turingslegacy.nl worden herschreven naar lokale mailadressen (zonder domeinnaam). De virtuele domeinen staan in ''/etc/postfix/domains/virtual''.&lt;br /&gt;
&lt;br /&gt;
De overblijvende adressen, worden opgezocht in de bestanden met aliases in /etc/postfix/aliases, om te zien of de mail toevallig naar een ander lokaal mailadres doorgestuurd moet worden. Postfix gebruikt hiervoor de bestanden in .db formaat, de tekstbestanden zonder extensie zijn voor ons als sysop leesbaar en te bewerken maar moeten wel met ''postalias'' in een .db bestand omgezet worden naar iedere wijziging.&amp;lt;br/&amp;gt;Als iemand dit vergeet na het aanpassen van een bestand met aliases, plaatst postfix een melding in ''/var/log/maillog'': &amp;quot;database file ''bestandsnaam''.db is older than source file ''bestandsnaam''&amp;quot;.&amp;lt;br/&amp;gt;Nu blijven er als het goed is, alleen gebruikersnamen over die op het systeem bestaan. Voor deze gebruikers wordt het bestand ''.forward'' in de homedirectory van de gebruiker opgezocht.&lt;br /&gt;
&lt;br /&gt;
Als in een ''.forward'' bestand de gebruikersnaam voorafgegaan door een backslash (\) wordt aangetroffen, wordt de mail in de Maildir map van die gebruiker geplaatst. Als een regel met een pipe (|) wordt aangetroffen, wordt het mailbericht doorgegeven als standard input aan het commando dat achter het |-teken staat. Andere regels met tekst worden geïnterpreteerd als mailadressen (lokaal zonder domeinnaam of willekeurig mailadres met domeinnaam) waarnaar de mail moet worden doorgestuurd.&amp;lt;br/&amp;gt;''Let op bij het gebruiken van de pipe (|): het kan zijn dat SELinux niet toestaat dat postfix een ander programma direct aanroept.''&lt;br /&gt;
&lt;br /&gt;
Als de mail niet bij een lokaal of virtueel adres hoort, checkt postfix of de inkomende mail is gestuurd naar een domein waarvoor A-Eskwadraat mail relayet. Deze mail word onveranderd naar de mailserver van dat domein verstuurd (relaying). Dit voorkomt verlies van mail voor het externe domein wanneer hun mailserver uitvalt, aangezien A-Eskwadraat de secondary mailserver is voor dat domein. Een uitzondering op de regel is mail bedoeld voor de webserver. Mail aan de webcie komt binnen op de mail server, maar moet worden doorgestuurd naar de webserver. De verwijzingen zijn te vinden in ''/etc/postfix/transport_www'' en ''/etc/postfix/transport_regex''.&lt;br /&gt;
&lt;br /&gt;
Let op dat deze uitleg heel erg bot is. Lees de relevante ''man'' pages van Postfix om te leren hoe mail word verwerkt. Let op dat veranderingen in een alias/transport/domain map niet worden opgemerkt tot het ''postmap'' of ''postalias'' op het bestand is aangeroepen!&lt;br /&gt;
&lt;br /&gt;
=== Mail Authorisatie ===&lt;br /&gt;
&lt;br /&gt;
Om te controleren of een gebruiker wel als een adres mag mailen wordt gebruik gemaakt van de smtpd_sender_login_maps optie voor postfix, die in een database de users opzoekt die als gegeven adres mogen versturen.&amp;amp;nbsp;Als er via SMTP een request gedaan wordt om van buitenaf een mail te versturen doet postfix een query en kijkt welke users als die alias mail mogen versturen. Deze config is op de vm-mailpp te vinden in `/etc/postfix/alias_auth.cf`.&lt;br /&gt;
&lt;br /&gt;
De database wordt gegenereerd door een python script die op de vm-sysop staat bij de sysop api, aangezien daar de mail aliases al staan voor de alias_check. Het python script, te vinden in `/var/www/html/api/python/mail-authorization.py`, loopt recursief langs alle users die in cies, bestuur, extern of iba zitten en kijkt daarnaast ook naar mail aliassen. Aan de hand hiervan wordt met een sql query alle transitieve relaties expliciet gemaakt, zodat dit niet runtime gedaan moet worden. Als een alias naar een cie wordt doorgestuurd, en een user weer in die cie zit, wil je dat die user ook als die alias mag mailen. Als database wordt PostgreSQL gebruikt op de vm-database. De database die gebruikt wordt heet &amp;quot;mail&amp;quot;. In de python code staan nog wat comments. Er draait op de vm-sysop een cron die af en toe de database refreshed. Daarnaast is het python script ook intern bereikbaar [http://vm-sysop.a-eskwadraat.nl/api/python/mail-authorization.py hier]. Bij het laden van deze pagina wordt de database gerefreshed. Op deze manier kan de database meteen gerefreshed worden zodra iemand toegevoegd is aan een cie. Als er in een alias een wildcard staat (*@bapc.eu: bapc), wat betekend dat alles van het domein bapc.eu naar de bapc commissie wordt gestuurd, wordt dit omgezet naar een SQL wildcard, wat uiteindelijk dus netjes werkt.&lt;br /&gt;
&lt;br /&gt;
=== Mailfiltering ===&lt;br /&gt;
&lt;br /&gt;
Postfix maakt gebruik van amavisd voor het filteren van de inkomende mail. Amavis is een interface voor SpamAssassin welke spam filtert en ClamAV welke mails op virussen scant. Check de configuratie op [[Vm-saltmaster|vm-saltmaster]] voor details.&lt;br /&gt;
&lt;br /&gt;
Om de virus database up te daten:&lt;br /&gt;
&amp;lt;pre&amp;gt;freshclam&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mailman ==&lt;br /&gt;
&lt;br /&gt;
Mailman is verantwoordelijk voor de infrastructuur van de mailing lists. De mailing lists zijn te vinden op [lists.a-eskwadraat.nl/mailman lists.a-eskwadraat.nl/mailman]. Er zijn twee belangrijke services om mailman te draaien: mailman en httpd. De configuratie van mailman bevind zich in ''/etc/mailman/'', de data bevind zich in ''/var/lib/mailman'', en de binaries bevinden zich in ''/usr/lib/mailman''.&lt;br /&gt;
&lt;br /&gt;
Gebruik de scripts in /usr/lib/mailman/bin om de mailing lists vanaf de command-line te wijzigen. De volgende commando's zijn belangrijk bij het debuggen / migreren van mailman:&lt;br /&gt;
&lt;br /&gt;
*check_perms: repareert de bestandsrechten van mailman-specifieke bestanden.&lt;br /&gt;
*with_list &amp;amp; fix_url: repareert de links van de mailman archieven indien deze zijn veranderd.&lt;br /&gt;
&lt;br /&gt;
Lees de [http://wiki.list.org/DOC/4.09%20Summary%20of%20the%20mailman%20bin%20commands MailmanWiki] voor een samenvatting van alle commands.&lt;br /&gt;
&lt;br /&gt;
Mailman werkt samen met de Postfix mailserver via de alias map ''/etc/mailman/aliases''. Voer het volgende commando uit na het toevoegen/verwijderen van een lijst zodat Postfix zijn alias database update:&lt;br /&gt;
&amp;lt;pre&amp;gt;postalias /etc/mailman/aliases&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na een migratie van de mailman lijsten is het belangrijk om ''restorecon'' uit te voeren op ''/var/lib/mailman''. Mailman en SELinux werken prima samen zolang de rechten maar goed staan.&lt;br /&gt;
&amp;lt;pre&amp;gt;# Samenvatting van een Mailman migratie.&lt;br /&gt;
# Op de nieuwe mailserver.&lt;br /&gt;
rsync -azv -e &amp;quot;ssh -i &amp;lt;sshkey&amp;gt;&amp;quot; &amp;lt;OUDEHOST&amp;gt;:/var/lib/mailman/ /var/lib/mailman/&lt;br /&gt;
restorecon -r /var/lib/mailman/&lt;br /&gt;
cd /usr/lib/mailman/&lt;br /&gt;
bin/check_perms -f&lt;br /&gt;
bin/withlist -l -a -r fix_url&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Dovecot is de IMAP server verantwoordelijk voor het ophalen en beheren van de mail opgeslagen in de homedirs. Mail wordt opgeslagen in de .Maildir van een gebruik zijn home directory. Momenteel is vm-mail de actieve IMAP server van A-Eskwadraat. De server luistert op poort 143 (standaard IMAP poort) en vereist een TLS-encrypted verbinding van de gebruiker. Het certificaat voor de verbinding is anders dan het certificaat van de webserver.&amp;amp;nbsp; Dovecot authenticeert gebruikers door middel van SASL-kerberos met de IPA servers. Dovecot werkt ook als authenticatie-server voor postfix door middel van een open socket. Een SELinux module is vereist om Postfix toegang te geven tot de socket.&lt;br /&gt;
&lt;br /&gt;
Voor meer configuratie details, zie de configuratie op de salt-master. (CentOS 6: /srv/salt/centos/vm-mail/dovecot, CentOS 7: /srv/salt/centos7/dovecot)&lt;br /&gt;
&lt;br /&gt;
'''AL DE CONFIGURATIE HIERONDER IS GIGANTISCH OUT OF DATE''' \/\/\/&lt;br /&gt;
&lt;br /&gt;
== Configuratie mailfilters ==&lt;br /&gt;
&lt;br /&gt;
Gebruik je een ''.forward'' of ''.procmailrc'' om e-mail direct in mappen te stoppen, let dan op de naamgeving (zie hierboven) en zorg ervoor dat de mappen altijd op een ''/'' eindigen. Begin je ''.procmailrc'' ook altijd met de regel&lt;br /&gt;
&lt;br /&gt;
 MAILDIR=$HOME/Maildir/&lt;br /&gt;
&lt;br /&gt;
om te zorgen dat e-mail toch niet in ''/var/mail'' terechtkomt.&lt;br /&gt;
&lt;br /&gt;
== Maak een mailserver met exim, en dovecot ==&lt;br /&gt;
&lt;br /&gt;
Zorg eerst dat sendmail uit staat!&lt;br /&gt;
&amp;lt;pre&amp;gt;service sendmail stop&lt;br /&gt;
chkconfig sendmail off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bij voorkeur verwijder je ook de package voor [[Postfix|postfix]]. Deze is standaard bij CentOS geïnstalleerd.&lt;br /&gt;
&lt;br /&gt;
=== Exim ===&lt;br /&gt;
&lt;br /&gt;
Exim is een MTA (Mail Transfer Agent) en is ervoor om mailtjes te versturen, ontvangen, en doorsturen. Dit gebeurd uiteraard op de mailserver!&lt;br /&gt;
&lt;br /&gt;
Installeer allereerst exim op de host.&lt;br /&gt;
&amp;lt;pre&amp;gt;# yum install exim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verander vervolgens het configuratie bestand /etc/exim/exim.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;# Het Mail domain - normaal gesproken a-eskwadraat.nl&lt;br /&gt;
primary_hostname = circle.a-eskwadraat.nl&lt;br /&gt;
&lt;br /&gt;
# Weiger met ipv6 te werken.&lt;br /&gt;
local_interfaces = 0.0.0.0&lt;br /&gt;
disable_ipv6 = true&lt;br /&gt;
&lt;br /&gt;
daemon_smtp_ports = smtp&amp;amp;nbsp;: submission&lt;br /&gt;
accept_8bitmime = true&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Lijsten van geldige mail domainin.&lt;br /&gt;
domainlist mailman_domains = CONFDIR/domains.mailman&lt;br /&gt;
domainlist local_domains = @&amp;amp;nbsp;: CONFDIR/domains.local&amp;amp;nbsp;: +mailman_domains&amp;amp;nbsp;: lsearch;CONFDIR/domains.virtual&lt;br /&gt;
domainlist relay_to_domains = CONFDIR/domains.relay&lt;br /&gt;
&lt;br /&gt;
hostlist relay_from_hosts = 10.14.3.0/22&lt;br /&gt;
&lt;br /&gt;
# Backup mail server in het geval dat onze niet werkt.&lt;br /&gt;
hostlist mx_hosts = mail.wolffelaar.nl&lt;br /&gt;
&lt;br /&gt;
qualify_domain = A-Eskwadraat.nl&lt;br /&gt;
&lt;br /&gt;
queue_run_max = 250&lt;br /&gt;
&lt;br /&gt;
smtp_accept_max = 100&lt;br /&gt;
smtp_accept_max_per_host = ${if match_ip{$sender_host_address}{+mx_hosts}{50}{10}}&lt;br /&gt;
&lt;br /&gt;
received_headers_max = 30&lt;br /&gt;
&lt;br /&gt;
RETRY_SECONDARY=F,90d,15m&lt;br /&gt;
RETRY_REST=F,2h,15m; G,16h,2h,1.5; F,4d,8h&lt;br /&gt;
&lt;br /&gt;
acl_smtp_rcpt = acl_check_rcpt&lt;br /&gt;
acl_not_smtp_start = acl_check_not_smtp&lt;br /&gt;
acl_smtp_data = acl_check_data&lt;br /&gt;
&lt;br /&gt;
host_lookup = *&lt;br /&gt;
helo_try_verify_hosts =&amp;amp;nbsp;!@&amp;amp;nbsp;:&amp;amp;nbsp;!@[]&lt;br /&gt;
helo_allow_chars = _&lt;br /&gt;
&lt;br /&gt;
# ClamAV - The Anti-Virus Scanner&lt;br /&gt;
av_scanner = clamd:/var/run/clamav/clamd.sock&lt;br /&gt;
&lt;br /&gt;
# Custom 5s limiet.&lt;br /&gt;
rfc1413_query_timeout = 5s&lt;br /&gt;
&lt;br /&gt;
# Mailman support, als per /usr/share/doc/mailman/README.EXIM.gz&lt;br /&gt;
MAILMAN_HOME=/var/lib/mailman&lt;br /&gt;
MAILMAN_WRAP=/usr/lib/mailman/mail/mailman&lt;br /&gt;
MAILMAN_USER=mailman&lt;br /&gt;
MAILMAN_GROUP=mailman&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dovecot ===&lt;br /&gt;
&lt;br /&gt;
Dovecot is een IMAP en POP3 server, wat inhoud dat het mailtjes kan ontvangen, iets wat best wel handig is om te hebben. Installeer dovecot op je mailserver als je dat nog niet gedaan hebt. Verander dan nu het volgende:&lt;br /&gt;
&lt;br /&gt;
In /etc/dovecot/dovecot.conf:&lt;br /&gt;
&lt;br /&gt;
*protocols = imap&lt;br /&gt;
*login_trusted_networks = &amp;amp;lt;ip-adressen die je vertrouwd&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In /etc/dovecot/conf.d/10-mail.conf&lt;br /&gt;
&lt;br /&gt;
*mail_location = maildir:~/Maildir&lt;br /&gt;
*lock_method = dotlock&lt;br /&gt;
&lt;br /&gt;
In /etc/dovecot/conf.d/10-auth.conf&lt;br /&gt;
&lt;br /&gt;
*disable_plaintext_auth = no&lt;br /&gt;
*auth_realms = aeskwadraat&lt;br /&gt;
*auth_default_realm = aeskwadraat&lt;br /&gt;
*auth_gssapi_hostname = &amp;amp;lt;ipa-server&amp;amp;gt;&lt;br /&gt;
*auth_krb5_keytab = /etc/dovecot/krb5.keytab&lt;br /&gt;
*auth_mechanisms = plain gssapi&lt;br /&gt;
&lt;br /&gt;
en zet op het einde&lt;br /&gt;
&amp;lt;pre&amp;gt;userdb {&lt;br /&gt;
  driver = static&lt;br /&gt;
  args = uid=dovecot gid=dovecot home=/var/spool/mail/%u&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maak nu op de ipa-server een service imap aan met de mailserver als host. Dit kan je doen via de webinterface. Voer vervolgens het volgende uit op de mailserver:&lt;br /&gt;
&amp;lt;pre&amp;gt;kinit admin&lt;br /&gt;
ipa-getkeytab -s &amp;lt;ipa-server&amp;gt; -p imap/&amp;lt;mailserver&amp;gt; -k /etc/dovecot/krb5.keytab&lt;br /&gt;
chown root:dovecot /etc/dovecot/krb5.keytab&lt;br /&gt;
chmod 640 /etc/dovecot/krb5.keytab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart dovecot en zet hem standaard aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;service dovecot restart&lt;br /&gt;
chkconfig dovecot on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zet tenslotte nog met system-config-firewall-tui 'imap over ssl' en 'mail (smtp)' aan, en voila! Je kan nu met ipa-users gebruik maken van IMAP om mailtjes te ontvangen!&lt;br /&gt;
&lt;br /&gt;
Je kan eventueel in /etc/postfix/main.cf en /etc/dovecot/conf.d/10-mail.conf nog het een ander van waar de mail wordt opgeslagen veranderen.&lt;br /&gt;
&lt;br /&gt;
=== Spamassassin ===&lt;br /&gt;
&lt;br /&gt;
Spamassassin is een mailfilteringprogramma voor spam. Om het te installeren:&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install spamassassin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maak nu de user en group spamd aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;groupadd -g 5001 spamd&lt;br /&gt;
useradd -u 5001 -g spamd -s /sbin/nologin -d /var/lib/spamassassin spamd&lt;br /&gt;
mkdir /var/lib/spamassassin&lt;br /&gt;
chown spamd:spamd /var/lib/spamassassin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zet dan het volgende in /etc/mail/spamassassin/local.cf:&lt;br /&gt;
&amp;lt;pre&amp;gt;required_score 5.0&lt;br /&gt;
report_safe 0&lt;br /&gt;
rewrite_header Subject [***SPAM***]&lt;br /&gt;
&lt;br /&gt;
# Enable the Bayes system&lt;br /&gt;
use_bayes 1&lt;br /&gt;
use_bayes_rules 1&lt;br /&gt;
# Enable Bayes auto-learning&lt;br /&gt;
bayes_auto_learn 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verander nu in /etc/postfix/master.cf&lt;br /&gt;
&amp;lt;pre&amp;gt;smtp      inet  n       -       n       -       -       smtpd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in&lt;br /&gt;
&amp;lt;pre&amp;gt;smtp      inet  n       -       n       -       -       smtpd -o content_filter=spamassassin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
en stop op het einde van master.cf:&lt;br /&gt;
&amp;lt;pre&amp;gt;spamassassin unix - n n - - pipe flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart nu spamassassin en postfix:&lt;br /&gt;
&amp;lt;pre&amp;gt;chkconfig spamassassin on&lt;br /&gt;
service spamassassin restart&lt;br /&gt;
service postfix restart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aliases ===&lt;br /&gt;
&lt;br /&gt;
In postfix staan de locaties van de aliases in /etc/postfix/main.cf. Deze kan je vinden bij de regel 'alias_maps = ...'. Als je een nieuw aliasbestand wilt toevoegen, voeg dit dan ook toe bij deze regel als hash:&amp;amp;lt;bestandslocatie&amp;amp;gt;. Vergeet ook niet om dit toe te voegen bij alias_database!.&lt;br /&gt;
&lt;br /&gt;
De aliases zelf staan geconfigureerd in de aliasbestanden die te vinden zijn onder /etc/postfix/alias/. Als je een nieuwe alias in een bestand hebt gezet moet je het db-bestand up-to-date make door het commando 'postalias *bestand*' uitvoeren. Let erop dat de bestandsnaam de naam van het bestand is wat je gewijzigd hebt, niet een bestand met extensie '.db'.&lt;br /&gt;
&lt;br /&gt;
== Instellingen ==&lt;br /&gt;
&lt;br /&gt;
=== Postfix ===&lt;br /&gt;
&lt;br /&gt;
==== Mail relay ====&lt;br /&gt;
&lt;br /&gt;
Postfix kan mail relayen naar een extern domein. Hiervoor is de volgende regel:&lt;br /&gt;
&amp;lt;pre&amp;gt;relay_domains = $mydestination, hash:/etc/postfix/domains.relay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In het bestand /etc/postfix/domains.relay staat de lijst van alle externe domains waar mail naar toe gerelayed wordt. Als je iets in het bestand wijzigt, vergeet dan niet om daarna het commando&lt;br /&gt;
&amp;lt;pre&amp;gt;postmap /etc/postfix/domains.relay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
uit te voeren.&lt;br /&gt;
&lt;br /&gt;
==== Whitelist ====&lt;br /&gt;
&lt;br /&gt;
Postfix kan gebruik maken van een whitelist. Zorg hiervoor dat er het volgende in /etc/postfix/main.cf staat:&lt;br /&gt;
&amp;lt;pre&amp;gt;smtpd_client_restrictions = check_client_access hash:/etc/postfix/client.access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In het bestand /etc/postfix/client.access staat de lijst van alle domains die geweigerd en toegelaten worden. Als je hier iets in verandert, vergeet dan niet om uit te voeren&lt;br /&gt;
&amp;lt;pre&amp;gt;postmap /etc/postfix/access.client&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SquirrelMail ==&lt;br /&gt;
&lt;br /&gt;
SquirrelMail is een webmail-client.&lt;br /&gt;
&lt;br /&gt;
=== SquirrelMail installeren ===&lt;br /&gt;
&lt;br /&gt;
Installeer eerst natuurlijk Squirrelmail:&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install squirrelmail&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zorg ervoor dat httpd standaard aan staat en start httpd:&lt;br /&gt;
&amp;lt;pre&amp;gt;chkconfig httpd on&lt;br /&gt;
service httpd start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verander nu het volgende in /etc/squirrelmail/config.php:&lt;br /&gt;
&amp;lt;pre&amp;gt;$org_name        = &amp;quot;A-Eskwadraat&amp;quot;;&lt;br /&gt;
$org_logo        = SM_PATH . 'images/sm_logo.png';&lt;br /&gt;
$org_logo_width  = '308';&lt;br /&gt;
$org_logo_height = '111';&lt;br /&gt;
$org_title       = 'A-Eskwadraat SquirrelMail $version&amp;quot;;&lt;br /&gt;
$signout_page    = 'vm-mail.a-eskwadraat.nl';&lt;br /&gt;
&lt;br /&gt;
$domain            = 'circle.a-eskwadraat.nl';&lt;br /&gt;
$imapServerAddress = 'localhost';&lt;br /&gt;
$useSendmail       = false;&lt;br /&gt;
$smtpServerAddress = 'localhost';&lt;br /&gt;
$pop_before_smtp   = false;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zet nu het A-Eskwadraat logo in de squirrelmail config map.&lt;br /&gt;
&amp;lt;pre&amp;gt;setsebool -P httpd_can_network_connect 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RoundcubeMail ==&lt;br /&gt;
&lt;br /&gt;
Roundcube is ook een webmail client.&lt;br /&gt;
&lt;br /&gt;
=== Installeren ===&lt;br /&gt;
&lt;br /&gt;
Op vm-salt-master staat een configuratie voor een Roundcube mail VM met een korte readme. Deze zorgt ervoor dat httpd, roundcubemail en mariadb geinstalleerd staan. Salt een VM met deze configuratie.&lt;br /&gt;
&amp;lt;pre&amp;gt;salt '$hostname' state.highstate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Laat vervolgens httpd van die VM door de firewall heen. Daarna moet de database voor Roundcube geinitialiseerd worden. Dit gaat met mysql.&lt;br /&gt;
&amp;lt;pre&amp;gt;CREATE DATABASE roundcubemail;&lt;br /&gt;
GRANT ALL PRIVILEGES on roundcubemail.* TO roundcube@localhost IDENTIFIED BY '$password';&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nu moet de timezone nog even ingesteld worden in /etc/php.ini op de roundcube VM. Daarna moeten er nog de juiste tables in de database worden gezet. Dit kan door op de nieuwe VM de bestanden in /etc/roundcubemail/databasefiles te runnen met mysql.&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql roundcubemail &amp;lt; mysql.initial.sql&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Sysop]]&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Mail</id>
		<title>Mail</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Mail"/>
				<updated>2016-02-17T19:55:37Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: kleine foutjes die door editor van mediawiki zijn ontstaan&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bij A–Eskwadraat gebruiken we '''Maildir''' voor de opslag van e-mail van gebruikers. We raden gebruikers aan om niet direct de Maildirmappen te benaderen, maar om dit via [http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol IMAP] of [http://www.washington.edu/alpine/ Alpine] te doen. De standaardconfiguratie van de meeste mailclients staat hier ook voor ingesteld.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
Op [[Haskell|haskell]] draait de virtuele machine vm-mailpp (spreek uit: mail plus plus) om het mailverkeer van en naar A-Eskwadraat te regelen:&lt;br /&gt;
&lt;br /&gt;
*[http://www.postfix.org/ postfix] (''/etc/postfix/'') verwerkt in principe alle binnenkomende mails, en wat er waarheen doorgestuurd moet worden;&lt;br /&gt;
*[http://www.dovecot.org/ dovecot] (''/etc/dovecot/'') neemt de POP- en IMAP-servers voor zijn rekening;&lt;br /&gt;
*[https://www.amavis.org/ amavis] (''/etc/amavisd/'') geeft alle binnenkomende mails door aan SpamAssassin en ClamAV om gefilterd te worden;&lt;br /&gt;
*[http://spamassassin.apache.org/ SpamAssassin] (''/etc/mail/spamassassin/'') [[Mailfiltering|filtert]] de spam uit het binnenkomende mailverkeer;&lt;br /&gt;
*[http://http://www.clamav.net/lang/en/ ClamAV] (''/etc/clamd.d/'') scant het mailverkeer voor virussen en dergelijke;&lt;br /&gt;
*[https://roundcube.net/ RoundCube] (''/etc/roundcubemail/'', ''/usr/share/roundcubemail'') is een webmailclient die in een [https://www.apache.org/ apache] webserver op vm-mailpp draait;&lt;br /&gt;
*[http://www.list.org/ Mailman] (''/etc/mailman/'') Mailman is verantwoordelijk voor de mailing lists, zoals de BBCie-announce.&lt;br /&gt;
&lt;br /&gt;
== Naamgeving Maildirmappen ==&lt;br /&gt;
&lt;br /&gt;
Let op dat om voor dovecot begrijpbare namen te hebben, de mappen op in ''~/Maildir'' altijd met een punt moeten beginnen. Submappen werken ook op deze manier. Een paar voorbeelden:&lt;br /&gt;
&lt;br /&gt;
*''~/Maildir/.Intro/'' voor de IMAP-map ''Intro'';&lt;br /&gt;
*''~/Maildir/.Sysop.postmaster/'' voor de map ''postmaster'' als submap van ''Sysop''.&lt;br /&gt;
&lt;br /&gt;
Als de mappen via IMAP worden aangemaakt gebeurt dit automatisch.&lt;br /&gt;
&lt;br /&gt;
== Postfix ==&lt;br /&gt;
&lt;br /&gt;
Postfix is de SMTP server voor de vm-mailpp.&lt;br /&gt;
&lt;br /&gt;
Postfix gebruikt meerdere ports om mail te ontvangen en te verwerken. Mail die wordt gestuurd door leden moet naar de SMTP daemon op port 587 (''submission'' poort) worden gestuurd. Authenticatie en TLS encryptie zijn een vereiste op deze verbinding. In de toekomst zal de [[Router|Router]] de encryptie tussen client en mail-server regelen. Alle andere mail komt binnen op port 25. Spam- en virus-filtering gebeurd via de SMTP daemons op ports 10025 en 10027 voor onbekende en bekende mail, respectievelijk.&lt;br /&gt;
&lt;br /&gt;
In ''/etc/postfix/master.cf'' staat de configuratie van deze daemons. De configuratie in ''/etc/postfix/main.cf'' wordt gebruikt voor zaken die niet in ''master.cf'' zijn opgegeven; in principe staat hier de configuratie voor poort 25 en worden de opties specifiek voor de andere poorten opgegeven in ''master.cf''.&lt;br /&gt;
&lt;br /&gt;
=== Transport ===&lt;br /&gt;
&lt;br /&gt;
Eerst checkt Postfix of de inkomende mail aan een lokaal mailadres is gestuurd. Welke domeinen als 'lokaal' worden bestempeld staat in ''/etc/postfix/domains/local''. Voor lokale mailadressen geldt, dat het domein in de verdere configuratie kan worden weggelaten.&amp;lt;br/&amp;gt;Daarna checkt Postfix of de inkomende mail naar een virtueel domein is gestuurd. Mailadressen van domeinen zoals turingslegacy.nl worden herschreven naar lokale mailadressen (zonder domeinnaam). De virtuele domeinen staan in ''/etc/postfix/domains/virtual''.&lt;br /&gt;
&lt;br /&gt;
De overblijvende adressen, worden opgezocht in de bestanden met aliases in /etc/postfix/aliases, om te zien of de mail toevallig naar een ander lokaal mailadres doorgestuurd moet worden. Postfix gebruikt hiervoor de bestanden in .db formaat, de tekstbestanden zonder extensie zijn voor ons als sysop leesbaar en te bewerken maar moeten wel met ''postalias'' in een .db bestand omgezet worden naar iedere wijziging.&amp;lt;br/&amp;gt;Als iemand dit vergeet na het aanpassen van een bestand met aliases, plaatst postfix een melding in ''/var/log/maillog'': &amp;quot;database file ''bestandsnaam''.db is older than source file ''bestandsnaam''&amp;quot;.&amp;lt;br/&amp;gt;Nu blijven er als het goed is, alleen gebruikersnamen over die op het systeem bestaan. Voor deze gebruikers wordthet bestand ''.forward'' de gebruikersnaam voorafgegaan door een backslash (\) wordt aangetroffen, wordt de mail in de Maildir map van die gebruiker geplaatst. Als een regel met een pipe (|) wordt aangetroffen, wordt het mailbericht doorgegeven als standard input aan het commando dat achter het |-teken staat. Andere regels met tekst worden geïnterpreteerd als mailadressen (lokaal zonder domeinnaam of willekeurig mailadres met domeinnaam) waarnaar de mail moet worden doorgestuurd.&amp;lt;br/&amp;gt;''Let op bij het gebruiken van de pipe (|): het kan zijn dat SELinux niet toestaat dat postfix een ander programma direct aanroept.''&lt;br /&gt;
&lt;br /&gt;
Als de mail niet bij een lokaal of virtueel adres hoort, checkt postfix of de inkomende mail is gestuurd naar een domein waarvoor A-Eskwadraat mail relayet. Deze mail word onveranderd naar de mailserver van dat domein verstuurd (relaying). Dit voorkomt verlies van mail voor het externe domein wanneer hun mailserver uitvalt, aangezien A-Eskwadraat de secondary mailserver is voor dat domein. Een uitzondering op de regel is mail bedoeld voor de webserver. Mail aan de webcie komt binnen op de mail server, maar moet worden doorgestuurd naar de webserver. De verwijzingen zijn te vinden in ''/etc/postfix/transport_www'' en ''/etc/postfix/transport_regex''.&lt;br /&gt;
&lt;br /&gt;
Let op dat deze uitleg heel erg bot is. Lees de relevante ''man'' pages van Postfix om te leren hoe mail word verwerkt. Let op dat veranderingen in een alias/transport/domain map niet worden opgemerkt tot het ''postmap'' of ''postalias'' op het bestand is aangeroepen!&lt;br /&gt;
&lt;br /&gt;
=== Mail Authorisatie ===&lt;br /&gt;
&lt;br /&gt;
Om te controleren of een gebruiker wel als een adres mag mailen wordt gebruik gemaakt van de smtpd_sender_login_maps optie voor postfix, die in een database de users opzoekt die als gegeven adres mogen versturen.&amp;amp;nbsp;Als er via SMTP een request gedaan wordt om van buitenaf een mail te versturen doet postfix een query en kijkt welke users als die alias mail mogen versturen. Deze config is op de vm-mailpp te vinden in `/etc/postfix/alias_auth.cf`.&lt;br /&gt;
&lt;br /&gt;
De database wordt gegenereerd door een python script die op de vm-sysop staat bij de sysop api, aangezien daar de mail aliases al staan voor de alias_check. Het python script, te vinden in `/var/www/html/api/python/mail-authorization.py`, loopt recursief langs alle users die in cies, bestuur, extern of iba zitten en kijkt daarnaast ook naar mail aliassen. Aan de hand hiervan wordt met een sql query alle transitieve relaties expliciet gemaakt, zodat dit niet runtime gedaan moet worden. Als een alias naar een cie wordt doorgestuurd, en een user weer in die cie zit, wil je dat die user ook als die alias mag mailen. Als database wordt PostgreSQL gebruikt op de vm-database. De database die gebruikt wordt heet &amp;quot;mail&amp;quot;. In de python code staan nog wat comments. Er draait op de vm-sysop een cron die af en toe de database refreshed. Daarnaast is het python script ook intern bereikbaar [http://vm-sysop.a-eskwadraat.nl/api/python/mail-authorization.py hier]. Bij het laden van deze pagina wordt de database gerefreshed. Op deze manier kan de database meteen gerefreshed worden zodra iemand toegevoegd is aan een cie. Als er in een alias een wildcard staat (*@bapc.eu: bapc), wat betekend dat alles van het domein bapc.eu naar de bapc commissie wordt gestuurd, wordt dit omgezet naar een SQL wildcard, wat uiteindelijk dus netjes werkt.&lt;br /&gt;
&lt;br /&gt;
=== Mailfiltering ===&lt;br /&gt;
&lt;br /&gt;
Postfix maakt gebruik van amavisd voor het filteren van de inkomende mail. Amavis is een interface voor SpamAssassin welke spam filtert en ClamAV welke mails op virussen scant. Check de configuratie op [[Vm-saltmaster|vm-saltmaster]] voor details.&lt;br /&gt;
&lt;br /&gt;
Om de virus database up te daten:&lt;br /&gt;
&amp;lt;pre&amp;gt;freshclam&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mailman ==&lt;br /&gt;
&lt;br /&gt;
Mailman is verantwoordelijk voor de infrastructuur van de mailing lists. De mailing lists zijn te vinden op [lists.a-eskwadraat.nl/mailman lists.a-eskwadraat.nl/mailman]. Er zijn twee belangrijke services om mailman te draaien: mailman en httpd. De configuratie van mailman bevind zich in ''/etc/mailman/'', de data bevind zich in ''/var/lib/mailman'', en de binaries bevinden zich in ''/usr/lib/mailman''.&lt;br /&gt;
&lt;br /&gt;
Gebruik de scripts in /usr/lib/mailman/bin om de mailing lists vanaf de command-line te wijzigen. De volgende commando's zijn belangrijk bij het debuggen / migreren van mailman:&lt;br /&gt;
&lt;br /&gt;
*check_perms: repareert de bestandsrechten van mailman-specifieke bestanden.&lt;br /&gt;
*with_list &amp;amp; fix_url: repareert de links van de mailman archieven indien deze zijn veranderd.&lt;br /&gt;
&lt;br /&gt;
Lees de [http://wiki.list.org/DOC/4.09%20Summary%20of%20the%20mailman%20bin%20commands MailmanWiki] voor een samenvatting van alle commands.&lt;br /&gt;
&lt;br /&gt;
Mailman werkt samen met de Postfix mailserver via de alias map ''/etc/mailman/aliases''. Voer het volgende commando uit na het toevoegen/verwijderen van een lijst zodat Postfix zijn alias database update:&lt;br /&gt;
&amp;lt;pre&amp;gt;postalias /etc/mailman/aliases&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na een migratie van de mailman lijsten is het belangrijk om ''restorecon'' uit te voeren op ''/var/lib/mailman''. Mailman en SELinux werken prima samen zolang de rechten maar goed staan.&lt;br /&gt;
&amp;lt;pre&amp;gt;# Samenvatting van een Mailman migratie.&lt;br /&gt;
# Op de nieuwe mailserver.&lt;br /&gt;
rsync -azv -e &amp;quot;ssh -i &amp;lt;sshkey&amp;gt;&amp;quot; &amp;lt;OUDEHOST&amp;gt;:/var/lib/mailman/ /var/lib/mailman/&lt;br /&gt;
restorecon -r /var/lib/mailman/&lt;br /&gt;
cd /usr/lib/mailman/&lt;br /&gt;
bin/check_perms -f&lt;br /&gt;
bin/withlist -l -a -r fix_url&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Dovecot is de IMAP server verantwoordelijk voor het ophalen en beheren van de mail opgeslagen in de homedirs. Mail wordt opgeslagen in de .Maildir van een gebruik zijn home directory. Momenteel is vm-mail de actieve IMAP server van A-Eskwadraat. De server luistert op poort 143 (standaard IMAP poort) en vereist een TLS-encrypted verbinding van de gebruiker. Het certificaat voor de verbinding is anders dan het certificaat van de webserver.&amp;amp;nbsp; Dovecot authenticeert gebruikers door middel van SASL-kerberos met de IPA servers. Dovecot werkt ook als authenticatie-server voor postfix door middel van een open socket. Een SELinux module is vereist om Postfix toegang te geven tot de socket.&lt;br /&gt;
&lt;br /&gt;
Voor meer configuratie details, zie de configuratie op de salt-master. (CentOS 6: /srv/salt/centos/vm-mail/dovecot, CentOS 7: /srv/salt/centos7/dovecot)&lt;br /&gt;
&lt;br /&gt;
'''AL DE CONFIGURATIE HIERONDER IS GIGANTISCH OUT OF DATE''' \/\/\/&lt;br /&gt;
&lt;br /&gt;
== Configuratie mailfilters ==&lt;br /&gt;
&lt;br /&gt;
Gebruik je een ''.forward'' of ''.procmailrc'' om e-mail direct in mappen te stoppen, let dan op de naamgeving (zie hierboven) en zorg ervoor dat de mappen altijd op een ''/'' eindigen. Begin je ''.procmailrc'' ook altijd met de regel&lt;br /&gt;
&lt;br /&gt;
 MAILDIR=$HOME/Maildir/&lt;br /&gt;
&lt;br /&gt;
om te zorgen dat e-mail toch niet in ''/var/mail'' terechtkomt.&lt;br /&gt;
&lt;br /&gt;
== Maak een mailserver met exim, en dovecot ==&lt;br /&gt;
&lt;br /&gt;
Zorg eerst dat sendmail uit staat!&lt;br /&gt;
&amp;lt;pre&amp;gt;service sendmail stop&lt;br /&gt;
chkconfig sendmail off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bij voorkeur verwijder je ook de package voor [[Postfix|postfix]]. Deze is standaard bij CentOS geïnstalleerd.&lt;br /&gt;
&lt;br /&gt;
=== Exim ===&lt;br /&gt;
&lt;br /&gt;
Exim is een MTA (Mail Transfer Agent) en is ervoor om mailtjes te versturen, ontvangen, en doorsturen. Dit gebeurd uiteraard op de mailserver!&lt;br /&gt;
&lt;br /&gt;
Installeer allereerst exim op de host.&lt;br /&gt;
&amp;lt;pre&amp;gt;# yum install exim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verander vervolgens het configuratie bestand /etc/exim/exim.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;# Het Mail domain - normaal gesproken a-eskwadraat.nl&lt;br /&gt;
primary_hostname = circle.a-eskwadraat.nl&lt;br /&gt;
&lt;br /&gt;
# Weiger met ipv6 te werken.&lt;br /&gt;
local_interfaces = 0.0.0.0&lt;br /&gt;
disable_ipv6 = true&lt;br /&gt;
&lt;br /&gt;
daemon_smtp_ports = smtp&amp;amp;nbsp;: submission&lt;br /&gt;
accept_8bitmime = true&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Lijsten van geldige mail domainin.&lt;br /&gt;
domainlist mailman_domains = CONFDIR/domains.mailman&lt;br /&gt;
domainlist local_domains = @&amp;amp;nbsp;: CONFDIR/domains.local&amp;amp;nbsp;: +mailman_domains&amp;amp;nbsp;: lsearch;CONFDIR/domains.virtual&lt;br /&gt;
domainlist relay_to_domains = CONFDIR/domains.relay&lt;br /&gt;
&lt;br /&gt;
hostlist relay_from_hosts = 10.14.3.0/22&lt;br /&gt;
&lt;br /&gt;
# Backup mail server in het geval dat onze niet werkt.&lt;br /&gt;
hostlist mx_hosts = mail.wolffelaar.nl&lt;br /&gt;
&lt;br /&gt;
qualify_domain = A-Eskwadraat.nl&lt;br /&gt;
&lt;br /&gt;
queue_run_max = 250&lt;br /&gt;
&lt;br /&gt;
smtp_accept_max = 100&lt;br /&gt;
smtp_accept_max_per_host = ${if match_ip{$sender_host_address}{+mx_hosts}{50}{10}}&lt;br /&gt;
&lt;br /&gt;
received_headers_max = 30&lt;br /&gt;
&lt;br /&gt;
RETRY_SECONDARY=F,90d,15m&lt;br /&gt;
RETRY_REST=F,2h,15m; G,16h,2h,1.5; F,4d,8h&lt;br /&gt;
&lt;br /&gt;
acl_smtp_rcpt = acl_check_rcpt&lt;br /&gt;
acl_not_smtp_start = acl_check_not_smtp&lt;br /&gt;
acl_smtp_data = acl_check_data&lt;br /&gt;
&lt;br /&gt;
host_lookup = *&lt;br /&gt;
helo_try_verify_hosts =&amp;amp;nbsp;!@&amp;amp;nbsp;:&amp;amp;nbsp;!@[]&lt;br /&gt;
helo_allow_chars = _&lt;br /&gt;
&lt;br /&gt;
# ClamAV - The Anti-Virus Scanner&lt;br /&gt;
av_scanner = clamd:/var/run/clamav/clamd.sock&lt;br /&gt;
&lt;br /&gt;
# Custom 5s limiet.&lt;br /&gt;
rfc1413_query_timeout = 5s&lt;br /&gt;
&lt;br /&gt;
# Mailman support, als per /usr/share/doc/mailman/README.EXIM.gz&lt;br /&gt;
MAILMAN_HOME=/var/lib/mailman&lt;br /&gt;
MAILMAN_WRAP=/usr/lib/mailman/mail/mailman&lt;br /&gt;
MAILMAN_USER=mailman&lt;br /&gt;
MAILMAN_GROUP=mailman&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dovecot ===&lt;br /&gt;
&lt;br /&gt;
Dovecot is een IMAP en POP3 server, wat inhoud dat het mailtjes kan ontvangen, iets wat best wel handig is om te hebben. Installeer dovecot op je mailserver als je dat nog niet gedaan hebt. Verander dan nu het volgende:&lt;br /&gt;
&lt;br /&gt;
In /etc/dovecot/dovecot.conf:&lt;br /&gt;
&lt;br /&gt;
*protocols = imap&lt;br /&gt;
*login_trusted_networks = &amp;amp;lt;ip-adressen die je vertrouwd&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In /etc/dovecot/conf.d/10-mail.conf&lt;br /&gt;
&lt;br /&gt;
*mail_location = maildir:~/Maildir&lt;br /&gt;
*lock_method = dotlock&lt;br /&gt;
&lt;br /&gt;
In /etc/dovecot/conf.d/10-auth.conf&lt;br /&gt;
&lt;br /&gt;
*disable_plaintext_auth = no&lt;br /&gt;
*auth_realms = aeskwadraat&lt;br /&gt;
*auth_default_realm = aeskwadraat&lt;br /&gt;
*auth_gssapi_hostname = &amp;amp;lt;ipa-server&amp;amp;gt;&lt;br /&gt;
*auth_krb5_keytab = /etc/dovecot/krb5.keytab&lt;br /&gt;
*auth_mechanisms = plain gssapi&lt;br /&gt;
&lt;br /&gt;
en zet op het einde&lt;br /&gt;
&amp;lt;pre&amp;gt;userdb {&lt;br /&gt;
  driver = static&lt;br /&gt;
  args = uid=dovecot gid=dovecot home=/var/spool/mail/%u&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maak nu op de ipa-server een service imap aan met de mailserver als host. Dit kan je doen via de webinterface. Voer vervolgens het volgende uit op de mailserver:&lt;br /&gt;
&amp;lt;pre&amp;gt;kinit admin&lt;br /&gt;
ipa-getkeytab -s &amp;lt;ipa-server&amp;gt; -p imap/&amp;lt;mailserver&amp;gt; -k /etc/dovecot/krb5.keytab&lt;br /&gt;
chown root:dovecot /etc/dovecot/krb5.keytab&lt;br /&gt;
chmod 640 /etc/dovecot/krb5.keytab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart dovecot en zet hem standaard aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;service dovecot restart&lt;br /&gt;
chkconfig dovecot on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zet tenslotte nog met system-config-firewall-tui 'imap over ssl' en 'mail (smtp)' aan, en voila! Je kan nu met ipa-users gebruik maken van IMAP om mailtjes te ontvangen!&lt;br /&gt;
&lt;br /&gt;
Je kan eventueel in /etc/postfix/main.cf en /etc/dovecot/conf.d/10-mail.conf nog het een ander van waar de mail wordt opgeslagen veranderen.&lt;br /&gt;
&lt;br /&gt;
=== Spamassassin ===&lt;br /&gt;
&lt;br /&gt;
Spamassassin is een mailfilteringprogramma voor spam. Om het te installeren:&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install spamassassin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maak nu de user en group spamd aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;groupadd -g 5001 spamd&lt;br /&gt;
useradd -u 5001 -g spamd -s /sbin/nologin -d /var/lib/spamassassin spamd&lt;br /&gt;
mkdir /var/lib/spamassassin&lt;br /&gt;
chown spamd:spamd /var/lib/spamassassin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zet dan het volgende in /etc/mail/spamassassin/local.cf:&lt;br /&gt;
&amp;lt;pre&amp;gt;required_score 5.0&lt;br /&gt;
report_safe 0&lt;br /&gt;
rewrite_header Subject [***SPAM***]&lt;br /&gt;
&lt;br /&gt;
# Enable the Bayes system&lt;br /&gt;
use_bayes 1&lt;br /&gt;
use_bayes_rules 1&lt;br /&gt;
# Enable Bayes auto-learning&lt;br /&gt;
bayes_auto_learn 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verander nu in /etc/postfix/master.cf&lt;br /&gt;
&amp;lt;pre&amp;gt;smtp      inet  n       -       n       -       -       smtpd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in&lt;br /&gt;
&amp;lt;pre&amp;gt;smtp      inet  n       -       n       -       -       smtpd -o content_filter=spamassassin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
en stop op het einde van master.cf:&lt;br /&gt;
&amp;lt;pre&amp;gt;spamassassin unix - n n - - pipe flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart nu spamassassin en postfix:&lt;br /&gt;
&amp;lt;pre&amp;gt;chkconfig spamassassin on&lt;br /&gt;
service spamassassin restart&lt;br /&gt;
service postfix restart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aliases ===&lt;br /&gt;
&lt;br /&gt;
In postfix staan de locaties van de aliases in /etc/postfix/main.cf. Deze kan je vinden bij de regel 'alias_maps = ...'. Als je een nieuw aliasbestand wilt toevoegen, voeg dit dan ook toe bij deze regel als hash:&amp;amp;lt;bestandslocatie&amp;amp;gt;. Vergeet ook niet om dit toe te voegen bij alias_database!.&lt;br /&gt;
&lt;br /&gt;
De aliases zelf staan geconfigureerd in de aliasbestanden die te vinden zijn onder /etc/postfix/alias/. Als je een nieuwe alias in een bestand hebt gezet moet je het db-bestand up-to-date make door het commando 'postalias *bestand*' uitvoeren. Let erop dat de bestandsnaam de naam van het bestand is wat je gewijzigd hebt, niet een bestand met extensie '.db'.&lt;br /&gt;
&lt;br /&gt;
== Instellingen ==&lt;br /&gt;
&lt;br /&gt;
=== Postfix ===&lt;br /&gt;
&lt;br /&gt;
==== Mail relay ====&lt;br /&gt;
&lt;br /&gt;
Postfix kan mail relayen naar een extern domein. Hiervoor is de volgende regel:&lt;br /&gt;
&amp;lt;pre&amp;gt;relay_domains = $mydestination, hash:/etc/postfix/domains.relay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In het bestand /etc/postfix/domains.relay staat de lijst van alle externe domains waar mail naar toe gerelayed wordt. Als je iets in het bestand wijzigt, vergeet dan niet om daarna het commando&lt;br /&gt;
&amp;lt;pre&amp;gt;postmap /etc/postfix/domains.relay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
uit te voeren.&lt;br /&gt;
&lt;br /&gt;
==== Whitelist ====&lt;br /&gt;
&lt;br /&gt;
Postfix kan gebruik maken van een whitelist. Zorg hiervoor dat er het volgende in /etc/postfix/main.cf staat:&lt;br /&gt;
&amp;lt;pre&amp;gt;smtpd_client_restrictions = check_client_access hash:/etc/postfix/client.access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In het bestand /etc/postfix/client.access staat de lijst van alle domains die geweigerd en toegelaten worden. Als je hier iets in verandert, vergeet dan niet om uit te voeren&lt;br /&gt;
&amp;lt;pre&amp;gt;postmap /etc/postfix/access.client&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SquirrelMail ==&lt;br /&gt;
&lt;br /&gt;
SquirrelMail is een webmail-client.&lt;br /&gt;
&lt;br /&gt;
=== SquirrelMail installeren ===&lt;br /&gt;
&lt;br /&gt;
Installeer eerst natuurlijk Squirrelmail:&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install squirrelmail&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zorg ervoor dat httpd standaard aan staat en start httpd:&lt;br /&gt;
&amp;lt;pre&amp;gt;chkconfig httpd on&lt;br /&gt;
service httpd start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verander nu het volgende in /etc/squirrelmail/config.php:&lt;br /&gt;
&amp;lt;pre&amp;gt;$org_name        = &amp;quot;A-Eskwadraat&amp;quot;;&lt;br /&gt;
$org_logo        = SM_PATH . 'images/sm_logo.png';&lt;br /&gt;
$org_logo_width  = '308';&lt;br /&gt;
$org_logo_height = '111';&lt;br /&gt;
$org_title       = 'A-Eskwadraat SquirrelMail $version&amp;quot;;&lt;br /&gt;
$signout_page    = 'vm-mail.a-eskwadraat.nl';&lt;br /&gt;
&lt;br /&gt;
$domain            = 'circle.a-eskwadraat.nl';&lt;br /&gt;
$imapServerAddress = 'localhost';&lt;br /&gt;
$useSendmail       = false;&lt;br /&gt;
$smtpServerAddress = 'localhost';&lt;br /&gt;
$pop_before_smtp   = false;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zet nu het A-Eskwadraat logo in de squirrelmail config map.&lt;br /&gt;
&amp;lt;pre&amp;gt;setsebool -P httpd_can_network_connect 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RoundcubeMail ==&lt;br /&gt;
&lt;br /&gt;
Roundcube is ook een webmail client.&lt;br /&gt;
&lt;br /&gt;
=== Installeren ===&lt;br /&gt;
&lt;br /&gt;
Op vm-salt-master staat een configuratie voor een Roundcube mail VM met een korte readme. Deze zorgt ervoor dat httpd, roundcubemail en mariadb geinstalleerd staan. Salt een VM met deze configuratie.&lt;br /&gt;
&amp;lt;pre&amp;gt;salt '$hostname' state.highstate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Laat vervolgens httpd van die VM door de firewall heen. Daarna moet de database voor Roundcube geinitialiseerd worden. Dit gaat met mysql.&lt;br /&gt;
&amp;lt;pre&amp;gt;CREATE DATABASE roundcubemail;&lt;br /&gt;
GRANT ALL PRIVILEGES on roundcubemail.* TO roundcube@localhost IDENTIFIED BY '$password';&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nu moet de timezone nog even ingesteld worden in /etc/php.ini op de roundcube VM. Daarna moeten er nog de juiste tables in de database worden gezet. Dit kan door op de nieuwe VM de bestanden in /etc/roundcubemail/databasefiles te runnen met mysql.&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql roundcubemail &amp;lt; mysql.initial.sql&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Sysop]]&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Mail</id>
		<title>Mail</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Mail"/>
				<updated>2016-02-17T19:36:54Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: mailauthorisatie kleinere header&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bij A–Eskwadraat gebruiken we '''Maildir''' voor de opslag van e-mail van gebruikers. We raden gebruikers aan om niet direct de Maildirmappen te benaderen, maar om dit via [http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol IMAP] of [http://www.washington.edu/alpine/ Alpine] te doen. De standaardconfiguratie van de meeste mailclients staat hier ook voor ingesteld.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
Op [[Haskell|haskell]] draait de virtuele machine vm-mailpp (spreek uit: mail plus plus) om het mailverkeer van en naar A-Eskwadraat te regelen:&lt;br /&gt;
&lt;br /&gt;
*[http://www.postfix.org/ postfix] (''/etc/postfix/'') verwerkt in principe alle binnenkomende mails, en wat er waarheen doorgestuurd moet worden;&lt;br /&gt;
*[http://www.dovecot.org/ dovecot] (''/etc/dovecot/'') neemt de POP- en IMAP-servers voor zijn rekening;&lt;br /&gt;
*[https://www.amavis.org/ amavis] (''/etc/amavisd/'') geeft alle binnenkomende mails door aan SpamAssassin en ClamAV om gefilterd te worden;&lt;br /&gt;
*[http://spamassassin.apache.org/ SpamAssassin] (''/etc/mail/spamassassin/'') [[Mailfiltering|filtert]] de spam uit het binnenkomende mailverkeer;&lt;br /&gt;
*[http://http://www.clamav.net/lang/en/ ClamAV] (''/etc/clamd.d/'') scant het mailverkeer voor virussen en dergelijke;&lt;br /&gt;
*[https://roundcube.net/ RoundCube] (''/etc/roundcubemail/'', ''/usr/share/roundcubemail'') is een webmailclient die in een [https://www.apache.org/ apache] webserver op vm-mailpp draait;&lt;br /&gt;
*[http://www.list.org/ Mailman] (''/etc/mailman/'') Mailman is verantwoordelijk voor de mailing lists, zoals de BBCie-announce.&lt;br /&gt;
&lt;br /&gt;
== Naamgeving Maildirmappen ==&lt;br /&gt;
&lt;br /&gt;
Let op dat om voor dovecot begrijpbare namen te hebben, de mappen op in ''~/Maildir'' altijd met een punt moeten beginnen. Submappen werken ook op deze manier. Een paar voorbeelden:&lt;br /&gt;
&lt;br /&gt;
*''~/Maildir/.Intro/'' voor de IMAP-map ''Intro'';&lt;br /&gt;
*''~/Maildir/.Sysop.postmaster/'' voor de map ''postmaster'' als submap van ''Sysop''.&lt;br /&gt;
&lt;br /&gt;
Als de mappen via IMAP worden aangemaakt gebeurt dit automatisch.&lt;br /&gt;
&lt;br /&gt;
== Postfix ==&lt;br /&gt;
&lt;br /&gt;
Postfix is de SMTP server voor de vm-mailpp.&lt;br /&gt;
&lt;br /&gt;
Postfix gebruikt meerdere ports om mail te ontvangen en te verwerken. Mail die wordt gestuurd door leden moet naar de SMTP daemon op port 587 (''submission'' poort) worden gestuurd. Authenticatie en TLS encryptie zijn een vereiste op deze verbinding. In de toekomst zal de [[Router|Router]] de encryptie tussen client en mail-server regelen. Alle andere mail komt binnen op port 25. Spam- en virus-filtering gebeurd via de SMTP daemons op ports 10025 en 10027 voor onbekende en bekende mail, respectievelijk.&lt;br /&gt;
&lt;br /&gt;
In ''/etc/postfix/master.cf'' staat de configuratie van deze daemons. De configuratie in ''/etc/postfix/main.cf'' wordt gebruikt voor zaken die niet in ''master.cf'' zijn opgegeven; in principe staat hier de configuratie voor poort 25 en worden de opties specifiek voor de andere poorten opgegeven in ''master.cf''.&lt;br /&gt;
&lt;br /&gt;
=== Transport ===&lt;br /&gt;
&lt;br /&gt;
Eerst checkt Postfix of de inkomende mail aan een lokaal mailadres is gestuurd. Welke domeinen als 'lokaal' worden bestempeld staat in ''/etc/postfix/domains/local''. Voor lokale mailadressen geldt, dat het domein in de verdere configuratie kan worden weggelaten.&amp;lt;br/&amp;gt;Daarna checkt Postfix of de inkomende mail naar een virtueel domein is gestuurd. Mailadressen van domeinen zoals turingslegacy.nl worden herschreven naar lokale mailadressen (zonder domeinnaam). De virtuele domeinen staan in ''/etc/postfix/domains/virtual''.&lt;br /&gt;
&lt;br /&gt;
De overblijvende adressen, worden opgezocht in de bestanden met aliases in /etc/postfix/aliases, om te zien of de mail toevallig naar een ander lokaal mailadres doorgestuurd moet worden. Postfix gebruikt hiervoor de bestanden in .db formaat, de tekstbestanden zonder extensie zijn voor ons als sysop leesbaar en te bewerken maar moeten wel met ''postalias'' in een .db bestand omgezet worden naar iedere wijziging.&amp;lt;br/&amp;gt;Als iemand dit vergeet na het aanpassen van een bestand met aliases, plaatst postfix een melding in ''/var/log/maillog'': &amp;quot;database file ''bestandsnaam''.db is older than source file ''bestandsnaam''.&amp;lt;br/&amp;gt;Nu blijven er als het goed is, alleen gebruikersnamen over die op het systeem bestaan. Voor deze gebruikers wordthet bestand ''.forward''de gebruikersnaam voorafgegaan door een backslash (\) wordt aangetroffen, wordt de mail in de Maildir map van die gebruiker geplaatst. Als een regel met een pipe (|) wordt aangetroffen, wordt het mailbericht doorgegeven als standard input aan het commando dat achter het |-teken staat. Andere regels met tekst worden geïnterpreteerd als mailadressen (lokaal zonder domeinnaam of willekeurig mailadres met domeinnaam) waarnaar de mail moet worden doorgestuurd.&amp;lt;br/&amp;gt;''Let op bij het gebruiken van de pipe (|): het kan zijn dat SELinux niet toestaat dat postfix een ander programma direct aanroept.'' Als de mail niet bij een lokaal of virtueel adres hoort, checkt postfix of de inkomende mail is gestuurd naar een domein waarvoor A-Eskwadraat mail relayet. Deze mail word onveranderd naar de mailserver van dat domein verstuurd (relaying). Dit voorkomt verlies van mail voor het externe domein wanneer hun mailserver uitvalt, aangezien A-Eskwadraat de secondary mailserver is voor dat domein. Een uitzondering op de regel is mail bedoeld voor de webserver. Mail aan de webcie komt binnen op de mail server, maar moet worden doorgestuurd naar de webserver. De verwijzingen zijn te vinden in ''/etc/postfix/transport_www'' en ''/etc/postfix/transport_regex''.&lt;br /&gt;
&lt;br /&gt;
Let op dat deze uitleg heel erg bot is. Lees de relevante ''man'' pages van Postfix om te leren hoe mail word verwerkt. Let op dat veranderingen in een alias/transport/domain map niet worden opgemerkt tot het ''postmap'' of ''postalias'' op het bestand is aangeroepen!&lt;br /&gt;
&lt;br /&gt;
=== Mail Authorisatie ===&lt;br /&gt;
&lt;br /&gt;
Om te controleren of een gebruiker wel als een adres mag mailen wordt gebruik gemaakt van de smtpd_sender_login_maps optie voor postfix, die in een database de users opzoekt die als gegeven adres mogen versturen.&amp;amp;nbsp;Als er via SMTP een request gedaan wordt om van buitenaf een mail te versturen doet postfix een query en kijkt welke users als die alias mail mogen versturen. Deze config is op de vm-mailpp te vinden in `/etc/postfix/alias_auth.cf`.&lt;br /&gt;
&lt;br /&gt;
De database wordt gegenereerd door een python script die op de vm-sysop staat bij de sysop api, aangezien daar de mail aliases al staan voor de alias_check. Het python script, te vinden in `/var/www/html/api/python/mail-authorization.py`, loopt recursief langs alle users die in cies, bestuur, extern of iba zitten en kijkt daarnaast ook naar mail aliassen. Aan de hand hiervan wordt met een sql query alle transitieve relaties expliciet gemaakt, zodat dit niet runtime gedaan moet worden. Als een alias naar een cie wordt doorgestuurd, en een user weer in die cie zit, wil je dat die user ook als die alias mag mailen. Als database wordt PostgreSQL gebruikt op de vm-database. De database die gebruikt wordt heet &amp;quot;mail&amp;quot;. In de python code staan nog wat comments. Er draait op de vm-sysop een cron die af en toe de database refreshed. Daarnaast is het python script ook intern bereikbaar [http://vm-sysop.a-eskwadraat.nl/api/python/mail-authorization.py hier]. Bij het laden van deze pagina wordt de database gerefreshed. Op deze manier kan de database meteen gerefreshed worden zodra iemand toegevoegd is aan een cie. Als er in een alias een wildcard staat (*@bapc.eu: bapc), wat betekend dat alles van het domein bapc.eu naar de bapc commissie wordt gestuurd, wordt dit omgezet naar een SQL wildcard, wat uiteindelijk dus netjes werkt.&lt;br /&gt;
&lt;br /&gt;
=== Mailfiltering ===&lt;br /&gt;
&lt;br /&gt;
Postfix maakt gebruik van amavisd voor het filteren van de inkomende mail. Amavis is een interface voor SpamAssassin welke spam filtert en ClamAV welke mails op virussen scant. Check de configuratie op [[Vm-saltmaster|vm-saltmaster]] voor details.&lt;br /&gt;
&lt;br /&gt;
Om de virus database up te daten:&lt;br /&gt;
&amp;lt;pre&amp;gt;freshclam&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mailman ==&lt;br /&gt;
&lt;br /&gt;
Mailman is verantwoordelijk voor de infrastructuur van de mailing lists. De mailing lists zijn te vinden op [lists.a-eskwadraat.nl/mailman lists.a-eskwadraat.nl/mailman]. Er zijn twee belangrijke services om mailman te draaien: mailman en httpd. De configuratie van mailman bevind zich in ''/etc/mailman/'', de data bevind zich in ''/var/lib/mailman'', en de binaries bevinden zich in ''/usr/lib/mailman''.&lt;br /&gt;
&lt;br /&gt;
Gebruik de scripts in /usr/lib/mailman/bin om de mailing lists vanaf de command-line te wijzigen. De volgende commando's zijn belangrijk bij het debuggen / migreren van mailman:&lt;br /&gt;
&lt;br /&gt;
*check_perms: repareert de bestandsrechten van mailman-specifieke bestanden.&lt;br /&gt;
*with_list &amp;amp; fix_url: repareert de links van de mailman archieven indien deze zijn veranderd.&lt;br /&gt;
&lt;br /&gt;
Lees de [http://wiki.list.org/DOC/4.09%20Summary%20of%20the%20mailman%20bin%20commands MailmanWiki] voor een samenvatting van alle commands.&lt;br /&gt;
&lt;br /&gt;
Mailman werkt samen met de Postfix mailserver via de alias map ''/etc/mailman/aliases''. Voer het volgende commando uit na het toevoegen/verwijderen van een lijst zodat Postfix zijn alias database update:&lt;br /&gt;
&amp;lt;pre&amp;gt;postalias /etc/mailman/aliases&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na een migratie van de mailman lijsten is het belangrijk om ''restorecon'' uit te voeren op ''/var/lib/mailman''. Mailman en SELinux werken prima samen zolang de rechten maar goed staan.&lt;br /&gt;
&amp;lt;pre&amp;gt;# Samenvatting van een Mailman migratie.&lt;br /&gt;
# Op de nieuwe mailserver.&lt;br /&gt;
rsync -azv -e &amp;quot;ssh -i &amp;lt;sshkey&amp;gt;&amp;quot; &amp;lt;OUDEHOST&amp;gt;:/var/lib/mailman/ /var/lib/mailman/&lt;br /&gt;
restorecon -r /var/lib/mailman/&lt;br /&gt;
cd /usr/lib/mailman/&lt;br /&gt;
bin/check_perms -f&lt;br /&gt;
bin/withlist -l -a -r fix_url&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Dovecot is de IMAP server verantwoordelijk voor het ophalen en beheren van de mail opgeslagen in de homedirs. Mail wordt opgeslagen in de .Maildir van een gebruik zijn home directory. Momenteel is vm-mail de actieve IMAP server van A-Eskwadraat. De server luistert op poort 143 (standaard IMAP poort) en vereist een TLS-encrypted verbinding van de gebruiker. Het certificaat voor de verbinding is anders dan het certificaat van de webserver.&amp;amp;nbsp; Dovecot authenticeert gebruikers door middel van SASL-kerberos met de IPA servers. Dovecot werkt ook als authenticatie-server voor postfix door middel van een open socket. Een SELinux module is vereist om Postfix toegang te geven tot de socket.&lt;br /&gt;
&lt;br /&gt;
Voor meer configuratie details, zie de configuratie op de salt-master. (CentOS 6: /srv/salt/centos/vm-mail/dovecot, CentOS 7: /srv/salt/centos7/dovecot)&lt;br /&gt;
&lt;br /&gt;
'''AL DE CONFIGURATIE HIERONDER IS GIGANTISCH OUT OF DATE''' \/\/\/&lt;br /&gt;
&lt;br /&gt;
== Configuratie mailfilters ==&lt;br /&gt;
&lt;br /&gt;
Gebruik je een ''.forward'' of ''.procmailrc'' om e-mail direct in mappen te stoppen, let dan op de naamgeving (zie hierboven) en zorg ervoor dat de mappen altijd op een ''/'' eindigen. Begin je ''.procmailrc'' ook altijd met de regel&lt;br /&gt;
&lt;br /&gt;
 MAILDIR=$HOME/Maildir/&lt;br /&gt;
&lt;br /&gt;
om te zorgen dat e-mail toch niet in ''/var/mail'' terechtkomt.&lt;br /&gt;
&lt;br /&gt;
== Maak een mailserver met exim, en dovecot ==&lt;br /&gt;
&lt;br /&gt;
Zorg eerst dat sendmail uit staat!&lt;br /&gt;
&amp;lt;pre&amp;gt;service sendmail stop&lt;br /&gt;
chkconfig sendmail off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bij voorkeur verwijder je ook de package voor [[Postfix|postfix]]. Deze is standaard bij CentOS geïnstalleerd.&lt;br /&gt;
&lt;br /&gt;
=== Exim ===&lt;br /&gt;
&lt;br /&gt;
Exim is een MTA (Mail Transfer Agent) en is ervoor om mailtjes te versturen, ontvangen, en doorsturen. Dit gebeurd uiteraard op de mailserver!&lt;br /&gt;
&lt;br /&gt;
Installeer allereerst exim op de host.&lt;br /&gt;
&amp;lt;pre&amp;gt;# yum install exim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verander vervolgens het configuratie bestand /etc/exim/exim.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;# Het Mail domain - normaal gesproken a-eskwadraat.nl&lt;br /&gt;
primary_hostname = circle.a-eskwadraat.nl&lt;br /&gt;
&lt;br /&gt;
# Weiger met ipv6 te werken.&lt;br /&gt;
local_interfaces = 0.0.0.0&lt;br /&gt;
disable_ipv6 = true&lt;br /&gt;
&lt;br /&gt;
daemon_smtp_ports = smtp&amp;amp;nbsp;: submission&lt;br /&gt;
accept_8bitmime = true&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Lijsten van geldige mail domainin.&lt;br /&gt;
domainlist mailman_domains = CONFDIR/domains.mailman&lt;br /&gt;
domainlist local_domains = @&amp;amp;nbsp;: CONFDIR/domains.local&amp;amp;nbsp;: +mailman_domains&amp;amp;nbsp;: lsearch;CONFDIR/domains.virtual&lt;br /&gt;
domainlist relay_to_domains = CONFDIR/domains.relay&lt;br /&gt;
&lt;br /&gt;
hostlist relay_from_hosts = 10.14.3.0/22&lt;br /&gt;
&lt;br /&gt;
# Backup mail server in het geval dat onze niet werkt.&lt;br /&gt;
hostlist mx_hosts = mail.wolffelaar.nl&lt;br /&gt;
&lt;br /&gt;
qualify_domain = A-Eskwadraat.nl&lt;br /&gt;
&lt;br /&gt;
queue_run_max = 250&lt;br /&gt;
&lt;br /&gt;
smtp_accept_max = 100&lt;br /&gt;
smtp_accept_max_per_host = ${if match_ip{$sender_host_address}{+mx_hosts}{50}{10}}&lt;br /&gt;
&lt;br /&gt;
received_headers_max = 30&lt;br /&gt;
&lt;br /&gt;
RETRY_SECONDARY=F,90d,15m&lt;br /&gt;
RETRY_REST=F,2h,15m; G,16h,2h,1.5; F,4d,8h&lt;br /&gt;
&lt;br /&gt;
acl_smtp_rcpt = acl_check_rcpt&lt;br /&gt;
acl_not_smtp_start = acl_check_not_smtp&lt;br /&gt;
acl_smtp_data = acl_check_data&lt;br /&gt;
&lt;br /&gt;
host_lookup = *&lt;br /&gt;
helo_try_verify_hosts =&amp;amp;nbsp;!@&amp;amp;nbsp;:&amp;amp;nbsp;!@[]&lt;br /&gt;
helo_allow_chars = _&lt;br /&gt;
&lt;br /&gt;
# ClamAV - The Anti-Virus Scanner&lt;br /&gt;
av_scanner = clamd:/var/run/clamav/clamd.sock&lt;br /&gt;
&lt;br /&gt;
# Custom 5s limiet.&lt;br /&gt;
rfc1413_query_timeout = 5s&lt;br /&gt;
&lt;br /&gt;
# Mailman support, als per /usr/share/doc/mailman/README.EXIM.gz&lt;br /&gt;
MAILMAN_HOME=/var/lib/mailman&lt;br /&gt;
MAILMAN_WRAP=/usr/lib/mailman/mail/mailman&lt;br /&gt;
MAILMAN_USER=mailman&lt;br /&gt;
MAILMAN_GROUP=mailman&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dovecot ===&lt;br /&gt;
&lt;br /&gt;
Dovecot is een IMAP en POP3 server, wat inhoud dat het mailtjes kan ontvangen, iets wat best wel handig is om te hebben. Installeer dovecot op je mailserver als je dat nog niet gedaan hebt. Verander dan nu het volgende:&lt;br /&gt;
&lt;br /&gt;
In /etc/dovecot/dovecot.conf:&lt;br /&gt;
&lt;br /&gt;
*protocols = imap&lt;br /&gt;
*login_trusted_networks = &amp;amp;lt;ip-adressen die je vertrouwd&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In /etc/dovecot/conf.d/10-mail.conf&lt;br /&gt;
&lt;br /&gt;
*mail_location = maildir:~/Maildir&lt;br /&gt;
*lock_method = dotlock&lt;br /&gt;
&lt;br /&gt;
In /etc/dovecot/conf.d/10-auth.conf&lt;br /&gt;
&lt;br /&gt;
*disable_plaintext_auth = no&lt;br /&gt;
*auth_realms = aeskwadraat&lt;br /&gt;
*auth_default_realm = aeskwadraat&lt;br /&gt;
*auth_gssapi_hostname = &amp;amp;lt;ipa-server&amp;amp;gt;&lt;br /&gt;
*auth_krb5_keytab = /etc/dovecot/krb5.keytab&lt;br /&gt;
*auth_mechanisms = plain gssapi&lt;br /&gt;
&lt;br /&gt;
en zet op het einde&lt;br /&gt;
&amp;lt;pre&amp;gt;userdb {&lt;br /&gt;
  driver = static&lt;br /&gt;
  args = uid=dovecot gid=dovecot home=/var/spool/mail/%u&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maak nu op de ipa-server een service imap aan met de mailserver als host. Dit kan je doen via de webinterface. Voer vervolgens het volgende uit op de mailserver:&lt;br /&gt;
&amp;lt;pre&amp;gt;kinit admin&lt;br /&gt;
ipa-getkeytab -s &amp;lt;ipa-server&amp;gt; -p imap/&amp;lt;mailserver&amp;gt; -k /etc/dovecot/krb5.keytab&lt;br /&gt;
chown root:dovecot /etc/dovecot/krb5.keytab&lt;br /&gt;
chmod 640 /etc/dovecot/krb5.keytab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart dovecot en zet hem standaard aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;service dovecot restart&lt;br /&gt;
chkconfig dovecot on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zet tenslotte nog met system-config-firewall-tui 'imap over ssl' en 'mail (smtp)' aan, en voila! Je kan nu met ipa-users gebruik maken van IMAP om mailtjes te ontvangen!&lt;br /&gt;
&lt;br /&gt;
Je kan eventueel in /etc/postfix/main.cf en /etc/dovecot/conf.d/10-mail.conf nog het een ander van waar de mail wordt opgeslagen veranderen.&lt;br /&gt;
&lt;br /&gt;
=== Spamassassin ===&lt;br /&gt;
&lt;br /&gt;
Spamassassin is een mailfilteringprogramma voor spam. Om het te installeren:&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install spamassassin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maak nu de user en group spamd aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;groupadd -g 5001 spamd&lt;br /&gt;
useradd -u 5001 -g spamd -s /sbin/nologin -d /var/lib/spamassassin spamd&lt;br /&gt;
mkdir /var/lib/spamassassin&lt;br /&gt;
chown spamd:spamd /var/lib/spamassassin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zet dan het volgende in /etc/mail/spamassassin/local.cf:&lt;br /&gt;
&amp;lt;pre&amp;gt;required_score 5.0&lt;br /&gt;
report_safe 0&lt;br /&gt;
rewrite_header Subject [***SPAM***]&lt;br /&gt;
&lt;br /&gt;
# Enable the Bayes system&lt;br /&gt;
use_bayes 1&lt;br /&gt;
use_bayes_rules 1&lt;br /&gt;
# Enable Bayes auto-learning&lt;br /&gt;
bayes_auto_learn 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verander nu in /etc/postfix/master.cf&lt;br /&gt;
&amp;lt;pre&amp;gt;smtp      inet  n       -       n       -       -       smtpd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in&lt;br /&gt;
&amp;lt;pre&amp;gt;smtp      inet  n       -       n       -       -       smtpd -o content_filter=spamassassin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
en stop op het einde van master.cf:&lt;br /&gt;
&amp;lt;pre&amp;gt;spamassassin unix - n n - - pipe flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart nu spamassassin en postfix:&lt;br /&gt;
&amp;lt;pre&amp;gt;chkconfig spamassassin on&lt;br /&gt;
service spamassassin restart&lt;br /&gt;
service postfix restart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aliases ===&lt;br /&gt;
&lt;br /&gt;
In postfix staan de locaties van de aliases in /etc/postfix/main.cf. Deze kan je vinden bij de regel 'alias_maps = ...'. Als je een nieuw aliasbestand wilt toevoegen, voeg dit dan ook toe bij deze regel als hash:&amp;amp;lt;bestandslocatie&amp;amp;gt;. Vergeet ook niet om dit toe te voegen bij alias_database!.&lt;br /&gt;
&lt;br /&gt;
De aliases zelf staan geconfigureerd in de aliasbestanden die te vinden zijn onder /etc/postfix/alias/. Als je een nieuwe alias in een bestand hebt gezet moet je het db-bestand up-to-date make door het commando 'postalias *bestand*' uitvoeren. Let erop dat de bestandsnaam de naam van het bestand is wat je gewijzigd hebt, niet een bestand met extensie '.db'.&lt;br /&gt;
&lt;br /&gt;
== Instellingen ==&lt;br /&gt;
&lt;br /&gt;
=== Postfix ===&lt;br /&gt;
&lt;br /&gt;
==== Mail relay ====&lt;br /&gt;
&lt;br /&gt;
Postfix kan mail relayen naar een extern domein. Hiervoor is de volgende regel:&lt;br /&gt;
&amp;lt;pre&amp;gt;relay_domains = $mydestination, hash:/etc/postfix/domains.relay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In het bestand /etc/postfix/domains.relay staat de lijst van alle externe domains waar mail naar toe gerelayed wordt. Als je iets in het bestand wijzigt, vergeet dan niet om daarna het commando&lt;br /&gt;
&amp;lt;pre&amp;gt;postmap /etc/postfix/domains.relay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
uit te voeren.&lt;br /&gt;
&lt;br /&gt;
==== Whitelist ====&lt;br /&gt;
&lt;br /&gt;
Postfix kan gebruik maken van een whitelist. Zorg hiervoor dat er het volgende in /etc/postfix/main.cf staat:&lt;br /&gt;
&amp;lt;pre&amp;gt;smtpd_client_restrictions = check_client_access hash:/etc/postfix/client.access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In het bestand /etc/postfix/client.access staat de lijst van alle domains die geweigerd en toegelaten worden. Als je hier iets in verandert, vergeet dan niet om uit te voeren&lt;br /&gt;
&amp;lt;pre&amp;gt;postmap /etc/postfix/access.client&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SquirrelMail ==&lt;br /&gt;
&lt;br /&gt;
SquirrelMail is een webmail-client.&lt;br /&gt;
&lt;br /&gt;
=== SquirrelMail installeren ===&lt;br /&gt;
&lt;br /&gt;
Installeer eerst natuurlijk Squirrelmail:&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install squirrelmail&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zorg ervoor dat httpd standaard aan staat en start httpd:&lt;br /&gt;
&amp;lt;pre&amp;gt;chkconfig httpd on&lt;br /&gt;
service httpd start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verander nu het volgende in /etc/squirrelmail/config.php:&lt;br /&gt;
&amp;lt;pre&amp;gt;$org_name        = &amp;quot;A-Eskwadraat&amp;quot;;&lt;br /&gt;
$org_logo        = SM_PATH . 'images/sm_logo.png';&lt;br /&gt;
$org_logo_width  = '308';&lt;br /&gt;
$org_logo_height = '111';&lt;br /&gt;
$org_title       = 'A-Eskwadraat SquirrelMail $version&amp;quot;;&lt;br /&gt;
$signout_page    = 'vm-mail.a-eskwadraat.nl';&lt;br /&gt;
&lt;br /&gt;
$domain            = 'circle.a-eskwadraat.nl';&lt;br /&gt;
$imapServerAddress = 'localhost';&lt;br /&gt;
$useSendmail       = false;&lt;br /&gt;
$smtpServerAddress = 'localhost';&lt;br /&gt;
$pop_before_smtp   = false;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zet nu het A-Eskwadraat logo in de squirrelmail config map.&lt;br /&gt;
&amp;lt;pre&amp;gt;setsebool -P httpd_can_network_connect 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RoundcubeMail ==&lt;br /&gt;
&lt;br /&gt;
Roundcube is ook een webmail client.&lt;br /&gt;
&lt;br /&gt;
=== Installeren ===&lt;br /&gt;
&lt;br /&gt;
Op vm-salt-master staat een configuratie voor een Roundcube mail VM met een korte readme. Deze zorgt ervoor dat httpd, roundcubemail en mariadb geinstalleerd staan. Salt een VM met deze configuratie.&lt;br /&gt;
&amp;lt;pre&amp;gt;salt '$hostname' state.highstate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Laat vervolgens httpd van die VM door de firewall heen. Daarna moet de database voor Roundcube geinitialiseerd worden. Dit gaat met mysql.&lt;br /&gt;
&amp;lt;pre&amp;gt;CREATE DATABASE roundcubemail;&lt;br /&gt;
GRANT ALL PRIVILEGES on roundcubemail.* TO roundcube@localhost IDENTIFIED BY '$password';&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nu moet de timezone nog even ingesteld worden in /etc/php.ini op de roundcube VM. Daarna moeten er nog de juiste tables in de database worden gezet. Dit kan door op de nieuwe VM de bestanden in /etc/roundcubemail/databasefiles te runnen met mysql.&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql roundcubemail &amp;lt; mysql.initial.sql&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Sysop]]&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Mail</id>
		<title>Mail</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Mail"/>
				<updated>2016-02-17T19:34:56Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: postfix verduidelijken en mailauthorisatie naar boven verplaatsen, bij de &amp;quot;gigantisch out of date config&amp;quot; vandaan.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bij A–Eskwadraat gebruiken we '''Maildir''' voor de opslag van e-mail van gebruikers. We raden gebruikers aan om niet direct de Maildirmappen te benaderen, maar om dit via [http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol IMAP] of [http://www.washington.edu/alpine/ Alpine] te doen. De standaardconfiguratie van de meeste mailclients staat hier ook voor ingesteld.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
Op [[Haskell|haskell]] draait de virtuele machine vm-mailpp (spreek uit: mail plus plus) om het mailverkeer van en naar A-Eskwadraat te regelen:&lt;br /&gt;
&lt;br /&gt;
*[http://www.postfix.org/ postfix] (''/etc/postfix/'') verwerkt in principe alle binnenkomende mails, en wat er waarheen doorgestuurd moet worden;&lt;br /&gt;
*[http://www.dovecot.org/ dovecot] (''/etc/dovecot/'') neemt de POP- en IMAP-servers voor zijn rekening;&lt;br /&gt;
*[https://www.amavis.org/ amavis] (''/etc/amavisd/'') geeft alle binnenkomende mails door aan SpamAssassin en ClamAV om gefilterd te worden;&lt;br /&gt;
*[http://spamassassin.apache.org/ SpamAssassin] (''/etc/mail/spamassassin/'') [[Mailfiltering|filtert]] de spam uit het binnenkomende mailverkeer;&lt;br /&gt;
*[http://http://www.clamav.net/lang/en/ ClamAV] (''/etc/clamd.d/'') scant het mailverkeer voor virussen en dergelijke;&lt;br /&gt;
*[https://roundcube.net/ RoundCube] (''/etc/roundcubemail/'', ''/usr/share/roundcubemail'') is een webmailclient die in een [https://www.apache.org/ apache] webserver op vm-mailpp draait;&lt;br /&gt;
*[http://www.list.org/ Mailman] (''/etc/mailman/'') Mailman is verantwoordelijk voor de mailing lists, zoals de BBCie-announce.&lt;br /&gt;
&lt;br /&gt;
== Naamgeving Maildirmappen ==&lt;br /&gt;
&lt;br /&gt;
Let op dat om voor dovecot begrijpbare namen te hebben, de mappen op in ''~/Maildir'' altijd met een punt moeten beginnen. Submappen werken ook op deze manier. Een paar voorbeelden:&lt;br /&gt;
&lt;br /&gt;
*''~/Maildir/.Intro/'' voor de IMAP-map ''Intro'';&lt;br /&gt;
*''~/Maildir/.Sysop.postmaster/'' voor de map ''postmaster'' als submap van ''Sysop''.&lt;br /&gt;
&lt;br /&gt;
Als de mappen via IMAP worden aangemaakt gebeurt dit automatisch.&lt;br /&gt;
&lt;br /&gt;
== Postfix ==&lt;br /&gt;
&lt;br /&gt;
Postfix is de SMTP server voor de vm-mailpp.&lt;br /&gt;
&lt;br /&gt;
Postfix gebruikt meerdere ports om mail te ontvangen en te verwerken. Mail die wordt gestuurd door leden moet naar de SMTP daemon op port 587 (''submission'' poort) worden gestuurd. Authenticatie en TLS encryptie zijn een vereiste op deze verbinding. In de toekomst zal de [[Router|Router]] de encryptie tussen client en mail-server regelen. Alle andere mail komt binnen op port 25. Spam- en virus-filtering gebeurd via de SMTP daemons op ports 10025 en 10027 voor onbekende en bekende mail, respectievelijk.&lt;br /&gt;
&lt;br /&gt;
In ''/etc/postfix/master.cf'' staat de configuratie van deze daemons. De configuratie in ''/etc/postfix/main.cf'' wordt gebruikt voor zaken die niet in ''master.cf'' zijn opgegeven; in principe staat hier de configuratie voor poort 25 en worden de opties specifiek voor de andere poorten opgegeven in ''master.cf''.&lt;br /&gt;
&lt;br /&gt;
=== Transport ===&lt;br /&gt;
&lt;br /&gt;
Eerst checkt Postfix of de inkomende mail aan een lokaal mailadres is gestuurd. Welke domeinen als 'lokaal' worden bestempeld staat in ''/etc/postfix/domains/local''. Voor lokale mailadressen geldt, dat het domein in de verdere configuratie kan worden weggelaten.&amp;lt;br/&amp;gt;Daarna checkt Postfix of de inkomende mail naar een virtueel domein is gestuurd. Mailadressen van domeinen zoals turingslegacy.nl worden herschreven naar lokale mailadressen (zonder domeinnaam). De virtuele domeinen staan in ''/etc/postfix/domains/virtual''.&lt;br /&gt;
&lt;br /&gt;
De overblijvende adressen, worden opgezocht in de bestanden met aliases in /etc/postfix/aliases, om te zien of de mail toevallig naar een ander lokaal mailadres doorgestuurd moet worden. Postfix gebruikt hiervoor de bestanden in .db formaat, de tekstbestanden zonder extensie zijn voor ons als sysop leesbaar en te bewerken maar moeten wel met ''postalias'' in een .db bestand omgezet worden naar iedere wijziging.&amp;lt;br/&amp;gt;Als iemand dit vergeet na het aanpassen van een bestand met aliases, plaatst postfix een melding in ''/var/log/maillog'': &amp;quot;database file ''bestandsnaam''.db is older than source file ''bestandsnaam''.&amp;lt;br/&amp;gt;Nu blijven er als het goed is, alleen gebruikersnamen over die op het systeem bestaan. Voor deze gebruikers wordthet bestand ''.forward''de gebruikersnaam voorafgegaan door een backslash (\) wordt aangetroffen, wordt de mail in de Maildir map van die gebruiker geplaatst. Als een regel met een pipe (|) wordt aangetroffen, wordt het mailbericht doorgegeven als standard input aan het commando dat achter het |-teken staat. Andere regels met tekst worden geïnterpreteerd als mailadressen (lokaal zonder domeinnaam of willekeurig mailadres met domeinnaam) waarnaar de mail moet worden doorgestuurd.&amp;lt;br/&amp;gt;''Let op bij het gebruiken van de pipe (|): het kan zijn dat SELinux niet toestaat dat postfix een ander programma direct aanroept.''&lt;br /&gt;
Als de mail niet bij een lokaal of virtueel adres hoort, checkt postfix of de inkomende mail is gestuurd naar een domein waarvoor A-Eskwadraat mail relayet. Deze mail word onveranderd naar de mailserver van dat domein verstuurd (relaying). Dit voorkomt verlies van mail voor het externe domein wanneer hun mailserver uitvalt, aangezien A-Eskwadraat de secondary mailserver is voor dat domein. Een uitzondering op de regel is mail bedoeld voor de webserver. Mail aan de webcie komt binnen op de mail server, maar moet worden doorgestuurd naar de webserver. De verwijzingen zijn te vinden in ''/etc/postfix/transport_www'' en ''/etc/postfix/transport_regex''.&lt;br /&gt;
&lt;br /&gt;
Let op dat deze uitleg heel erg bot is. Lees de relevante ''man'' pages van Postfix om te leren hoe mail word verwerkt. Let op dat veranderingen in een alias/transport/domain map niet worden opgemerkt tot het ''postmap'' of ''postalias'' op het bestand is aangeroepen!&lt;br /&gt;
&lt;br /&gt;
== Mail Authorisatie ==&lt;br /&gt;
&lt;br /&gt;
Om te controleren of een gebruiker wel als een adres mag mailen wordt gebruik gemaakt van de smtpd_sender_login_maps optie voor postfix, die in een database de users opzoekt die als gegeven adres mogen versturen.&amp;amp;nbsp;Als er via SMTP een request gedaan wordt om van buitenaf een mail te versturen doet postfix een query en kijkt welke users als die alias mail mogen versturen. Deze config is op de vm-mailpp te vinden in `/etc/postfix/alias_auth.cf`.&lt;br /&gt;
&lt;br /&gt;
De database wordt gegenereerd door een python script die op de vm-sysop staat bij de sysop api, aangezien daar de mail aliases al staan voor de alias_check. Het python script, te vinden in `/var/www/html/api/python/mail-authorization.py`, loopt recursief langs alle users die in cies, bestuur, extern of iba zitten en kijkt daarnaast ook naar mail aliassen. Aan de hand hiervan wordt met een sql query alle transitieve relaties expliciet gemaakt, zodat dit niet runtime gedaan moet worden. Als een alias naar een cie wordt doorgestuurd, en een user weer in die cie zit, wil je dat die user ook als die alias mag mailen. Als database wordt PostgreSQL gebruikt op de vm-database. De database die gebruikt wordt heet &amp;quot;mail&amp;quot;. In de python code staan nog wat comments. Er draait op de vm-sysop een cron die af en toe de database refreshed. Daarnaast is het python script ook intern bereikbaar [http://vm-sysop.a-eskwadraat.nl/api/python/mail-authorization.py hier]. Bij het laden van deze pagina wordt de database gerefreshed. Op deze manier kan de database meteen gerefreshed worden zodra iemand toegevoegd is aan een cie. Als er in een alias een wildcard staat (*@bapc.eu: bapc), wat betekend dat alles van het domein bapc.eu naar de bapc commissie wordt gestuurd, wordt dit omgezet naar een SQL wildcard, wat uiteindelijk dus netjes werkt.&lt;br /&gt;
&lt;br /&gt;
=== Mailfiltering ===&lt;br /&gt;
&lt;br /&gt;
Postfix maakt gebruik van amavisd voor het filteren van de inkomende mail. Amavis is een interface voor SpamAssassin welke spam filtert en ClamAV welke mails op virussen scant. Check de configuratie op [[Vm-saltmaster|vm-saltmaster]] voor details.&lt;br /&gt;
&lt;br /&gt;
Om de virus database up te daten:&lt;br /&gt;
&amp;lt;pre&amp;gt;freshclam&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mailman ==&lt;br /&gt;
&lt;br /&gt;
Mailman is verantwoordelijk voor de infrastructuur van de mailing lists. De mailing lists zijn te vinden op [lists.a-eskwadraat.nl/mailman lists.a-eskwadraat.nl/mailman]. Er zijn twee belangrijke services om mailman te draaien: mailman en httpd. De configuratie van mailman bevind zich in ''/etc/mailman/'', de data bevind zich in ''/var/lib/mailman'', en de binaries bevinden zich in ''/usr/lib/mailman''.&lt;br /&gt;
&lt;br /&gt;
Gebruik de scripts in /usr/lib/mailman/bin om de mailing lists vanaf de command-line te wijzigen. De volgende commando's zijn belangrijk bij het debuggen / migreren van mailman:&lt;br /&gt;
&lt;br /&gt;
*check_perms: repareert de bestandsrechten van mailman-specifieke bestanden.&lt;br /&gt;
*with_list &amp;amp; fix_url: repareert de links van de mailman archieven indien deze zijn veranderd.&lt;br /&gt;
&lt;br /&gt;
Lees de [http://wiki.list.org/DOC/4.09%20Summary%20of%20the%20mailman%20bin%20commands MailmanWiki] voor een samenvatting van alle commands.&lt;br /&gt;
&lt;br /&gt;
Mailman werkt samen met de Postfix mailserver via de alias map ''/etc/mailman/aliases''. Voer het volgende commando uit na het toevoegen/verwijderen van een lijst zodat Postfix zijn alias database update:&lt;br /&gt;
&amp;lt;pre&amp;gt;postalias /etc/mailman/aliases&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na een migratie van de mailman lijsten is het belangrijk om ''restorecon'' uit te voeren op ''/var/lib/mailman''. Mailman en SELinux werken prima samen zolang de rechten maar goed staan.&lt;br /&gt;
&amp;lt;pre&amp;gt;# Samenvatting van een Mailman migratie.&lt;br /&gt;
# Op de nieuwe mailserver.&lt;br /&gt;
rsync -azv -e &amp;quot;ssh -i &amp;lt;sshkey&amp;gt;&amp;quot; &amp;lt;OUDEHOST&amp;gt;:/var/lib/mailman/ /var/lib/mailman/&lt;br /&gt;
restorecon -r /var/lib/mailman/&lt;br /&gt;
cd /usr/lib/mailman/&lt;br /&gt;
bin/check_perms -f&lt;br /&gt;
bin/withlist -l -a -r fix_url&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Dovecot is de IMAP server verantwoordelijk voor het ophalen en beheren van de mail opgeslagen in de homedirs. Mail wordt opgeslagen in de .Maildir van een gebruik zijn home directory. Momenteel is vm-mail de actieve IMAP server van A-Eskwadraat. De server luistert op poort 143 (standaard IMAP poort) en vereist een TLS-encrypted verbinding van de gebruiker. Het certificaat voor de verbinding is anders dan het certificaat van de webserver.&amp;amp;nbsp; Dovecot authenticeert gebruikers door middel van SASL-kerberos met de IPA servers. Dovecot werkt ook als authenticatie-server voor postfix door middel van een open socket. Een SELinux module is vereist om Postfix toegang te geven tot de socket.&lt;br /&gt;
&lt;br /&gt;
Voor meer configuratie details, zie de configuratie op de salt-master. (CentOS 6: /srv/salt/centos/vm-mail/dovecot, CentOS 7: /srv/salt/centos7/dovecot)&lt;br /&gt;
&lt;br /&gt;
'''AL DE CONFIGURATIE HIERONDER IS GIGANTISCH OUT OF DATE''' \/\/\/&lt;br /&gt;
&lt;br /&gt;
== Configuratie mailfilters ==&lt;br /&gt;
&lt;br /&gt;
Gebruik je een ''.forward'' of ''.procmailrc'' om e-mail direct in mappen te stoppen, let dan op de naamgeving (zie hierboven) en zorg ervoor dat de mappen altijd op een ''/'' eindigen. Begin je ''.procmailrc'' ook altijd met de regel&lt;br /&gt;
&lt;br /&gt;
 MAILDIR=$HOME/Maildir/&lt;br /&gt;
&lt;br /&gt;
om te zorgen dat e-mail toch niet in ''/var/mail'' terechtkomt.&lt;br /&gt;
&lt;br /&gt;
== Maak een mailserver met exim, en dovecot ==&lt;br /&gt;
&lt;br /&gt;
Zorg eerst dat sendmail uit staat!&lt;br /&gt;
&amp;lt;pre&amp;gt;service sendmail stop&lt;br /&gt;
chkconfig sendmail off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bij voorkeur verwijder je ook de package voor [[Postfix|postfix]]. Deze is standaard bij CentOS geïnstalleerd.&lt;br /&gt;
&lt;br /&gt;
=== Exim ===&lt;br /&gt;
&lt;br /&gt;
Exim is een MTA (Mail Transfer Agent) en is ervoor om mailtjes te versturen, ontvangen, en doorsturen. Dit gebeurd uiteraard op de mailserver!&lt;br /&gt;
&lt;br /&gt;
Installeer allereerst exim op de host.&lt;br /&gt;
&amp;lt;pre&amp;gt;# yum install exim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verander vervolgens het configuratie bestand /etc/exim/exim.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;# Het Mail domain - normaal gesproken a-eskwadraat.nl&lt;br /&gt;
primary_hostname = circle.a-eskwadraat.nl&lt;br /&gt;
&lt;br /&gt;
# Weiger met ipv6 te werken.&lt;br /&gt;
local_interfaces = 0.0.0.0&lt;br /&gt;
disable_ipv6 = true&lt;br /&gt;
&lt;br /&gt;
daemon_smtp_ports = smtp&amp;amp;nbsp;: submission&lt;br /&gt;
accept_8bitmime = true&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Lijsten van geldige mail domainin.&lt;br /&gt;
domainlist mailman_domains = CONFDIR/domains.mailman&lt;br /&gt;
domainlist local_domains = @&amp;amp;nbsp;: CONFDIR/domains.local&amp;amp;nbsp;: +mailman_domains&amp;amp;nbsp;: lsearch;CONFDIR/domains.virtual&lt;br /&gt;
domainlist relay_to_domains = CONFDIR/domains.relay&lt;br /&gt;
&lt;br /&gt;
hostlist relay_from_hosts = 10.14.3.0/22&lt;br /&gt;
&lt;br /&gt;
# Backup mail server in het geval dat onze niet werkt.&lt;br /&gt;
hostlist mx_hosts = mail.wolffelaar.nl&lt;br /&gt;
&lt;br /&gt;
qualify_domain = A-Eskwadraat.nl&lt;br /&gt;
&lt;br /&gt;
queue_run_max = 250&lt;br /&gt;
&lt;br /&gt;
smtp_accept_max = 100&lt;br /&gt;
smtp_accept_max_per_host = ${if match_ip{$sender_host_address}{+mx_hosts}{50}{10}}&lt;br /&gt;
&lt;br /&gt;
received_headers_max = 30&lt;br /&gt;
&lt;br /&gt;
RETRY_SECONDARY=F,90d,15m&lt;br /&gt;
RETRY_REST=F,2h,15m; G,16h,2h,1.5; F,4d,8h&lt;br /&gt;
&lt;br /&gt;
acl_smtp_rcpt = acl_check_rcpt&lt;br /&gt;
acl_not_smtp_start = acl_check_not_smtp&lt;br /&gt;
acl_smtp_data = acl_check_data&lt;br /&gt;
&lt;br /&gt;
host_lookup = *&lt;br /&gt;
helo_try_verify_hosts =&amp;amp;nbsp;!@&amp;amp;nbsp;:&amp;amp;nbsp;!@[]&lt;br /&gt;
helo_allow_chars = _&lt;br /&gt;
&lt;br /&gt;
# ClamAV - The Anti-Virus Scanner&lt;br /&gt;
av_scanner = clamd:/var/run/clamav/clamd.sock&lt;br /&gt;
&lt;br /&gt;
# Custom 5s limiet.&lt;br /&gt;
rfc1413_query_timeout = 5s&lt;br /&gt;
&lt;br /&gt;
# Mailman support, als per /usr/share/doc/mailman/README.EXIM.gz&lt;br /&gt;
MAILMAN_HOME=/var/lib/mailman&lt;br /&gt;
MAILMAN_WRAP=/usr/lib/mailman/mail/mailman&lt;br /&gt;
MAILMAN_USER=mailman&lt;br /&gt;
MAILMAN_GROUP=mailman&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dovecot ===&lt;br /&gt;
&lt;br /&gt;
Dovecot is een IMAP en POP3 server, wat inhoud dat het mailtjes kan ontvangen, iets wat best wel handig is om te hebben. Installeer dovecot op je mailserver als je dat nog niet gedaan hebt. Verander dan nu het volgende:&lt;br /&gt;
&lt;br /&gt;
In /etc/dovecot/dovecot.conf:&lt;br /&gt;
&lt;br /&gt;
*protocols = imap&lt;br /&gt;
*login_trusted_networks = &amp;amp;lt;ip-adressen die je vertrouwd&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In /etc/dovecot/conf.d/10-mail.conf&lt;br /&gt;
&lt;br /&gt;
*mail_location = maildir:~/Maildir&lt;br /&gt;
*lock_method = dotlock&lt;br /&gt;
&lt;br /&gt;
In /etc/dovecot/conf.d/10-auth.conf&lt;br /&gt;
&lt;br /&gt;
*disable_plaintext_auth = no&lt;br /&gt;
*auth_realms = aeskwadraat&lt;br /&gt;
*auth_default_realm = aeskwadraat&lt;br /&gt;
*auth_gssapi_hostname = &amp;amp;lt;ipa-server&amp;amp;gt;&lt;br /&gt;
*auth_krb5_keytab = /etc/dovecot/krb5.keytab&lt;br /&gt;
*auth_mechanisms = plain gssapi&lt;br /&gt;
&lt;br /&gt;
en zet op het einde&lt;br /&gt;
&amp;lt;pre&amp;gt;userdb {&lt;br /&gt;
  driver = static&lt;br /&gt;
  args = uid=dovecot gid=dovecot home=/var/spool/mail/%u&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maak nu op de ipa-server een service imap aan met de mailserver als host. Dit kan je doen via de webinterface. Voer vervolgens het volgende uit op de mailserver:&lt;br /&gt;
&amp;lt;pre&amp;gt;kinit admin&lt;br /&gt;
ipa-getkeytab -s &amp;lt;ipa-server&amp;gt; -p imap/&amp;lt;mailserver&amp;gt; -k /etc/dovecot/krb5.keytab&lt;br /&gt;
chown root:dovecot /etc/dovecot/krb5.keytab&lt;br /&gt;
chmod 640 /etc/dovecot/krb5.keytab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart dovecot en zet hem standaard aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;service dovecot restart&lt;br /&gt;
chkconfig dovecot on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zet tenslotte nog met system-config-firewall-tui 'imap over ssl' en 'mail (smtp)' aan, en voila! Je kan nu met ipa-users gebruik maken van IMAP om mailtjes te ontvangen!&lt;br /&gt;
&lt;br /&gt;
Je kan eventueel in /etc/postfix/main.cf en /etc/dovecot/conf.d/10-mail.conf nog het een ander van waar de mail wordt opgeslagen veranderen.&lt;br /&gt;
&lt;br /&gt;
=== Spamassassin ===&lt;br /&gt;
&lt;br /&gt;
Spamassassin is een mailfilteringprogramma voor spam. Om het te installeren:&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install spamassassin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maak nu de user en group spamd aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;groupadd -g 5001 spamd&lt;br /&gt;
useradd -u 5001 -g spamd -s /sbin/nologin -d /var/lib/spamassassin spamd&lt;br /&gt;
mkdir /var/lib/spamassassin&lt;br /&gt;
chown spamd:spamd /var/lib/spamassassin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zet dan het volgende in /etc/mail/spamassassin/local.cf:&lt;br /&gt;
&amp;lt;pre&amp;gt;required_score 5.0&lt;br /&gt;
report_safe 0&lt;br /&gt;
rewrite_header Subject [***SPAM***]&lt;br /&gt;
&lt;br /&gt;
# Enable the Bayes system&lt;br /&gt;
use_bayes 1&lt;br /&gt;
use_bayes_rules 1&lt;br /&gt;
# Enable Bayes auto-learning&lt;br /&gt;
bayes_auto_learn 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verander nu in /etc/postfix/master.cf&lt;br /&gt;
&amp;lt;pre&amp;gt;smtp      inet  n       -       n       -       -       smtpd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in&lt;br /&gt;
&amp;lt;pre&amp;gt;smtp      inet  n       -       n       -       -       smtpd -o content_filter=spamassassin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
en stop op het einde van master.cf:&lt;br /&gt;
&amp;lt;pre&amp;gt;spamassassin unix - n n - - pipe flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart nu spamassassin en postfix:&lt;br /&gt;
&amp;lt;pre&amp;gt;chkconfig spamassassin on&lt;br /&gt;
service spamassassin restart&lt;br /&gt;
service postfix restart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aliases ===&lt;br /&gt;
&lt;br /&gt;
In postfix staan de locaties van de aliases in /etc/postfix/main.cf. Deze kan je vinden bij de regel 'alias_maps = ...'. Als je een nieuw aliasbestand wilt toevoegen, voeg dit dan ook toe bij deze regel als hash:&amp;amp;lt;bestandslocatie&amp;amp;gt;. Vergeet ook niet om dit toe te voegen bij alias_database!.&lt;br /&gt;
&lt;br /&gt;
De aliases zelf staan geconfigureerd in de aliasbestanden die te vinden zijn onder /etc/postfix/alias/. Als je een nieuwe alias in een bestand hebt gezet moet je het db-bestand up-to-date make door het commando 'postalias *bestand*' uitvoeren. Let erop dat de bestandsnaam de naam van het bestand is wat je gewijzigd hebt, niet een bestand met extensie '.db'.&lt;br /&gt;
&lt;br /&gt;
== Instellingen ==&lt;br /&gt;
&lt;br /&gt;
=== Postfix ===&lt;br /&gt;
&lt;br /&gt;
==== Mail relay ====&lt;br /&gt;
&lt;br /&gt;
Postfix kan mail relayen naar een extern domein. Hiervoor is de volgende regel:&lt;br /&gt;
&amp;lt;pre&amp;gt;relay_domains = $mydestination, hash:/etc/postfix/domains.relay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In het bestand /etc/postfix/domains.relay staat de lijst van alle externe domains waar mail naar toe gerelayed wordt. Als je iets in het bestand wijzigt, vergeet dan niet om daarna het commando&lt;br /&gt;
&amp;lt;pre&amp;gt;postmap /etc/postfix/domains.relay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
uit te voeren.&lt;br /&gt;
&lt;br /&gt;
==== Whitelist ====&lt;br /&gt;
&lt;br /&gt;
Postfix kan gebruik maken van een whitelist. Zorg hiervoor dat er het volgende in /etc/postfix/main.cf staat:&lt;br /&gt;
&amp;lt;pre&amp;gt;smtpd_client_restrictions = check_client_access hash:/etc/postfix/client.access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In het bestand /etc/postfix/client.access staat de lijst van alle domains die geweigerd en toegelaten worden. Als je hier iets in verandert, vergeet dan niet om uit te voeren&lt;br /&gt;
&amp;lt;pre&amp;gt;postmap /etc/postfix/access.client&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SquirrelMail ==&lt;br /&gt;
&lt;br /&gt;
SquirrelMail is een webmail-client.&lt;br /&gt;
&lt;br /&gt;
=== SquirrelMail installeren ===&lt;br /&gt;
&lt;br /&gt;
Installeer eerst natuurlijk Squirrelmail:&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install squirrelmail&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zorg ervoor dat httpd standaard aan staat en start httpd:&lt;br /&gt;
&amp;lt;pre&amp;gt;chkconfig httpd on&lt;br /&gt;
service httpd start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verander nu het volgende in /etc/squirrelmail/config.php:&lt;br /&gt;
&amp;lt;pre&amp;gt;$org_name        = &amp;quot;A-Eskwadraat&amp;quot;;&lt;br /&gt;
$org_logo        = SM_PATH . 'images/sm_logo.png';&lt;br /&gt;
$org_logo_width  = '308';&lt;br /&gt;
$org_logo_height = '111';&lt;br /&gt;
$org_title       = 'A-Eskwadraat SquirrelMail $version&amp;quot;;&lt;br /&gt;
$signout_page    = 'vm-mail.a-eskwadraat.nl';&lt;br /&gt;
&lt;br /&gt;
$domain            = 'circle.a-eskwadraat.nl';&lt;br /&gt;
$imapServerAddress = 'localhost';&lt;br /&gt;
$useSendmail       = false;&lt;br /&gt;
$smtpServerAddress = 'localhost';&lt;br /&gt;
$pop_before_smtp   = false;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zet nu het A-Eskwadraat logo in de squirrelmail config map.&lt;br /&gt;
&amp;lt;pre&amp;gt;setsebool -P httpd_can_network_connect 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RoundcubeMail ==&lt;br /&gt;
&lt;br /&gt;
Roundcube is ook een webmail client.&lt;br /&gt;
&lt;br /&gt;
=== Installeren ===&lt;br /&gt;
&lt;br /&gt;
Op vm-salt-master staat een configuratie voor een Roundcube mail VM met een korte readme. Deze zorgt ervoor dat httpd, roundcubemail en mariadb geinstalleerd staan. Salt een VM met deze configuratie.&lt;br /&gt;
&amp;lt;pre&amp;gt;salt '$hostname' state.highstate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Laat vervolgens httpd van die VM door de firewall heen. Daarna moet de database voor Roundcube geinitialiseerd worden. Dit gaat met mysql.&lt;br /&gt;
&amp;lt;pre&amp;gt;CREATE DATABASE roundcubemail;&lt;br /&gt;
GRANT ALL PRIVILEGES on roundcubemail.* TO roundcube@localhost IDENTIFIED BY '$password';&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nu moet de timezone nog even ingesteld worden in /etc/php.ini op de roundcube VM. Daarna moeten er nog de juiste tables in de database worden gezet. Dit kan door op de nieuwe VM de bestanden in /etc/roundcubemail/databasefiles te runnen met mysql.&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql roundcubemail &amp;lt; mysql.initial.sql&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Sysop]]&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Mail</id>
		<title>Mail</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Mail"/>
				<updated>2016-02-17T18:34:52Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: services bijgewerkt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bij A–Eskwadraat gebruiken we '''Maildir''' voor de opslag van e-mail. Hiervoor gebruikten we het mbox-formaat. We raden gebruikers aan om niet direct de Maildirmappen te benaderen, maar om dit via [http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol IMAP] te doen. De standaardconfiguratie van de meeste mailclients staat hier ook voor ingesteld.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
Op [[Haskell|haskell]] draait de virtuele machine vm-mailpp (spreek uit: mail plus plus) om het mailverkeer van en naar A-Eskwadraat te regelen:&lt;br /&gt;
&lt;br /&gt;
*[http://www.postfix.org/ postfix] (''/etc/postfix/'') verwerkt in principe alle binnenkomende mails, en wat er waarheen doorgestuurd moet worden;&lt;br /&gt;
*[http://www.dovecot.org/ dovecot] (''/etc/dovecot/'') neemt de POP- en IMAP-servers voor zijn rekening;&lt;br /&gt;
*[https://www.amavis.org/ amavis] (''/etc/amavisd/'') geeft alle binnenkomende mails door aan SpamAssassin en ClamAV om gefilterd te worden;&lt;br /&gt;
*[http://spamassassin.apache.org/ SpamAssassin] (''/etc/mail/spamassassin/'') [[Mailfiltering|filtert]] de spam uit het binnenkomende mailverkeer;&lt;br /&gt;
*[http://http://www.clamav.net/lang/en/ ClamAV] (''/etc/clamd.d/'') scant het mailverkeer voor virussen en dergelijke;&lt;br /&gt;
*[https://roundcube.net/ RoundCube] (''/etc/roundcubemail/'', ''/usr/share/roundcubemail'') is een webmailclient die in een [https://www.apache.org/ apache] webserver op vm-mailpp draait;&lt;br /&gt;
*[http://www.list.org/ Mailman] (''/etc/mailman/'') Mailman is verantwoordelijk voor de mailing lists, zoals de BBCie-announce.&lt;br /&gt;
&lt;br /&gt;
== Naamgeving Maildirmappen ==&lt;br /&gt;
&lt;br /&gt;
Let op dat om voor dovecot begrijpbare namen te hebben, de mappen op in ''~/Maildir'' altijd met een punt moeten beginnen. Submappen werken ook op deze manier. Een paar voorbeelden:&lt;br /&gt;
&lt;br /&gt;
*''~/Maildir/.Intro/'' voor de IMAP-map ''Intro'';&lt;br /&gt;
*''~/Maildir/.Sysop.postmaster/'' voor de map ''postmaster'' als submap van ''Sysop''.&lt;br /&gt;
&lt;br /&gt;
Als de mappen via IMAP worden aangemaakt gebeurt dit automatisch.&lt;br /&gt;
&lt;br /&gt;
== Postfix ==&lt;br /&gt;
&lt;br /&gt;
Postfix is de SMTP server voor de nieuwe mail server.&lt;br /&gt;
&lt;br /&gt;
Postfix gebruikt meerdere ports om mail te ontvangen en te verwerken. Inkomende mail van leden moet naar de SMTP daemon op port 587 worden gestuurd. Authenticatie en TLS encryptie zijn een vereiste op deze verbinding. In de toekomst zal de [[Router|Router]] de encryptie tussen client en mail-server regelen. Alle andere mail komt binnen op port 25. Spam- en virus-filtering gebeurd via de SMTP daemons op ports 10025 en 10027 voor onbekende en bekende mail, respectievelijk. Lees ''/etc/postfix/master.cf'' voor de configuratie van deze SMTP daemons.&lt;br /&gt;
&lt;br /&gt;
=== Transport ===&lt;br /&gt;
&lt;br /&gt;
Eerst checkt Postfix of de inkomende mail aan een lokaal mailadres is gestuurd. Vervolgens word het adres verandert aan de hand van de alias mappen in /etc/postfix/aliases. De mail word naar elke resulterende gebruiker gestuurd via de instellingen van hun ''.forward'' bestand. Welke domeinen als 'lokaal' worden bestempeld staat in ''/etc/postfix/domains/local''.&lt;br /&gt;
&lt;br /&gt;
Daarna checkt Postfix of de inkomende mail naar een virtueel domein is gestuurd. Domeinen zoals turingslegacy.nl worden via een aliasmap herschreven, en de herschreven mail word van begins af aan verwerkt door Postfix. De virtuele domeinen staan in ''/etc/postfix/domains/virtual''.&lt;br /&gt;
&lt;br /&gt;
Als laatste checkt Postfix of de inkomende mail is gestuurd naar een domein waarvoor A-Eskwadraat mail relayed. Deze mail word onveranderd naar de mail-server van dit domein verstuurd (relaying). Dit voorkomt verlies van mail voor het externe domein wanneer hun mailserver uitvalt, aangezien A-Eskwadraat de secondary mailserver is voor dat domein.&lt;br /&gt;
&lt;br /&gt;
Een uitzondering op de regel is mail bedoeld voor de webserver. Mail aan de webcie komt binnen op de mail server, maar moet worden doorgestuurd naar de webserver. De verwijzingen zijn te vinden in ''/etc/postfix/transport_www'' en ''/etc/postfix/transport_regex''.&lt;br /&gt;
&lt;br /&gt;
Let op dat deze uitleg heel erg bot is. Lees de relevante ''man'' pages van Postfix om te leren hoe mail word verwerkt. Let op dat veranderingen in een alias/transport/domain map niet worden opgemerkt tot het ''postmap'' of ''postalias'' op het bestand is aangeroepen!&lt;br /&gt;
&lt;br /&gt;
=== Mailfiltering ===&lt;br /&gt;
&lt;br /&gt;
Postfix maakt gebruik van amavisd voor het filteren van de inkomende mail. Amavis is een interface voor SpamAssassin welke spam filtert en ClamAV welke mails op virussen scant. Check de configuratie op [[Vm-saltmaster|vm-saltmaster]] voor details.&lt;br /&gt;
&lt;br /&gt;
Om de virus database up te daten:&lt;br /&gt;
&amp;lt;pre&amp;gt;freshclam&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mailman ==&lt;br /&gt;
&lt;br /&gt;
Mailman is verantwoordelijk voor de infrastructuur van de mailing lists. De mailing lists zijn te vinden op [lists.a-eskwadraat.nl/mailman lists.a-eskwadraat.nl/mailman]. Er zijn twee belangrijke services om mailman te draaien: mailman en httpd. De configuratie van mailman bevind zich in ''/etc/mailman/'', de data bevind zich in ''/var/lib/mailman'', en de binaries bevinden zich in ''/usr/lib/mailman''.&lt;br /&gt;
&lt;br /&gt;
Gebruik de scripts in /usr/lib/mailman/bin om de mailing lists vanaf de command-line te wijzigen. De volgende commando's zijn belangrijk bij het debuggen / migreren van mailman:&lt;br /&gt;
&lt;br /&gt;
*check_perms: repareert de bestandsrechten van mailman-specifieke bestanden.&lt;br /&gt;
*with_list &amp;amp; fix_url: repareert de links van de mailman archieven indien deze zijn veranderd.&lt;br /&gt;
&lt;br /&gt;
Lees de [http://wiki.list.org/DOC/4.09%20Summary%20of%20the%20mailman%20bin%20commands MailmanWiki] voor een samenvatting van alle commands.&lt;br /&gt;
&lt;br /&gt;
Mailman werkt samen met de Postfix mailserver via de alias map ''/etc/mailman/aliases''. Voer het volgende commando uit na het toevoegen/verwijderen van een lijst zodat Postfix zijn alias database update:&lt;br /&gt;
&amp;lt;pre&amp;gt;postalias /etc/mailman/aliases&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na een migratie van de mailman lijsten is het belangrijk om ''restorecon'' uit te voeren op ''/var/lib/mailman''. Mailman en SELinux werken prima samen zolang de rechten maar goed staan.&lt;br /&gt;
&amp;lt;pre&amp;gt;# Samenvatting van een Mailman migratie.&lt;br /&gt;
# Op de nieuwe mailserver.&lt;br /&gt;
rsync -azv -e &amp;quot;ssh -i &amp;lt;sshkey&amp;gt;&amp;quot; &amp;lt;OUDEHOST&amp;gt;:/var/lib/mailman/ /var/lib/mailman/&lt;br /&gt;
restorecon -r /var/lib/mailman/&lt;br /&gt;
cd /usr/lib/mailman/&lt;br /&gt;
bin/check_perms -f&lt;br /&gt;
bin/withlist -l -a -r fix_url&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Dovecot is de IMAP server verantwoordelijk voor het ophalen en beheren van de mail opgeslagen in de homedirs. Mail wordt opgeslagen in de .Maildir van een gebruik zijn home directory. Momenteel is vm-mail de actieve IMAP server van A-Eskwadraat. De server luistert op poort 143 (standaard IMAP poort) en vereist een TLS-encrypted verbinding van de gebruiker. Het certificaat voor de verbinding is anders dan het certificaat van de webserver.&amp;amp;nbsp; Dovecot authenticeert gebruikers door middel van SASL-kerberos met de IPA servers. Dovecot werkt ook als authenticatie-server voor postfix door middel van een open socket. Een SELinux module is vereist om Postfix toegang te geven tot de socket.&lt;br /&gt;
&lt;br /&gt;
Voor meer configuratie details, zie de configuratie op de salt-master. (CentOS 6: /srv/salt/centos/vm-mail/dovecot, CentOS 7: /srv/salt/centos7/dovecot)&lt;br /&gt;
&lt;br /&gt;
'''AL DE CONFIGURATIE HIERONDER IS GIGANTISCH OUT OF DATE''' \/\/\/&lt;br /&gt;
&lt;br /&gt;
== Configuratie mailfilters ==&lt;br /&gt;
&lt;br /&gt;
Gebruik je een ''.forward'' of ''.procmailrc'' om e-mail direct in mappen te stoppen, let dan op de naamgeving (zie hierboven) en zorg ervoor dat de mappen altijd op een ''/'' eindigen. Begin je ''.procmailrc'' ook altijd met de regel&lt;br /&gt;
&lt;br /&gt;
 MAILDIR=$HOME/Maildir/&lt;br /&gt;
&lt;br /&gt;
om te zorgen dat e-mail toch niet in ''/var/mail'' terechtkomt.&lt;br /&gt;
&lt;br /&gt;
== Maak een mailserver met exim, en dovecot ==&lt;br /&gt;
&lt;br /&gt;
Zorg eerst dat sendmail uit staat!&lt;br /&gt;
&amp;lt;pre&amp;gt;service sendmail stop&lt;br /&gt;
chkconfig sendmail off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bij voorkeur verwijder je ook de package voor [[Postfix|postfix]]. Deze is standaard bij CentOS geïnstalleerd.&lt;br /&gt;
&lt;br /&gt;
=== Exim ===&lt;br /&gt;
&lt;br /&gt;
Exim is een MTA (Mail Transfer Agent) en is ervoor om mailtjes te versturen, ontvangen, en doorsturen. Dit gebeurd uiteraard op de mailserver!&lt;br /&gt;
&lt;br /&gt;
Installeer allereerst exim op de host.&lt;br /&gt;
&amp;lt;pre&amp;gt;# yum install exim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verander vervolgens het configuratie bestand /etc/exim/exim.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;# Het Mail domain - normaal gesproken a-eskwadraat.nl&lt;br /&gt;
primary_hostname = circle.a-eskwadraat.nl&lt;br /&gt;
&lt;br /&gt;
# Weiger met ipv6 te werken.&lt;br /&gt;
local_interfaces = 0.0.0.0&lt;br /&gt;
disable_ipv6 = true&lt;br /&gt;
&lt;br /&gt;
daemon_smtp_ports = smtp&amp;amp;nbsp;: submission&lt;br /&gt;
accept_8bitmime = true&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Lijsten van geldige mail domainin.&lt;br /&gt;
domainlist mailman_domains = CONFDIR/domains.mailman&lt;br /&gt;
domainlist local_domains = @&amp;amp;nbsp;: CONFDIR/domains.local&amp;amp;nbsp;: +mailman_domains&amp;amp;nbsp;: lsearch;CONFDIR/domains.virtual&lt;br /&gt;
domainlist relay_to_domains = CONFDIR/domains.relay&lt;br /&gt;
&lt;br /&gt;
hostlist relay_from_hosts = 10.14.3.0/22&lt;br /&gt;
&lt;br /&gt;
# Backup mail server in het geval dat onze niet werkt.&lt;br /&gt;
hostlist mx_hosts = mail.wolffelaar.nl&lt;br /&gt;
&lt;br /&gt;
qualify_domain = A-Eskwadraat.nl&lt;br /&gt;
&lt;br /&gt;
queue_run_max = 250&lt;br /&gt;
&lt;br /&gt;
smtp_accept_max = 100&lt;br /&gt;
smtp_accept_max_per_host = ${if match_ip{$sender_host_address}{+mx_hosts}{50}{10}}&lt;br /&gt;
&lt;br /&gt;
received_headers_max = 30&lt;br /&gt;
&lt;br /&gt;
RETRY_SECONDARY=F,90d,15m&lt;br /&gt;
RETRY_REST=F,2h,15m; G,16h,2h,1.5; F,4d,8h&lt;br /&gt;
&lt;br /&gt;
acl_smtp_rcpt = acl_check_rcpt&lt;br /&gt;
acl_not_smtp_start = acl_check_not_smtp&lt;br /&gt;
acl_smtp_data = acl_check_data&lt;br /&gt;
&lt;br /&gt;
host_lookup = *&lt;br /&gt;
helo_try_verify_hosts =&amp;amp;nbsp;!@&amp;amp;nbsp;:&amp;amp;nbsp;!@[]&lt;br /&gt;
helo_allow_chars = _&lt;br /&gt;
&lt;br /&gt;
# ClamAV - The Anti-Virus Scanner&lt;br /&gt;
av_scanner = clamd:/var/run/clamav/clamd.sock&lt;br /&gt;
&lt;br /&gt;
# Custom 5s limiet.&lt;br /&gt;
rfc1413_query_timeout = 5s&lt;br /&gt;
&lt;br /&gt;
# Mailman support, als per /usr/share/doc/mailman/README.EXIM.gz&lt;br /&gt;
MAILMAN_HOME=/var/lib/mailman&lt;br /&gt;
MAILMAN_WRAP=/usr/lib/mailman/mail/mailman&lt;br /&gt;
MAILMAN_USER=mailman&lt;br /&gt;
MAILMAN_GROUP=mailman&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dovecot ===&lt;br /&gt;
&lt;br /&gt;
Dovecot is een IMAP en POP3 server, wat inhoud dat het mailtjes kan ontvangen, iets wat best wel handig is om te hebben. Installeer dovecot op je mailserver als je dat nog niet gedaan hebt. Verander dan nu het volgende:&lt;br /&gt;
&lt;br /&gt;
In /etc/dovecot/dovecot.conf:&lt;br /&gt;
&lt;br /&gt;
*protocols = imap&lt;br /&gt;
*login_trusted_networks = &amp;amp;lt;ip-adressen die je vertrouwd&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In /etc/dovecot/conf.d/10-mail.conf&lt;br /&gt;
&lt;br /&gt;
*mail_location = maildir:~/Maildir&lt;br /&gt;
*lock_method = dotlock&lt;br /&gt;
&lt;br /&gt;
In /etc/dovecot/conf.d/10-auth.conf&lt;br /&gt;
&lt;br /&gt;
*disable_plaintext_auth = no&lt;br /&gt;
*auth_realms = aeskwadraat&lt;br /&gt;
*auth_default_realm = aeskwadraat&lt;br /&gt;
*auth_gssapi_hostname = &amp;amp;lt;ipa-server&amp;amp;gt;&lt;br /&gt;
*auth_krb5_keytab = /etc/dovecot/krb5.keytab&lt;br /&gt;
*auth_mechanisms = plain gssapi&lt;br /&gt;
&lt;br /&gt;
en zet op het einde&lt;br /&gt;
&amp;lt;pre&amp;gt;userdb {&lt;br /&gt;
  driver = static&lt;br /&gt;
  args = uid=dovecot gid=dovecot home=/var/spool/mail/%u&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maak nu op de ipa-server een service imap aan met de mailserver als host. Dit kan je doen via de webinterface. Voer vervolgens het volgende uit op de mailserver:&lt;br /&gt;
&amp;lt;pre&amp;gt;kinit admin&lt;br /&gt;
ipa-getkeytab -s &amp;lt;ipa-server&amp;gt; -p imap/&amp;lt;mailserver&amp;gt; -k /etc/dovecot/krb5.keytab&lt;br /&gt;
chown root:dovecot /etc/dovecot/krb5.keytab&lt;br /&gt;
chmod 640 /etc/dovecot/krb5.keytab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart dovecot en zet hem standaard aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;service dovecot restart&lt;br /&gt;
chkconfig dovecot on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zet tenslotte nog met system-config-firewall-tui 'imap over ssl' en 'mail (smtp)' aan, en voila! Je kan nu met ipa-users gebruik maken van IMAP om mailtjes te ontvangen!&lt;br /&gt;
&lt;br /&gt;
Je kan eventueel in /etc/postfix/main.cf en /etc/dovecot/conf.d/10-mail.conf nog het een ander van waar de mail wordt opgeslagen veranderen.&lt;br /&gt;
&lt;br /&gt;
=== Spamassassin ===&lt;br /&gt;
&lt;br /&gt;
Spamassassin is een mailfilteringprogramma voor spam. Om het te installeren:&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install spamassassin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maak nu de user en group spamd aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;groupadd -g 5001 spamd&lt;br /&gt;
useradd -u 5001 -g spamd -s /sbin/nologin -d /var/lib/spamassassin spamd&lt;br /&gt;
mkdir /var/lib/spamassassin&lt;br /&gt;
chown spamd:spamd /var/lib/spamassassin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zet dan het volgende in /etc/mail/spamassassin/local.cf:&lt;br /&gt;
&amp;lt;pre&amp;gt;required_score 5.0&lt;br /&gt;
report_safe 0&lt;br /&gt;
rewrite_header Subject [***SPAM***]&lt;br /&gt;
&lt;br /&gt;
# Enable the Bayes system&lt;br /&gt;
use_bayes 1&lt;br /&gt;
use_bayes_rules 1&lt;br /&gt;
# Enable Bayes auto-learning&lt;br /&gt;
bayes_auto_learn 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verander nu in /etc/postfix/master.cf&lt;br /&gt;
&amp;lt;pre&amp;gt;smtp      inet  n       -       n       -       -       smtpd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in&lt;br /&gt;
&amp;lt;pre&amp;gt;smtp      inet  n       -       n       -       -       smtpd -o content_filter=spamassassin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
en stop op het einde van master.cf:&lt;br /&gt;
&amp;lt;pre&amp;gt;spamassassin unix - n n - - pipe flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart nu spamassassin en postfix:&lt;br /&gt;
&amp;lt;pre&amp;gt;chkconfig spamassassin on&lt;br /&gt;
service spamassassin restart&lt;br /&gt;
service postfix restart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aliases ===&lt;br /&gt;
&lt;br /&gt;
In postfix staan de locaties van de aliases in /etc/postfix/main.cf. Deze kan je vinden bij de regel 'alias_maps = ...'. Als je een nieuw aliasbestand wilt toevoegen, voeg dit dan ook toe bij deze regel als hash:&amp;amp;lt;bestandslocatie&amp;amp;gt;. Vergeet ook niet om dit toe te voegen bij alias_database!.&lt;br /&gt;
&lt;br /&gt;
De aliases zelf staan geconfigureerd in de aliasbestanden die te vinden zijn onder /etc/postfix/alias/. Als je een nieuwe alias in een bestand hebt gezet moet je het db-bestand up-to-date make door het commando 'postalias *bestand*' uitvoeren. Let erop dat de bestandsnaam de naam van het bestand is wat je gewijzigd hebt, niet een bestand met extensie '.db'.&lt;br /&gt;
&lt;br /&gt;
== Instellingen ==&lt;br /&gt;
&lt;br /&gt;
=== Postfix ===&lt;br /&gt;
&lt;br /&gt;
==== Mail relay ====&lt;br /&gt;
&lt;br /&gt;
Postfix kan mail relayen naar een extern domein. Hiervoor is de volgende regel:&lt;br /&gt;
&amp;lt;pre&amp;gt;relay_domains = $mydestination, hash:/etc/postfix/domains.relay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In het bestand /etc/postfix/domains.relay staat de lijst van alle externe domains waar mail naar toe gerelayed wordt. Als je iets in het bestand wijzigt, vergeet dan niet om daarna het commando&lt;br /&gt;
&amp;lt;pre&amp;gt;postmap /etc/postfix/domains.relay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
uit te voeren.&lt;br /&gt;
&lt;br /&gt;
==== Whitelist ====&lt;br /&gt;
&lt;br /&gt;
Postfix kan gebruik maken van een whitelist. Zorg hiervoor dat er het volgende in /etc/postfix/main.cf staat:&lt;br /&gt;
&amp;lt;pre&amp;gt;smtpd_client_restrictions = check_client_access hash:/etc/postfix/client.access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In het bestand /etc/postfix/client.access staat de lijst van alle domains die geweigerd en toegelaten worden. Als je hier iets in verandert, vergeet dan niet om uit te voeren&lt;br /&gt;
&amp;lt;pre&amp;gt;postmap /etc/postfix/access.client&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SquirrelMail ==&lt;br /&gt;
&lt;br /&gt;
SquirrelMail is een webmail-client.&lt;br /&gt;
&lt;br /&gt;
=== SquirrelMail installeren ===&lt;br /&gt;
&lt;br /&gt;
Installeer eerst natuurlijk Squirrelmail:&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install squirrelmail&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zorg ervoor dat httpd standaard aan staat en start httpd:&lt;br /&gt;
&amp;lt;pre&amp;gt;chkconfig httpd on&lt;br /&gt;
service httpd start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verander nu het volgende in /etc/squirrelmail/config.php:&lt;br /&gt;
&amp;lt;pre&amp;gt;$org_name        = &amp;quot;A-Eskwadraat&amp;quot;;&lt;br /&gt;
$org_logo        = SM_PATH . 'images/sm_logo.png';&lt;br /&gt;
$org_logo_width  = '308';&lt;br /&gt;
$org_logo_height = '111';&lt;br /&gt;
$org_title       = 'A-Eskwadraat SquirrelMail $version&amp;quot;;&lt;br /&gt;
$signout_page    = 'vm-mail.a-eskwadraat.nl';&lt;br /&gt;
&lt;br /&gt;
$domain            = 'circle.a-eskwadraat.nl';&lt;br /&gt;
$imapServerAddress = 'localhost';&lt;br /&gt;
$useSendmail       = false;&lt;br /&gt;
$smtpServerAddress = 'localhost';&lt;br /&gt;
$pop_before_smtp   = false;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zet nu het A-Eskwadraat logo in de squirrelmail config map.&lt;br /&gt;
&amp;lt;pre&amp;gt;setsebool -P httpd_can_network_connect 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RoundcubeMail ==&lt;br /&gt;
&lt;br /&gt;
Roundcube is ook een webmail client.&lt;br /&gt;
&lt;br /&gt;
=== Installeren ===&lt;br /&gt;
&lt;br /&gt;
Op vm-salt-master staat een configuratie voor een Roundcube mail VM met een korte readme. Deze zorgt ervoor dat httpd, roundcubemail en mariadb geinstalleerd staan. Salt een VM met deze configuratie.&lt;br /&gt;
&amp;lt;pre&amp;gt;salt '$hostname' state.highstate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Laat vervolgens httpd van die VM door de firewall heen. Daarna moet de database voor Roundcube geinitialiseerd worden. Dit gaat met mysql.&lt;br /&gt;
&amp;lt;pre&amp;gt;CREATE DATABASE roundcubemail;&lt;br /&gt;
GRANT ALL PRIVILEGES on roundcubemail.* TO roundcube@localhost IDENTIFIED BY '$password';&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nu moet de timezone nog even ingesteld worden in /etc/php.ini op de roundcube VM. Daarna moeten er nog de juiste tables in de database worden gezet. Dit kan door op de nieuwe VM de bestanden in /etc/roundcubemail/databasefiles te runnen met mysql.&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql roundcubemail &amp;lt; mysql.initial.sql&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mail Authorizatie ==&lt;br /&gt;
&lt;br /&gt;
Om te controleren of een gebruiker wel als een adres mag mailen wordt gebruik gemaakt van een sender_login_maps, die in een database de users opzoekt die als gegeven adres mogen versturen. Dit is een python script die op de vm-sysop staat bij de sysop api, aangezien daar de mail aliases al staan voor de alias_check. Het python script, te vinden in `/var/www/html/api/python/mail-authorization.py`, loopt recursief langs alle users die in cies, bestuur, extern of iba zitten en kijkt daarnaast ook naar mail aliassen. Aan de hand hiervan wordt met een sql query alle transitieve relaties expliciet gemaakt, zodat dit niet runtime gedaan moet worden. Als een alias naar een cie wordt doorgestuurd, en een user weer in die cie zit, wil je dat die user ook als die alias mag mailen. Als database wordt PostgreSQL gebruikt op de vm-database. De database die gebruikt wordt heet &amp;quot;mail&amp;quot;. In de python code staan nog wat comments. Er draait op de vm-sysop een cron die af en toe de database refreshed. Daarnaast is het python script ook intern bereikbaar [http://vm-sysop.a-eskwadraat.nl/api/python/mail-authorization.py hier]. Bij het laden van deze pagina wordt de database gerefreshed. Op deze manier kan de database meteen gerefreshed worden zodra iemand toegevoegd is aan een cie. Als er in een alias een wildcard staat (*@bapc.eu: bapc), wat betekend dat alles van het domein bapc.eu naar de bapc commissie wordt gestuurd, wordt dit omgezet naar een SQL wildcard, wat uiteindelijk dus netjes werkt.&lt;br /&gt;
&lt;br /&gt;
Als er via SMTP een request gedaan wordt om van buitenaf een mail te versturen doet postfix een query en kijkt welke users als die alias mail mogen versturen. Deze config is op de vm-mailpp te vinden in `/etc/postfix/alias_auth.cf`.&lt;br /&gt;
[[Category:Sysop]]&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Mail</id>
		<title>Mail</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Mail"/>
				<updated>2015-12-09T18:58:42Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: out of date config verduidelijken&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bij A–Eskwadraat gebruiken we '''Maildir''' voor de opslag van e-mail. Hiervoor gebruikten we het mbox-formaat. We raden gebruikers aan om niet direct de Maildirmappen te benaderen, maar om dit via [http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol IMAP] te doen. De standaardconfiguratie van de meeste mailclients staat hier ook voor ingesteld.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
Op [[Haskell|haskell]] draait de virtuele machine [[Vm-mail|vm-mail]] om het mailverkeer van en naar A-Eskwadraat te regelen:&lt;br /&gt;
&lt;br /&gt;
*[http://www.exim.org/ exim] (''/etc/exim4/'') verwerkt in principe alle binnenkomende mails, en wat er waarheen doorgestuurd moet worden;&lt;br /&gt;
*[http://www.dovecot.org/ dovecot] (''/etc/dovecot/'') neemt de POP- en IMAP-servers voor zijn rekening;&lt;br /&gt;
*[http://spamassassin.apache.org/ SpamAssassin] (''/etc/mail/spamassassin/'') [[Mailfiltering|filtert]] het binnenkomende mailverkeer;&lt;br /&gt;
*[http://http://www.clamav.net/lang/en/ ClamAV] (''/etc/clamd.d/'') scant het mailverkeer voor virussen en dergelijke;&lt;br /&gt;
*[http://squirrelmail.org SquirrelMail] (''/etc/squirrelmail/'') is een webmail interface SquirrelMail draait in de webserver van [[Vm-mail|vm-mail]];&lt;br /&gt;
*[http://www.list.org/ Mailman] (''/etc/mailman/'') Mailman is verantwoordelijk voor de mailing lists, zoals de BBCie-announce.&lt;br /&gt;
&lt;br /&gt;
== Naamgeving Maildirmappen ==&lt;br /&gt;
&lt;br /&gt;
Let op dat om voor dovecot begrijpbare namen te hebben, de mappen op in ''~/Maildir'' altijd met een punt moeten beginnen. Submappen werken ook op deze manier. Een paar voorbeelden:&lt;br /&gt;
&lt;br /&gt;
*''~/Maildir/.Intro/'' voor de IMAP-map ''Intro'';&lt;br /&gt;
*''~/Maildir/.Sysop.postmaster/'' voor de map ''postmaster'' als submap van ''Sysop''.&lt;br /&gt;
&lt;br /&gt;
Als de mappen via IMAP worden aangemaakt gebeurt dit automatisch.&lt;br /&gt;
&lt;br /&gt;
== Postfix ==&lt;br /&gt;
&lt;br /&gt;
Postfix is de SMTP server voor de nieuwe mail server.&lt;br /&gt;
&lt;br /&gt;
Postfix gebruikt meerdere ports om mail te ontvangen en te verwerken. Inkomende mail van leden moet naar de SMTP daemon op port 587 worden gestuurd. Authenticatie en TLS encryptie zijn een vereiste op deze verbinding. In de toekomst zal de [[Router|Router]] de encryptie tussen client en mail-server regelen. Alle andere mail komt binnen op port 25. Spam- en virus-filtering gebeurd via de SMTP daemons op ports 10025 en 10027 voor onbekende en bekende mail, respectievelijk. Lees ''/etc/postfix/master.cf'' voor de configuratie van deze SMTP daemons.&lt;br /&gt;
&lt;br /&gt;
=== Transport ===&lt;br /&gt;
&lt;br /&gt;
Eerst checkt Postfix of de inkomende mail aan een lokaal mailadres is gestuurd. Vervolgens word het adres verandert aan de hand van de alias mappen in /etc/postfix/aliases. De mail word naar elke resulterende gebruiker gestuurd via de instellingen van hun ''.forward'' bestand. Welke domeinen als 'lokaal' worden bestempeld staat in ''/etc/postfix/domains/local''.&lt;br /&gt;
&lt;br /&gt;
Daarna checkt Postfix of de inkomende mail naar een virtueel domein is gestuurd. Domeinen zoals turingslegacy.nl worden via een aliasmap herschreven, en de herschreven mail word van begins af aan verwerkt door Postfix. De virtuele domeinen staan in ''/etc/postfix/domains/virtual''.&lt;br /&gt;
&lt;br /&gt;
Als laatste checkt Postfix of de inkomende mail is gestuurd naar een domein waarvoor A-Eskwadraat mail relayed. Deze mail word onveranderd naar de mail-server van dit domein verstuurd (relaying). Dit voorkomt verlies van mail voor het externe domein wanneer hun mailserver uitvalt, aangezien A-Eskwadraat de secondary mailserver is voor dat domein.&lt;br /&gt;
&lt;br /&gt;
Een uitzondering op de regel is mail bedoeld voor de webserver. Mail aan de webcie komt binnen op de mail server, maar moet worden doorgestuurd naar de webserver. De verwijzingen zijn te vinden in ''/etc/postfix/transport_www'' en ''/etc/postfix/transport_regex''.&lt;br /&gt;
&lt;br /&gt;
Let op dat deze uitleg heel erg bot is. Lees de relevante ''man'' pages van Postfix om te leren hoe mail word verwerkt. Let op dat veranderingen in een alias/transport/domain map niet worden opgemerkt tot het ''postmap'' of ''postalias'' op het bestand is aangeroepen!&lt;br /&gt;
&lt;br /&gt;
=== Mailfiltering ===&lt;br /&gt;
&lt;br /&gt;
Postfix maakt gebruik van amavisd voor het filteren van de inkomende mail. Amavis is een interface voor SpamAssassin welke spam filtert en ClamAV welke mails op virussen scant. Check de configuratie op [[Vm-saltmaster|vm-saltmaster]] voor details.&lt;br /&gt;
&lt;br /&gt;
Om de virus database up te daten:&lt;br /&gt;
&amp;lt;pre&amp;gt;freshclam&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mailman ==&lt;br /&gt;
&lt;br /&gt;
Mailman is verantwoordelijk voor de infrastructuur van de mailing lists. De mailing lists zijn te vinden op [lists.a-eskwadraat.nl/mailman lists.a-eskwadraat.nl/mailman]. Er zijn twee belangrijke services om mailman te draaien: mailman en httpd. De configuratie van mailman bevind zich in ''/etc/mailman/'', de data bevind zich in ''/var/lib/mailman'', en de binaries bevinden zich in ''/usr/lib/mailman''.&lt;br /&gt;
&lt;br /&gt;
Gebruik de scripts in /usr/lib/mailman/bin om de mailing lists vanaf de command-line te wijzigen. De volgende commando's zijn belangrijk bij het debuggen / migreren van mailman:&lt;br /&gt;
&lt;br /&gt;
*check_perms: repareert de bestandsrechten van mailman-specifieke bestanden.&lt;br /&gt;
*with_list &amp;amp; fix_url: repareert de links van de mailman archieven indien deze zijn veranderd.&lt;br /&gt;
&lt;br /&gt;
Lees de [http://wiki.list.org/DOC/4.09%20Summary%20of%20the%20mailman%20bin%20commands MailmanWiki] voor een samenvatting van alle commands.&lt;br /&gt;
&lt;br /&gt;
Mailman werkt samen met de Postfix mailserver via de alias map ''/etc/mailman/aliases''. Voer het volgende commando uit na het toevoegen/verwijderen van een lijst zodat Postfix zijn alias database update:&lt;br /&gt;
&amp;lt;pre&amp;gt;postalias /etc/mailman/aliases&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na een migratie van de mailman lijsten is het belangrijk om ''restorecon'' uit te voeren op ''/var/lib/mailman''. Mailman en SELinux werken prima samen zolang de rechten maar goed staan.&lt;br /&gt;
&amp;lt;pre&amp;gt;# Samenvatting van een Mailman migratie.&lt;br /&gt;
# Op de nieuwe mailserver.&lt;br /&gt;
rsync -azv -e &amp;quot;ssh -i &amp;lt;sshkey&amp;gt;&amp;quot; &amp;lt;OUDEHOST&amp;gt;:/var/lib/mailman/ /var/lib/mailman/&lt;br /&gt;
restorecon -r /var/lib/mailman/&lt;br /&gt;
cd /usr/lib/mailman/&lt;br /&gt;
bin/check_perms -f&lt;br /&gt;
bin/withlist -l -a -r fix_url&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Dovecot is de IMAP server verantwoordelijk voor het ophalen en beheren van de mail opgeslagen in de homedirs. Mail wordt opgeslagen in de .Maildir van een gebruik zijn home directory. Momenteel is vm-mail de actieve IMAP server van A-Eskwadraat. De server luistert op poort 143 (standaard IMAP poort) en vereist een TLS-encrypted verbinding van de gebruiker. Het certificaat voor de verbinding is anders dan het certificaat van de webserver.&amp;amp;nbsp; Dovecot authenticeert gebruikers door middel van SASL-kerberos met de IPA servers. Dovecot werkt ook als authenticatie-server voor postfix door middel van een open socket. Een SELinux module is vereist om Postfix toegang te geven tot de socket.&lt;br /&gt;
&lt;br /&gt;
Voor meer configuratie details, zie de configuratie op de salt-master. (CentOS 6: /srv/salt/centos/vm-mail/dovecot, CentOS 7: /srv/salt/centos7/dovecot)&lt;br /&gt;
&lt;br /&gt;
'''AL DE CONFIGURATIE HIERONDER IS GIGANTISCH OUT OF DATE''' \/\/\/&lt;br /&gt;
&lt;br /&gt;
== Configuratie mailfilters ==&lt;br /&gt;
&lt;br /&gt;
Gebruik je een ''.forward'' of ''.procmailrc'' om e-mail direct in mappen te stoppen, let dan op de naamgeving (zie hierboven) en zorg ervoor dat de mappen altijd op een ''/'' eindigen. Begin je ''.procmailrc'' ook altijd met de regel&lt;br /&gt;
&lt;br /&gt;
 MAILDIR=$HOME/Maildir/&lt;br /&gt;
&lt;br /&gt;
om te zorgen dat e-mail toch niet in ''/var/mail'' terechtkomt.&lt;br /&gt;
&lt;br /&gt;
== Maak een mailserver met exim, en dovecot ==&lt;br /&gt;
&lt;br /&gt;
Zorg eerst dat sendmail uit staat!&lt;br /&gt;
&amp;lt;pre&amp;gt;service sendmail stop&lt;br /&gt;
chkconfig sendmail off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bij voorkeur verwijder je ook de package voor [[Postfix|postfix]]. Deze is standaard bij CentOS geïnstalleerd.&lt;br /&gt;
&lt;br /&gt;
=== Exim ===&lt;br /&gt;
&lt;br /&gt;
Exim is een MTA (Mail Transfer Agent) en is ervoor om mailtjes te versturen, ontvangen, en doorsturen. Dit gebeurd uiteraard op de mailserver!&lt;br /&gt;
&lt;br /&gt;
Installeer allereerst exim op de host.&lt;br /&gt;
&amp;lt;pre&amp;gt;# yum install exim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verander vervolgens het configuratie bestand /etc/exim/exim.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;# Het Mail domain - normaal gesproken a-eskwadraat.nl&lt;br /&gt;
primary_hostname = circle.a-eskwadraat.nl&lt;br /&gt;
&lt;br /&gt;
# Weiger met ipv6 te werken.&lt;br /&gt;
local_interfaces = 0.0.0.0&lt;br /&gt;
disable_ipv6 = true&lt;br /&gt;
&lt;br /&gt;
daemon_smtp_ports = smtp&amp;amp;nbsp;: submission&lt;br /&gt;
accept_8bitmime = true&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Lijsten van geldige mail domainin.&lt;br /&gt;
domainlist mailman_domains = CONFDIR/domains.mailman&lt;br /&gt;
domainlist local_domains = @&amp;amp;nbsp;: CONFDIR/domains.local&amp;amp;nbsp;: +mailman_domains&amp;amp;nbsp;: lsearch;CONFDIR/domains.virtual&lt;br /&gt;
domainlist relay_to_domains = CONFDIR/domains.relay&lt;br /&gt;
&lt;br /&gt;
hostlist relay_from_hosts = 10.14.3.0/22&lt;br /&gt;
&lt;br /&gt;
# Backup mail server in het geval dat onze niet werkt.&lt;br /&gt;
hostlist mx_hosts = mail.wolffelaar.nl&lt;br /&gt;
&lt;br /&gt;
qualify_domain = A-Eskwadraat.nl&lt;br /&gt;
&lt;br /&gt;
queue_run_max = 250&lt;br /&gt;
&lt;br /&gt;
smtp_accept_max = 100&lt;br /&gt;
smtp_accept_max_per_host = ${if match_ip{$sender_host_address}{+mx_hosts}{50}{10}}&lt;br /&gt;
&lt;br /&gt;
received_headers_max = 30&lt;br /&gt;
&lt;br /&gt;
RETRY_SECONDARY=F,90d,15m&lt;br /&gt;
RETRY_REST=F,2h,15m; G,16h,2h,1.5; F,4d,8h&lt;br /&gt;
&lt;br /&gt;
acl_smtp_rcpt = acl_check_rcpt&lt;br /&gt;
acl_not_smtp_start = acl_check_not_smtp&lt;br /&gt;
acl_smtp_data = acl_check_data&lt;br /&gt;
&lt;br /&gt;
host_lookup = *&lt;br /&gt;
helo_try_verify_hosts =&amp;amp;nbsp;!@&amp;amp;nbsp;:&amp;amp;nbsp;!@[]&lt;br /&gt;
helo_allow_chars = _&lt;br /&gt;
&lt;br /&gt;
# ClamAV - The Anti-Virus Scanner&lt;br /&gt;
av_scanner = clamd:/var/run/clamav/clamd.sock&lt;br /&gt;
&lt;br /&gt;
# Custom 5s limiet.&lt;br /&gt;
rfc1413_query_timeout = 5s&lt;br /&gt;
&lt;br /&gt;
# Mailman support, als per /usr/share/doc/mailman/README.EXIM.gz&lt;br /&gt;
MAILMAN_HOME=/var/lib/mailman&lt;br /&gt;
MAILMAN_WRAP=/usr/lib/mailman/mail/mailman&lt;br /&gt;
MAILMAN_USER=mailman&lt;br /&gt;
MAILMAN_GROUP=mailman&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dovecot ===&lt;br /&gt;
&lt;br /&gt;
Dovecot is een IMAP en POP3 server, wat inhoud dat het mailtjes kan ontvangen, iets wat best wel handig is om te hebben. Installeer dovecot op je mailserver als je dat nog niet gedaan hebt. Verander dan nu het volgende:&lt;br /&gt;
&lt;br /&gt;
In /etc/dovecot/dovecot.conf:&lt;br /&gt;
&lt;br /&gt;
*protocols = imap&lt;br /&gt;
*login_trusted_networks = &amp;amp;lt;ip-adressen die je vertrouwd&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In /etc/dovecot/conf.d/10-mail.conf&lt;br /&gt;
&lt;br /&gt;
*mail_location = maildir:~/Maildir&lt;br /&gt;
*lock_method = dotlock&lt;br /&gt;
&lt;br /&gt;
In /etc/dovecot/conf.d/10-auth.conf&lt;br /&gt;
&lt;br /&gt;
*disable_plaintext_auth = no&lt;br /&gt;
*auth_realms = aeskwadraat&lt;br /&gt;
*auth_default_realm = aeskwadraat&lt;br /&gt;
*auth_gssapi_hostname = &amp;amp;lt;ipa-server&amp;amp;gt;&lt;br /&gt;
*auth_krb5_keytab = /etc/dovecot/krb5.keytab&lt;br /&gt;
*auth_mechanisms = plain gssapi&lt;br /&gt;
&lt;br /&gt;
en zet op het einde&lt;br /&gt;
&amp;lt;pre&amp;gt;userdb {&lt;br /&gt;
  driver = static&lt;br /&gt;
  args = uid=dovecot gid=dovecot home=/var/spool/mail/%u&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maak nu op de ipa-server een service imap aan met de mailserver als host. Dit kan je doen via de webinterface. Voer vervolgens het volgende uit op de mailserver:&lt;br /&gt;
&amp;lt;pre&amp;gt;kinit admin&lt;br /&gt;
ipa-getkeytab -s &amp;lt;ipa-server&amp;gt; -p imap/&amp;lt;mailserver&amp;gt; -k /etc/dovecot/krb5.keytab&lt;br /&gt;
chown root:dovecot /etc/dovecot/krb5.keytab&lt;br /&gt;
chmod 640 /etc/dovecot/krb5.keytab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart dovecot en zet hem standaard aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;service dovecot restart&lt;br /&gt;
chkconfig dovecot on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zet tenslotte nog met system-config-firewall-tui 'imap over ssl' en 'mail (smtp)' aan, en voila! Je kan nu met ipa-users gebruik maken van IMAP om mailtjes te ontvangen!&lt;br /&gt;
&lt;br /&gt;
Je kan eventueel in /etc/postfix/main.cf en /etc/dovecot/conf.d/10-mail.conf nog het een ander van waar de mail wordt opgeslagen veranderen.&lt;br /&gt;
&lt;br /&gt;
=== Spamassassin ===&lt;br /&gt;
&lt;br /&gt;
Spamassassin is een mailfilteringprogramma voor spam. Om het te installeren:&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install spamassassin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maak nu de user en group spamd aan:&lt;br /&gt;
&amp;lt;pre&amp;gt;groupadd -g 5001 spamd&lt;br /&gt;
useradd -u 5001 -g spamd -s /sbin/nologin -d /var/lib/spamassassin spamd&lt;br /&gt;
mkdir /var/lib/spamassassin&lt;br /&gt;
chown spamd:spamd /var/lib/spamassassin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zet dan het volgende in /etc/mail/spamassassin/local.cf:&lt;br /&gt;
&amp;lt;pre&amp;gt;required_score 5.0&lt;br /&gt;
report_safe 0&lt;br /&gt;
rewrite_header Subject [***SPAM***]&lt;br /&gt;
&lt;br /&gt;
# Enable the Bayes system&lt;br /&gt;
use_bayes 1&lt;br /&gt;
use_bayes_rules 1&lt;br /&gt;
# Enable Bayes auto-learning&lt;br /&gt;
bayes_auto_learn 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verander nu in /etc/postfix/master.cf&lt;br /&gt;
&amp;lt;pre&amp;gt;smtp      inet  n       -       n       -       -       smtpd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in&lt;br /&gt;
&amp;lt;pre&amp;gt;smtp      inet  n       -       n       -       -       smtpd -o content_filter=spamassassin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
en stop op het einde van master.cf:&lt;br /&gt;
&amp;lt;pre&amp;gt;spamassassin unix - n n - - pipe flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart nu spamassassin en postfix:&lt;br /&gt;
&amp;lt;pre&amp;gt;chkconfig spamassassin on&lt;br /&gt;
service spamassassin restart&lt;br /&gt;
service postfix restart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aliases ===&lt;br /&gt;
&lt;br /&gt;
In postfix staan de locaties van de aliases in /etc/postfix/main.cf. Deze kan je vinden bij de regel 'alias_maps = ...'. Als je een nieuw aliasbestand wilt toevoegen, voeg dit dan ook toe bij deze regel als hash:&amp;amp;lt;bestandslocatie&amp;amp;gt;. Vergeet ook niet om dit toe te voegen bij alias_database!.&lt;br /&gt;
&lt;br /&gt;
De aliases zelf staan geconfigureerd in de aliasbestanden die te vinden zijn onder /etc/aesalias/. Nadat je een nieuw alias hebt toegevoegd moet je het commando 'newaliases' als root uitvoeren om de nieuwe alias(sen) te activeren. Hetzelfde moet je ook doen als je aliases weghaalt natuurlijk!&lt;br /&gt;
&lt;br /&gt;
== Instellingen ==&lt;br /&gt;
&lt;br /&gt;
=== Postfix ===&lt;br /&gt;
&lt;br /&gt;
==== Mail relay ====&lt;br /&gt;
&lt;br /&gt;
Postfix kan mail relayen naar een extern domein. Hiervoor is de volgende regel:&lt;br /&gt;
&amp;lt;pre&amp;gt;relay_domains = $mydestination, hash:/etc/postfix/domains.relay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In het bestand /etc/postfix/domains.relay staat de lijst van alle externe domains waar mail naar toe gerelayed wordt. Als je iets in het bestand wijzigt, vergeet dan niet om daarna het commando&lt;br /&gt;
&amp;lt;pre&amp;gt;postmap /etc/postfix/domains.relay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
uit te voeren.&lt;br /&gt;
&lt;br /&gt;
==== Whitelist ====&lt;br /&gt;
&lt;br /&gt;
Postfix kan gebruik maken van een whitelist. Zorg hiervoor dat er het volgende in /etc/postfix/main.cf staat:&lt;br /&gt;
&amp;lt;pre&amp;gt;smtpd_client_restrictions = check_client_access hash:/etc/postfix/client.access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In het bestand /etc/postfix/client.access staat de lijst van alle domains die geweigerd en toegelaten worden. Als je hier iets in verandert, vergeet dan niet om uit te voeren&lt;br /&gt;
&amp;lt;pre&amp;gt;postmap /etc/postfix/access.client&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SquirrelMail ==&lt;br /&gt;
&lt;br /&gt;
SquirrelMail is een webmail-client.&lt;br /&gt;
&lt;br /&gt;
=== SquirrelMail installeren ===&lt;br /&gt;
&lt;br /&gt;
Installeer eerst natuurlijk Squirrelmail:&lt;br /&gt;
&amp;lt;pre&amp;gt;yum install squirrelmail&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zorg ervoor dat httpd standaard aan staat en start httpd:&lt;br /&gt;
&amp;lt;pre&amp;gt;chkconfig httpd on&lt;br /&gt;
service httpd start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verander nu het volgende in /etc/squirrelmail/config.php:&lt;br /&gt;
&amp;lt;pre&amp;gt;$org_name        = &amp;quot;A-Eskwadraat&amp;quot;;&lt;br /&gt;
$org_logo        = SM_PATH . 'images/sm_logo.png';&lt;br /&gt;
$org_logo_width  = '308';&lt;br /&gt;
$org_logo_height = '111';&lt;br /&gt;
$org_title       = 'A-Eskwadraat SquirrelMail $version&amp;quot;;&lt;br /&gt;
$signout_page    = 'vm-mail.a-eskwadraat.nl';&lt;br /&gt;
&lt;br /&gt;
$domain            = 'circle.a-eskwadraat.nl';&lt;br /&gt;
$imapServerAddress = 'localhost';&lt;br /&gt;
$useSendmail       = false;&lt;br /&gt;
$smtpServerAddress = 'localhost';&lt;br /&gt;
$pop_before_smtp   = false;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zet nu het A-Eskwadraat logo in de squirrelmail config map.&lt;br /&gt;
&amp;lt;pre&amp;gt;setsebool -P httpd_can_network_connect 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RoundcubeMail ==&lt;br /&gt;
&lt;br /&gt;
Roundcube is ook een webmail client.&lt;br /&gt;
&lt;br /&gt;
=== Installeren ===&lt;br /&gt;
&lt;br /&gt;
Op vm-salt-master staat een configuratie voor een Roundcube mail VM met een korte readme. Deze zorgt ervoor dat httpd, roundcubemail en mariadb geinstalleerd staan. Salt een VM met deze configuratie.&lt;br /&gt;
&amp;lt;pre&amp;gt;salt '$hostname' state.highstate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Laat vervolgens httpd van die VM door de firewall heen. Daarna moet de database voor Roundcube geinitialiseerd worden. Dit gaat met mysql.&lt;br /&gt;
&amp;lt;pre&amp;gt;CREATE DATABASE roundcubemail;&lt;br /&gt;
GRANT ALL PRIVILEGES on roundcubemail.* TO roundcube@localhost IDENTIFIED BY '$password';&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nu moet de timezone nog even ingesteld worden in /etc/php.ini op de roundcube VM. Daarna moeten er nog de juiste tables in de database worden gezet. Dit kan door op de nieuwe VM de bestanden in /etc/roundcubemail/databasefiles te runnen met mysql.&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql roundcubemail &amp;lt; mysql.initial.sql&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Sysop]]&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Inwerking_Sysop</id>
		<title>Inwerking Sysop</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Inwerking_Sysop"/>
				<updated>2015-11-25T16:17:31Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: inwerking staat nu elders&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;De inwerking is tegenwoordig te vinden op https://home.a-eskwadraat.nl/~sysop/inwerking/inwerking.pdf&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Nagios</id>
		<title>Nagios</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Nagios"/>
				<updated>2015-04-29T16:32:54Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: /* check_mk */ xinetd&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:sysop]]&lt;br /&gt;
[[category:software]]&lt;br /&gt;
Nagios gebruiken we om op alle computers en virtuele machines een aantal belangrijke zaken in de gaten te houden. Het draait op de vm-nagios; op de andere machines staat nrpe geïnstalleerd om de checks te kunnen uitvoeren die niet op afstand gedaan kunnen worden.&lt;br /&gt;
&lt;br /&gt;
== vm-nagios ==&lt;br /&gt;
In de map /etc/nagios/conf.d/ staan de instellingen voor Nagios.&amp;lt;br /&amp;gt;&lt;br /&gt;
Als het goed is zijn alle hosts (computers en vm's) en services goed geordend in bestanden voor workstations (centos), server(s) en vm's.&amp;lt;br /&amp;gt;&lt;br /&gt;
Bij alle services staat een ''command'' om de check uit te voeren; in principe staan deze in check-commands.cfg. Als de check op de andere host uitgevoerd wordt in plaats van op vm-nagios zelf gebruik je als command &amp;lt;code&amp;gt;check_nrpe!&amp;lt;/code&amp;gt; + een commando dat op de remote host gedefinieerd is in nrpe (zie nrpe sectie).&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Alle wijzigingen hier moeten in salt gezet worden'''. Gebruik hiervoor:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;scp ''bestandsnaam1 bestandsnaam2 (...)'' root@vm-salt-master:/srv/salt/centos/vm-nagios/conf.d/&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Het is een goede gewoonte om dan op vm-salt-master naar deze map te gaan en &amp;lt;code&amp;gt;svn ci&amp;lt;/code&amp;gt; uit te voeren om je wijzigingen te committen.&lt;br /&gt;
&lt;br /&gt;
== check_mk ==&lt;br /&gt;
Hiermee worden automatisch diverse zaken gevonden om te controleren op de verschillende computers. Op de computers moet check-mk-agent uit de repository geïnstalleerd worden en poort 6556 in de firewall geopend. Installeer op Debian ook het pakket xinetd om check-mk-agent te laten werken.&amp;lt;br /&amp;gt;&lt;br /&gt;
Op de vm-nagios staat in /etc/check-mk/main.mk welke computers gecontroleerd worden. Met het commando ''cmk -I'' wordt gecontroleerd op nieuwe checks op deze machines en met ''cmk -O'' worden deze in nagios geconfigureerd.&amp;lt;br /&amp;gt;&lt;br /&gt;
Met ''cmk -II'' worden ook oude checks weggehaald die niet meer gelden: maar dit commando verwijdert ook checks die het niet doen omdat bijvoorbeeld een computer uit staat of een poort dicht, dus kijk hiermee uit.&lt;br /&gt;
&lt;br /&gt;
Eigen nagios checks zijn nog steeds mogelijk door de naam en het commando in /etc/check-mk-agent/mrpe.cfg te zetten. Maak dit bestand aan als het niet bestaat; het wordt automatisch gevonden met ''cmk -I''. Ook dit soort zaken horen in salt te staan.&lt;br /&gt;
&lt;br /&gt;
== NRPE: oude manier om checks te doen ==&lt;br /&gt;
De commando's die nrpe gebruikt om deze checks uit te voeren zijn gedefinieerd in bestanden in de map /etc/nrpe.d/. Ook is configuratie in /etc/nagios/nrpe.cfg en /etc/nagios/nrpe_local.cfg mogelijk maar het is mooier om die niet te gebruiken. Na het aanpassen hiervan moet nrpe opnieuw gestart worden met een van de volgende commando's:&amp;lt;br /&amp;gt;&lt;br /&gt;
CentOS: &amp;lt;code&amp;gt;service nrpe restart&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Debian (Haskell en oud systeem): &amp;lt;code&amp;gt;service nagios-nrpe-server restart&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Op CentOS 6 is het mogelijk om &amp;quot;service nrpe reload&amp;quot; te doen, maar dat commando werkt niet! NRPE zal stoppen met een fout in /var/log/messages als je dit doet. Nagios zal je dan voor alle services van deze host mailtjes sturen. Op CentOS 7 is niet meer mogelijk om service nrpe reload te doen en zal dit dus ook niet meer fout gaan.&lt;br /&gt;
&lt;br /&gt;
=== SMART check ===&lt;br /&gt;
Om op de workstations de SMART status te checken, moet je dit commando uitvoeren wat op dit moment (1 oktober 2014) nog niet in salt gebeurt:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;chmod +x /usr/lib64/nagios/plugins/check_ide_smart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kernel check (Haskell) ===&lt;br /&gt;
Als Haskell met een andere kernel opstart geeft Nagios hiervan een melding. Als de nieuwe kernel goed werkt en mag blijven, pas dan op Haskell in /etc/nagios/nrpe.d/haskell.cfg de kernelversie aan en voer &amp;lt;code&amp;gt;service nagios-nrpe-server restart&amp;lt;/code&amp;gt; uit.&lt;br /&gt;
&lt;br /&gt;
=== Entropy check ===&lt;br /&gt;
Het is helaas hardgecodeerd in deze plugin hoe veel entropy er nodig is; als deze check een blijvende fout laat zien staat waarschijnlijk je minimum entropy lager. Met de entropykey die wij hebben is entropy niet gauw een probleem, dus je mag best een ruime hoeveelheid ervan op alle computers bewaren.&lt;br /&gt;
&lt;br /&gt;
=== Users op CentOS 7 ===&lt;br /&gt;
Op de CentOS 7 workstations met multiseat laat nagios te veel users zien. Het is nog niet gevonden waar dit door komt; check_users is een binary, als er een vrijwilliger is die de source code kan vinden en bekijken waar de data vandaan komt, dan horen wij het graag. Tot nu toe staan de notifications uit voor de users op de multiseat workstations dennis, hendrik en pafnuty.&lt;br /&gt;
Mocht deze tekst veel te lang op de wiki blijven staan nadat het al lang niet meer van toepassing is, daarvoor mijn excuses. ~Albert&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Nagios</id>
		<title>Nagios</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Nagios"/>
				<updated>2015-02-12T14:55:35Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: /* check_mk */ poort 6556&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:sysop]]&lt;br /&gt;
[[category:software]]&lt;br /&gt;
Nagios gebruiken we om op alle computers en virtuele machines een aantal belangrijke zaken in de gaten te houden. Het draait op de vm-nagios; op de andere machines staat nrpe geïnstalleerd om de checks te kunnen uitvoeren die niet op afstand gedaan kunnen worden.&lt;br /&gt;
&lt;br /&gt;
== vm-nagios ==&lt;br /&gt;
In de map /etc/nagios/conf.d/ staan de instellingen voor Nagios.&amp;lt;br /&amp;gt;&lt;br /&gt;
Als het goed is zijn alle hosts (computers en vm's) en services goed geordend in bestanden voor workstations (centos), server(s) en vm's.&amp;lt;br /&amp;gt;&lt;br /&gt;
Bij alle services staat een ''command'' om de check uit te voeren; in principe staan deze in check-commands.cfg. Als de check op de andere host uitgevoerd wordt in plaats van op vm-nagios zelf gebruik je als command &amp;lt;code&amp;gt;check_nrpe!&amp;lt;/code&amp;gt; + een commando dat op de remote host gedefinieerd is in nrpe (zie nrpe sectie).&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Alle wijzigingen hier moeten in salt gezet worden'''. Gebruik hiervoor:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;scp ''bestandsnaam1 bestandsnaam2 (...)'' root@vm-salt-master:/srv/salt/centos/vm-nagios/conf.d/&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Het is een goede gewoonte om dan op vm-salt-master naar deze map te gaan en &amp;lt;code&amp;gt;svn ci&amp;lt;/code&amp;gt; uit te voeren om je wijzigingen te committen.&lt;br /&gt;
&lt;br /&gt;
== check_mk ==&lt;br /&gt;
Hiermee worden automatisch diverse zaken gevonden om te controleren op de verschillende computers. Op de computers moet check-mk-agent uit de repository geïnstalleerd worden en poort 6556 in de firewall geopend. &amp;lt;br /&amp;gt;&lt;br /&gt;
Op de vm-nagios staat in /etc/check-mk/main.mk welke computers gecontroleerd worden. Met het commando ''cmk -I'' wordt gecontroleerd op nieuwe checks op deze machines en met ''cmk -O'' worden deze in nagios geconfigureerd.&amp;lt;br /&amp;gt;&lt;br /&gt;
Met ''cmk -II'' worden ook oude checks weggehaald die niet meer gelden: maar dit commando verwijdert ook checks die het niet doen omdat bijvoorbeeld een computer uit staat of een poort dicht, dus kijk hiermee uit.&lt;br /&gt;
&lt;br /&gt;
Eigen nagios checks zijn nog steeds mogelijk door de naam en het commando in /etc/check-mk-agent/mrpe.cfg te zetten. Maak dit bestand aan als het niet bestaat; het wordt automatisch gevonden met ''cmk -I''. Ook dit soort zaken horen in salt te staan.&lt;br /&gt;
&lt;br /&gt;
== NRPE: oude manier om checks te doen ==&lt;br /&gt;
De commando's die nrpe gebruikt om deze checks uit te voeren zijn gedefinieerd in bestanden in de map /etc/nrpe.d/. Ook is configuratie in /etc/nagios/nrpe.cfg en /etc/nagios/nrpe_local.cfg mogelijk maar het is mooier om die niet te gebruiken. Na het aanpassen hiervan moet nrpe opnieuw gestart worden met een van de volgende commando's:&amp;lt;br /&amp;gt;&lt;br /&gt;
CentOS: &amp;lt;code&amp;gt;service nrpe restart&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Debian (Haskell en oud systeem): &amp;lt;code&amp;gt;service nagios-nrpe-server restart&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Op CentOS 6 is het mogelijk om &amp;quot;service nrpe reload&amp;quot; te doen, maar dat commando werkt niet! NRPE zal stoppen met een fout in /var/log/messages als je dit doet. Nagios zal je dan voor alle services van deze host mailtjes sturen. Op CentOS 7 is niet meer mogelijk om service nrpe reload te doen en zal dit dus ook niet meer fout gaan.&lt;br /&gt;
&lt;br /&gt;
=== SMART check ===&lt;br /&gt;
Om op de workstations de SMART status te checken, moet je dit commando uitvoeren wat op dit moment (1 oktober 2014) nog niet in salt gebeurt:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;chmod +x /usr/lib64/nagios/plugins/check_ide_smart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kernel check (Haskell) ===&lt;br /&gt;
Als Haskell met een andere kernel opstart geeft Nagios hiervan een melding. Als de nieuwe kernel goed werkt en mag blijven, pas dan op Haskell in /etc/nagios/nrpe.d/haskell.cfg de kernelversie aan en voer &amp;lt;code&amp;gt;service nagios-nrpe-server restart&amp;lt;/code&amp;gt; uit.&lt;br /&gt;
&lt;br /&gt;
=== Entropy check ===&lt;br /&gt;
Het is helaas hardgecodeerd in deze plugin hoe veel entropy er nodig is; als deze check een blijvende fout laat zien staat waarschijnlijk je minimum entropy lager. Met de entropykey die wij hebben is entropy niet gauw een probleem, dus je mag best een ruime hoeveelheid ervan op alle computers bewaren.&lt;br /&gt;
&lt;br /&gt;
=== Users op CentOS 7 ===&lt;br /&gt;
Op de CentOS 7 workstations met multiseat laat nagios te veel users zien. Het is nog niet gevonden waar dit door komt; check_users is een binary, als er een vrijwilliger is die de source code kan vinden en bekijken waar de data vandaan komt, dan horen wij het graag. Tot nu toe staan de notifications uit voor de users op de multiseat workstations dennis, hendrik en pafnuty.&lt;br /&gt;
Mocht deze tekst veel te lang op de wiki blijven staan nadat het al lang niet meer van toepassing is, daarvoor mijn excuses. ~Albert&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Nagios</id>
		<title>Nagios</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Nagios"/>
				<updated>2015-02-09T19:43:44Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: /* check_mk */ cmk -II&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:sysop]]&lt;br /&gt;
[[category:software]]&lt;br /&gt;
Nagios gebruiken we om op alle computers en virtuele machines een aantal belangrijke zaken in de gaten te houden. Het draait op de vm-nagios; op de andere machines staat nrpe geïnstalleerd om de checks te kunnen uitvoeren die niet op afstand gedaan kunnen worden.&lt;br /&gt;
&lt;br /&gt;
== vm-nagios ==&lt;br /&gt;
In de map /etc/nagios/conf.d/ staan de instellingen voor Nagios.&amp;lt;br /&amp;gt;&lt;br /&gt;
Als het goed is zijn alle hosts (computers en vm's) en services goed geordend in bestanden voor workstations (centos), server(s) en vm's.&amp;lt;br /&amp;gt;&lt;br /&gt;
Bij alle services staat een ''command'' om de check uit te voeren; in principe staan deze in check-commands.cfg. Als de check op de andere host uitgevoerd wordt in plaats van op vm-nagios zelf gebruik je als command &amp;lt;code&amp;gt;check_nrpe!&amp;lt;/code&amp;gt; + een commando dat op de remote host gedefinieerd is in nrpe (zie nrpe sectie).&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Alle wijzigingen hier moeten in salt gezet worden'''. Gebruik hiervoor:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;scp ''bestandsnaam1 bestandsnaam2 (...)'' root@vm-salt-master:/srv/salt/centos/vm-nagios/conf.d/&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Het is een goede gewoonte om dan op vm-salt-master naar deze map te gaan en &amp;lt;code&amp;gt;svn ci&amp;lt;/code&amp;gt; uit te voeren om je wijzigingen te committen.&lt;br /&gt;
&lt;br /&gt;
== check_mk ==&lt;br /&gt;
Hiermee worden automatisch diverse zaken gevonden om te controleren op de verschillende computers. &amp;lt;br /&amp;gt;&lt;br /&gt;
Op de vm-nagios staat in /etc/check-mk/main.mk welke computers gecontroleerd worden. Met het commando ''cmk -I'' wordt gecontroleerd op nieuwe checks op deze machines en met ''cmk -O'' worden deze in nagios geconfigureerd. Om dit te kunnen doen is op de computers de check-mk-agent geïnstalleerd.&amp;lt;br /&amp;gt;&lt;br /&gt;
Met ''cmk -II'' worden ook oude checks weggehaald die niet meer gelden: maar dit commando verwijdert ook checks die het niet doen omdat bijvoorbeeld een computer uit staat of een poort dicht, dus kijk hiermee uit.&lt;br /&gt;
&lt;br /&gt;
Eigen nagios checks zijn nog steeds mogelijk door de naam en het commando in /etc/check-mk-agent/mrpe.cfg te zetten. Maak dit bestand aan als het niet bestaat; het wordt automatisch gevonden met ''cmk -I''. Ook dit soort zaken horen in salt te staan.&lt;br /&gt;
&lt;br /&gt;
== NRPE: oude manier om checks te doen ==&lt;br /&gt;
De commando's die nrpe gebruikt om deze checks uit te voeren zijn gedefinieerd in bestanden in de map /etc/nrpe.d/. Ook is configuratie in /etc/nagios/nrpe.cfg en /etc/nagios/nrpe_local.cfg mogelijk maar het is mooier om die niet te gebruiken. Na het aanpassen hiervan moet nrpe opnieuw gestart worden met een van de volgende commando's:&amp;lt;br /&amp;gt;&lt;br /&gt;
CentOS: &amp;lt;code&amp;gt;service nrpe restart&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Debian (Haskell en oud systeem): &amp;lt;code&amp;gt;service nagios-nrpe-server restart&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Op CentOS 6 is het mogelijk om &amp;quot;service nrpe reload&amp;quot; te doen, maar dat commando werkt niet! NRPE zal stoppen met een fout in /var/log/messages als je dit doet. Nagios zal je dan voor alle services van deze host mailtjes sturen. Op CentOS 7 is niet meer mogelijk om service nrpe reload te doen en zal dit dus ook niet meer fout gaan.&lt;br /&gt;
&lt;br /&gt;
=== SMART check ===&lt;br /&gt;
Om op de workstations de SMART status te checken, moet je dit commando uitvoeren wat op dit moment (1 oktober 2014) nog niet in salt gebeurt:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;chmod +x /usr/lib64/nagios/plugins/check_ide_smart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kernel check (Haskell) ===&lt;br /&gt;
Als Haskell met een andere kernel opstart geeft Nagios hiervan een melding. Als de nieuwe kernel goed werkt en mag blijven, pas dan op Haskell in /etc/nagios/nrpe.d/haskell.cfg de kernelversie aan en voer &amp;lt;code&amp;gt;service nagios-nrpe-server restart&amp;lt;/code&amp;gt; uit.&lt;br /&gt;
&lt;br /&gt;
=== Entropy check ===&lt;br /&gt;
Het is helaas hardgecodeerd in deze plugin hoe veel entropy er nodig is; als deze check een blijvende fout laat zien staat waarschijnlijk je minimum entropy lager. Met de entropykey die wij hebben is entropy niet gauw een probleem, dus je mag best een ruime hoeveelheid ervan op alle computers bewaren.&lt;br /&gt;
&lt;br /&gt;
=== Users op CentOS 7 ===&lt;br /&gt;
Op de CentOS 7 workstations met multiseat laat nagios te veel users zien. Het is nog niet gevonden waar dit door komt; check_users is een binary, als er een vrijwilliger is die de source code kan vinden en bekijken waar de data vandaan komt, dan horen wij het graag. Tot nu toe staan de notifications uit voor de users op de multiseat workstations dennis, hendrik en pafnuty.&lt;br /&gt;
Mocht deze tekst veel te lang op de wiki blijven staan nadat het al lang niet meer van toepassing is, daarvoor mijn excuses. ~Albert&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Nagios</id>
		<title>Nagios</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Nagios"/>
				<updated>2015-02-09T19:42:41Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: check_mk uitgelegd&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:sysop]]&lt;br /&gt;
[[category:software]]&lt;br /&gt;
Nagios gebruiken we om op alle computers en virtuele machines een aantal belangrijke zaken in de gaten te houden. Het draait op de vm-nagios; op de andere machines staat nrpe geïnstalleerd om de checks te kunnen uitvoeren die niet op afstand gedaan kunnen worden.&lt;br /&gt;
&lt;br /&gt;
== vm-nagios ==&lt;br /&gt;
In de map /etc/nagios/conf.d/ staan de instellingen voor Nagios.&amp;lt;br /&amp;gt;&lt;br /&gt;
Als het goed is zijn alle hosts (computers en vm's) en services goed geordend in bestanden voor workstations (centos), server(s) en vm's.&amp;lt;br /&amp;gt;&lt;br /&gt;
Bij alle services staat een ''command'' om de check uit te voeren; in principe staan deze in check-commands.cfg. Als de check op de andere host uitgevoerd wordt in plaats van op vm-nagios zelf gebruik je als command &amp;lt;code&amp;gt;check_nrpe!&amp;lt;/code&amp;gt; + een commando dat op de remote host gedefinieerd is in nrpe (zie nrpe sectie).&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Alle wijzigingen hier moeten in salt gezet worden'''. Gebruik hiervoor:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;scp ''bestandsnaam1 bestandsnaam2 (...)'' root@vm-salt-master:/srv/salt/centos/vm-nagios/conf.d/&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Het is een goede gewoonte om dan op vm-salt-master naar deze map te gaan en &amp;lt;code&amp;gt;svn ci&amp;lt;/code&amp;gt; uit te voeren om je wijzigingen te committen.&lt;br /&gt;
&lt;br /&gt;
== check_mk ==&lt;br /&gt;
Hiermee worden automatisch diverse zaken gevonden om te controleren op de verschillende computers. &amp;lt;br /&amp;gt;&lt;br /&gt;
Op de vm-nagios staat in /etc/check-mk/main.mk welke computers gecontroleerd worden. Met het commando ''cmk -I'' wordt gecontroleerd op nieuwe checks op deze machines en met ''cmk -O'' worden deze in nagios geconfigureerd. Om dit te kunnen doen is op de computers de check-mk-agent geïnstalleerd.&lt;br /&gt;
&lt;br /&gt;
Eigen nagios checks zijn nog steeds mogelijk door de naam en het commando in /etc/check-mk-agent/mrpe.cfg te zetten. Maak dit bestand aan als het niet bestaat; het wordt automatisch gevonden met ''cmk -I''. Ook dit soort zaken horen in salt te staan.&lt;br /&gt;
&lt;br /&gt;
== NRPE: oude manier om checks te doen ==&lt;br /&gt;
De commando's die nrpe gebruikt om deze checks uit te voeren zijn gedefinieerd in bestanden in de map /etc/nrpe.d/. Ook is configuratie in /etc/nagios/nrpe.cfg en /etc/nagios/nrpe_local.cfg mogelijk maar het is mooier om die niet te gebruiken. Na het aanpassen hiervan moet nrpe opnieuw gestart worden met een van de volgende commando's:&amp;lt;br /&amp;gt;&lt;br /&gt;
CentOS: &amp;lt;code&amp;gt;service nrpe restart&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Debian (Haskell en oud systeem): &amp;lt;code&amp;gt;service nagios-nrpe-server restart&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Op CentOS 6 is het mogelijk om &amp;quot;service nrpe reload&amp;quot; te doen, maar dat commando werkt niet! NRPE zal stoppen met een fout in /var/log/messages als je dit doet. Nagios zal je dan voor alle services van deze host mailtjes sturen. Op CentOS 7 is niet meer mogelijk om service nrpe reload te doen en zal dit dus ook niet meer fout gaan.&lt;br /&gt;
&lt;br /&gt;
=== SMART check ===&lt;br /&gt;
Om op de workstations de SMART status te checken, moet je dit commando uitvoeren wat op dit moment (1 oktober 2014) nog niet in salt gebeurt:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;chmod +x /usr/lib64/nagios/plugins/check_ide_smart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kernel check (Haskell) ===&lt;br /&gt;
Als Haskell met een andere kernel opstart geeft Nagios hiervan een melding. Als de nieuwe kernel goed werkt en mag blijven, pas dan op Haskell in /etc/nagios/nrpe.d/haskell.cfg de kernelversie aan en voer &amp;lt;code&amp;gt;service nagios-nrpe-server restart&amp;lt;/code&amp;gt; uit.&lt;br /&gt;
&lt;br /&gt;
=== Entropy check ===&lt;br /&gt;
Het is helaas hardgecodeerd in deze plugin hoe veel entropy er nodig is; als deze check een blijvende fout laat zien staat waarschijnlijk je minimum entropy lager. Met de entropykey die wij hebben is entropy niet gauw een probleem, dus je mag best een ruime hoeveelheid ervan op alle computers bewaren.&lt;br /&gt;
&lt;br /&gt;
=== Users op CentOS 7 ===&lt;br /&gt;
Op de CentOS 7 workstations met multiseat laat nagios te veel users zien. Het is nog niet gevonden waar dit door komt; check_users is een binary, als er een vrijwilliger is die de source code kan vinden en bekijken waar de data vandaan komt, dan horen wij het graag. Tot nu toe staan de notifications uit voor de users op de multiseat workstations dennis, hendrik en pafnuty.&lt;br /&gt;
Mocht deze tekst veel te lang op de wiki blijven staan nadat het al lang niet meer van toepassing is, daarvoor mijn excuses. ~Albert&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Square</id>
		<title>Square</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Square"/>
				<updated>2014-12-03T18:59:58Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: Albertp moved page Square to Square (oud)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Square (oud)]]&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/Square_(oud)</id>
		<title>Square (oud)</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/Square_(oud)"/>
				<updated>2014-12-03T18:59:57Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: Albertp moved page Square to Square (oud)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:square}}&lt;br /&gt;
[[category:sysop]]&lt;br /&gt;
De alias '''square''' verwijst naar de hoofdserver van A–Eskwadraat. Op dit moment is dat [[max]].&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/SAMBA_(oud)</id>
		<title>SAMBA (oud)</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/SAMBA_(oud)"/>
				<updated>2014-12-03T18:59:50Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: Albertp moved page SAMBA to SAMBA (oud)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:SAMBA}}&lt;br /&gt;
[[category:sysop]]&lt;br /&gt;
Samba is the standard Windows interoperability suite of programs for Linux and Unix.&lt;br /&gt;
&lt;br /&gt;
== Configuratie ==&lt;br /&gt;
Om homedirs te delen met samba:&lt;br /&gt;
 setsebool -P samba_enable_home_dirs on&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	<entry>
		<id>https://mediawiki.a-eskwadraat.nl/wiki/index.php/SAMBA</id>
		<title>SAMBA</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.a-eskwadraat.nl/wiki/index.php/SAMBA"/>
				<updated>2014-12-03T18:59:50Z</updated>
		
		<summary type="html">&lt;p&gt;Albertp: Albertp moved page SAMBA to SAMBA (oud)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[SAMBA (oud)]]&lt;/div&gt;</summary>
		<author><name>Albertp</name></author>	</entry>

	</feed>