شرح كيفية تنصيب setup وإعداد OpenVPN على جنو/لينوكس
السلام عليكم ورحمة الله وبركاته
عملية تنصيب setup OpenVPN جداً بسيطة، وخطوات إعدادها سهلة أيضاً، ولهذا لا تقلق بإذن الله بعد الشرح طريقة ستكون قد عملت خادم server عليه OpenVPN ويستعمل الشهادات للإتصال وليس الكلمات السرية المشتركة … لنقوم بتركيب install:
رمز PHP:
apt-get install openvpn openssl
أو
رمز PHP:
yum install openvpn
الآن جميع الإحتياجات الخاصة (ملفات الإعداد، وسكربتات) بالـ OpenVPN ستجدها في المجلد /usr/share/doc/openvpn/examples/ ولهذا:
رمز PHP:
cd /usr/share/doc/openvpn/examples
الآن قم بنسخ الملفات التي نحتاجها في هذا الشرح طريقة:
رمز PHP:
cp sample-config-files/server.conf.gz /etc/openvpn
cp -r easy-rsa/2.0 /etc/openvpn
الآن أذهب الى مجلد الخدمة:
رمز PHP:
cd /etc/openvpn
الآن لنقم بتغيير اسم المجلد 2.0 الى أسم آخر، مثلاً easyrsa-scripts كالتالي:
رمز PHP:
mv 2.0 easyrsa-scripts
الآن نقوم بفك ملف الإعداد:
رمز PHP:
gzip -d server.conf.gz
لآن نحتاج الى عمل بعض الشهادات … شهادات للخادم server، وشهادات للشخص الذي سيتصل على الخادم server … كل ذلك أصبح سهلاً والشكر موصول لمطوري OpenVPN الذين قاموا بعمل سكربتات تقوم بتشغيلها وهي تعمل لك كل شيء، وإلا إستعمال openssl في عملهم كان سيكون فعلاً متعباً لك وصعب الى حد ما … لهذا لنذهب للمجلد الذي فيه السكربتات:
رمز PHP:
cd /etc/openvpn/easyrsa-scripts
الآن قم بتحرير ملف vars الذي فيه المتغييرات للشهادات:
رمز PHP:
vim ./vars
الآن قم بتعديل الخيارات التي بالأسفل الى ما يناسبك (لا تترك أي منها بدون قيمة):
رمز PHP:
# 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]
مثلاً مفتاح الدولة للأردن JO للسعودية KSA وهكذا، المحافظة مثلاً AM يعني عمان وربما RI تعني الرياض، أسم المدينة عادي معروفة لكم، اسم المنظمة ضع ما تريد، والبريد أيضاً ضع البريد الذي تريده … قم بحفظ الملف وأخرج منه …
الآن سنقوم بعمل Certificate Authority او ما يرمز له بـ CA الرئيسي مع المفاتيح الخاصة به:
رمز PHP:
. ./vars
./clean-all
ممكن مرات هنا يطلب منك تنفيذ الأمر:
رمز PHP:
source ./vars
وبعد ذلك قم مرة أخرى بتنفيذ الأمر السابق clean-all … الآن لنقوم بعملية بناء الشهادة:
رمز PHP:
./build-ca
قم بالإجابة على الاسئلة، بالغالب بما إنك قمت بتعديل ملف vars لن تحتاج الإجابة سوى على أمر أو أثنين، فكلهم جاهزين مسبقاً …
الآن لنقوم بعملية توليد المفتاح الخاص بالخادم server:
رمز PHP:
./build-key-server server
قم بإكمال جميع المتطلبات من خلال الرد على الاسئلة …
الآن لنقوم بتوليد مفتاح للمستخدم الذي سيتصل على الخادم server:
رمز PHP:
./build-key user1
الآن لنقوم بتوليد Diffie Hellman Parameters:
رمز PHP:
./build-dh
الآن ملف الاعدادات الخاصة بالخادم server، أفتحه وتصفحه، هو يعمل بالأساس إلا إذا كنت تريد التلاعب فيه وفي خياراته:
رمز PHP:
vim /etc/openvpn/server.conf
الآن لنقوم بنسخ المفاتيح والشهادات الى المجلد الرئيسي للخدمة:
رمز PHP:
cd /etc/openvpn/easyrsa-scripts/keys/
cp ca.crt server.crt server.key dh1024.pem /etc/openvpn
قم بإعطاء شهادات ومفاتيح المستخدم وأيضاً شهادة الخادم server، لكي يضعها في جهازه والتي هي:
رمز PHP:
user1.crt
user1.key
ca.crt
قم بإعادة تشغيل خدمة OpenVPN:
رمز PHP:
/etc/init.d/openvpn restart
قبل أن أنسى، قم بتفعيل ip_forward لكي تستطيع التمرير للحزم الى داخل الشبكة، من خلال تحرير الملف:
رمز PHP:
vim /etc/sysctl.conf
http://www.dzbatna.com/newthread....ewthread&f=108
بعد ذلك أحذف اشارة # من امام:
رمز PHP:
net.ipv4.ip_forward=1
وأحفظ الملف وأخرج وإذا لم تكن تريد الآن عمل إعادة تشغيل لسيرفر SERVERك نفذ الأمر التالي:
رمز PHP:
sysctl -w net.ipv4.ip_forward=1
للتأكد من التفعيل:
رمز PHP:
sysctl net.ipv4.ip_forward
الآن لنضيف شوية قوانين iptables للسماح بالخدمة لتمرير الحزم … قم بتحرير الملف /etc/rc.local
رمز PHP:
vim /etc/rc.local
وضع قبل السطر الذي عليه (exit 0) القوانين التالية:
رمز PHP:
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
الشبكة 10.8.0.0/24 هي التي سيتم إستعمالها من قبل OpenVPN كما في ملف الإعداد للخدمة، و eth0 هو المنفذ الذي يصلك بالأنترنت (ربما عندك هو شيء آخر قم بتغييره).
الآن لنقوم بإعادة تشغيل الجهاز أو إعادة تشغيل ملف rc.local من خلال الأمر:
رمز PHP:
/etc/init.d/rc.local start
الآن الخدمة تمام وكل شيء والحمد لله … للتأكد:
رمز PHP:
ps ax | grep openvpn
والناتج هو:
رمز PHP:
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
دمتم بود
https://fbcdn-sphotos-d-a.akamaihd.n...93518507_n.png
©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى©