Reverse proxy Apache webserver met ip restrictie en geldige login

Met een Apache webserver is het mogelijk een reverse proxy met ip restrictie en geldige login in te stellen. Een reverse proxy is een webserver die de sites van andere webservers doorgeeft. Deze webservers kunnen bijvoorbeeld in het interne netwerk staan. Met behulp van een reverse proxy is het mogelijk deze websites toch via internet benaderbaar te maken. Soms is het handig dat zo’n website die normaal gesproken via intranet benaderbaar deze mogelijkheid toch gaat krijgen. In geval het om een website gaat die alleen voor specifieke mensen via internet benaderbaar moet zijn, kun je de configuratie van de Proxy webserver dusdanig aanpassen dat je restricties op het IP adres en/of een geldige login als voorwaarde instelt wil iemand toegang hebben tot deze website. In onderstaande Apache configuratiefile tref je instellingen aan voor zowel restrictie op IP adres en een geldige login.

<VirtualHost *:80>

    ServerAdmin jenaam@domein.nl
    ServerName demo.domein.nl
    ErrorLog ${APACHE_LOG_DIR}/demo.domein.nl-error.log
    CustomLog ${APACHE_LOG_DIR}/demo.domein.nl-access.log combined
    RewriteEngine on
    RewriteCond %{SERVER_NAME} =demo.domein.nl
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

</VirtualHost>

<VirtualHost *:443>

	<Location />
	    AuthType Basic
            AuthName "Beveiligde toegang"
            AuthUserFile /var/www/htuser/.wachtwoorden
	    AllowOverride AuthConfig
	    <RequireAll>
                Require valid-user
		<RequireAny>
		    Require ip 8.8.8.8 192.168.1
		</RequireAny>
	    </RequireAll>
	    ProxyPass https://192.168.3.13/ nocanon
	    ProxyPassReverse https://192.168.3.13/
	</Location>

    ServerName demo.domein.nl
    ServerAdmin jenaam@domein.nl
    SSLProxyEngine On
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName Off
    ErrorLog ${APACHE_LOG_DIR}/demo.domein.nl-error.log
    CustomLog ${APACHE_LOG_DIR}/demo.domein.nl-access.log combined
    SSLEngine On
    SSLCertificateFile /etc/letsencrypt/live/demo.domein.nl/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/demo.domien.nl/privkey.pem

</VirtualHost>

Met behulp van <Location/> start je de voorwaarden waaraan voldaan moet worden wil iemand toegang krijgen tot de website. In bovenstaande configuratie krijgt alleen een computer toegang met het ipadres 8.8.8.8 of een ip adres uit de reeks 192.168.1. Daarnaast moet de gebruiker van deze computer een combinatie van geldige gebruikersnaam en wachtwoord invullen.

Meer artikelen over Apache op deze kennisbank:

Met de Apache webserver stel je een reverse proxy in waarbij je restricties kunt stellen aan IP adres gecombineerd met geldige loginnaam en wachtwoord.