| 
 | 
|  | 
| 
 | 
| This document is available in: English Castellano Deutsch Francais Italiano Nederlands Turkce Arabic | 
|   المؤلف Atif Ghaffar <aghaffar(at)developer.ch> نبذة عن الكاتب: أسكن في سويسرا و أعمل مدير وب و يونكس، انشغالاتي هي لينكس و يونكس و برل و أباش و برامج GPL.، زر موقعي ترجمه إلى العربية: Taha Zerrouki <taha(at)linuxfocus.org> الفهرس: | 
 
نبذة مختصرة:
    لدي شبكة خاصة في البيت تعمل بلينكس و استعمل قناع IP، وكل الأجهزة تبلغ الإنترنت، لكن من الإنترنت لا أبلغ سوى  الجهاز الذي يعمل قناعا.
في آخر مقال لي عن أباش شرحت إعادة استعمال عناوين IP و الآن سأشرح كيفية الولوج إلى خادم الوب خلف جدار النار من الإنترنت دون تغيير قواعد الجدار و لا التأثير في أمن الشبكة. سنتعلم استعمال  قواعد Apache Proxy Pass من اجل ذلك ( هذا المقال يعنى بالشبكات الصغيرة).
  
لزمن طويل في شبكتي كانت البوابة ( الجهاز الذي يعمل القناع) تعمل عمل خادم الوب، ftp و DNS و كل شيء.
لدي جهاز SGI IRIX    و أود أن أوزع بعض الملفات منه، هذا الجهاز في شبكتي يبلغ إلى الإنترنت، لكنني لا أستطيع الولوج إليه من خلال الإنترنت، و أنا أود وضعه على الشبكة و أجعل الآخرين يصلون إلى خدماته.
و مشكلتي الأخرى أنني كلما أردت أن يستعمل أحدهم خادم الوب من خلال الإنترنت لأهداف تعليمية، توجب علي تغيير قواعد جدار النار و إعطاء عنوان خارجي للجهاز مما يمس بأمن الشبكة.
    بعد التحري و التجربة، اعتمدت على أباش و توجيهته ProxyPass . 
ProxyPass يتطلب mod_proxy  لتصريفه، أو يصرف كوحدة مع خادم أباش.
و إليك تعريف ProxyPass من خلال دليل أباش.
    
    هذه التوجيهة تسمح للخوادم البعيدة أن تدخل في نطاق الخادم المحلي  الذي يعمل كأنه proxy  عادي بيد انه يبدو و كأنه مرآة للخوادم البعيدة.
< path >  اسم الملف الافتراضي، <url> عنوان الوب للأجهزة البعيدة.
    
    لنفرض أن الخادم المحلي له العنوان http://wibble.org/   إذن
    
ProxyPass /mirror/foo/ http://foo.com/كل طلب محلي للعنوان http://wibble.org/mirror/foo/bar سوف يحول إلى طلب http://foo.com/bar .
 قرن خادم الفيديو الداخلي بخادم خارجي
    شبكة الإنترنت: hometranet.home 192.168.1.0/255.255.255.0
    (كما يوجد انترنت و انترانت و اكسترانت فأنا أسمي شبكتي المنزلية منزل-نت).
    الشبكة الخارجية: developer.ch 193.192.254.50
    
    خادم الفيديو الداخلي موجود على الجهاز cam.hometranet.home يخدم 
    دفق الصور على الرابط http://cam.hometranet.home:5555/cams/sony/stream
   و 
و يبقي الصور من الكاميرة في    http://cam.hometranet.home:5555/cams/sony/image
    أريد أن أشاهد النتيجة من خلال هذا العنوان.
    http://mozilla.developer.ch/stream
    و
    http://mozilla.developer.ch/image
   هذا يمكن القيام به بكل سهولة بواسطة توجيهة ProxyPass مع أباش بإضافة هذه الأسطر إلى httpd.conf   أو srm.conf 
    
ProxyPass /video http://cam.hometranet.home:5555/cams/sony/stream
    ProxyPass /video http://cam.hometranet.home:5555/cams/sony/stream
    ثم أعد تشغيل خادم الوب
 (إن كان  mod_proxy متوفرا),
    http://mozilla.developer.ch/image يجيب عن الاستعلامات .
    بالنسبة للمستعملين ، كل شيء شفاف و لا يوجد تأثير على العموم على الأمن في الشبكة..
    *I used the word almost, because there is no such thing as total
    security on the internet :)
تستطيع استعمال ProxyPass لتحويل أجهزة افتراضية إلى أجهزة أخرى مثلا..
    docs.sun.developer.ch ستقترن بـ solsparc.hometranet.home
    
NameVirtualHost 193.192.254.50
<VirtualHost 193.192.254.50>
     ServerName sun.docs.developer.ch
     ProxyPass / http://solsparc.hometranet.home/
     TransferLog /net/www/logs/sun.docs.access
     ErrorLog    /net/www/logs/sun.docs.errror
</VirtualServer>
    يمكنك التوجيه إلى المضيفات بعنوانيها
    <VirtualHost 193.192.254.50>
     ServerName sun.docs.developer.ch
     ProxyPass / http://192.168.1.7/
     TransferLog /net/www/logs/sun.docs.access
     ErrorLog    /net/www/logs/sun.docs.errror
</VirtualServer>
       
بما أن خادم الوب يرسل طلبات إلى الخادم  الداخلي من وراء الزبائن، لا نستطيع معرفة طرق الأجهزة عليك تخزين كل الطلبات في الجهاز الباعث.
.
    في المثال السابق
تأتي الطلبات في sun.docs.developer.ch
    بدلا من  solsparc.hometranet.home
    نتائج الدخول  sun.docs.developer.ch ( نتائج dummy)
197.0.22.3 - - [05/Nov/1999:22:09:04 +0100] "GET /index.html HTTP/1.0" 304 - 187.0.45.67 - - [05/Nov/1999:22:09:04 +0100] "GET /navi.html HTTP/1.0" 304 - 177.0.5.45 - - [05/Nov/1999:22:09:04 +0100] "GET /entrees.html HTTP/1.0" 304 - 227.0.9.67 - - [05/Nov/1999:22:09:15 +0100] "GET /complets.html HTTP/1.0" 304 - 137.0.7.23 - - [05/Nov/1999:22:09:19 +0100] "GET /menu_poisson.html HTTP/1.0" 200 841 193.192.245.73 - - [05/Nov/1999:22:09:25 +0100] "GET /volailles.html HTTP/1.0" 304 - 192.167.0.1 - - [05/Nov/1999:22:09:44 +0100] "GET /agneau.html HTTP/1.0" 304 -نتائج الدخول إلى solsparc.hometranet.home
192.168.1.1 - - [05/Nov/1999:22:09:04 +0100] "GET /index.html HTTP/1.0" 304 - 192.168.1.1 - - [05/Nov/1999:22:09:04 +0100] "GET /navi.html HTTP/1.0" 304 - 192.168.1.1 - - [05/Nov/1999:22:09:04 +0100] "GET /entrees.html HTTP/1.0" 304 - 192.168.1.1 - - [05/Nov/1999:22:09:15 +0100] "GET /complets.html HTTP/1.0" 304 - 192.168.1.1 - - [05/Nov/1999:22:09:19 +0100] "GET /menu_poisson.html HTTP/1.0" 200 841 192.168.1.1 - - [05/Nov/1999:22:09:25 +0100] "GET /volailles.html HTTP/1.0" 304 - 192.168.1.1 - - [05/Nov/1999:22:09:44 +0100] "GET /agneau.html HTTP/1.0" 304 - 192.168.1.1 - - [05/Nov/1999:22:09:56 +0100] "GET /desserts_ind.html HTTP/1.0" 304 - 192.168.1.1 - - [05/Nov/1999:22:10:00 +0100] "GET /cocktails.html HTTP/1.0" 304 - 192.168.1.1 - - [05/Nov/1999:22:10:10 +0100] "GET /cgi-bin/commande.cgi HTTP/1.0" 200 2146نفس الشيء بالنسبة إلى توجيهات عنوان IP و ACL ( قائمة مراقبة الولوج Access Control List) إذا أردت أن تمنع أجهزة أو الحق في الاتصال ببعض عناوين IP هذا يجب أن يكون في الخادم الرئيسي بدلا من الخادم المحلي.
<VirtualHost 193.192.254.50>
     ServerName sun.docs.developer.ch
     #هذه القاعدة تسمح فقط للمستعملين من نطاق good.host.com
     <Location /private>
          order deny,allow
          deny from all
          allow from good.host.com
     </Location>
     # هذه القاعدة تمنع احتطار متصفح مايكروسوفت.
     BrowserMatch MSIE uncool_browser
     <Location /coolpages>
         order allow,deny
         allow from all
         deny from env=uncool_browser
     </Location>
     # هذه تسمح للمستخدمين ذوي كلمات السر في الملف passwd.httpd
     <Location /coolpages>
         AuthName "only for registered users"
         AuthType Basic
         AuthUserFile "/etc/httpd/passwd.httpd"
         <Limit GET>
              require valid-user
         </Limit>
     </Location>
     ProxyPass / http://192.168.1.7/
     TransferLog /net/www/logs/sun.docs.access
     ErrorLog    /net/www/logs/sun.docs.errror
</VirtualServer>
    
| 
 | 
| الصفحات برعاية طاقم لينكس فوكُس © Atif Ghaffar, FDL LinuxFocus.org اضغط هنا للتنبيه عن خطأ أو لارسال ملاحظاتك إلى لينكس فوكُس | معلومات عن الترجمة: 
 | 
2002-02-23, generated by lfparser version 2.26