{"version":"1.0","provider_name":"Lassi's homepage","provider_url":"https:\/\/lassinsivut.eu\/en","title":"Debian reverse proxy verkkopalvelimelle - Lassin kotisivut","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"TuznnVLsRj\"><a href=\"https:\/\/lassinsivut.eu\/en\/reverse-proxy\/\">Debian reverse proxy for web server<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/lassinsivut.eu\/en\/reverse-proxy\/embed\/#?secret=TuznnVLsRj\" width=\"600\" height=\"338\" title=\"&#8220;Debian reverse proxy verkkopalvelimelle&#8221; &#8212; Lassin kotisivut\" data-secret=\"TuznnVLsRj\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script>\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/\/# sourceURL=https:\/\/lassinsivut.eu\/wp-includes\/js\/wp-embed.min.js\n<\/script>","thumbnail_url":"https:\/\/lassinsivut.eu\/wp-content\/uploads\/2022\/11\/image-35.png","thumbnail_width":853,"thumbnail_height":480,"description":"Bootable USB tekeminen Proxmox ISO-image Proxmoxin asennus\u200b Proxmoxin konfigurointi\u200b Kovalevyn lis\u00e4\u00e4minen\u200b Virtuaalikoneen asennus\u200b Viimeistely Debian reverse proxyn teko Reverse proxy on eritt\u00e4in hy\u00f6dyllinen jos palvelimia on paljon, mutta sinulla on vain 1 tai rajattu m\u00e4\u00e4r\u00e4 ip-osoitteita. T\u00e4ss\u00e4 ohjeessa minulla on 1 ip-osoite, sek\u00e4 3 muuta palvelinta jotka haluan internettiin. T\u00e4ss\u00e4 tilanteessa tarvitaan 1 kone ohjaamaan kaiken liikenteen julkisesta ip-osoitteesta ja siirt\u00e4m\u00e4ll\u00e4 clientin palvelimelle jota h\u00e4n on kutsunut. Jos taas et ole jo luonut alidomainin palvelimia, voit katsoa alla olevat linkit niiden tekoon. Ohje WordPressin asennukselle ja konfigurointiin. Ohje Debian koneen asennukselle. Pakettien ja moduulien asennus Ensin asennetaan www-palvelin joka hoitaa uudelleenohjauksen eri palvelimiin. My\u00f6s tarvittavat moduulit jotka proxyn tekemiseen tarvitaan. apt-get install apache systemctl enable apache2 systemctl start apache2 Nyt asennetaan palomuuri koneelle, sill\u00e4 avataan portit 80 (webpalvelin) ja 443 (ssl-salattu liikenne) apt-get install ufw systemctl enable ufw systemctl start ufw ufw allow 80 ufw allow 443 Viel\u00e4 pieni ohjelma jolla estet\u00e4\u00e4n ylim\u00e4\u00e4r\u00e4isi\u00e4 kirjautumisia varsinkin jos ssh yhteys on otettu k\u00e4ytt\u00f6\u00f6n. apt-get install fail2ban systemctl enable fail2ban Sitten viel\u00e4 lopuksi apachen proxy moduulit k\u00e4ytt\u00f6\u00f6n a2enmod proxy a2enmod proxy_http a2enmod proxy_balancer a2enmod lbmethod_byrequests Konfiguroidaan reverse proxy Ensin nimet\u00e4\u00e4n oletus konfigurointi tiedosto uuteen. cp \/etc\/apache2\/sites-available\/000-default.conf \/etc\/apache2\/sites-available\/reverseproxy.conf Otetaan uusi tiedostot voimaan ja poistetaan vanha k\u00e4yt\u00f6st\u00e4. a2ensite reverseproxy.conf a2dissite 000-default.conf Lopuksi viel\u00e4 k\u00e4ynnistet\u00e4\u00e4n Apache uudelleen ja tarkistetaan sen tila. systemctl restart apache2 systemctl status apache2 Tehd\u00e4\u00e4n viel\u00e4 symlink jotta samaa tiedostoa voidaan muokata useammasta eri polusta. T\u00e4ss\u00e4 tilanteessa \/sites-available ja \/sites-enabled ln -s \/etc\/apache2\/sites-available\/reverseproxy.conf \/etc\/apache2\/sites-enabled\/reverseproxy.conf Lis\u00e4t\u00e4\u00e4n is\u00e4nt\u00e4tiedostoon viel\u00e4 alidomainit joita halutaan k\u00e4ytt\u00e4\u00e4. nano \/etc\/hosts \u00a0178.55.172.151 lassinsivut.eu\u00a0\u00a0 cloud.lassinsivut posti.lassinsivut.eu Jos sinulla ei ole kiinte\u00e4\u00e4 ip-osoitetta, tee t\u00e4ss\u00e4 muodossa: 192.168.101.133 lassinsivut.eu 192.168.101.134 cloud.lassinsivut.eu 192.168.101.135 posti.lassinsivut.eu Asennetaan viel\u00e4 php. T\u00e4t\u00e4 ei ole pakko asentaa, mutta sille on monesti tulevaisuudessa tarvetta. apt install apt-transport-https lsb-release ca-certificates apt install wget apt-get install gnupg apt install software-properties-common ca-certificates lsb-release apt-transport-https sh -c &#8217;echo &#8221;deb https:\/\/packages.sury.org\/php\/ $(lsb_release -sc) main&#8221; &gt; \/etc\/apt\/sources.list.d\/php.list&#8217; wget https:\/\/packages.sury.org\/php\/apt.gpg apt-key add apt.gpg apt-get update SUOSITTELEN K\u00c4YTT\u00c4M\u00c4\u00c4N UUSINTA PHP VERSIOTA. (Ohjeen tekohetkell\u00e4 8.2) apt install apache2 php7.4 libapache2-mod-php7.4 php7.4-common php7.4-mbstring php7.4-xmlrpc php7.4-soap php7.4-gd php7.4-xml php7.4-intl php7.4-mysql php7.4-cli php7.4-ldap php7.4-zip php7.4-curl N\u00e4hd\u00e4\u00e4n php versio sek\u00e4 onko asennus onnistunut. php-v Luodaan proxy Muokataan aikaisemmin luotua proxy konfigurointi tiedostoa ja tehd\u00e4\u00e4n alidomainien konfigurointi sinne. \/etc\/apache2\/sites-enabled\/reverseproxy.conf Seuraavaksi lis\u00e4t\u00e4\u00e4n alidomainien niinsanotut &#8221;blockit&#8221;. Niihin m\u00e4\u00e4ritell\u00e4\u00e4n ett\u00e4 kyseess\u00e4 on reverse proxy, mik\u00e4 paikallinen ip-osoite ohjataan siihen, mik\u00e4 alidomain sek\u00e4 tarvittaessa uudelleenohjaus www tai ilman https ssl suohaukseen. Ssl suojaus m\u00e4\u00e4ritell\u00e4\u00e4n alempana. &lt;VirtualHost *:80&gt;ProxyPreserveHost OnProxyPass \/ http:\/\/192.168.101.133:80\/ProxyPassReverse \/ http:\/\/192.168.101.133:80\/ServerName lassinsivut.euServerAlias www.lassinsivut.eu RewriteEngine onRedirect permanent \/ https:\/\/lassinsivut.eu RewriteCond %{SERVER_NAME} =lassinsivut.eu [OR]RewriteCond %{SERVER_NAME} =www.lassinsivut.euRewriteRule ^ https:\/\/%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]&lt;\/VirtualHost&gt; &lt;VirtualHost *:80&gt;ProxyPreserveHost OnProxyPass \/ http:\/\/192.168.101.134:80\/ProxyPassReverse \/ http:\/\/192.168.101.134:80\/ServerName cloud.lassinsivut.euServerAlias www.cloud.lassinsivut.eu RewriteEngine onRedirect permanent \/ http:\/\/cloud.lassinsivut.eu RewriteCond %{SERVER_NAME} =cloud.lassinsivut.eu [OR]RewriteCond %{SERVER_NAME} =www.cloud.lassinsivut.euRewriteRule ^ https:\/\/%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]&lt;\/VirtualHost&gt; Kirjoita nyt selaimeesi domainisi sek\u00e4 valitut alidomainit, ne ohjaavat Nyt kirjoitetaan selaimeen omat domainit ja huomataan ett\u00e4 siel\u00e4 tulee oikeat palvelimet vastaa, mutta ongelmana on ett\u00e4 yhteys ei ole suojattu ja salattu. Tarvitaan siis ssl sertifikaatti asennettua. Certbot ssl Asennetaan ssl t\u00e4m\u00e4 suojaa sek\u00e4 salaa kaiken liikenteen sinun ja palvelimen v\u00e4lill\u00e4. Mahdollista my\u00f6s luoda ssl wildfire, siin\u00e4 sinulla on vain yksi sertifikaatti jokaisen alidomainin sijasta. T\u00e4m\u00e4 voi tulla hy\u00f6dylliseksi etenkin kuin eri domaineja sek\u00e4 alidomaineja alkaa olemaan eritt\u00e4in paljon. T\u00e4ss\u00e4 kuitenkin asennan normaalin sertifikaatin jokaiselle alidomainille jotta yksinkertaisyys pysyy. apt install python3-certbot-apache certbot -d www.lassinsivut.eu -d lassinsivut.eu T\u00e4ytet\u00e4\u00e4n tiedot joita certbot kysyy. certbot -d www.cloud.lassinsivut.eu -d cloud.lassinsivut.eu Tarvittaessa sertifikaatin voi uusia: certbot &#8211;force-renewal Annetaan listasta domainit jotka haluat uusia. Lopuski K\u00e4ynnistet\u00e4\u00e4n apache uudestaan systemctl restart apache2 Jotta reverse proxyssa saadaan cert botti toimimaan, t\u00f6ytyy meid\u00e4n muuttaa taaas apachen virtualhost file\u00e4. nano \/etc\/apache2\/sites-enabled\/reverseproxy.conf Viimeisen\u00e4 automatisoidaan sertifikaatin uusiminen, normaalisti se t\u00e4ytyy uusi aina 30 p\u00e4iv\u00e4n v\u00e4lein. T\u00e4m\u00e4 onnistuu kuitenkin helposti Linuxin cron ohjelmalla. crontab -e Lis\u00e4t\u00e4\u00e4n loppuun seuraava m\u00e4\u00e4ritys jossa certbot uusii kaikki sertifikaatit ja k\u00e4ynnist\u00e4\u00e4 apachen viikon v\u00e4lein maanantaina n.klo 5am. 0 5 * * 1 certbot renew &#8211;force-renewal &amp;&amp; systemctl restart apache2 &lt;VirtualHost *:443&gt;ServerName lassinsivut.euServerAlias www.lassinsivut.eu SSLEngine OnSSLProxyEngine OnRedirect \/ https:\/\/lassinsivut.euProxyRequests OffProxyPreserveHost OnProxyPass \/ http:\/\/192.168.101.133:80\/ProxyPassReverse \/ http:\/\/192.168.101.133:80\/ Include \/etc\/letsencrypt\/options-ssl-apache.confSSLCertificateFile \/etc\/letsencrypt\/live\/www.lassinsivut.eu\/fullchain.pemSSLCertificateKeyFile \/etc\/letsencrypt\/live\/www.lassinsivut.eu\/privkey.pem&lt;\/VirtualHost&gt; &lt;VirtualHost *:443&gt;ServerName cloud.lassinsivut.euServerAlias www.cloud.lassinsivut.eu SSLEngine OnSSLProxyEngine OnRedirect \/ https:\/\/cloud.lassinsivut.euProxyRequests OffProxyPreserveHost OnProxyPass \/ http:\/\/192.168.101.134:80\/ProxyPassReverse \/ http:\/\/192.168.101.134:80\/ Include \/etc\/letsencrypt\/options-ssl-apache.confSSLCertificateFile \/etc\/letsencrypt\/live\/www.cloud.lassinsivut.eu\/fullchain.pemSSLCertificateKeyFile \/etc\/letsencrypt\/live\/www.cloud.lassinsivut.eu\/privkey.pem&lt;\/VirtualHost&gt; Ongelma php kanssa Olen huomannut ett\u00e4 tietyt php sovellukset eiv\u00e4t toimi tuon proxy konfiguraation kanssa. T\u00e4m\u00e4 konfiguraatio on minulla toiminut ja korjannut asian jos tuo yll\u00e4 mainittu ei toimi. &lt;VirtualHost *:80&gt;ServerName lassinsivut.euServerAlias www.lassinsivut.euRewriteEngine onRewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)RewriteRule .* &#8211; [F]Redirect \/ https:\/\/lassinsivut.eu\/&lt;\/VirtualHost&gt; &lt;VirtualHost *:443&gt;ServerName lassinsivut.euServerAlias www.lassinsivut.euSSLEngine OnSSLProxyEngine OnSSLProxyVerify noneSSLProxyCheckPeerCN offSSLProxyCheckPeerExpire off SSLCertificateFile \/etc\/letsencrypt\/live\/lassinsivut.eu\/fullchain.pemSSLCertificateKeyFile \/etc\/letsencrypt\/live\/lassinsivut.eu\/privkey.pem ProxyPreserveHost OnProxyPass \/ https:\/\/192.168.101.133:443\/ProxyPassReverse \/ https:\/\/192.168.101.133:443\/&lt;\/VirtualHost&gt;"}