נניח ויש לכם שרת שעליו מותקן סיפאנל ואפאצ'י והשרת הזה מחובר ב VPN לרשת פרטית מרוחקת עליה מותקן עוד שרת WEB. אתם רוצים להתחבר מהמשרד שלכם לשרת web על הרשת הפרטית המרוחקת. מה צריך לעשות?
אפשר להתקין פרוקסי ייעודי כמו squid ולהתחיל להגדיר אותו אבל יש דרך יותר פשוטה והיא להשתמש באפאצ'י כדי לעשות את הפרוקסי. יש מספר דגשים שצריך לשים לב אליהם:
- זה שרת סיפאנל לכן לא טריוויאלי להגדיר שינויים ב virtualhost.
- צריך לוודא, ואולי זה דבר שצריך להזכיר ראשון, שהפרוקסי מאובטח כך שלא כל אחד מהעולם יוכל להשתמש בו כפרוקסי לכל מקום ובמיוחד לא כפרוקסי לרשת הפרטית שאתם צריכים לגשת אליה.
- צריך לוודא שהשרת web המרוחק יקבל את הפניות שלכם ולא יחסום את הגישה דרך הפרוקסי.
את ההגדרות נכתוב בתוך:
/etc/apache2/conf.d/includes/pre_virtualhost_global.conf
נתחיל מהגדרת ה virtualhost
<VirtualHost your.server.ip.ipv4:80> ServerName domain.to.access.in.url.com
אנחנו מגדירים פה אם ה IP שעליו יאזין הפרוקסי ואת שם הדומיין שאותו נכניס בדפדפן
השלב הבא הוא הגדרות האבטחה של הפרוקסי
<Proxy "*"> Require ip your.office.ip.ipv4 </Proxy> ProxyRequests Off
הגדרנו הרשאה רק לכתובת ה IP של המשרד שלכם וכן סגרנו את הפרוקסי לבקשות כלליות
עכשיו נסתיר את כל ה header כדי שהשרת המרוחק יחשוב באמת שאנחנו מגיעים ישירות אליו ולא דרך פרוקסי
ProxyVia Block ProxyAddHeaders Off ProxyPreserveHost On
פה ביטלנו את כל בקשות ההדאר Via:
ביטלנו את בקשות ההדאר X-Forward-*
ובשלב האחרון אמרנו לפרוקסי להשתמש בדומיין שבו אנחנו נגשים בדפדפן במקום בדומיין או ה IP שנגדיר ב ProxyPass
לבסוף נגדיר את הפרוקסי עצמו
ProxyPassMatch /(.*) http://ip.of.remote.webserver/$1
פה אנחנו למעשה מגדירים את הפרוקסי להעביר כל בקשה לשרת המרוחק
וככה נראית ההגדרה המלאה:
<VirtualHost your.server.ip.ipv4:80> ServerName domain.to.access.in.url.com <Proxy "*"> Require ip your.office.ip.ipv4 </Proxy> ProxyRequests Off ProxyVia Block ProxyAddHeaders Off ProxyPreserveHost On ProxyPassMatch /(.*) http://ip.of.remote.webserver/$1 <VirtualHost>
בהצלחה