المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : شرح كيفية تنصيب setup وإعداد OpenVPN على جنو/لينوكس



admin
11-02-2013, بتوقيت غرينيتش 01:50 AM
السلام عليكم ورحمة الله وبركاته



عملية تنصيب setup OpenVPN جداً بسيطة، وخطوات إعدادها سهلة أيضاً، ولهذا لا تقلق بإذن الله بعد الشرح طريقة ستكون قد عملت خادم server عليه OpenVPN ويستعمل الشهادات للإتصال وليس الكلمات السرية المشتركة … لنقوم بتركيب install:

رمز PHP:

<code style="white-space:nowrap"> <code> apt-get install openvpn openssl
</code> </code>

أو

رمز PHP:

<code style="white-space:nowrap"> <code> yum install openvpn
</code> </code>

الآن جميع الإحتياجات الخاصة (ملفات الإعداد، وسكربتات) بالـ OpenVPN ستجدها في المجلد /usr/share/doc/openvpn/examples/ ولهذا:

رمز PHP:

<code style="white-space:nowrap"> <code> cd /usr/share/doc/openvpn/examples
</code> </code>

الآن قم بنسخ الملفات التي نحتاجها في هذا الشرح طريقة:

رمز PHP:

<code style="white-space:nowrap"> <code> cp sample-config-files/server.conf.gz /etc/openvpn
cp -r easy-rsa/2.0 /etc/openvpn
</code> </code>

الآن أذهب الى مجلد الخدمة:

رمز PHP:

<code style="white-space:nowrap"> <code> cd /etc/openvpn
</code> </code>

الآن لنقم بتغيير اسم المجلد 2.0 الى أسم آخر، مثلاً easyrsa-scripts كالتالي:

رمز PHP:

<code style="white-space:nowrap"> <code> mv 2.0 easyrsa-scripts
</code> </code>

الآن نقوم بفك ملف الإعداد:

رمز PHP:

<code style="white-space:nowrap"> <code> gzip -d server.conf.gz
</code> </code>

لآن نحتاج الى عمل بعض الشهادات … شهادات للخادم server، وشهادات للشخص الذي سيتصل على الخادم server … كل ذلك أصبح سهلاً والشكر موصول لمطوري OpenVPN الذين قاموا بعمل سكربتات تقوم بتشغيلها وهي تعمل لك كل شيء، وإلا إستعمال openssl في عملهم كان سيكون فعلاً متعباً لك وصعب الى حد ما … لهذا لنذهب للمجلد الذي فيه السكربتات:

رمز PHP:

<code style="white-space:nowrap"> <code> cd /etc/openvpn/easyrsa-scripts



</code> </code>

الآن قم بتحرير ملف vars الذي فيه المتغييرات للشهادات:

رمز PHP:

<code style="white-space:nowrap"> <code> vim ./vars
</code> </code>

الآن قم بتعديل الخيارات التي بالأسفل الى ما يناسبك (لا تترك أي منها بدون قيمة):

رمز PHP:

<code style="white-space:nowrap"> <code> # These are the default values for fields
# which will be placed in the certificate.
# Don't leave any of these fields blank.
export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="[email protected] (http://www.cloudflare.com/email-protection)
</code> </code>

مثلاً مفتاح الدولة للأردن JO للسعودية KSA وهكذا، المحافظة مثلاً AM يعني عمان وربما RI تعني الرياض، أسم المدينة عادي معروفة لكم، اسم المنظمة ضع ما تريد، والبريد أيضاً ضع البريد الذي تريده … قم بحفظ الملف وأخرج منه …

الآن سنقوم بعمل Certificate Authority او ما يرمز له بـ CA الرئيسي مع المفاتيح الخاصة به:

رمز PHP:

<code style="white-space:nowrap"> <code> . ./vars
./clean-all
</code> </code>

ممكن مرات هنا يطلب منك تنفيذ الأمر:

رمز PHP:

<code style="white-space:nowrap"> <code> source ./vars
</code> </code>

وبعد ذلك قم مرة أخرى بتنفيذ الأمر السابق clean-all … الآن لنقوم بعملية بناء الشهادة:

رمز PHP:

<code style="white-space:nowrap"> <code> ./build-ca
</code> </code>


قم بالإجابة على الاسئلة، بالغالب بما إنك قمت بتعديل ملف vars لن تحتاج الإجابة سوى على أمر أو أثنين، فكلهم جاهزين مسبقاً …

الآن لنقوم بعملية توليد المفتاح الخاص بالخادم server:

رمز PHP:

<code style="white-space:nowrap"> <code> ./build-key-server server
</code> </code>


قم بإكمال جميع المتطلبات من خلال الرد على الاسئلة …

الآن لنقوم بتوليد مفتاح للمستخدم الذي سيتصل على الخادم server:

رمز PHP:

<code style="white-space:nowrap"> <code> ./build-key user1
</code> </code>

الآن لنقوم بتوليد Diffie Hellman Parameters:

رمز PHP:

<code style="white-space:nowrap"> <code> ./build-dh
</code> </code>


الآن ملف الاعدادات الخاصة بالخادم server، أفتحه وتصفحه، هو يعمل بالأساس إلا إذا كنت تريد التلاعب فيه وفي خياراته:

رمز PHP:

<code style="white-space:nowrap"> <code> vim /etc/openvpn/server.conf
</code> </code>

الآن لنقوم بنسخ المفاتيح والشهادات الى المجلد الرئيسي للخدمة:

رمز PHP:

<code style="white-space:nowrap"> <code> cd /etc/openvpn/easyrsa-scripts/keys/
cp ca.crt server.crt server.key dh1024.pem /etc/openvpn
</code> </code>

قم بإعطاء شهادات ومفاتيح المستخدم وأيضاً شهادة الخادم server، لكي يضعها في جهازه والتي هي:

رمز PHP:

<code style="white-space:nowrap"> <code> user1.crt
user1.key
ca.crt
</code> </code>

قم بإعادة تشغيل خدمة OpenVPN:

رمز PHP:

<code style="white-space:nowrap"> <code> /etc/init.d/openvpn restart
</code> </code>

قبل أن أنسى، قم بتفعيل ip_forward لكي تستطيع التمرير للحزم الى داخل الشبكة، من خلال تحرير الملف:

رمز PHP:

<code style="white-space:nowrap"> <code> vim /etc/sysctl.conf
</code> </code>

http://www.dzbatna.com/newthread....ewthread&f=108 (http://www.dzbatna.com/newthread.php?do=newthread&f=108)
بعد ذلك أحذف اشارة # من امام:

رمز PHP:

<code style="white-space:nowrap"> <code> net.ipv4.ip_forward=1
</code> </code>

وأحفظ الملف وأخرج وإذا لم تكن تريد الآن عمل إعادة تشغيل لسيرفر SERVERك نفذ الأمر التالي:

رمز PHP:

<code style="white-space:nowrap"> <code> sysctl -w net.ipv4.ip_forward=1
</code> </code>

للتأكد من التفعيل:

رمز PHP:

<code style="white-space:nowrap"> <code> sysctl net.ipv4.ip_forward
</code> </code>

الآن لنضيف شوية قوانين iptables للسماح بالخدمة لتمرير الحزم … قم بتحرير الملف /etc/rc.local

رمز PHP:

<code style="white-space:nowrap"> <code> vim /etc/rc.local
</code> </code>

وضع قبل السطر الذي عليه (exit 0) القوانين التالية:

رمز PHP:

<code style="white-space:nowrap"> <code> iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
</code> </code>


الشبكة 10.8.0.0/24 هي التي سيتم إستعمالها من قبل OpenVPN كما في ملف الإعداد للخدمة، و eth0 هو المنفذ الذي يصلك بالأنترنت (ربما عندك هو شيء آخر قم بتغييره).

الآن لنقوم بإعادة تشغيل الجهاز أو إعادة تشغيل ملف rc.local من خلال الأمر:

رمز PHP:

<code style="white-space:nowrap"> <code> /etc/init.d/rc.local start
</code> </code>

الآن الخدمة تمام وكل شيء والحمد لله … للتأكد:

رمز PHP:

<code style="white-space:nowrap"> <code> ps ax | grep openvpn
</code> </code>

والناتج هو:

رمز PHP:

<code style="white-space:nowrap"> <code> 11602 ? Ss 0:00 /usr/sbin/openvpn --writepid /var/run/openvpn.server.pid --daemon ovpn-server --cd /etc/openvpn --config /etc/openvpn/server.conf --script-security 2
</code> </code>

دمتم بود






https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-ash4/482113_236967293114455_1193518507_n.png (http://www.dzbatna.com)
©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى (http://www.dzbatna.com)©

استعمل مربع البحث في الاسفل لمزيد من المواضيع


سريع للبحث عن مواضيع في المنتدى