<?xml version="1.0"?>
<rss version="2.0"><channel><title>DevOps: VPN</title><link>https://academy.hsoub.com/devops/security/vpn/?d=4</link><description>DevOps: VPN</description><language>ar</language><item><title>&#x643;&#x64A;&#x641;&#x64A;&#x629; &#x62A;&#x648;&#x62C;&#x64A;&#x647; &#x62D;&#x631;&#x643;&#x629; &#x645;&#x631;&#x648;&#x631; &#x627;&#x644;&#x648;&#x64A;&#x628; &#x628;&#x634;&#x643;&#x644; &#x622;&#x645;&#x646; &#x628;&#x62F;&#x648;&#x646; VPN &#x628;&#x627;&#x633;&#x62A;&#x62E;&#x62F;&#x627;&#x645; &#x646;&#x641;&#x642; SOCKS</title><link>https://academy.hsoub.com/devops/security/vpn/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%AA%D9%88%D8%AC%D9%8A%D9%87-%D8%AD%D8%B1%D9%83%D8%A9-%D9%85%D8%B1%D9%88%D8%B1-%D8%A7%D9%84%D9%88%D9%8A%D8%A8-%D8%A8%D8%B4%D9%83%D9%84-%D8%A2%D9%85%D9%86-%D8%A8%D8%AF%D9%88%D9%86-vpn-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D9%86%D9%81%D9%82-socks-r246/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2016_04/socks-proxy-firefox.png.268c2a6d3b72ac8834e7d16f6e8be235.png" /></p>
<div id="wmd-preview-section-17">
	<div id="wmd-preview-section-54">
		<p id="كيفية-توجيه-حركة-مرور-الويب-بشكل-آمن-بدون-vpn-باستخدام-نفق-socks">
			أحيانًا تكون على شبكة غير آمنة أو لديها جدار ناري يملك قيودًا مُفرطة، وتحتاج الوصول إلى موقع على شبكة الإنترنت. تريد أن تتأكد أنه لا أحد في المنتصف يشاهد البيانات المارة.
		</p>

		<p>
			أحد الحلول هو استخدام <a href="http://academy.hsoub.com/devops/servers/%D8%AF%D9%84%D9%8A%D9%84%D9%83-%D9%84%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%A5%D8%B9%D8%AF%D8%A7%D8%AF-%D8%AE%D8%A7%D8%AF%D9%88%D9%85-openvpn-%D8%B9%D9%84%D9%89-ubuntu-r57/" rel=""><abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية"><abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية"><abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية"><abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية"><abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr></abbr></abbr></abbr></abbr></a>، ولكن يتطلب <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية"><abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية"><abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية"><abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية"><abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr></abbr></abbr></abbr></abbr> برنامج عميل خاص على حاسوبك، وقد لا يكون لك صلاحيات اللازمة لتثبيته.
		</p>

		<p>
			إذا كان كل ما تريد تأمينه هو متصفح الويب الخاص بك، فهناك بديل بسيط: نفق وسيط SOCKS 5.
		</p>

		<p style="text-align: center;">
			<img class="ipsImage ipsImage_thumbnailed" data-fileid="15637" data-unique="eg5zy3f8z" src="https://academy.hsoub.com/uploads/monthly_2016_04/socks-proxy-firefox.png.4e2d5b16b237a735c7bef8a3a0075793.png" alt="socks-proxy-firefox.png"></p>

		<p>
			وسيط SOCKS هو بالأساس نفق <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> حيث توّجه تطبيقات مُحدّدة دفق بياناتها خلال النفق إلى الخادوم، ثمّ على الخادوم، يقوم الوسيط (Proxy) بإعادة توجيه دفق البيانات إلى شبكة الإنترنت. على عكس <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية"><abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية"><abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية"><abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية"><abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr></abbr></abbr></abbr></abbr>، يجب أن يتم ضبط وسيط SOCKS لكل تطبيق على حدة في حاسوب العميل، ولكن يُمكن إعداده بدون أي وكلاء عميل متخصصة.
		</p>

		<p>
			طالما لديك خادوم بوصول <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr>، فيمكن استخدامه كوسيط SOCKS. سنستخدم خادوم أوبنتو 14.04 كالوسيط، ومتصفح فَيرفُكس كتطبيق العميل. وعندما ننتهي ينبغي أن تكون قادرًا على تصفح المواقع بشكلٍ آمن عبر النفق.
		</p>
	</div>

	<div id="wmd-preview-section-55">
		<h2 id="المتطلبات">
			المتطلبات
		</h2>

		<p>
			كما ذُكر بالأعلى، أول شيء نحتاجه هو خادوم يعمل بأي توزيعة لينكس، مثل أوبنتو 14.04، بوصول <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr>.
		</p>

		<ul>
<li>
				أنشئ خادوما (هذا المثال يستخدم أوبنتو 14.04)
			</li>
		</ul>
<p>
			مطلوب تثبيت بعض البرمجيات على حاسوبك المحلي. لهذا ستحتاج أن تُنزل برنامجًا أو اثنين.
		</p>

		<ul>
<li>
				متصفح <a href="https://www.mozilla.org/en-US/firefox/new/" rel="external nofollow">فَيرفُكس</a> (للجميع)
			</li>
			<li>
				<a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html" rel="external nofollow">PuTTY</a> (مستخدمي ويندوز)
			</li>
		</ul>
<p>
			يُمَكننا فَيرفُكس من إعداد الوسيط لفَيرفُكس فقط بدلًا من إعداد الوسيط لكامل النظام.
		</p>

		<p>
			يُستخدم PuTTY لإعداد نفق الوسيط لمستخدمي ويندوز. لدى مستخدمي Mac OS X أو لينكس الأدوات اللازمة لإعداد النفق مُثبتة مسبقًا.
		</p>
	</div>

	<div id="wmd-preview-section-56">
		<h2 id="الخطوة-الأولى-mac-os-xلينكس-إعداد-النفق">
			الخطوة الأولى (Mac OS X/لينكس) - إعداد النفق
		</h2>

		<p>
			<a href="https://academy.hsoub.com/devops/servers/%D8%A7%D9%84%D8%B9%D9%85%D9%84-%D9%85%D8%B9-%D8%AE%D9%88%D8%A7%D8%AF%D9%8A%D9%85-ssh-%D8%A7%D9%84%D8%B9%D9%85%D9%84%D8%A7%D8%A1-%D9%88%D8%A7%D9%84%D9%85%D9%81%D8%A7%D8%AA%D9%8A%D8%AD-r55/" rel="">أنشئ مفتاح <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></a> على حاسوبك المحلي. إذا كان لديك مفتاح <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr>، فيمكنك استخدامه.
		</p>

		<p>
			على الرغم من أن تحديد كلمة مرور لمفتاح <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> هي عادة جيدة، سنترك كلمة المرور فارغة الآن لنتجنب مشاكل لاحقة.
		</p>

		<p>
			وأنت تَعُدّ المفتاح، تأكد أن تُضيفه للمفاتيح المخولة لمستخدم <span style="font-family:courier new,courier,monospace;">sudo</span> على الخادوم (في هذا المثال، هذا هو المستخدم sammy).
		</p>

		<p>
			افتح برنامج الطرفية على حاسوبك. على Mac OS X، تجد الطرفية Terminal في <strong>Applications &gt; Utilities</strong>.
		</p>

		<p>
			أنشئ النفق بهذا الأمر:
		</p>

		<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_8967_11">
<span class="pln">$ <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">ssh</abbr></abbr></abbr></abbr> -D 8123 -f -C -q -N sammy@example.com</span></pre>

		<h3>
			شرح المعاملات
		</h3>
	</div>

	<div id="wmd-preview-section-57">
		<ul>
<li>
				<span style="font-family:courier new,courier,monospace;"><strong>D-</strong></span>: يُخبر <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> بأننا نريد نفق SOCKS على رقم المنفذ المُحدد (اختر رقم بين 1025-65536)
			</li>
			<li>
				<strong><span style="font-family:courier new,courier,monospace;">f-</span></strong>: يضع العملية في الخلفية
			</li>
			<li>
				<strong><span style="font-family:courier new,courier,monospace;">C-</span></strong>: يضغط البيانات قبل إرسالها
			</li>
			<li>
				<strong><span style="font-family:courier new,courier,monospace;">q-</span></strong>: يستخدم الوضع الصامت
			</li>
			<li>
				<strong><span style="font-family:courier new,courier,monospace;">N-</span></strong>: يُخبر <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> بأنه لا يوجد أي أمر سيُرسَل بمجرد فتح النفق
			</li>
		</ul>
<p>
			تأكد من استبدال <span style="font-family:courier new,courier,monospace;">sammy@example.com</span> بمستخدم sudo الخاص بك وعنوان IP أو اسم نطاق الخادوم.
		</p>

		<p>
			بمجرد أن تُدخل الأمر، ستعود إلى مِحث سطر الأوامر مرة أخرى بدون أي إشارة على النجاح أو الفشل؛ هذا طبيعي.
		</p>

		<p>
			تحقق من أن النفق يعمل بالأمر:
		</p>

		<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_8967_13">
<span class="pln">$ ps aux | grep <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">ssh</abbr></abbr></abbr></abbr></span></pre>

		<p>
			ينبغي أن ترى سطرًا في المُخرجات مثل: 
		</p>

		<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_8967_15">
<span class="pln">sammy    14345   0.0  0.0  2462228    452   ??  Ss    6:43AM   0:00.00 <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">ssh</abbr></abbr></abbr></abbr> -D 8123 -f -C -q -N sammy@example.com</span></pre>

		<p>
			يمكنك إغلاق تطبيق الطرفية وسيظل النفق يعمل. هذا لأننا استخدمنا الخيار <span style="font-family:courier new,courier,monospace;">f-</span> الذي يضع جلسة <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> في الخلفية.
		</p>

		<p>
			<strong>ملاحظة</strong>: إذا أردت أن تُنهى النفق سيتوجب عليك معرفة <abbr title="Process IDentifier | معرّف العملية أو البرنامج"><abbr title="Process IDentifier | معرّف العملية أو البرنامج"><abbr title="Process IDentifier | معرّف العملية أو البرنامج"><abbr title="Process IDentifier | معرّف العملية أو البرنامج"><abbr title="Process IDentifier | معرّف العملية أو البرنامج">PID</abbr></abbr></abbr></abbr></abbr> الجلسة عبر ps واستخدام الأمر <span style="font-family:courier new,courier,monospace;">kill</span>، وهذا ما سنُريك كيفية القيام به لاحقًا.
		</p>
	</div>

	<div id="wmd-preview-section-58">
		<h2 id="الخطوة-الأولى-وندوز-إعداد-النفق">
			الخطوة الأولى (ويندوز) - إعداد النفق
		</h2>

		<p>
			افتح <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html" rel="external nofollow">PuTTY</a>. إذا لم تُثبته بعد، نزل PuTTY واحفظه بالمكان الذي تُحب. لا يحتاج PuTTY صلاحيات المُدير لتثبيته؛ حمل الملف التنفيذي exe. وشغلهُ فقط.
		</p>

		<p>
			أكمل الخطوات التالية لإعداد النفق:
		</p>

		<ol>
<li>
				<p>
					من قسم <strong>Session</strong>، أضف اسم مُضيف (أو عنوان IP) Host Name (or IP address) خادومك، ومنفذ Port <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> (عادة يكون المنفذ رقم 22)
				</p>

				<p style="text-align: center;">
					<a class="ipsAttachLink ipsAttachLink_image" data-fileid="15631" href="https://academy.hsoub.com/uploads/monthly_2016_04/putty001.png.4c0c4bb2d284c306ef41459e7fb4d4dc.png" rel="external"><img alt="putty001.png" class="ipsImage ipsImage_thumbnailed" data-fileid="15631" data-unique="qavvhx7ay" src="https://academy.hsoub.com/uploads/monthly_2016_04/putty001.thumb.png.b58be7ee3073924ab8e3262c49bd2938.png"></a>
				</p>
			</li>
			<li>
				<p>
					على الجانب الأيسر، انتقل إلى: <strong>Connection &gt; <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> &gt; Tunnels</strong>
				</p>
			</li>
			<li>
				<p>
					ادخل رقم أي منفذ مصدري source port بين 1025-65536. استخدمنا في هذا المثال المنفذ رقم 1337
				</p>

				<p style="text-align: center;">
					<a class="ipsAttachLink ipsAttachLink_image" data-fileid="15632" href="https://academy.hsoub.com/uploads/monthly_2016_04/putty002.png.88b8ef186978374e2aa495db894919bd.png" rel="external"><img alt="putty002.png" class="ipsImage ipsImage_thumbnailed" data-fileid="15632" data-unique="k8ctywg3c" src="https://academy.hsoub.com/uploads/monthly_2016_04/putty002.thumb.png.79fbcdaa6e2750602a58230e35960e91.png"></a>
				</p>
			</li>
			<li>
				اختر <strong>Dynamic</strong>
			</li>
			<li>
				اضغط <strong>Add</strong>
			</li>
			<li>
				ارجع إلى <strong>Session</strong> على الجانب الأيسر.
			</li>
			<li>
				اضف اسم اسفل Saved Sessions واضغط زر <strong>Save</strong>
			</li>
			<li>
				الآن اضغط <strong>Open</strong> لتفتح الاتصال
			</li>
			<li>
				ادخل اسم مُستخدم <span style="font-family:courier new,courier,monospace;">sudo</span> وكلمة سر الخادوم للدخول.
			</li>
		</ol>
<p>
			يمكنك تصغير نافذة PuTTY الآن، لكن لا تُغلقها. ينبغي أن يفتح اتصال <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr>.
		</p>

		<p>
			<strong>تلميحة</strong>: يمكنك حفظ اسم مُستخدم sudo ومفتاح <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> للجلسة الحالية باتباع <a href="https://academy.hsoub.com/devops/servers/%D9%83%D9%8A%D9%81-%D8%AA%D8%B3%D8%AA%D8%AE%D8%AF%D9%85-%D9%85%D9%81%D8%A7%D8%AA%D9%8A%D8%AD-ssh-%D9%85%D8%B9-%D8%AA%D8%B7%D8%A8%D9%8A%D9%82-putty-%D8%B9%D9%84%D9%89-%D9%88%D9%8A%D9%86%D8%AF%D9%88%D8%B2-%D9%84%D9%84%D9%88%D8%B5%D9%88%D9%84-%D8%A5%D9%84%D9%89-%D8%AE%D9%88%D8%A7%D8%AF%D9%8A%D9%85-digital-ocean-r247/" rel="">تعليمات مفتاح <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr> الخاص ببرنامج PuTTY</a>. وهكذا لن تَضطرّ إلى إدخال اسم المُستخدم وكلمة السر كل مرة تفتح الاتصال.
		</p>
	</div>

	<div id="wmd-preview-section-59">
		<h2 id="الخطوة-الثانية-ضبط-فيرفكس-ليستخدم-النفق">
			الخطوة الثانية - ضبط متصفح فَيرفُكس Firefox ليستخدم النفق
		</h2>

		<p>
			الآن بما أنه أصبح لدينا نفق <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr>، فقد حان الوقت لضبط فَيرفُكس ليستخدم هذا النفق. تذكر لكي يعمل نفق SOCKS 5، يجب أن تستخدم تطبيق محلي يُمكنهُ استغلال النفق؛ فَيرفُكس يقوم بهذا.
		</p>

		<p>
			هذه الخطوة متشابهة لمُستخدمي ويندوز، Mac OS X ولينكس.
		</p>

		<p>
			تأكد أن لديك رقم المنفذ الذي استخدمته في أمر <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> أو في PuTTY. لقد استخدمنا 8123 في مثال OS X / لينكس و 1337 في مثال ويندوز حتى الآن، أو قد تكون استخدمت منفذًا مُختلفًا.
		</p>

		<p>
			نُفذَت الخطوات التالية على نُسخة فَيرفُكس 39 وينبغي أن تعمل على النُسخ الأخرى، على الرغم من احتمال اختلاف أماكن الخيارات.
		</p>

		<ul>
<li>
				<p>
					اضغط على أيقونة الهامبرجر في أعلى الركن الأيمن للوصول إلى قائمة فَيرفُكس:
				</p>

				<p style="text-align: center;">
					<a class="ipsAttachLink ipsAttachLink_image" data-fileid="15633" href="https://academy.hsoub.com/uploads/monthly_2016_04/firefox003.png.10e8eae1894021ec5b26788e5e984adf.png" rel="external"><img alt="firefox003.png" class="ipsImage ipsImage_thumbnailed" data-fileid="15633" data-unique="sydngrjsj" src="https://academy.hsoub.com/uploads/monthly_2016_04/firefox003.thumb.png.3c36286c797e90298e697adbd68bd0c7.png"></a>
				</p>
			</li>
			<li>
				اضغط على أيقونة <strong>Preferences</strong> أو <strong>Options</strong>
			</li>
			<li>
				انتقل لقسم <strong>Advanced</strong>
			</li>
			<li>
				اضغط على تبويب <strong>Network</strong>
			</li>
		</ul>
<p style="text-align: center;">
			<a class="ipsAttachLink ipsAttachLink_image" data-fileid="15634" href="https://academy.hsoub.com/uploads/monthly_2016_04/firefox004.png.8e435e363b84a4a53871866df8c578d9.png" rel="external"><img alt="firefox004.png" class="ipsImage ipsImage_thumbnailed" data-fileid="15634" data-unique="nt2qcq36x" src="https://academy.hsoub.com/uploads/monthly_2016_04/firefox004.thumb.png.fbd4213e1ac625d5667d11e6091baa62.png"></a>
		</p>

		<ul>
<li>
				اضغط على <strong>Settings</strong> أسفل العنوان Connection. ستفتح نافذة جديدة.
			</li>
			<li>
				اختر <strong>Manual proxy configuration</strong>:
			</li>
		</ul>
<p style="text-align: center;">
			<a class="ipsAttachLink ipsAttachLink_image" data-fileid="15635" href="https://academy.hsoub.com/uploads/monthly_2016_04/firefox005.png.e56e0f5a6e32904d62986bfccfa5e8c4.png" rel="external"><img alt="firefox005.png" class="ipsImage ipsImage_thumbnailed" data-fileid="15635" data-unique="u6gotnwk6" src="https://academy.hsoub.com/uploads/monthly_2016_04/firefox005.thumb.png.23ea1224088ec389c061a66794517d8f.png"></a>
		</p>

		<ul>
<li>
				اكتب localhost أمام SOCKS HOST
			</li>
			<li>
				ادخل نفس رقم المنفذ Port من اتصال <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> الخاص بك؛ ترى في الصورة أننا أدخلنا 1337 ليُطابق تعليمات ويندوز.
			</li>
			<li>
				اضغط <strong>OK</strong> لحفظ وإغلاق ضبطك.
			</li>
		</ul>
<p>
			الآن، افتح تبويبًا آخر في فَيرفُكس وتصفح الإنترنت. ينبغي أن يكون كل شيء جاهز للتصفح الآمن عبر نفق <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> الخاصة بك.
		</p>

		<p>
			<strong>اختياري</strong>: لتتأكد أنك تستخدم الوسيط، ارجع إلى إعدادات الشبكة Network في فَيرفُكس. أدخل رقم منفذ مُختلف. اضغط OK لحفظ الإعدادات. الآن إذا جربت تصفح الإنترنت، ينبغي أن ترى رسالة الخطأ <strong>The proxy server is refusing connections</strong>. هذا يؤكد أن فَيرفُكس يستخدم الوسيط وليس الاتصال الافتراضي. عُد إلى رقم المنفذ الصحيح، وينغي أن تكون قادر على التصفح مرة أخرى.
		</p>
	</div>

	<div id="wmd-preview-section-60">
		<h3 id="1-العودة-إلى-التصفح-العادي-غير-الآمن-في-فيرفكس">
			العودة إلى التصفح العادي غير الآمن في فَيرفُكس
		</h3>

		<p>
			عندما تنتهي حاجتك لخصوصية نفق <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr>، ارجع إلى إعدادات وسيط الشبكة (<strong>Preferences &gt; Advanced &gt; Network &gt; Settings</strong>) في فَيرفُكس.
		</p>

		<p>
			اختر <strong>Use system proxy settings</strong> واضغط <strong>OK</strong>. سيستخدم فَيرفُكس الآن إعدادات اتصالك العادي، ومن المرجح أن يكون غير آمن.
		</p>

		<p>
			إذا انتهيت من استخدام النفق يجب أن تُغلق النفق أيضًا، وهذا ما سنُغطيه في الخطوة التالية.
		</p>

		<p>
			إذا كنت تنوي استخدام النفق كثيرًا، فاتركه مفتوحًا للاستخدام لاحقًا، لكن لاحظ أنه قد يُغلق من تلقاء نفسه إذا بقي خاملًا (غير مُستخدم) لمدة طويلة، أو إذا سَكَن (sleep) حاسوبك.
		</p>
	</div>

	<div id="wmd-preview-section-61">
		<h2 id="الخطوة-الثالثة-mac-os-xلينكس-إغلاق-النفق">
			الخطوة الثالثة (Mac OS X/لينكس) - إغلاق النفق
		</h2>

		<p>
			سيوقف إغلاق النفق قدرة فَيرفُكس على التصفح بالوسيط. أُرسل النفق الذي أنشأناه سابقًا على حاسوبنا المحلي إلى الخلفية، لذا لن يُنهيه إغلاق نافذة الطرفية التي استخدمناها لفتح النفق.
		</p>

		<p>
			لإنهاء النفق نحتاج أن نُحدد مُعَرف العملية (<abbr title="Process IDentifier | معرّف العملية أو البرنامج"><abbr title="Process IDentifier | معرّف العملية أو البرنامج"><abbr title="Process IDentifier | معرّف العملية أو البرنامج"><abbr title="Process IDentifier | معرّف العملية أو البرنامج"><abbr title="Process IDentifier | معرّف العملية أو البرنامج">PID</abbr></abbr></abbr></abbr></abbr>) باستخدام الأمر <span style="font-family:courier new,courier,monospace;">ps</span>، ثم قتله باستخدام الأمر <span style="font-family:courier new,courier,monospace;">kill</span>.
		</p>

		<p>
			فلنبحث عن كل عمليات <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">ssh</abbr></abbr></abbr></abbr></abbr> على حاسوبنا:
		</p>

		<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_8967_18">
<span class="pln">$ ps aux | grep <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">ssh</abbr></abbr></abbr></abbr></span></pre>

		<p>
			جد السطر الذي يبدو كالأمر الذي أدخلته سابقًا لإنشاء النفق. هذا مثال على المخرجات:
		</p>

		<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_8967_20">
<span class="pln">sammy    14345   0.0  0.0  2462228    452   ??  Ss    6:43AM   0:00.00 <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">ssh</abbr></abbr></abbr></abbr> -D 8123 -f -C -q -N sammy@example.com</span></pre>

		<p>
			من بداية السطر، في واحد من العمودين الأولين، هناك رقم مكون من ثلاثة إلى خمسة أعداد. هذا هو رقم <abbr title="Process IDentifier | معرّف العملية أو البرنامج"><abbr title="Process IDentifier | معرّف العملية أو البرنامج"><abbr title="Process IDentifier | معرّف العملية أو البرنامج"><abbr title="Process IDentifier | معرّف العملية أو البرنامج"><abbr title="Process IDentifier | معرّف العملية أو البرنامج">PID</abbr></abbr></abbr></abbr></abbr>. وفي المخرجات السابقة هو الرقم 14345.
		</p>

		<p>
			بعد أن عرفنا رقم <abbr title="Process IDentifier | معرّف العملية أو البرنامج"><abbr title="Process IDentifier | معرّف العملية أو البرنامج"><abbr title="Process IDentifier | معرّف العملية أو البرنامج"><abbr title="Process IDentifier | معرّف العملية أو البرنامج"><abbr title="Process IDentifier | معرّف العملية أو البرنامج">PID</abbr></abbr></abbr></abbr></abbr>، يُمكننا استخدام الأمر kill لنُغلق النفق. استخدم رقم <abbr title="Process IDentifier | معرّف العملية أو البرنامج"><abbr title="Process IDentifier | معرّف العملية أو البرنامج"><abbr title="Process IDentifier | معرّف العملية أو البرنامج"><abbr title="Process IDentifier | معرّف العملية أو البرنامج"><abbr title="Process IDentifier | معرّف العملية أو البرنامج">PID</abbr></abbr></abbr></abbr></abbr> الخاص بك عندما تقتل العملية.
		</p>

		<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_8967_22">
<span class="pln">$ sudo kill 14345</span></pre>

		<p>
			إذا أردت أتمتت عملية الاتصال، اذهب للخطوة الرابعة.
		</p>
	</div>

	<div id="wmd-preview-section-62">
		<h2 id="الخطوة-الثالثة-وندوز-إغلاق-النفق">
			الخطوة الثالثة (ويندوز) - إغلاق النفق
		</h2>

		<p>
			سيوقف إغلاق النفق قدرة فَيرفُكس على التصفح بالوسيط. اغلق نافذة PuTTY التي استخدمتها لإنشاء النفق فقط.
		</p>

		<p>
			لا يوجد في ويندوز طريقة سهلة لأتمتة عملية الاتصال، لكن PuTTY وفَيرفُكس يمكنهما حفظ الإعدادات التي أدخلتها سابقًا، لذا افتح الاتصالات فقط مرة أخرى لتستخدم النفق مجددًا.
		</p>
	</div>

	<div id="wmd-preview-section-63">
		<h2 id="الخطوة-الرابعة-mac-os-xلينكس-إنشاء-اختصارات-للاستخدام-المتكرر">
			الخطوة الرابعة (Mac OS X/لينكس) - إنشاء اختصارات للاستخدام المتكرر
		</h2>

		<p>
			يمكننا إنشاء أمر بديل أو سكربت في أنظمة لينكس أو OS X لكي يُنشئ النفق سريعًا من اجلنا. سنعرض طريقتين لأتمتة عملية إنشاء النفق.
		</p>

		<p>
			<strong>ملاحظة</strong>: طريقتي الاختصار كلاهما تَتَطلبان مفتاح <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> بلا كلمة سر للوصول إلى الخادوم.
		</p>
	</div>

	<div id="wmd-preview-section-64">
		<h3 id="1-سكربت-bash-قابل-للنقر">
			1. سكربت BASH قابل للنقر
		</h3>

		<p>
			إذا أردت أيقونة لتضغط عليها مرتين فيبدأ النفق، يمكن أن نُنشئ سكربت BASH بسيط للقيام بهذه المهمة.
		</p>

		<p>
			سنجعل السكربت يقوم بإعداد النفق وتشغيل فَيرفُكس، على الرغم من أنك ستظل في حاجة إلى إضافة إعدادات الوسيط يدويًا بالمرة الأولى في فَيرفُكس.
		</p>

		<p>
			ملف فَيرفُكس الثُنائي على OS X الذي يمكننا تشغيله من سطر الأوامر هو داخل <strong>Firefox.app</strong>. بافتراض أن التطبيق في مُجلّد التطبيقات Applications، سنجد الملف الثُنائي في <span style="font-family:courier new,courier,monospace;">Applications/Firefox.app/Contents/MacOS/firefox/</span>.
		</p>

		<p>
			على أنظمة لينكس، إذا ثبتّت فَيرفُكس عبر مستودع أو كان مُثبت مسبقًا، فينبغي أن تجده في <span style="font-family:courier new,courier,monospace;">usr/bin/firefox/</span>. يمكنك دائمًا استخدام الأمر <span style="font-family:courier new,courier,monospace;">which firefox</span> لمعرفة موقعه على نظامك.
		</p>

		<p>
			استبدل في السكربت الذي بالأسفل مسار فَيرفُكس بالمسار المناسب لنظامك. باستخدام مُحرر نصوص مثل <span style="font-family:courier new,courier,monospace;">nano</span> أنشئ ملف جديد:
		</p>

		<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_8967_24">
<span class="pln">$ nano ~/socks5.sh</span></pre>

		<p>
			وأضف السطور التالية إليه:
		</p>
	</div>

	<div id="wmd-preview-section-65">
		<pre class="ipsCode" id="ips_uid_8967_26">
#!/bin/bash
<abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">ssh</abbr></abbr></abbr></abbr> -D 8123 -f -C -q -N sammy@example.com
/Applications/Firefox.app/Contents/MacOS/firefox &amp;</pre>

		<ul>
<li>
				استبدل <span style="font-family:courier new,courier,monospace;">8123</span> برقم المنفذ الذي تريده، يجب أن يُطابق ما وضعته في فَيرفُكس
			</li>
			<li>
				استبدل <span style="font-family:courier new,courier,monospace;">sammy@example.com</span> بمُستخدم <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> الخاص بك واسم المُضيف أو عنوان IP
			</li>
			<li>
				استبدل <span style="font-family:courier new,courier,monospace;">Applications/Firefox.app/Contents/MacOS/firefox/</span> بمسار ملف فَيرفُكس الثُنائي
			</li>
		</ul>
<p>
			احفظ السكربت. تقوم بهذا في nano بالضغط على <span style="font-family:courier new,courier,monospace;">Ctrl-o</span>، ثم اخرج بالضغط على<span style="font-family:courier new,courier,monospace;"> Ctrl-x</span>.
		</p>

		<p>
			اجعل السكربت قابلًا للتنفيذ، لكي يتم تنفيذه عندما تضغط عليه مرتين. ادخل هذا الأمر في سطر الأوامر لتُضيف صلاحيات التنفيذ، باستخدام مسار السكربت الخاص بك:
		</p>

		<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_8967_28">
<span class="pln">$ chmod +x /path/to/socks5.sh</span></pre>

		<p>
			قد تحتاج في OS X القيام بخطوات إضافية لتُخبر Mac OS X أن ملف بلاحقة .sh يجب أن يُنَفَذ كبرنامج وألا يتم فتحه في مُحرر.
		</p>

		<p>
			لتقوم بهذا، اضغط بزر الفأرة الأيمن على ملف <span style="font-family:courier new,courier,monospace;">socks5.sh </span>واختر <strong>Get Info</strong>. جد القسم <strong>Open with</strong>: وإذا لم يُشر سهم الكشف إلى الأسفل، اضغط عليه لكي ترى القائمة المُندسلة. قد تجد Xcode مضبوطًا كالتطبيق الافتراضي.
		</p>

		<p style="text-align: center;">
			<a class="ipsAttachLink ipsAttachLink_image" data-fileid="15636" href="https://academy.hsoub.com/uploads/monthly_2016_04/socks5_info006.png.de57a4a807ef5f84397c64beec58f252.png" rel="external"><img alt="socks5_info006.png" class="ipsImage ipsImage_thumbnailed" data-fileid="15636" data-unique="bj9cosknh" src="https://academy.hsoub.com/uploads/monthly_2016_04/socks5_info006.thumb.png.e4ec0a314eb55dae74ded34b545948f9.png"></a>
		</p>

		<p>
			غيره إلى <strong>Terminal.app</strong>. إذا لم تجد <strong>Terminal.app</strong> بالقائمة، اختر <strong>Other</strong>، ثم انتقل إلى <strong>Applications &gt; Utilities &gt; Terminal.app</strong>.
		</p>

		<p>
			اضغط مرتين على ملف <span style="font-family:courier new,courier,monospace;">socks.sh</span> لتفتح وسيط SOCKS الخاص بك الآن.
		</p>

		<p>
			<strong>ملاحظة</strong>: بعد التنفيذ، لن يطلب السكربت كلمة سر، ولذلك سيفشل بصمت إذا أعددت مفتاح <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> مُسبقًا ليطلب كلمة مرور.
		</p>

		<p>
			سوف يفتح السكربت نافذة الطرفية، يبدأ اتصال <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> ويُشغل فَيرفُكس. لا تخش من إغلاق نافذة الطرفية. يمكنك الآن أن تبدأ التصفح في اتصالك الآمن، طالما أنك تحتفظ بإعدادات الوسيط في فَيرفُكس.
		</p>
	</div>

	<div id="wmd-preview-section-66">
		<h3 id="2-إنشاء-alias">
			2. إنشاء Alias
		</h3>

		<p>
			إذا وجدت أنك تستخدم سطر الأوامر كثيرًا وتُريد تشغيل النفق، يمكنك إنشاء Alias ليقوم بالمهمة من أجلك.
		</p>

		<p>
			الجزء الأصعب في إنشاء Alias هو أين تحفظه. تحفظ توزيعات لينكس وإصدارات OS X المختلفة الـ aliases في أماكن مختلفة. أفضل طريقة هي البحث عن أحد الملفات التالية وتبحث بداخله عن الكلمة alias لترى أين تُحفظ الأوامر البديلة الأخرى حاليًا.
		</p>

		<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_8967_30">
<span class="pln">~/.bashrc
~/.bash_aliases
~/.bash_profile
~/.profile</span></pre>

		<p>
			بمجرد إيجاد الملف الصحيح، أضف هذا السطر التّالي أسفل Aliases موجودة لديك، أو فقط بنهاية الملف. 
		</p>

		<pre class="ipsCode" id="ips_uid_8967_32">
alias socks5=’<abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">ssh</abbr></abbr></abbr></abbr> -D 8123 -f -C -q -N sammy@example.com &amp;&amp; /Applications/Firefox.app/Contents/MacOS/firefox &amp;’</pre>

		<ul>
<li>
				استبدل <span style="font-family:courier new,courier,monospace;">8123</span> برقم المنفذ الذي تريده، يجب أن يُطابق ما وضعته في فَيرفُكس
			</li>
			<li>
				استبدل<span style="font-family:courier new,courier,monospace;"> sammy@example.com</span> بمُستخدم <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> الخاص بك واسم المُضيف أو عنوان IP
			</li>
			<li>
				استبدل<span style="font-family:courier new,courier,monospace;"> Applications/Firefox.app/Contents/MacOS/firefox/</span> بمسار ملف فَيرفُكس الثُنائي
			</li>
		</ul>
<p>
			يتم تحميل الـ aliases فقط عندما تبدأ صدفة جديدة، لذا أغلق جلسة طرفيتك وابدأ واحدة جديدة.
		</p>

		<p>
			الآن عندما تكتب:
		</p>

		<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_8967_34">
<span class="pln">$ socks5</span></pre>

		<p>
			هذا الأمر يقوم بإنشاء نفقك، ثم يُشغل فَيرفُكس ويُعيدك إلى مِحث الأوامر. تأكد أن فَيرفُكس مضبوط ليستخدم الوسيط (proxy). يمكنك الآن التصفح بشكلٍ آمن.
		</p>
	</div>

	<div id="wmd-preview-section-67">
		<h2 id="الخطوة-الخامسة-اختياري-استكشاف-الأخطاء-وإصلاحها-المرور-عبر-الجدران-النارية">
			الخطوة الخامسة (اختياري) - استكشاف الأخطاء وإصلاحها: المرور عبر الجدران النارية
		</h2>

		<p>
			إذا كان اتصالك يعمل، فلا حاجة لك لقراءة هذا القسم.
		</p>

		<p>
			ومع ذلك، إذا اكتشفت أنه لا يمكنك إنشاء اتصال <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> بسبب جدار ناري تقييدي، فالمرجح أن المنفذ 22، وهو المطلوب لإنشاء النفق، محجوب.
		</p>

		<p>
			إذا كان بإمكانك التحكم في إعدادات خادوم وسيط <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr>، يمكنك إعداد <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> للإنصات إلى منفذ آخر غير 22. ما المنفذ غير المحجوب الذي يمكنك استخدامه؟
		</p>

		<p>
			بجانب الخطة المشكوك بها لفحص المنافذ باستخدام أداة مثل <a href="https://www.grc.com/" rel="external nofollow">ShieldsUP</a>، مشكوك بها لأن شبكتك المحلية قد تُفسر هذا كهجوم، فالأفضل تجربة منافذ تُترك مفتوحة عادة. المنافذ المتروكة مفتوحة عادةً تكون 80 (لحركة مرور الويب العامة) و 443 (لحركة مرور <abbr title="Secure Socket Layer | طبقة المنافذ الآمنة"><abbr title="Secure Socket Layer | طبقة المنافذ الآمنة"><abbr title="Secure Socket Layer | طبقة المنافذ الآمنة"><abbr title="Secure Socket Layer | طبقة المنافذ الآمنة"><abbr title="Secure Socket Layer | طبقة المنافذ الآمنة">SSL</abbr></abbr></abbr></abbr></abbr>).
		</p>

		<p>
			إذا لم يكن خادوم <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> الخاص بك يخدم محتوى ويب، يمكننا أن نخبر <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> ليستخدم أحد هذين المنفذين ليتصل عبره بدلا من المنفذ الافتراضي 22. المنفذ 433 هو أفضل اختيار لأنه مُتَوقع أن يكون هناك حركة مرور مُشفرة على هذا المنفذ، وحركة مرور <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> الخاصة بنا ستكون مُشفرة.
		</p>

		<p>
			ابدأ اتصال <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> لخادومك من مكان غير محمي بجدار ناري، ثم حرّر ملف إعدادات <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr>:
		</p>

		<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_8967_36">
<span class="pln">$ sudo nano /etc/<abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">ssh</abbr></abbr></abbr></abbr>/sshd_config</span></pre>

		<p>
			ابحث عن السطر <span style="font-family:courier new,courier,monospace;">Port 22</span>. يمكننا إما استبدال 22 كُليًا، وهي فكرة جيدة لزيادة أمان <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr>، أو إضافة منفذ آخر ليُنصت <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> إليه.
		</p>

		<p>
			سنختار انصات <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> إلى منافذ متعددة، لذا سنُضيف سطر جديد أسفل <span style="font-family:courier new,courier,monospace;">Port 22</span> الذي يُقرأ<span style="font-family:courier new,courier,monospace;"> Port 443.</span> وإليك مثال لملف <span style="font-family:courier new,courier,monospace;">sshd_config</span>:
		</p>
	</div>

	<div id="wmd-preview-section-68">
		<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_8967_38">
<span class="pln">...
Port 22
Port 443
...</span></pre>

		<p>
			أعد تشغيل <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> لكي يُعيد تحميل ضبط <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> الذي أدخلته. قد يختلف اسم عفريت خادوم <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> بالاعتماد على توزيعتك، لكن من المرجح أن يكون اسمه <span style="font-family:courier new,courier,monospace;"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">ssh</abbr></abbr></abbr></abbr></abbr></span> أو <span style="font-family:courier new,courier,monospace;">sshd</span>. إذا لم يعمل أحدهما جرّب الآخر.
		</p>

		<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_8967_40">
<span class="pln">$ sudo service <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">ssh</abbr></abbr></abbr></abbr> restart</span></pre>

		<p>
			لتتحقق من أن منفذ <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> يعمل، افتح صدفة جديدة، لا تُغلق الجلسة الحالية بعد، فقد تحتاجها في حالة أغلقت الباب على نفسك وأنت خارج الخادوم بدون قصد، وابدأ اتصال <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> باستخدام المنفذ الجديد.
		</p>

		<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_8967_42">
<span class="pln">$ <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">ssh</abbr></abbr></abbr></abbr> sammy@example.com -p 443</span></pre>

		<p>
			إذا نجحت بالاتصال، فيُمكنك الخروج الآن من الصدفتين وفتح نفق <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> باستخدام المنفذ الجديد.
		</p>

		<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_8967_7">
<span class="pln">$ <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">ssh</abbr></abbr></abbr></abbr> -D 8123 -f -C -q -N sammy@example.com -p 443</span></pre>

		<p>
			ستكون إعدادات فَيرفُكس هي نفسها لأنه لا يعتمد على منفذ <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr>، وإنما منفذ النفق (8123 كما بالأمر السابق).
		</p>
	</div>

	<div id="wmd-preview-section-69">
		<h2 id="خاتمة">
			خاتمة
		</h2>

		<p>
			افتح نفق SOCKS 5 للتصفح من خلال نفق <abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة"><abbr title="Secure Shell | القشرة (أو الصَدَفة) الآمنة">SSH</abbr></abbr></abbr></abbr></abbr> آمن كلما أردت طريقة خفيفة للوصول للويب بمأمن من أعين المُتطفلين.
		</p>

		<p>
			ترجمة -وبتصرّف- للمقال <a href="https://www.digitalocean.com/community/tutorials/how-to-route-web-traffic-securely-without-a-vpn-using-a-socks-tunnel" rel="external nofollow">How To Route Web Traffic Securely Without a <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية"><abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية"><abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية"><abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية"><abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr></abbr></abbr></abbr></abbr> Using a SOCKS Tunnel</a> لصاحبه Michael Holley.
		</p>
	</div>
</div>]]></description><guid isPermaLink="false">246</guid><pubDate>Sun, 24 Apr 2016 10:27:52 +0000</pubDate></item><item><title>&#x627;&#x644;&#x636;&#x628;&#x637; &#x627;&#x644;&#x645;&#x62A;&#x642;&#x62F;&#x645; &#x644;&#x640; OpenVPN &#x639;&#x644;&#x649; &#x623;&#x648;&#x628;&#x646;&#x62A;&#x648;</title><link>https://academy.hsoub.com/devops/security/vpn/%D8%A7%D9%84%D8%B6%D8%A8%D8%B7-%D8%A7%D9%84%D9%85%D8%AA%D9%82%D8%AF%D9%85-%D9%84%D9%80-openvpn-%D8%B9%D9%84%D9%89-%D8%A3%D9%88%D8%A8%D9%86%D8%AA%D9%88-r223/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2016_02/ubuntu-server-openvpn-advanced.png.560e23c4e84da130ed3ce27a9f823931.png" /></p>

<p dir="rtl">
	تطرّقنا في <a href="https://academy.hsoub.com/devops/servers/%D8%AA%D8%AB%D8%A8%D9%8A%D8%AA-%D9%88%D8%B6%D8%A8%D8%B7-openvpn-%D9%84%D8%A5%D9%86%D8%B4%D8%A7%D8%A1-%D8%B4%D8%A8%D9%83%D8%A9-%D9%88%D9%87%D9%85%D9%8A%D8%A9-%D8%AE%D8%A7%D8%B5%D8%A9-%D8%B9%D9%84%D9%89-%D8%A3%D9%88%D8%A8%D9%86%D8%AA%D9%88-r222/">الدّرس السّابق</a> إلى ضبط بسيط جدًا لـ <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr>، يمكن للعميل الوصول إلى الخدمات على خادوم <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr> عبر نفق مشفَّر؛ إذا أردت الوصول إلى المزيد من الخواديم أو أي شيء آخر على الشبكات الأخرى، فأعطِ العملاء بعض تعليمات التوجيه؛ على سبيل المثال، لو كان بالإمكان تلخيص شبكة شركتك بالنطاق 192.168.0.0/16؛ فيمكنك إعطاء هذا التوجيه إلى العملاء، لكن عليك أيضًا تغيير التوجيه لطريقة العودة، أي أن خادومك عليه أن يعرف طريقة العودة إلى شبكة عميل <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr>.
</p>

<p dir="rtl" style="text-align: center;">
	<img alt="ubuntu-server-openvpn-advanced.png.bc1d9" class="ipsImage ipsImage_thumbnailed" data-fileid="13299" data-unique="e8qi683z3" src="https://academy.hsoub.com/uploads/monthly_2016_02/ubuntu-server-openvpn-advanced.png.bc1d98c6f2dfd681210e0b4b176256ab.png"></p>

<p dir="rtl">
	أو ربما تريد أن تعطي البوابة الافتراضية إلى جميع عملائك وترسل جميع البيانات الشبكية إلى بوابة <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr> أولًا، ومن هناك إلى الجدار الناري للشركة ثم إلى الإنترنت؛ يوضح لك هذا القسم بعض الخيارات المتاحة أمامك.
</p>

<h2 class="western" dir="rtl">
	<span lang="hi-IN">ضبط </span><abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr> <span lang="hi-IN">موجه على الخادوم</span>
</h2>

<h4 class="western" dir="rtl">
	<span style="line-height: 2em; font-size: 14px;">سيسمح إعطاء التوجيهات للعميل له بالوصول إلى شبكات فرعية أخرى خلف الخادوم؛ تذكر أن هذه الشبكات الفرعية يجب أن تعرف أن عليها إعادة توجيه الرزم التابعة لنطاق عناوين عميل OpenVPN ‏(10.8.0.0/24) إلى خادوم OpenVPN.</span>
</h4>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_9">
<span class="pln">push "route 10.0.0.0 255.0.0.0"</span></pre>

<p dir="rtl">
	ستضبط التعليمة السابقة جميع العملاء كي يعيدوا توجيه بوابة الشبكة الافتراضية عبر <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr>، مما يؤدي إلى مرور جميع بيانات الشبكة كتصفح الويب أو طلبات DNS عبر <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr> (خادوم OpenVPN أو الجدار الناري المركزي عندك الذي يحتاج إلى تمرير بطاقة TUN/TAP إلى الإنترنت لكي يعمل ذلك عملًا صحيحًا).
</p>

<p dir="rtl">
	اضبط نمط الخادوم ووفر شبكة <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr> فرعية لكي يسحب OpenVPN عناوين العملاء منها؛ سيأخذ الخادوم العنوان 10.8.0.1 لنفسه، والبقية ستتوفر للعملاء؛ وكل عميل سيقدر على الوصول إلى الخادوم عبر 10.8.0.1. ضع تعليقًا قبل هذا السطر إذا كنت تستخدم جسر إيثرنت (ethernet bridging):
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_28">
<span class="pln">server 10.8.0.0 255.255.255.0</span></pre>

<p dir="rtl">
	حافظ على سجل لارتباطات عناوين IP للعملاء في هذا الملف؛ إذا توقف OpenVPN عن العمل أو أعيد تشغيله، فإن العملاء الذي سيعيدون إنشاء الاتصال سيُسنَد لهم نفس عنوان IP المُسنَد لهم سابقًا.
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_30">
<span class="pln">ifconfig-pool-persist ipp.txt</span></pre>

<p dir="rtl">
	أضف خواديم DNS إلى العميل:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_32">
<span class="pln">push "dhcp-option DNS 10.0.0.2"
push "dhcp-option DNS 10.1.0.2"</span></pre>

<p dir="rtl">
	اسمح بالتواصل من العميل إلى العميل:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_34">
<span class="pln">client-to-client</span></pre>

<p dir="rtl">
	تفعيل الضغط على خط <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr>:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_36">
<span class="pln">comp-lzo</span></pre>

<p dir="rtl">
	تؤدي التعليمة <span style="font-family:courier new,courier,monospace;">keepalive</span> بإرسال شبيهة برسائل <span style="font-family:courier new,courier,monospace;">ping</span> مرارًا وتكرارًا عبر الخط الذي يصل بين الجانبين، لذلك سيعلم كل جانب متى ينقطع الاتصال عن الجانب الآخر؛ السطر الآتي سيرسل <span style="font-family:courier new,courier,monospace;">ping</span> كل 1 ثانية، بافتراض أن الند البعيد سيكون متوقفًا إذا لم يَرِد رد على الرسالة خلال مدة 3 ثواني:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_39">
<span class="pln">keepalive 1 3</span></pre>

<p dir="rtl">
	فكرةٌ جيدةٌ هي تقليص امتيازات عفريت OpenVPN بعد التهيئة:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_41">
<span class="pln">user nobody
group nogroup</span></pre>

<p dir="rtl">
	يتضمن OpenVPN 2.0 خاصية تسمح لخادوم OpenVPN بالحصول الآمن على اسم مستخدم وكلمة مرور من العميل المتصل، ويستخدم هذه المعلومات كأساس للاستيثاق بالعميل؛ لاستخدام طريقة الاستيثاق هذه، أولًا أضف تعليمة<span style="font-family:courier new,courier,monospace;"> auth-user-pass</span> إلى ضبط العميل؛ التي ستوجه عميل OpenVPN لطلب اسم مستخدم وكلمة مرور، وتمريرها إلى الخادوم عبر قناة <abbr title="Transport Layer Security | بروتوكول أمن طبقة النقل">TLS</abbr> آمنة.
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_43">
<span class="pln"># client config!
auth-user-pass</span></pre>

<p dir="rtl">
	هذا سيخبر خادوم OpenVPN أن يتحقق من اسم المستخدم وكلمة المرور المُدخَلة من العملاء باستخدام واحدة PAM لتسجيل الدخول؛ وهذا يفيد في حالة كان عندك آلية مركزية للاستيثاق مثل Kerberos.
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_45">
<span class="pln">plugin /usr/lib/openvpn/openvpn-auth-pam.so login</span></pre>

<h2 dir="rtl">
	ضبط متقدم لخدمة <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr> جسرية على الخادوم
</h2>

<p dir="rtl">
	يمكن إعداد OpenVPN لكي يعمل بنمط <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr> جسري (bridged <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr>) أو موجَّه (routed <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr>)؛ أحيانًا يُشار لذلك بخدمة <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr> تعمل بالطبقة الثانية أو الثالثة من OSI؛ في <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr> جسري، جميع الإطارات (frames) الشبكية تكون من الطبقة الثانية (layer-2)، أي جميع إطارات إيثرنت تُرسَل إلى شركاء <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr>‏ (<abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr> partners)؛ بينما تُرسَل الرزم الشبكية من الطبقة الثالثة فقط إلى شركاء <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr>‏ (<abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr> Partners)؛ في النمط الجسري، ستُرسَل جميع البيانات الشبكية بما التي تكون شبيهة بشبكة LAN مثل طلبات DHCP، و طلبات ARP ...إلخ إلى شركاء <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr>، لكن في النمط الموجه، سيتم تجاهل تلك الرزم.
</p>

<h3 dir="rtl">
	تحضير ضبط بطاقة شبكية لإنشاء جسر على الخادوم
</h3>

<p dir="rtl">
	تأكد من أن لديك الحزمة <span style="font-family:courier new,courier,monospace;">bridge-utils</span>:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_47">
<span class="pln">sudo apt-get install bridge-utils</span></pre>

<p dir="rtl">
	قبل أن تضبط OpenVPN في النمط الجسري، عليك تغيير ضبط بطاقات الشبكة؛ لنفترض أن لدى خادومك بطاقة اسمها <span style="font-family:courier new,courier,monospace;">eth0</span> موصولة إلى الإنترنت، وبطاقة باسم <span style="font-family:courier new,courier,monospace;">eth1</span> موصولة إلى شبكة LAN التي تريد إنشاء جسر لها؛ سيبدو ملف <span style="font-family:courier new,courier,monospace;">‎/etc/network/interfaces</span> كما يلي:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_49">
<span class="pln">auto eth0
iface eth0 inet static
  address 1.2.3.4
  netmask 255.255.255.248
  default 1.2.3.1

auto eth1
iface eth1 inet static
  address 10.0.0.4
  netmask 255.255.255.0</span></pre>

<p dir="rtl">
	هذا ضبط بسيط للبطاقة ويجب أن يُعدَّل لكي يغيَّر إلى النمط الجسري حيث تتحول البطاقة <span style="font-family:courier new,courier,monospace;">eth1</span> إلى بطاقة <span style="font-family:courier new,courier,monospace;">br0</span> الجديدة؛ بالإضافة إلى أننا ضبطنا <span style="font-family:courier new,courier,monospace;">br0</span> لتكون البطاقة الجسرية للبطاقة <span style="font-family:courier new,courier,monospace;">eth1</span>؛ علينا التأكد أن البطاقة <span style="font-family:courier new,courier,monospace;">eth1</span> دومًا في نمط تمرير الحزم:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_51">
<span class="pln">
auto eth0
iface eth0 inet static
  address 1.2.3.4
  netmask 255.255.255.248
  default 1.2.3.1

auto eth1
iface eth1 inet manual
  up ip link set $IFACE up promisc on

auto br0
iface br0 inet static
  address 10.0.0.4
  netmask 255.255.255.0
  bridge_ports eth1</span></pre>

<p dir="rtl">
	يجب أن تشغِّل الآن تلك البطاقة؛ تحضَّر لأن هذا قد لا يعمل كما هو متوقع، وستفقد التحكم عن بعد؛ تأكد أنك تستطيع حل المشاكل بالوصول إلى الجهاز محليًا.
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_53">
<span class="pln">sudo ifdown eth1 &amp;&amp; sudo ifup -a</span></pre>

<h3 dir="rtl">
	إعداد ضبط الخادوم للجسر
</h3>

<p dir="rtl">
	عدِّل الملف <span style="font-family:courier new,courier,monospace;">‎/etc/openvpn/server.conf</span>، مغيّرًا ما يلي من الخيارات إلى:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_55">
<span class="pln">;dev tun
dev tap
up "/etc/openvpn/up.sh br0 eth1"
;server 10.8.0.0 255.255.255.0
server-bridge 10.0.0.4 255.255.255.0 10.0.0.128 10.0.0.254</span></pre>

<p dir="rtl">
	ثم أنشِئ سكربتًا مساعدًا لإضافة البطاقة <span style="font-family:courier new,courier,monospace;">tap</span> إلى الجسر، وللتأكد من أن <span style="font-family:courier new,courier,monospace;">eth1</span> في وضع تمرير الحزم؛ أنشِئ الملف ‎<span style="font-family:courier new,courier,monospace;">/etc/openvpn/up.sh</span>:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_57">
<span class="pln">#!/bin/sh

BR=$1
ETHDEV=$2
TAPDEV=$3

/sbin/ip link set "$TAPDEV" up
/sbin/ip link set "$ETHDEV" promisc on
/sbin/brctl addif $BR $TAPDEV</span></pre>

<p dir="rtl">
	ثم اجعل السكربت تنفيذًا:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_59">
<span class="pln">sudo chmod 755 /etc/openvpn/up.sh</span></pre>

<p dir="rtl">
	بعد ضبط الخادوم، عليك إعادة تشغيل خدمة <span style="font-family:courier new,courier,monospace;">openvpn</span> بإدخال الأمر:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_61">
<span class="pln">sudo service openvpn restart</span></pre>

<h3 dir="rtl">
	ضبط العميل
</h3>

<p dir="rtl">
	أولًا، ثبِّت <span style="font-family:courier new,courier,monospace;">openvpn</span> على العميل:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_63">
<span class="pln">sudo apt-get install openvpn</span></pre>

<p dir="rtl">
	ثم بعد أن يكون الخادوم مضبوطًا، وشهادات العميل منسوخةً إلى ‎<span style="font-family:courier new,courier,monospace;">/etc/openvpn</span>؛ فأنشِئ ملف ضبط للعميل بنسخ المثال، وذلك بإدخال الأمر الآتي في طرفية جهاز العميل:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_65">
<span class="pln">sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf \ /etc/openvpn</span></pre>

<p dir="rtl">
	عدِّل الملف<span style="font-family:courier new,courier,monospace;"> ‎/etc/openvpn/client.conf </span>مغيّرًا الخيارات الآتية:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_68">
<span class="pln">dev tap
;dev tun
ca ca.crt
cert client1.crt
key client1.key</span></pre>

<p dir="rtl">
	في النهاية، أعد تشغيل <span style="font-family:courier new,courier,monospace;">openvpn</span>:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_70">
<span class="pln">sudo service openvpn restart</span></pre>

<p dir="rtl">
	يجب الآن أن تستطيع الوصول إلى شبكة LAN البعيدة عبر <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr>.
</p>

<h2 dir="rtl">
	نسخ عميل OpenVPN
</h2>

<h3 dir="rtl">
	الواجهة الرسومية لإدارة الشبكة في لينكس
</h3>

<p dir="rtl">
	تأتي أغلبية توزيعات لينُكس بما فيها توزيعة أوبنتو للأجهزة المكتبية على برمجية «مدير الشبكة»، الذي هو واجهة رسومية جميلة لإدارة خيارات الشبكة؛ يمكنك أيضًا إدارة اتصالات <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr> منها؛ تأكد أن لديك الحزمة <span style="font-family:courier new,courier,monospace;">network-manager-openvpn</span> مثبتةً، ستلاحظ هنا أن تثبيتها سيثبِّت حزمًا أخرى مطلوبة:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_12">
<span class="pln">sudo apt-get install network-manager-openvpn</span></pre>

<p dir="rtl">
	لإعلام برمجية «مدير الشبكة» بتثبيت الحزم الجديدة، عليك إعادة تشغيله:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_14">
<span class="pln">restart network-manager
network-manager start/running, process 3078</span></pre>

<p dir="rtl">
	في واجهة مدير الشبكة، اختر لسان <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr> واضغط على زر "إضافة"، ثم اختر OpenVPN كنوع خدمة <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr> ثم اضغط على «إنشاء»، في النافذة التالية أضف اسم خادوم OpenVPN «كبوابة»، واختر «النوع» إلى «شهادات (<abbr title="Transport Layer Security | بروتوكول أمن طبقة النقل">TLS</abbr>)» ثم وجِّه «شهادة المستخدم» إلى شهادتك، و «شهادة CA» إلى سلطة الشهادات التي تعتمدها، و «المفتاح الخاص» إلى ملف مفتاحك الخاص، استخدم الزر «خيارات متقدمة» لتفعيل الضغط أو غيره من الخيارات الخاصة التي ضبطتها على الخادوم؛ جرِّب الآن إنشاء اتصال عبر <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr>.
</p>

<h3 dir="rtl">
	برمجية Tunnelblick للاتصال بخدمة OpenVPN مع واجهة رسومية لأنظمة ماك OS X
</h3>

<p dir="rtl">
	إن Tunnelblick هو نسخة ممتازة حرة مفتوحة المصدر لواجهة رسومية لعميل OpenVPN لنظام ماك؛ نزِّل آخر نسخة من المثبِّت من الموقع الرسمي وثبتِّها؛ ثم ضع ملف الضبط <span style="font-family:courier new,courier,monospace;">client.ovpn </span>مع الشهادات والمفاتيح سويةً في ‎ <span style="font-family:courier new,courier,monospace;">‎/Users/username/Library/Application Support/Tunnelblick/Configurations/‎</span> ثم شغِّل Tunnelblick من مجلد «التطبيقات» لديك.
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_16">
<span class="pln"># sample client.ovpn for Tunnelblick
client
remote blue.example.com
port 1194
proto udp
dev tun
dev-type tun
ns-cert-type server
reneg-sec 86400
auth-user-pass
auth-nocache
auth-retry interact
comp-lzo yes
verb 3
ca ca.crt
cert client.crt
key client.key</span></pre>

<h3 dir="rtl">
	واجهة رسومية لعميل OpenVPN لويندوز
</h3>

<p dir="rtl">
	نزِّل وثبِّت آخر نسخة من <a href="http://www.openvpn.net/index.php/open-source/downloads.html" rel="external nofollow">عميل </a><a href="http://www.openvpn.net/index.php/open-source/downloads.html" rel="external nofollow">OpenVPN</a><a href="http://www.openvpn.net/index.php/open-source/downloads.html" rel="external nofollow"> </a><a href="http://www.openvpn.net/index.php/open-source/downloads.html" rel="external nofollow">لويندوز</a>؛ يمكنك تثبيت واجهة رسومية اختيارية باسم OpenVPN Windows GUI؛ ثم عليك تشغيل خدمة OpenVPN، وذلك بالذهاب إلى «ابدأ - جهاز الكومبيوتر - إدارة - الخدمات» و «التطبيقات - الخدمات»، ثم اعثر على خدمة OpenVPN وشغِّلها، ثم اضبط نمط التشغيل إلى «تلقائي»؛ وعندما تشغِّل OpenVPN MI GUI لأول مرة، فعليك تشغيله كمدير؛ وذلك بالنقر عليه بالزر الأيمن وانتقاء الخيار المناسب.
</p>

<p dir="rtl">
	سيتوجب عليك كتابة ملف ضبط OpenVPN إلى ملف نصي ووضعه في<span style="font-family:courier new,courier,monospace;"> C:\Program Files\OpenVPN\config\client.ovpn</span> مع شهادة CA؛ وعليك وضع شهادة المستخدم في مجلد المنزل للمستخدم كما في المثال الآتي:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_18">
<span class="pln"># C:\Program Files\OpenVPN\config\client.ovpn
client
remote server.example.com
port 1194
proto udp
dev tun
dev-type tun
ns-cert-type server
reneg-sec 86400
auth-user-pass
auth-retry interact
comp-lzo yes
verb 3
ca ca.crt
cert "C:\\Users\\username\\My Documents\\openvpn\\client.crt"
key "C:\\Users\\username\\My Documents\\openvpn\\client.key"
management 127.0.0.1 1194
management-hold
management-query-passwords
auth-retry interact
; Set the name of the Windows TAP network interface device here
dev-node MyTAP</span></pre>

<p dir="rtl">
	وإذا لم ترد الاستيثاق من المستخدم أو كنت تريد تشغيل الخدمة دون تفاعله، فأضف تعليقًا قبل الخيارات الآتية:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_20">
<span class="pln">auth-user-pass
auth-retry interact
management 127.0.0.1 1194
management-hold
management-query-passwords</span></pre>

<h3 dir="rtl">
	استخدام OpenVPN مع OpenWRT
</h3>

<p dir="rtl">
	يوصف OpenWRT أنه توزيعة لينُكس للأجهزة المدمجة مثل موجهات WLAN؛ هنالك بعض الأنواع من تلك الموجهات التي أُعدَّت لتشغيل OpenWRT؛ بالاعتماد على الذاكرة المتوفرة في الموجه لديك، ربما تتمكن من تشغيل برمجيات مثل OpenVPN ويمكنك بناء موجه لمكتب فرعي مع إمكانية الاتصال عبر <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr> إلى المكتب الرئيسي.
</p>

<p dir="rtl">
	سجِّل دخولك إلى OpenWRT وثبِّت OpenVPN:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_22">
<span class="pln">opkg update
opkg install openvpn</span></pre>

<p dir="rtl">
	تفقَّد الملف <span style="font-family:courier new,courier,monospace;">‎/etc/config/openvpn</span> وضع ضبط العميل هناك؛ وانسخ الشهادة والمفاتيح إلى<span style="font-family:courier new,courier,monospace;"> ‎/etc/openvpn</span>:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_24">
<span class="pln">config openvpn client1
        option enable 1                                  
        option client 1                                  
#       option dev tap                                   
        option dev tun  
        option proto udp   
        option ca /etc/openvpn/ca.crt                
        option cert /etc/openvpn/client.crt
        option key /etc/openvpn/client.key
        option comp_lzo 1  </span></pre>

<p dir="rtl">
	أعد تشغيل OpenVPN:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1984_26">
<span class="pln">service openvpn restart</span></pre>

<p dir="rtl">
	عليك أن ترى إذا كان عليك تعديل إعدادات الجدار الناري والتوجيه في موجهك.
</p>

<h2 dir="rtl">
	مصادر
</h2>

<ul dir="rtl"><li>
		راجع <a href="http://openvpn.net/" rel="external nofollow">موقع </a><a href="http://openvpn.net/" rel="external nofollow">OpenVPN</a> لمزيد من المعلومات.
	</li>
	<li>
		راجع كتاب «<a href="http://openvpn.net/index.php/open-source/documentation/howto.html#security" rel="external nofollow">OpenVPN hardening security guide</a>».
	</li>
	<li>
		أيضًا، الكتاب المنشور من Pakt باسم «<a href="http://www.packtpub.com/openvpn/book" rel="external nofollow">OpenVPN: Building And Integration Virtual Private Networks</a>» هو مرجع جيد.
	</li>
</ul><p>
	ترجمة -وبتصرف- للمقال <a href="https://help.ubuntu.com/lts/serverguide/openvpn.html" rel="external nofollow">Ubuntu Server Guide: OpenVPN</a>.
</p>
]]></description><guid isPermaLink="false">223</guid><pubDate>Mon, 22 Feb 2016 19:55:17 +0000</pubDate></item><item><title>&#x62A;&#x62B;&#x628;&#x64A;&#x62A; &#x648;&#x636;&#x628;&#x637; OpenVPN &#x644;&#x625;&#x646;&#x634;&#x627;&#x621; &#x634;&#x628;&#x643;&#x629; &#x648;&#x647;&#x645;&#x64A;&#x629; &#x62E;&#x627;&#x635;&#x629; &#x639;&#x644;&#x649; &#x623;&#x648;&#x628;&#x646;&#x62A;&#x648;</title><link>https://academy.hsoub.com/devops/security/vpn/%D8%AA%D8%AB%D8%A8%D9%8A%D8%AA-%D9%88%D8%B6%D8%A8%D8%B7-openvpn-%D9%84%D8%A5%D9%86%D8%B4%D8%A7%D8%A1-%D8%B4%D8%A8%D9%83%D8%A9-%D9%88%D9%87%D9%85%D9%8A%D8%A9-%D8%AE%D8%A7%D8%B5%D8%A9-%D8%B9%D9%84%D9%89-%D8%A3%D9%88%D8%A8%D9%86%D8%AA%D9%88-r222/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2016_02/ubuntu-server-openvpn.png.65d60232977775ddcae73c47013a621a.png" /></p>

<p dir="rtl">
	إن OpenVPN هو حلّ لإنشاء شبكات وهمية خاصة (Virtual Private Networks اختصارًا <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr>) موجودٌ في مستودعات أوبنتو؛ هو خدمة مرنة وعملية وآمنة، وينتمي إلى عائلة <abbr title="Secure Socket Layer | طبقة المنافذ الآمنة">SSL</abbr>/<abbr title="Transport Layer Security | بروتوكول أمن طبقة النقل">TLS</abbr> <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr> (التي تختلف عن IPSec <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr>)؛ يشرح هذا الدرس تثبيت وضبط OpenVPN لإنشاء شبكة وهمية خاصة.
</p>

<p dir="rtl" style="text-align: center;">
	<img alt="ubuntu-server-openvpn.png.689c5c67cf18ab" class="ipsImage ipsImage_thumbnailed" data-fileid="13298" data-unique="imlff6pj5" src="https://academy.hsoub.com/uploads/monthly_2016_02/ubuntu-server-openvpn.png.689c5c67cf18ab2549e12098ad271a0a.png"></p>

<h2 dir="rtl">
	OpenVPN
</h2>

<p dir="rtl">
	إذا كنت تريد أكثر من مجرد مفاتيح مُشارَكة مسبقًا؛ فيجعل OpenVPN من السهل إعداد واستخدام بينة تحتية للمفتاح العمومي (Public Key Infrastructure اختصارًا PKI) لاستخدام شهادات <abbr title="Secure Socket Layer | طبقة المنافذ الآمنة">SSL</abbr>/<abbr title="Transport Layer Security | بروتوكول أمن طبقة النقل">TLS</abbr> للاستيثاق ومبادلة المفاتيح بين خادوم <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr> والعملاء؛ يمكن أن يُستخدَم OpenVPN في نمط موَجِّه أو جسر <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr>‏ (routed or bridged <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr>) ويمكن أن يُضبَط ليستخدم TCP أو UDP؛ ويمكن ضبط رقم المنفذ أيضًا، لكن رقم المنفذ 1194 هو الرقم الرسمي لهذه الخدمة؛ عملاء <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr> موجودون تقريبًا في جميع توزيعات لينُكس، ونظام ماك OS X؛ وويندوز والموجهات (routers) التي تعتمد على OpenWRT.
</p>

<h2 dir="rtl">
	تثبيت الخادوم
</h2>

<p dir="rtl">
	لتثبيت برمجية OpenVPN، أدخِل الأمر الآتي في الطرفية:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_219_8">
<span class="pln">sudo apt-get install openvpn</span></pre>

<h2 dir="rtl">
	إعداد البنية التحتية للمفتاح العمومي
</h2>

<p dir="rtl">
	أول خطوة لضبط OpenVPN هي إنشاء بنية تحتية للمفتاح العمومي (PKI)؛ التي تحتوي على:
</p>

<ul dir="rtl"><li>
		شهادة منفصلة (تُسمى أيضًا مفتاح عمومي) وشهادة خاصة للخادوم ولكل عميل.
	</li>
	<li>
		شهادة سلطة شهادات (CA) رئيسية التي يمكن أن تُستخدَم لتوقيع شهادات كلٍّ من الخادوم والعملاء.
	</li>
</ul><p dir="rtl">
	يدعم OpenVPN الاستيثاق ثنائي الاتجاه بناءً على الشهادات، وهذا يعني أن على العميل الاستيثاق من شهادة الخادوم، وعلى الخادوم الاستيثاق من شهادة العميل قبل أن تُنشَأ ثقةٌ مشتركةٌ بينهما.
</p>

<p dir="rtl">
	على الخادوم والعميل الاستيثاق من بعضها أولًا عبر التحقق من أن الشهادة موقعة من سلطة الشهادات الرئيسية، ثم باختبار المعلومات في ترويسة الشهادة المستوثق منها؛ مثل اسم الشهادة الشائع أو نوع الشهادة (عميل أو خادوم).
</p>

<h3 dir="rtl">
	إعداد سلطة الشهادات
</h3>

<p dir="rtl">
	لضبط سلطة شهادات خاصة بك وتوليد شهادات ومفاتيح لخادوم OpenVPN ولبعض العملاء، عليك أولًا نسخ المجلد <span style="font-family:courier new,courier,monospace;">easy-rsa</span> إلى ‎<span style="font-family:courier new,courier,monospace;">/etc/openvpn</span>؛ وهذا سيؤكد أن أي تغييرات إلى السكربتات لن تضيع عند تحديث الحزمة؛ أدخِل ما يلي في الطرفية:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_219_10">
<span class="pln">mkdir /etc/openvpn/easy-rsa/
cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/</span></pre>

<p dir="rtl">
	الآن عدِّل الملف <span style="font-family:courier new,courier,monospace;">‎/etc/openvpn/easy-rsa/vars</span> مغيّرًا ما يلي ليناسب بيئتك:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_219_12">
<span class="pln">export KEY_COUNTRY="US"
export KEY_PROVINCE="NC"
export KEY_CITY="Winston-Salem"
export KEY_ORG="Example Company"
export KEY_EMAIL="steve@example.com"
export KEY_CN=MyVPN
export KEY_NAME=MyVPN
export KEY_OU=MyVPN</span></pre>

<p dir="rtl">
	أدخِل ما يلي لتوليد شهادة سلطة شهادات رئيسية ومفتاح:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_219_14">
<span class="pln">cd /etc/openvpn/easy-rsa/
source vars
./clean-all
./build-ca</span></pre>

<h3 dir="rtl">
	شهادات الخادوم
</h3>

<p dir="rtl">
	عليك توليد شهادة ومفتاح خاص للخادوم:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_219_16">
<span class="pln">./build-key-server myservername</span></pre>

<p dir="rtl">
	وكما في الخطوة السابقة، أغلبية المعاملات يمكن أن تبقى على قيمتها الافتراضية؛ هنالك سؤالان يجب أن تجيب عليهما بالقبول هما:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_219_18">
<span class="pln">"‎Sign the certificate? [y/n]" </span></pre>

<p dir="rtl">
	و
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_219_20">
<span class="pln">"‎‏‎1 out of 1 certificate requests ‎certified, commit? [y/n]‎".</span></pre>

<p dir="rtl">
	يجب توليد معاملات Diffie Hellman لخادوم OpenVPN:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_219_22">
<span class="pln">./build-dh</span></pre>

<p dir="rtl">
	جميع الشهادات والمفاتيح ستولد في المجلد الفرعي<span style="font-family:courier new,courier,monospace;">keys‎‎‎/</span>؛ ومن العادات الشائعة بين المدراء نسخها إلى <span style="font-family:courier new,courier,monospace;">‎/etc/openvpn</span>:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_219_24">
<span class="pln">cd keys/
cp myservername.crt myservername.key ca.crt dh2048.pem /etc/openvpn/</span></pre>

<h3 dir="rtl">
	شهادات العميل
</h3>

<p dir="rtl">
	سيحتاج عميل <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">VPN</abbr> إلى شهادة أيضًا لكي يُعرِّف نفسه إلى الخادوم؛ عليك عادةً إنشاء شهادة منفصلة لكل عميل؛ أدخِل ما يلي في الطرفية لإنشاء شهادة:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_219_26">
<span class="pln">cd /etc/openvpn/easy-rsa/
source vars
./build-key client1</span></pre>

<p dir="rtl">
	انسخ الملفات الآتية إلى العميل باستخدام طريقة آمنة:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_219_28">
<span class="pln">/etc/openvpn/ca.crt
/etc/openvpn/easy-rsa/keys/client1.crt
/etc/openvpn/easy-rsa/keys/client1.key</span></pre>

<p dir="rtl">
	ولأن شهادات ومفاتيح العميل مطلوبة فقط على حاسوب العميل، فعليك حذفهم من الخادوم.
</p>

<h2 dir="rtl">
	ضبط بسيط للخادوم
</h2>

<p dir="rtl">
	ستحصل عند تثبيت OpenVPN على أمثلة عن ملفات الضبط:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_219_30">
<span class="pln">ls -l /usr/share/doc/openvpn/examples/sample-config-files/
total 68
-rw-r--r-- 1 root root 3427 2011-07-04 15:09 client.conf
-rw-r--r-- 1 root root 4141 2011-07-04 15:09 server.conf.gz</span></pre>

<p dir="rtl">
	ابدأ بنسخ وفك ضغط <span style="font-family:courier new,courier,monospace;">server.conf.gz</span> إلى ‎<span style="font-family:courier new,courier,monospace;">/etc/openvpn/server.conf</span>.
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_219_32">
<span class="pln">sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz \ /etc/openvpn/
sudo gzip -d /etc/openvpn/server.conf.gz</span></pre>

<p dir="rtl">
	عدِّل ملف <span style="font-family:courier new,courier,monospace;">‎/etc/openvpn/server.conf</span> للتأكد من أن الأسطر الآتية تشير إلى الشهادات والمفاتيح التي أنشأتها في القسم السابق:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_219_34">
<span class="pln">ca ca.crt
cert myservername.crt
key myservername.key
dh dh2048.pem</span></pre>

<p dir="rtl">
	عدِّل الملف <span style="font-family:courier new,courier,monospace;">‎/etc/sysctl.conf</span> وأزل التعليق عن السطر الآتي لتفعيل تمرير IP:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_219_36">
<span class="pln">#net.ipv4.ip_forward=1</span></pre>

<p dir="rtl">
	ثم أعد تحميل <span style="font-family:courier new,courier,monospace;">sysctl</span>:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_219_38">
<span class="pln">sudo sysctl -p /etc/sysctl.conf</span></pre>

<p dir="rtl">
	هذا هو الحد الأدنى الذي تحتاج لضبط خادوم OpenVPN؛ يمكنك استخدام جميع الإعدادات الافتراضية في ملف<span style="font-family:courier new,courier,monospace;"> server.conf</span>؛ الآن شغِّل الخادوم، وستجد رسائل التسجيل والخطأ موجودةً في ملف <span style="font-family:courier new,courier,monospace;">syslog</span>:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_219_74">
<span class="pln">sudo service openvpn start
 * Starting virtual private network daemon(s)...
   *   Autostarting VPN 'server'                     [ OK ]</span></pre>

<p dir="rtl">
	تأكد الآن من أن OpenVPN قد أنشَأ البطاقة <span style="font-family:courier new,courier,monospace;">tun0</span>:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_219_71">
<span class="pln">sudo ifconfig tun0
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
[...]</span></pre>

<h2 dir="rtl">
	ضبط بسيط للعميل
</h2>

<p dir="rtl">
	هنالك عدِّة نسخ من عملاء OpenVPN بواجهة أو بدون واجهة رسومية؛ يمكنك القراءة المزيد عن العملاء في قسمٍ آخر؛ لكننا الآن سنستخدم عميل OpenVPN في أوبنتو الذي هو نفس الملف التنفيذي للخادوم؛ لذلك عليك تثبيت الحزمة <span style="font-family:courier new,courier,monospace;">openvpn</span> مرةً أخرى في جهاز العميل:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_219_44">
<span class="pln">sudo apt-get install openvpn</span></pre>

<p dir="rtl">
	سننسخ هذه المرة ملف مثال الضبط <span style="font-family:courier new,courier,monospace;">client.conf </span>إلى <span style="font-family:courier new,courier,monospace;">‎/etc/openvpn/‎</span>:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_219_46">
<span class="pln">sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf \ /etc/openvpn/</span></pre>

<p dir="rtl">
	انسخ مفاتيح العميل والشهادة الصادرين من سلطة الشهادات التي أنشَأتها في قسمٍ سابق، وعدِّل ‎<span style="font-family:courier new,courier,monospace;">/etc/openvpn/client.conf</span> للتأكد من أن الأسطر الآتية تُشير إلى تلك الملفات؛ يمكنك حذف المسار إذا كانت تلك الملفات موجودةً في ‎<span style="font-family:courier new,courier,monospace;">/etc/openvpn</span>:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_219_48">
<span class="pln">ca ca.crt
cert client1.crt
key client1.key</span></pre>

<p dir="rtl">
	وعليك تحديد اسم أو عنوان خادوم OpenVPN واحد على الأقل؛ تأكد أن الكلمة المحجوزة <span style="font-family:courier new,courier,monospace;">client</span> موجودةٌ في ملف الضبط، لأن هذا ما سيُفعِّل نمط العميل:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_219_50">
<span class="pln">client
remote vpnserver.example.com 1194</span></pre>

<p dir="rtl">
	شغِّل الآن عميل OpenVPN:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_219_76">
<span class="pln">sudo service openvpn start
 * Starting virtual private network daemon(s)...   
   *   Autostarting VPN 'client'                          [ OK ] </span></pre>

<p dir="rtl">
	وتأكد من إنشاء البطاقة الشبكية <span style="font-family:courier new,courier,monospace;">tun0</span>:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_219_78">
<span class="pln">sudo ifconfig tun0
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.6  P-t-P:10.8.0.5  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1</span></pre>

<p dir="rtl">
	وتأكد إن كان بإمكانك عمل <span style="font-family:courier new,courier,monospace;">ping</span> لخادوم OpenVPN:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_219_56">
<span class="pln">ping 10.8.0.1
PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_req=1 ttl=64 time=0.920 ms</span></pre>

<p dir="rtl">
	<strong>ملاحظة</strong>: يستخدم خادوم OpenVPN أول عنوان IP قابل للاستخدام في شبكة العميل ويكون هذا العنوان هو الوحيد المستجيب للأداة ping؛ على سبيل المثال، لو ضُبِط قناع ‎/24 لشبكة العميل، فسيستخدم العنوان ‎.1؛ عنوان PTP (الند للند، أو peer to peer) الذي تراه في ناتج <span style="font-family:courier new,courier,monospace;">ifconfig</span> أعلاه لا يجيب عادةً على طلبات <span style="font-family:courier new,courier,monospace;">ping</span>.
</p>

<p dir="rtl">
	تأكد من جداول التوجيه عندك:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_219_69">
<span class="pln">sudo netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
10.8.0.5        0.0.0.0         255.255.255.255 UH        0 0          0 tun0
10.8.0.1        10.8.0.5        255.255.255.255 UGH       0 0          0 tun0
192.168.42.0    0.0.0.0         255.255.255.0   U         0 0          0 eth0
0.0.0.0         192.168.42.1    0.0.0.0         UG        0 0          0 eth0</span></pre>

<h2 dir="rtl">
	أول خطوة في استكشاف الأخطاء
</h2>

<p dir="rtl">
	إذا لم يعمل ما سبق لك، فعليك أن تفعل ما يلي:
</p>

<ul dir="rtl"><li>
		تحقق من سجل <span style="font-family:courier new,courier,monospace;">syslog</span> عندك، أي <span style="font-family:courier new,courier,monospace;">grep -i <abbr title="Virtual Private Network | الشبكة الخاصة الافتراضية">vpn</abbr> /var/log/syslog</span>.
	</li>
	<li>
		هل يستطيع العميل الاتصال إلى الخادوم؟ ربما يحجب الجدار الناري وصوله؟ تأكد من سجل syslog على الخادوم.
	</li>
	<li>
		يجب أن يستخدم الخادوم والعميل نفس البروتوكول والمنفذ، مثلًا UDP بمنفذ 1194؛ راجع خيارَيّ الضبط proto و port.
	</li>
	<li>
		يجب أن يستخدم الخادوم والعميل نفس إعدادات الضبط الخاصة بالضغط، راجع خيار الضبط comp-lzo.
	</li>
	<li>
		يجب أن يستخدم الخادوم والعميل نفس الضبط المتعلق بنمط التوجيه والجسور.
	</li>
</ul><p>
	ترجمة -وبتصرف- للمقال <a href="https://help.ubuntu.com/lts/serverguide/openvpn.html" rel="external nofollow">Ubuntu Server Guide: OpenVPN</a>.
</p>
]]></description><guid isPermaLink="false">222</guid><pubDate>Mon, 22 Feb 2016 19:54:47 +0000</pubDate></item><item><title>&#x643;&#x64A;&#x641; &#x62A;&#x633;&#x62A;&#x62E;&#x62F;&#x645; Tinc &#x644;&#x625;&#x639;&#x62F;&#x627;&#x62F; &#x634;&#x628;&#x643;&#x629; &#x62E;&#x627;&#x635;&#x629; &#x627;&#x641;&#x62A;&#x631;&#x627;&#x636;&#x64A;&#x629; VPN &#x639;&#x644;&#x649; Ubuntu 14.04</title><link>https://academy.hsoub.com/devops/security/vpn/%D9%83%D9%8A%D9%81-%D8%AA%D8%B3%D8%AA%D8%AE%D8%AF%D9%85-tinc-%D9%84%D8%A5%D8%B9%D8%AF%D8%A7%D8%AF-%D8%B4%D8%A8%D9%83%D8%A9-%D8%AE%D8%A7%D8%B5%D8%A9-%D8%A7%D9%81%D8%AA%D8%B1%D8%A7%D8%B6%D9%8A%D8%A9-vpn-%D8%B9%D9%84%D9%89-ubuntu-1404-r143/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2015_11/tinc.png.aeeb9cd631829dbe4ce948c8d2ff3191.png" /></p>

<p id="مقدمة">يشرح هذا المقال كيفية استخدام <strong>Tinc</strong>، وهي أداة مفتوحة المصدر، لإنشاء شبكات خاصة افتراضية Virtual Private Network, VPN آمنة تستخدمها الخواديم والأجهزة للتواصل كما لو أنها في شبكة محليّة. يوضح المقال أيضا كيفية استخدام Tinc لإعداد نفق tunnel آمن نحو شبكة خاصة. سنستخدم خواديم Ubuntu 14.04 إلا أن الإعدادات صالحة للتطبيق والتكييف على أنظمة أخرى.</p><p style="text-align: center;"><a class="ipsAttachLink ipsAttachLink_image" style="line-height: 22.4px;" href="https://academy.hsoub.com/uploads/monthly_2015_11/tinc.png.d477193d6584d79a74e0c265eda80289.png"><img data-fileid="7710" class="ipsImage ipsImage_thumbnailed" alt="tinc.png" src="https://academy.hsoub.com/uploads/monthly_2015_11/tinc.thumb.png.92c0a3395fffce0c93619c1241111e63.png"></a></p><p>يتضمن Tinc ميزات تجعله مفيدا؛ منها التعمية Encryption، الضغط Compression الاختياري للبيانات، التوجيه Routing التلقائي للشبكة (تُوجَّه حركة البيانات مباشرة إلى الخواديم المتصلة إن أمكن ذلك) واليسر في قابلية التمدد. تفرق هذه الميزات بين أداة Tinc وحلول الشبكات الخاصة الافتراضية الأخرى مثل OpenVPN وتجعلها مناسبة لإنشاء شبكة خاصة افتراضية مكوّنة من شبكات صغيرة موزَّعة على مناطق جغرافية متباعدة. تعمل أداة Tinc على نظم تشغيل مختلفة بما فيها لينوكس، وندوز و Mac OS X.</p><h2 id="المتطلبات">المتطلبات</h2><p>يتطلب هذا المقال صلاحيات إدارية للوصول إلى ثلاثة خواديم Ubuntu 14.04 على الأقل. توجد تعليمات هذا الإعداد في الدرس التالي (الخطوات 3 و4): <a href="https://academy.hsoub.com/devops/servers/%D8%A7%D9%84%D8%A5%D8%B9%D8%AF%D8%A7%D8%AF-%D8%A7%D9%84%D8%A7%D8%A8%D8%AA%D8%AF%D8%A7%D8%A6%D9%8A-%D9%84%D8%AE%D8%A7%D8%AF%D9%88%D9%85-%D8%A3%D9%88%D8%A8%D9%86%D8%AA%D9%88-1404-r4/">الإعداد الابتدائي لخادوم أوبنتو 14.04</a>.</p><p>إن كنت تريد استخدام الخطوات المشروحة في هذا الدرس في بيئة عملك فيجب عليك التخطيط للكيفية التي تريد لكل خادوم أن يتصل عن طريقها بالخواديم الأخرى، وتكييف الأمثلة المقدَّمة مع احتياجاتك الخاصة. تأكد عند تكييف الخطوات مع إعداداتك الخاصة من تغيير القيم إلى تلك الخاصة بك.</p><p>لاتباع هذا الدرس دون تغيير يجب إنشاء خادومين خاصّين افتراضيين ضمن نفس مركز البيانات مع وضعهما في نفس الشبكة المحلية، وإنشاء خادوم آخر ضمن مركز بيانات منفصل. سنعد خادومين في مركز بيانات <code>NYC2</code> وواحد في مركز بيانات <code>AMS1</code> بالأسماء التالية:</p><ul><li><strong><code>externalnyc</code></strong>: يجب أن تتصل جميع الأجهزة ضمن الشبكة الافتراضية بهذا الخادوم وتحافظ على الاتصال حتى تعمل الشبكة الافتراضية بطريقة صحيحة. يمكن أن تضبَط خواديم أخرى بطريقة مشابهة لضمان التكرار.</li><li><code>internalnyc</code>: يتصل بالخادوم <code>externalnyc</code> باستخدام واجهة الشبكة المحلية.</li><li><strong><code>ams1</code></strong>: يتصل ب<code>externalnyc</code> عبر الإنترنت.</li></ul><h2 id="الهدف">الهدف</h2><p>في المخطَّط أدناه توضيح للشبكة الخاصة الافتراضية التي نريد إعدادها والموصوفة في فقرة المتطلبات أعلاه:</p><p style="text-align: center;"><a class="ipsAttachLink ipsAttachLink_image" href="https://academy.hsoub.com/uploads/monthly_2015_11/01_vpn_setup.png.08dfde9409b51ad28cf3aebf4ca9e35c.png"><img data-fileid="7614" class="ipsImage ipsImage_thumbnailed" alt="01_vpn_setup.thumb.png.3cb770448097d745c" src="https://academy.hsoub.com/uploads/monthly_2015_11/01_vpn_setup.thumb.png.3cb770448097d745cc3fe669df8f405d.png"></a></p><p>يمثل الأخضر شبكتنا الخاصة الافتراضية، البني شبكة الإنترنت والبرتقالي الشبكة المحلية. تستطيع الخواديم الثلاثة التخاطب عبر الشبكة الخاصة الافتراضية، على الرغم من أن <code>ams1</code> غير متصل بالشبكة المحلية.</p><p>نبدأ بتثبيت Tinc.</p><h2 id="تثبيت-tinc">تثبيت Tinc</h2><p>ثبت tinc على كل خادوم تود إلحاقه بالشبكة الخاصة الافتراضية. نبدأ بتحديث فهرس الحزم:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">sudo apt-get update</pre><p>ثم تثبيت حزمة <code>tinc</code>:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">sudo apt-get install tinc</pre><p>ننتقل بعد التثبيت إلى الإعداد.</p><h2 id="إعداد-tinc">إعداد Tinc</h2><p>يستخدم Tinc “اسم شبكة” <code>netname</code> للتفريق بين شبكات خاصة افتراضية عدّة في حالة وجودها. يُنصَح باستخدام أسماء شبكات حتى ولو لم تكن تخطط لإعداد شبكات خاصة افتراضية عدّة. سنسمي شبكتنا الاخاصة الافتراضية <code>hsoub</code>.</p><p>يتطلب كل واحد من الخواديم التي ستكون جزءا من الشبكة الخاصة الافتراضية العناصر الثلاثة التالية:</p><ul><li>ملفات الإعداد: مثل <code>tinc-up</code>، <code>tinc-down</code> و<code>tinc.conf</code>.</li><li>زوجا من المفاتيح (عمومي وخصوصي) للتعمية والاستيثاق.</li><li>ملفات إعداد المستضيف: تتضمن المفاتيح العمومية وإعدادات أخرى للشبكة الخاصة الافتراضية</li></ul><p>نبدأ بإعداد الجهاز الأول من شبكتنا الخاصة الافتراضية وهي <code>externalnyc</code>.</p><h2 id="إعداد-externalnyc">إعداد externalnyc</h2><p>أنشئ هيكل مجلّد الإعداد الخاص بالشبكة الخاصة الافتراضية <code>hsoub</code> على الخادوم <code>externalnyc</code>:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">sudo mkdir -p /etc/tinc/hsoub/hosts</pre><p>افتح ملف <code>tinc</code> للتعديل عليه:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">sudo nano /etc/tinc/hsoub/tinc.conf</pre><p>أضف الأسطر التالية:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">Name = externalnyc
AddressFamily = ipv4
Interface = tun0</pre><p>تعد التعليمات جهازا باسم <code>externalnyc</code> بواجهة شبكة تسمى <code>tun0</code> تستخدم الإصدار الرابع من بروتوكول IP. احفظ الملف ثم أغلقه.</p><p>ثم ننشئ ملفا لإعداد المستضيفات على الخادوم <code>externalnyc</code>:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">sudo nano /etc/tinc/netname/hosts/externalnyc</pre><p>أضف الأسطر التالية إلى الملف (حيث <code>externalnyc_public_IP</code> عنوان IP العمومي للخادوم):</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">Address = externalnyc_public_IP
Subnet = 10.0.0.1/32</pre><p>تستخدم الخواديم الأخرى الملف للتخاطب مع الخادوم <code>externalnyc</code>. تحدد التعليمة <code>Address</code>عنوان IP المُستخدّم للاتصال بهذا الخادوم فيما تعين <code>Subnet</code> الشبكة الفرعية التي سيستخدمها Tinc. احفظ الملف ثم أغلقه.</p><p>أنشئ الآن زوج المفاتيح الخاصة بالمستضيف:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">sudo tincd -n hsoub -K4096</pre><p>ينشئ الأمر مفتاحا خاصا (يوجد على المسار <code>etc/tinc/hsoub/rsa_key.priv/</code>) ويضيف المفتاح العمومي إلى ملف إعداد المستضيف <code>externalnyc</code> الذي أنشأناه قبل قليل (<code>etc/tinc/hsoub/hosts/externalnyc/</code>).</p><p>يجب الآن أن ننشئ <code>tinc-up</code> وهو سكربت يعمل على أي خادوم تشغَّل عليه شبكتنا الخاصة الافتراضية.</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">sudo nano /etc/tinc/hsoub/tinc-up</pre><p>أضف الأسطر التالية:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">#!/bin/sh
ifconfig $INTERFACE 10.0.0.1 netmask 255.255.255.0</pre><p>يعمل هذا السكربت على إنشاء <a href="https://academy.hsoub.com/devops/servers/%D9%88%D8%A7%D8%AC%D9%87%D8%A7%D8%AA-%D8%B4%D8%A8%D9%83%D8%A9-%D8%A7%D9%84%D8%A5%D9%86%D8%AA%D8%B1%D9%86%D8%AA-%D9%88%D8%A8%D8%B1%D9%88%D8%AA%D9%88%D9%83%D9%88%D9%84%D8%A7%D8%AA%D9%87%D8%A7-%D8%A7%D9%84%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D9%91%D8%A9-r64/#%D8%A7%D9%84%D9%88%D8%A7%D8%AC%D9%87%D8%A7%D8%AA">واجهة شبكة</a> تستخدمها الشبكة الخاصة الافتراضية عند تشغيلها. سيكون عنوان هذا الخادوم على الشبكة الخاصة الافتراضية <code>10.0.0.1</code>.</p><p>سننشئ أيضا سكربت لحذف واجهة الشبكة الخاصة الافتراضية عند إيقاف هذه الأخيرة:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">sudo nano /etc/tinc/hsoub/tinc-down</pre><p>أضف الأسطر التالية:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">#!/bin/sh
ifconfig $INTERFACE down</pre><p>احفظ الملف ثم أغلقه.</p><p>نجعل سكربتات <code>tinc</code> قابلة للتنفيذ:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">sudo chmod 755 /etc/tinc/netname/tinc-*</pre><p>احفظ الملف ثم أغلقه.</p><p>ننتقل لإعداد بقية الأجهزة الموجودة في الشبكة الخاصة الافتراضية.</p><h2 id="إعداد-internalnyc-وams1">إعداد internalnyc وams1</h2><p>يتوجب تنفيذ هذه الخطوات على كل من الخادومين <code>internalnyc</code> و<code>ams1</code> مع اختلافات طفيفة بينهما سنشير إليها.</p><p>أنشئ هيكل مجلد إعداد الشبكة الخاصة الافتراضية المسماة <code>hsoub</code> على الخادومين <code>internalnyc</code> و<code>ams1</code> وعدل ملف إعداد Tinc:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">sudo mkdir -p /etc/tinc/hsoub/hosts
sudo nano /etc/tinc/hsoub/tinc.conf</pre><p>أضف الأسطر التالية (أبدل <code>node_name</code> باسم الخادوم):</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">Name = node_name
AddressFamily = ipv4
Interface = tun0
ConnectTo = externalnyc</pre><p>تعد التعليمات الخواديم لمحاولة الاتصال ب<code>externalnyc</code> (العقدة التي أنشأناها قبل هذا). احفظ الملف ثم أغلقه.</p><p><strong>ملحوظة:</strong> يستخدم Tinc مصطلح العقدة Node للدلالة على جهاز مربوط بالشبكة الخاصة الافتراضية..</p><p>ننشئ ملف إعداد المستضيف:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">sudo nano /etc/tinc/hsoub/hosts/node_name</pre><p>بالنسبة ل<code>internalnyc</code> أضف السطر التالي:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">Subnet = 10.0.0.2/32</pre><p>وبالنسبة ل<code>ams1</code>:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">Subnet = 10.0.0.3/32</pre><p>لاحظ الفرق بين العنوانين. احفظ الملف ثم أغلقه.</p><p>ثم ولّد زوج المفاتيح:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">sudo tincd -n hsoub -K4096</pre><p>وأنشئ السكربت الخاص ببدء تشغيل واجهة الشبكة:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">sudo nano /etc/tinc/hsoub/tinc-up</pre><p>بالنسبة ل<code>internalnyc</code> أضف السطر التالي:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">ifconfig $INTERFACE 10.0.0.2 netmask 255.255.255.0</pre><p>وبالنسبة ل<code>ams1</code>:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">ifconfig $INTERFACE 10.0.0.3 netmask 255.255.255.0</pre><p>تستخدم عناوين IP المذكورة للاتصال بالشبكة الخاصة الافتراضية. احفظ الملف ثم أغلقه.</p><p>أنشئ سكربت الإيقاف الخاص بواجهة الشبكة:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">sudo nano /etc/tinc/hsoub/tinc-down</pre><p>أضف السطر التالي:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">ifconfig $INTERFACE down</pre><p>احفظ الملف ثم أغلقه. في الأخير نجعل السكربت قابلا للتنفيذ:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">sudo chmod 755 /etc/tinc/hsoub/tinc-*</pre><p>يجب الآن أن نوزع ملفات إعدادات المستضيف على كل عقدة من الشبكة الخاصة الافتراضية.</p><h2 id="توزيع-المفاتيح">توزيع المفاتيح</h2><p>لكي يستطيع جهازان التخاطب مباشرة ضمن الشبكة الخاصة الافتراضية فيجب عليهما تبادل المفاتيح العمومية التي توجد في ملف إعدادات المستضيف الخاص بكل جهاز. في حالتنا فقط الخادوم <code>externalnyc</code> يحتاج لتبادل المفاتيح العمومية مع بقية الخواديم. يسهل نقل كل مفتاح عمومي إلى جميع الأجهزة إدارة الشبكة الخاصة الافتراضية. ينبغي الانتباه إلى أنه يجب تغيير قيمة التعليمة <code>Address</code> ضمن ملف الإعداد الخاص ب<code>externalnyc</code> بعد نسخه على الخادوم <code>internalnyc</code> وإبدالها بعنوان IP المحلي للخادوم <code>externalnyc</code> لكي يُجرى الاتصال عبر الشبكة المحلية.</p><p>توجد ملفات إعدادات المستضيف على المسار <code>etc/tinc/hsoub/hosts/</code> حيث <code>hsoub</code> اسم الشبكة الخاصة الافتراضية.</p><h3 id="تبادل-المفاتيح-بين-الخادومين-externalnyc-وinternalnyc">تبادل المفاتيح بين الخادومين externalnyc وinternalnyc</h3><p>انسخ ملف إعداد المستضيف على الخادوم <code>internalnyc</code> إلى <code>externalnyc</code> (يُنفَّذ الأمر على الخادوم <code>internalnyc</code>):</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">scp /etc/tinc/hsoub/hosts/internalnyc user@externalnyc_private_IP:/tmp</pre><p>ثم انقل الملف إلى المجلَّد المناسب على الخادوم <code>externalnyc</code> (يُنفَّذ الأمر على الخادوم <code>externalnyc</code>):</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">cd /etc/tinc/hsoub/hosts; sudo cp /tmp/internalnyc .</pre><p>نكرر نفس الخطوات في الاتجاه المعاكس.</p><p>انسخ ملف إعداد المستضيف على الخادوم <code>externalnyc</code> إلى <code>internalnyc</code>(يُنفَّذ الأمر على الخادوم <code>externalnyc</code>):</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">scp /etc/tinc/hsoub/hosts/externalnyc user@internalnyc_private_IP:/tmp</pre><p>ثم انقل الملف إلى المجلَّد المناسب على الخادوم <code>internalnyc</code> (يُنفَّذ الأمر على الخادوم <code>internalnyc</code>):</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">cd /etc/tinc/hsoub/hosts; sudo cp /tmp/externalnyc .</pre><p>نعدّل على ملف إعداد المستضيف <code>externalnyc</code> بعد نسخه على الخادوم <code>internalnyc</code> ونغير قيمة التعليمة <code>Address</code> ونبدلها بعنوان IP الخادوم <code>externalnyc</code>ضمن الشبكة المحلية (وهو ما يعني أن <code>internalnyc</code> سيتصل ب<code>externalnyc</code> عبر الشبكة المحلية):</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">sudo nano /etc/tinc/hsoub/hosts/externalnyc</pre><p>أعط القيمة <code>externalnyc_private_IP</code> للتعليمة <code>Address</code>(حيث <code>externalnyc_private_IP</code> عنوان <code>externalnyc</code> في الشبكة المحلية):</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">Address = externalnyc_private_IP</pre><p>احفظ الملف ثم أغلقه. ننتقل الآن للعقدة المتبقية، <code>ams1</code>.</p><h3 id="تبادل-المفاتيح-بين-الخادومين-externalnyc-وams1">تبادل المفاتيح بين الخادومين externalnyc وams1</h3><p>نتبع نفس الخطوات السابقة. نبدأ بنسخ ملف إعداد المستضيفات الخاص ب<code>ams1</code> على الخادوم <code>externalnyc</code>:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">scp /etc/tinc/hsoub/hosts/ams1 user@externalnyc_public_IP:/tmp</pre><p>ثم انتقل إلى <code>externalnyc</code> وانقل الملف إلى المجلد المناسب:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">cd /etc/tinc/hsoub/hosts; sudo cp /tmp/ams1 .</pre><p>نكرر نفس الخطوات في الاتجاه المعاكس؛ فننسخ ملف إعدادات المستضيف الخاص ب <code>externalnyc</code> على <code>ams1</code>:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">scp /etc/tinc/hsoub/hosts/externalnyc user@ams1_public_IP:/tmp</pre><p>وننقل الملف إلى المجلد المناسب على الخادوم <code>ams1</code>:</p><pre><code>cd /etc/tinc/hsoub/hosts; sudo cp /tmp/externalnyc .
</code></pre><h3 id="تبادل-المفاتيح-بين-العقد-الإضافية">تبادل المفاتيح بين العقد الإضافية</h3><p>إن كانت الشبكة الخاصة الافتراضية التي تعدها تتضمن عقدا إضافية فيجب تبادل المفاتيح العمومية بينها بنفس الطريقة المشروحة في الفقرات السابقة. تذكر أنه يجب على عقدتين من الشبكة تبادل المفاتيح العمومية (ملفات إعداد المستضيف) إن كنت تريد أن يكون التخاطب بينهما مباشرا.</p><h2 id="اختبار-الإعداد">اختبار الإعداد</h2><p>شغل أداة Tinc على كل واحد من الخواديم، بدءا بالخادوم <code>externalnyc</code>، مع تفعيل وضع التنقيح Debug:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">sudo tincd -n hsoub -D -d3</pre><p>يجب بعد تشغيل البرنامج أن تظهر أسماء العقد في المخرجات حال اتصالها بالخادوم <code>externalnyc</code>. في ما يلي نختبر الاتصال عبر الشبكة الخاصة الافتراضية.</p><p>افتح نافذة جديدة لسطر الأوامر على الخادوم <code>ams1</code> وجرب تنفيذ أمر <code>ping</code> مع إعطائه عنوان IP الخادوم <code>internalnyc</code> ضمن الشبكة الخاصة الافتراضية (أي <code>10.0.0.2</code> الذي ضبطناه سابقا):</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">ping 10.0.0.2</pre><p>ينبغي أن يعمل الأمر دون مشاكل. سترى في نافذة سطر الأوامر الأولى بعض المخرجات المتعلقة بالاتصال عبر الشبكة الخاصة الافتراضية. يعني هذا أن <code>ams1</code> قادر على التخاطب مع <code>internalnyc</code> عبر الشبكة الخاصة الافتراضية مرورا ب<code>externalnyc</code>. اضغط الزرين <code>CTRL</code> و<code>C</code> لتوقيف أمر <code>ping</code> في النافذة الجديدة.</p><p>يمكن استخدام واجهات الشبكة الخاصة الافتراضية في أمور مثل اتصالات التطبيقات و SSH.</p><p>لإيقاف وضعية التنقيح اضغط الزرين <code>CTRL</code> و<code>\</code>.</p><p><strong>ملحوظة</strong>: تأكد من إعدادات الجدار الناري لديك إن لم تعمل الاتصالات في الشبكة الخاصة الافتراضية.</p><h2 id="إعداد-tinc-للعمل-مع-بدء-تشغيل-النظام">إعداد Tinc للعمل مع بدء تشغيل النظام</h2><p>يجب وضع اسم الشبكة الخاصة الافتراضية في ملف الإعداد <code>nets.boot</code> لكي تعمل بطريقة صحيحة. حرر ملف <code>nets.boot</code> على كل عقدة:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">sudo nano /etc/tinc/nets.boot</pre><p>أضف أسماء الشبكات الخاصة الافتراضية التي تستعملها، بالنسبة للمثال اسم الشبكة هو <code>hsoub</code>:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint"># This file contains all names of the networks to be started on system startup.
hsoub</pre><p>احفظ الملف ثم أغلقه. Tinc معد الآن للعمل مع بدء تشغيل النظام؛ ويمكن اسخدام سطر الأوامر للتحكم فيه. استخدم الأمر التالي على كل عقدة إن أردت تشغيله الآن:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">sudo service tinc start</pre><h2 id="خاتمة">خاتمة</h2><p>قدمنا في هذا المقال الخطوات الأساسية لإنشاء شبكة خاصة افتراضية باستخدام Tinc. يمكن البناء على ما أعددناه هنا لإنشاء شبكة تلبي احتياجاتك. يتميز Tinc بالمرونة ويمكن إعداد أي عقدة للاتصال بعقدة أخرى وبالتالي إنشاء شبكة غير مركزية لا تعتمد على خادوم واحد للتوجيه.</p><p>ترجمة -وبتصرف- للمقال <a rel="external nofollow" href="https://www.digitalocean.com/community/tutorials/how-to-install-tinc-and-set-up-a-basic-vpn-on-ubuntu-14-04">How To Install Tinc and Set Up a Basic VPN on Ubuntu 14.04</a> لصاحبه Mitchell Anicas.</p>
]]></description><guid isPermaLink="false">143</guid><pubDate>Fri, 20 Nov 2015 23:01:00 +0000</pubDate></item><item><title>&#x62F;&#x644;&#x64A;&#x644;&#x643; &#x644;&#x643;&#x64A;&#x641;&#x64A;&#x629; &#x625;&#x639;&#x62F;&#x627;&#x62F; &#x62E;&#x627;&#x62F;&#x648;&#x645; OpenVPN &#x639;&#x644;&#x649; Ubuntu</title><link>https://academy.hsoub.com/devops/security/vpn/%D8%AF%D9%84%D9%8A%D9%84%D9%83-%D9%84%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%A5%D8%B9%D8%AF%D8%A7%D8%AF-%D8%AE%D8%A7%D8%AF%D9%88%D9%85-openvpn-%D8%B9%D9%84%D9%89-ubuntu-r57/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2015_05/openvpn_(1).png.5db67f8c9021ccbe432b15b629890028.png" /></p>

<p>هل تريد الوصول إلى شبكة الإنترنت بشكلٍ آمن ومحمي من هاتفك الذكي أو حاسوبك المحمول عندما تقوم بالاتصال بشبكاتٍ غير موثوقة مثل الشبكات اللاسلكية العمومية لفندق أو مقهى؟ تسمح لك الشبكة الافتراضية الخاصّة (<a rel="external nofollow" href="https://en.wikipedia.org/wiki/Virtual_private_network">Virtual Private Network - VPN</a>) بتصفّح الإنترنت بالشبكات غير الموثوقة بشكلٍ آمن ومجهول كما لو كنتَ على شبكةٍ آمنة وموثوقة. يتم تمرير تدفّق البيانات (traffic) من خادومك إلى وجهته ومن ثمّ يعود إليك حاملًا البيانات.</p><p>يسمح لك هذا الإعداد عندما يتم ربطه مع [اتصال HTTPS] (<a rel="external nofollow" href="https://en.wikipedia.org/wiki/HTTP_Secure)">https://en.wikipedia.org/wiki/HTTP_Secure)</a> أن تقوم بتأمين عمليات تسجيل الدخول وعمليات الدفع وغيرها من العمليات التي تقوم بها عند تصفّحك للإنترنت. يمكنك تخطّي الحجب الذي يفرضه مزوّد الخدمة على مواقع معيّنة مثلًا وتخطّي تقييدات المنطقة الجغرافية لمواقع معيّنة، كما يمكنك تحصين موقعك وتدفّق HTTP الصادر من جهازك من الشبكات غير المحمية.</p><p><a rel="external nofollow" href="https://openvpn.net/">OpenVPN</a> هو عبارة عن شبكة افتراضية خاصّة لطبقة حِزَم البيانات الآمنة مفتوحة المصدر (SSL) ويقبل تشكيلةً واسعة من الإعدادات والتخصيصات. في هذا الدرس، سنقوم بإعداد خادوم OpenVPN على خادومنا ومن ثمّ نقوم بإعداده ليقبل الوصول إليه من نظام ويندوز، Mac OS X، iOS و Android. سنبقي خطوات التثبيت والإعداد أسهل ما يمكن في هذا الدرس.</p><h2>المتطلّبات</h2><p>المتطلّبات الوحيدة اللازمة هي امتلاك خادوم يعمل بتوزيعة Ubuntu 14.04. يجب أن تمتلك الوصول إلى حساب المستخدم الجذر لإكمال هذا الدرس.</p><ul><li>إضافي: بعد إكمال هذا الدرس، سيكون من الجيد إنشاء حساب مستخدمٍ عادي بصلاحيات <a rel="external nofollow" href="https://www.digitalocean.com/community/tutorials/how-to-add-and-delete-users-on-an-ubuntu-14-04-vps">sudo</a> لعمل صيانةٍ عامّة على خادومك في حال احتجتها مستقبلًا.</li></ul><h2>الخطوة الأولى: تثبيت وإعداد بيئة خادوم OpenVPN</h2><h3>إعداد OpenVPN</h3><p>قبل أن نقوم بتثبيت أيّ حزم، يجب أن نقوم بتحديث قوائم مستودعات توزيعة أوبونتو أولًا:</p><pre data-pbcklang="php" data-pbcktabsize="" class="php ipsCode prettyprint">apt-get update</pre><p>ومن ثمّ، يمكننا تثبيت OpenVPN و Easy-RSA:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">apt-get install openvpn easy-rsa</pre><p>يجب أن يتم استخراج ملفّ عيّنة إعدادات OpenVPN إلى المسار /etc/openvpn لكي نتمكّن من إضافته إلى عملية التثبيت الخاصّة بنا. يمكن القيام بهذا عبر الأمر:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz &gt; /etc/openvpn/server.conf</pre><p>بمجرّد أن يتم استخراجه، افتح ملفّ server.conf في محرر نصوص. في هذا الدرس سنستخدم Vim ولكن يمكنك استخدم أيّ محرر نصوص تريده:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">vim /etc/openvpn/server.conf</pre><p>هناك العديد من التغييرات التي يجب علينا تطبيقها على هذا الملفّ. سترى قسمًا يبدو هكذا:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint"># Diffie hellman parameters.
# Generate your own with:
#   openssl dhparam -out dh1024.pem 1024
# Substitute 2048 for 1024 if you are using
# 2048 bit keys.
dh dh1024.pem</pre><p>قم بتغيير dh1024.pem إلى:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">dh2048.pem</pre><p>سيقوم هذا بمضاعفة طول مفتاح RSA المُستخدم عندما يتم إنشاء مفاتيح الخادوم والعميل.</p><p>ما نزال في ملفّ server.conf، والآن ابحث عن هذا القسم:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint"># If enabled, this directive will configure
# all clients to redirect their default
# network gateway through the VPN, causing
# all IP traffic such as web browsing and
# and DNS lookups to go through the VPN
# (The OpenVPN server machine may need to NAT
# or bridge the TUN/TAP interface to the internet
# in order for this to work properly).
;push "redirect-gateway def1 bypass-dhcp"</pre><p>قم بإلغاء تعليق السطر التالي <span style="line-height: 22.3999996185303px;">(أزل إشارة # أو ; من قبله)</span>:</p><pre data-pbcklang="php" data-pbcktabsize="4" class="php ipsCode prettyprint">;push "redirect-gateway def1 bypass-dhcp" </pre><p>لكي يتمكّن خادوم OpenVPN الخاصّ بنا من تمرير التدفّق المطلوب من المستخدمين والعملاء إلى وجهته المطلوبة. يجب أن يبدو السطر هكذا بعد التعديل:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">push "redirect-gateway def1 bypass-dhcp"</pre><p>الآن ابحث عن هذا القسم:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint"># Certain Windows-specific network settings
# can be pushed to clients, such as DNS
# or WINS server addresses.  CAVEAT:
# http://openvpn.net/faq.html#dhcpcaveats
# The addresses below refer to the public
# DNS servers provided by opendns.com.
;push "dhcp-option DNS 208.67.222.222"
;push "dhcp-option DNS 208.67.220.220"</pre><p>قم بإلغاء تعليق السطرين push "dhcp-option DNS 208.67.222.222" و push "dhcp-option DNS 208.67.220.220" . يجب أن يبدوا على هذا الشكل:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"</pre><p>يقوم هذا بإخبار الخادوم بأن يقوم بدفع OpenVPN ليتصل بالعملاء (clients) ليعطيهم عنوان الـDNS المخصص. يقوم هذا الأمر بحماية المستخدم من خروج طلبات DNS خارج اتصال الـVPN. وعلى كلّ حال، من المهم أن تقوم بتحديد عناوين الـDNS المطلوبة التي تريد استخدامها على كلّ جهازٍ من أجهزة العملاء. رغم أنّ OpenVPN يستخدم خدمة OpenDNS افتراضيًا إلّا أنّه يمكنك استخدامه أيّ خدمات DNS تريدها.</p><p>القسم الأخير الذي يجب تغييره في ملفّ server.conf هو:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint"># You can uncomment this out on
# non-Windows systems.
;user nobody
;group nogroup</pre><p>قم بإلغاء تعليق كلٍّ من السطرين user nobody و group nobody. يجب أن يبدوا هكذا:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">user nobody
group nogroup</pre><p>افتراضيًا، يقوم OpenVPN بالعمل باستخدام المستخدم الجذر (root) حيث يمتلك هذا الأخير وصولًا كاملًا إلى النظام. سنقوم عوضًا عن هذا بجعل OpenVPN يستخدم المستخدم nobody والمجموعة nobody. هذا المستخدم لا يمتلك صلاحيات ولا أيّ إمكانياتٍ للولوج، ويتم استخدامه عادةً لتشغيل التطبيقات غير الموثوقة مثل خواديم واجهات الويب.</p><p>يمكنك الآن حفظ تغييراتك والخروج من VIM.</p><h3>توجيه حِزَم البيانات</h3><p>هذا الأمر هو عبارة عن خاصية sysctl تقوم بإخبار نواة الخادوم أن تقوم بتوجيه التدفّق من أجهزة العملاء إلى الإنترنت. إن لم يتم هذا الأمر، فإنّ التدفّق سيتوقف في الخادوم. يمكنك تفعيل توجيه حِزَم البيانات أثناء وقت التشغيل باستخدام الأمر التالي:</p><pre data-pbcklang="php" data-pbcktabsize="" class="php ipsCode prettyprint">echo 1 &gt; /proc/sys/net/ipv4/ip_forward</pre><p>نحتاج أن نقوم بجعل هذا الأمر دائمًا بحيث يبقى الخادوم يقوم بتوجيه التدفّق حتى بعد إعادة تشغيل الخادوم:</p><pre data-pbcklang="php" data-pbcktabsize="" class="php ipsCode prettyprint">vim /etc/sysctl.conf</pre><p>في بداية ملفّ sysctl ستجد:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint"># Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1</pre><p>قم بإلغاء تعليق net.ipv4.ip_forward. يجب أن يبدو ذاك السطر هكذا:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint"># Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1</pre><p>احفظ تغييراتك واخرج.</p><h3>الجدار الناري غير المعقّد (ufw)</h3><p>ufw هو واجهة أمامية (front-end) لـiptables. إعداد ufw ليس صعبًا. وهو مُضمّن بشكلٍ افتراضي في Ubuntu 14.04، لذا يجب علين فقط إنشاء بضع قواعد (rules) وتعديل بعض الإعدادات ليعمل، ومن ثمّ سنقوم بتشغيله. للمزيد من المعلومات حول ufw يمكنك مراجعة <a rel="external nofollow" href="https://www.digitalocean.com/community/articles/how-to-setup-a-firewall-with-ufw-on-an-ubuntu-and-debian-cloud-server">كيفية إعداد جدارٍ ناري باستخدام UFW على خادوم أوبونتو ودبيان السحابي</a>.</p><p>أولًا قم بضبط ufw بحيث يسمح باتصال SSH. أدخل اﻷمر التالي:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">ufw allow ssh</pre><p>سنستخدم OpenVPN عبر UDP في هذا الدرس، لذا يجب أن يسمح UFW بتدفّق UDP عبر المنفذ 1194:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">ufw allow 1194/udp</pre><p>يجب ضبط سياسة التوجيه في UFW كذلك. يمكنك القيام هذا عبر تعديل ملفّ إعدادات UFW الرئيسي:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">vim /etc/default/ufw</pre><p>ابحث عن DEFAULT<em>FORWARD</em>POLICY="DROP". يجب تغيير محتوى هذا السطر من DROP إلى ACCEPT. يجب أن يبدو السطر هكذا عندما تنتهي منه:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">DEFAULT_FORWARD_POLICY="ACCEPT"</pre><p>ثمّ سنقوم بإضافة بعض قواعد UFW الإضافية لترجمة عناوين الشبكة وتذكّر عناوين الـIP الخاصّة بالعملاء الحاليين:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">vim /etc/ufw/before.rules</pre><p>قم بجعل بداية ملفّ before.rules الخاصّ بك تبدو هكذا كما بالمثال أدناه. القسم بعد START OPENVPN RULES وقبل END OPENVPN RULES هو ما يجب إضافته:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">#
# rules.before
#
# Rules that should be run before the ufw command line added rules. Custom
# rules should be added to one of these chains:
#   ufw-before-input
#   ufw-before-output
#   ufw-before-forward
#

# START OPENVPN RULES
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0] 
# Allow traffic from OpenVPN client to eth0
-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
COMMIT
# END OPENVPN RULES

# Don't delete these required lines, otherwise there will be errors
*filter</pre><p>بعدما تمّ تطبيق هذه التغييرات على UFW، يمكننا الآن تفعيله. أدخل اﻷمر التالي في سطر الأوامر:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">ufw enable</pre><p>وسيتم طباعة الخرج التالي:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">Command may disrupt existing ssh connections. Proceed with operation (y|n)?</pre><p>للتحقق من حالة قواعد الجدار الناري طبّق:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">ufw status</pre><p>والخرج يجب أن يكون:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
1194/udp                   ALLOW       Anywhere
22 (v6)                    ALLOW       Anywhere (v6)
1194/udp (v6)              ALLOW       Anywhere (v6)</pre><h2>الخطوة الثانية: إنشاء استيثاق الشهادات و شهادة موقّعة من الخادوم ومفتاح لها</h2><p>يستخدم OpenVPN الشهادات ليقوم بتشفير التدفّق.</p><h3>إعداد وبناء استيثاق الشهادات</h3><p>الآن هو وقت إعداد استيثاق الشهادات الخاصّ بنا (Certificate Authority - CA) وإنشاء شهادة ومفتاح لخادوم الـOpenVPN. يدعم OpenVPN الاستيثاق ثنائي الاتجاه (bidirectional authentication) باستخدام الشهادات، مما يعني أنّه يجب على العميل أن يقوم باستيثاق شهادة الخادوم ويجب على الخادوم أن يقوم باستيثاق شهادة العميل قبل أن يتم إنشاء الاتصال المشترك بينهما. سنستخدم سكربتات Easy RSA التي نسخناها مبكّرًا للقيام بهذا.</p><p>أولًا، انسخ سكربتات Easy RSA إلى مكانها:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">cp -r /usr/share/easy-rsa/ /etc/openvpn</pre><p>ثمّ قم بعمل مجلّد لتخزين المفاتيح:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">mkdir /etc/openvpn/easy-rsa/keys</pre><p>تمتلك Easy-RSA ملفّ متغيّرات يمكننا تعديله لإنشاء شهاداتٍ خاصّة بشخصنا، شركاتنا أو أيّ شيءٍ آخر نريده. يتم نسخ هذه المعلومات إلى الشهادات والمفاتيح، وستساعد هذه المعلومات على التعرّف على المفاتيح لاحقًا:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">vim /etc/openvpn/easy-rsa/vars</pre><p>المتغيّرات بين علامتيّ تنصيص (") يجب أن تقوم بتغييرها بناءً على إعداداتك:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">export KEY_COUNTRY="US"
export KEY_PROVINCE="TX"
export KEY_CITY="Dallas"
export KEY_ORG="My Company Name"
export KEY_EMAIL="sammy@example.com"
export KEY_OU="MYOrganizationalUnit"</pre><p>في نفس الملفّ vars، قم أيضًا بتعديل السطر الظاهر أدناه، سنستخدم server كاسم المفتاح. إذا أردت استخدام اسمٍ آخر، فسيجب عليك أيضًا تحديث ملفّات إعدادات OpenVPN التي تقوم بالإشارة إلى server.key و server.crt:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">export KEY_NAME="server"</pre><p>نحتاج إلى إنشاء مُعامِلات Diffie-Hellman; قد يأخذ هذا الأمر بضع دقائق:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">openssl dhparam -out /etc/openvpn/dh2048.pem 2048</pre><p>الآن فلنغيّر المسارات بحيث نعمل في المسارات الذي نقلنا سكربتات Easy-RSA إليه من قبل في الخطوة الثانية:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">cd /etc/openvpn/easy-rsa</pre><p>قم بتحليل ملفّ (PKI (Public Key Infrastructure. انتبه إلى النقطة (.) و المسافة (space) قبل الأمر <span style="font-family:courier new,courier,monospace;">vars/.</span> حيثُ أنّ هذا الأمر قد يغيّر المسار الحالي كلّيًا (المصدر):</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">. ./vars</pre><p>خرج الأمر أعلاه ظاهرٌ أدناه. بما أننا لم نقم بإنشاء أيّ شيء في مجلّد keys بعد، فإنّ رسالة التحذير ليست شيئًا لنقلق حوله الآن:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys</pre><p>الآن سنقوم بتنظيف مسار عملنا الحالي من أيّ ملفّات عيّنة مفاتيح أو مفاتيح قديمة لكي تبقى المفاتيح الجديدة بالمسار فقط:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">./clean-all</pre><p>سيبني هذا الأمر الأخير استيثاق الشهادات (CA) عبر استدعاء طرفيّة OpenSSL التفاعلية. سيسألك الخرج أن تقوم بتأكيد اسم المتغيرات الفريدة التي أدخلناها من قبل في ملفّ متغيّرات Easy-RSA (اسم البلد، المنظمة.. إلخ):</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">./build-ca</pre><p>اضغط مفتاح Enter ببساطة لتتنقل عبر كلّ طرفية. إذا كان هناك شيءٌ يجب تغييره، فيمكنك القيام بذلك عبر سطر الأوامر.</p><h3>إنشاء شهادة ومفتاح للخادوم</h3><p>ما زلنا نعمل من المسار /etc/openvpn/easy-rsa ، الآن قم بإدخال الأمر التالي لبناء مفتاح الخادوم. حيث سترى أنّ server هو قيمة المتغيّر export KEY_NAME الذي أعددناه في ملفّ vars الخاصّ بـEasy-RSA من قبل بالخطوة الثانية:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">./build-key-server server</pre><p>يظهر خرج مشابه كالذي يظهر عندما طبّقنا ./build-ca ، ويمكنك مجددًا الضغط على مفتاح Enter لتأكيد كلّ سطرٍ من الأسماء الفريدة. على كلّ حال، هذه المرّة هناك إدخالان إضافيان:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:</pre><p>يجب أن يتم تركهما كلاهما فارغين، لذا فقط اضغط Enter للمتابعة.</p><p>هناك سؤالان إضافيان في النهاية، وهما يتطلبان إجابة ( y ) إيجابية فقط:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">Sign the certificate? [y/n]
1 out of 1 certificate requests certified, commit? [y/n]</pre><p>يجب أن يكتمل السؤال الأخير أعلاه بالتالي:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">Write out database with 1 new entries
Data Base Updated</pre><h3>نقل شهادات الخادوم والمفاتيح</h3><p>يتوقّع OpenVPN أن يرى استيثاق شهادات الخادوم، الشهادات والمفاتيح في /etc/openvpn . فلننسخها إلى الموقع الصحيح:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">cp /etc/openvpn/easy-rsa/keys/{server.crt,server.key,ca.crt} /etc/openvpn</pre><p>يمكنك التحقق من نجاح العملية عبر:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">ls /etc/openvpn</pre><p>يجب أن ترى ملفّات الشهادات والمفاتيح الخاصّة بالخادوم.</p><p>في هذه النقطة، أصبح خادوم OpenVPN جاهزًا للانطلاق. شغّله وتحقق من حالته باستخدام:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">service openvpn start
service openvpn status</pre><p>يجب أن يقوم أمر التحقق من الحالة بإرجاع الخرج التالي لك:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">VPN 'server' is running</pre><p>تهانينا! أصبح خادوم OpenVPN الخاصّ بك عاملًا! إذا كانت رسالة الحالة تقول لك أنّ خادوم الـOpenVPN لا يعمل، فتحقق من ملفّ /var/log/syslog وابحث عن أخطاء مثل:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">Options error: --key fails with 'server.key': No such file or directory</pre><p>والتي تقوم أنّ ملفّ <span style="font-family:courier new,courier,monospace;">server.key</span> لم يتم نسخه إلى المسار <span style="font-family:courier new,courier,monospace;">etc/openvpn/</span> بشكلٍ صحيح، مما يتوجب عليك إعادة نسخه مجددًا.</p><h2>الخطوة الثالثة: إنشاء الشهادات والمفاتيح الخاصّة بالعملاء</h2><p>لقد قمنا بتثبيت وإعداد خادوم OpenVPN، أنشأنا استيثاق الشهادات وشهادة ومفتاح الخادوم. في هذه الخطوة الآن، سنستخدم استيثاق شهادات الخادوم لنقوم بإنشاء الشهادات والمفاتيح الخاصّة بجهاز كلّ عميلٍ سيتصل بالخادوم على حدى. سيتم تثبيت هذه الملفّات لاحقًا إلى أجهزة العملاء كالهواتف الذكية والأجهزة المحمولة.</p><h3>بناء المفاتيح والشهادات</h3><p>من المناسب أن يمتلك كلّ عميلٍ يتصل بالخادوم شهادته ومفتاحه الخاصّين به. هذا الأمر مفضّل على إنشاء شهادة واحدة ومفتاح واحد وتوزيعهما على جميع أجهزة العملاء لأغراض تتعلق بالأمان.</p><p><strong>ملاحظة:</strong> افتراضيًا، لا يسمح OpenVPN بالاتصالات المتزامنة بنفس الوقت إلى الخادوم من أكثر من جهازٍ عميل باستخدام نفس الشهادة والمفتاح (انظر duplicate-cn في <span style="font-family:courier new,courier,monospace;">etc/openvpn/server.conf/</span>).</p><p>لإنشاء شهادات استيثاق منفصلة لكلّ جهاز عميل تنوي السماح له بالاتصال بخادوم الـOpenVPN، يجب عليك إكمال هذه الخطوة لكلّ جهاز، ولكن يمكنك تغيير الاسم client1 أدناه إلى شيءٍ مختلف مثل client2 أو iphone2. بفضل استخدام شهادةٍ منفصلة لكلّ جهاز عميل، يمكن لاحقًا منعهم بشكلٍ منفصل من الوصول إلى الخادوم إذا ما تمّ الاحتياج لذلك. سنستخدم client1 في الأمثلة الموجودة في هذا الدرس كاسم الجهاز العميل.</p><p>كما فعلنا مع مفتاح الخادوم، فسنقوم الآن ببناء واحد لمثال client1. يجب أن تكون ما زلت تعمل في /etc/openvpn/easy-rsa:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">./build-key client1</pre><p>مجددًا، سيتم سؤالك عمّا إذا كنتَ تريد تغيير أو تأكيد متغيّرات الأسماء الفريدة والحقول الإضافية التي تركناها فارغة من قبل. اضغط Enter لاختيار الخيارات الافتراضية:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:</pre><p>وكما في السابق، سيسألك مرتين عن تأكيد بعض الخيارات، اكتب y:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">Sign the certificate? [y/n]
1 out of 1 certificate requests certified, commit? [y/n]</pre><p>إذا نجحت عملية بناء المفتاح فسيظهر التالي:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">Write out database with 1 new entries
Data Base Updated</pre><p>يجب على ملفّ عيّنة إعدادات العميل أن يتم نسخه إلى مجلّد Easy-RSA أيضًا. سنستخدمه كقالب يمكن تحميله إلى أجهزة العملاء ليتم تعديله. أثناء عملية النسخ، سنقوم بتغيير اسم ملفّ العيّنة من client.conf إلى client.ovpn لأنّ امتداد ملفّ .ovpn هو ما تتوقع أجهزة العملاء أن تراه باسم الملفّ وليس .conf:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/easy-rsa/keys/client.ovpn</pre><p>يمكنك تكرار هذا القسم مجددًا لكلّ عميلٍ تريد السماح له بالوصول، ولا تنسى استبدال client1 باسم الجهاز الجديد.</p><h3>نقل الشهادات والمفاتيح إلى أجهزة العميل</h3><p>خلاصة ما طبقّناه أعلاه هو أننا أنشأنا شهادات ومفاتيح العملاء، وأننا قمنا بتخزينها على خادوم OpenVPN في المسار /etc/openvpn/easy-rsa/keys .</p><p>نحتاج القيام بنقل شهادة العميل، المفتاح وقالب الملفّ الشخصي لكلّ عميلٍ نريد السماح له بالوصول إلى مجلّد محلّي على جهاز الحاسوب الخاصّ بنا أو أيّ جهاز عميل آخر.</p><p>في هذا المثال، يتطلّب جهاز العميل client1 الشهادات والمفاتيح الخاصّة به والموجودة في المسارات:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">* /etc/openvpn/easy-rsa/keys/client1.crt * /etc/openvpn/easy-rsa/keys/client1.key</pre><p>تكون ملفّات ca.crt و client.ovpn هي نفسها لجميع أجهزة العملاء مهما اختلفت. قمّ بتحميل هذه الملفّات أيضًا; لاحظ أنّ ملف ca.crt هو في مسارٍ مختلف عن الملفّات الأخرى:</p><ul><li><span style="font-family:courier new,courier,monospace;">etc/openvpn/easy-rsa/keys/client.ovpn/</span></li><li><span style="font-family:courier new,courier,monospace;">etc/openvpn/ca.crt/</span></li></ul><p>بينما ستعتمد التطبيقات المُستخدمة لإكمال هذه المهمّة على اختيارك ونوع نظام التشغيل الخاصّ بك، فإنّك بحاجة إلى تطبيق يستخدم STFP (بروتوكول نقل الملفّات عبر SSH) أو SCP (النسخ الآمن) للوصول إلى الملفّات الموجودة في خلفية الخادوم. سينقل هذا ملفّات الاستيثاق الخاصّة بخادومك عبر اتصالٍ مشفّر.</p><p>إليك مثالًا لأمر SCP باستخدام مثالنا من client1. إنّه يقوم بوضع الملفّ client1.key إلى المجلّد <strong>Downloads</strong> الموجود على حاسوبنا المحلّي:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">scp root@your-server-ip:/etc/openvpn/easy-rsa/keys/client1.key Downloads/</pre><p>إليك بضع أدوات ودروس يمكنك استخدامها لنقل الملفّات بشكلٍ آمن من الخادوم إلى الحاسوب المحلّي:</p><ul><li><a rel="external nofollow" href="http://winscp.net/">WinSCP</a></li><li><a rel="external nofollow" href="https://www.digitalocean.com/community/tutorials/how-to-use-sftp-to-securely-transfer-files-with-a-remote-server">كيفية استخدام SFTP لنقل الملفّات بشكلٍ آمن من خادومٍ بعيد</a>.</li><li><a rel="external nofollow" href="https://www.digitalocean.com/community/tutorials/how-to-use-filezilla-to-transfer-and-manage-files-securely-on-your-vps">كيفية استخدام FileZilla لنقل وإدارة الملفّات بشكلٍ آمن</a>.</li></ul><p>في نهاية هذا القسم، تأكّد أنّ هذه الملفّات الأربعة أصبحت موجودة على جهاز المحلّي مهما كان نوعه:</p><ul><li>client1.crt</li><li>client1.key</li><li>client.ovpn</li><li>ca.crt</li></ul><h2>الخطوة الرابعة: إنشاء ملفٍّ شخصيٍ موحّد لجهاز العميل</h2><p>هناك العديد من الطرق المُستخدمة لإدارة ملفّات العملاء ولكن أسهلها يستخدم ملفّا شخصيًا موحّدًا. يتم إنشاء هذا الملفّ عبر تعديل قالب ملفّ client.ovpn ليتضمّن استيثاق شهادات الخادوم، شهادة العميل والمفتاح الخاصّ به. بمجرّد إضافته، فسيجب حينها فقط استيراد ملفّ client.ovpn إلى تطبيقات OpenVPN على أجهزة العميل.</p><p>سنقوم بإنشاء ملفٍّ شخصيٍ وحيد لجهازنا المدعو client1 على <strong>الحاسوب المحلّي</strong> الذي قمنا بتحميل جميع الملفّات إليه. يمكن لهذا الحاسوب المحلّي بنفسه أن يكون جهازًا عميلًا أو مجرّد منطقة عمل مؤقّتة لدمج ملفّات الاستيثاق. يجب أن يتم نسخ قالب ملفّ client.ovpn وإعادة تسميته. كيفية قيامك بهذا الأمر ستعتمد على نظام التشغيل الخاصّة بجهازك المحلّي.</p><p><strong>ملاحظة:</strong> لا يجب على اسم ملفّ client.ovpn الخاصّ بك المنسوخ الجديد أن يكون مطابقًا لاسم جهاز العميل. تطبيق العميل لـOpenVPN سيستخدم اسم الملفّ كمُعرّف لاتصال VPN نفسه، حيث يجب عليك نسخ ملفّ client.ovpn إلى أيّ اسمٍ جديد تريد استخدامه على نظام التشغيل الخاصّ بك. كمثال: <strong>work.ovpn</strong> سيتم التعرّف عليه كـ<strong>work</strong> و <strong>school.ovpn</strong> سيتم التعرّف عليه كـ<strong>school</strong>.</p><p>في هذا الدرس، سنقوم بتسمية اتصال VPN كـ HsoubAcademy ولذلك فسيكون اسم الملفّ هو HsoubAcademy.ovpn من الآن فصاعدًا. بمجرّد تسمية الملفّ الجديد المنسوخ، يجب علينا حينها فتح ملفّ HsoubAcademy.ovpn في محرر نصوص.</p><p>أول نقطة سيقع عليها انتباهك هي مكان عنوان الـIP الخاصّ بخادومك. بالقرب من بداية الملفّ، قم بتغيير my-server-1 إلى عنوان IP الخاصّ بخادومك:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint"># The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote my-server-1 1194</pre><p>الآن، ابحث عن القسم الظاهر أدناه وقم بإلغاء تعليق user nobody و group nobody، كما فعلنا مع ملفّ server.conf في الخطوة الأولى. <strong>ملاحظة:</strong> هذا لا ينطبق على ويندوز لذا يمكنك تجاوزه. يجب أن يبدو هكذا عندما تنتهي:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint"># Downgrade privileges after initialization (non-Windows only)
user nobody
group nogroup</pre><p>القسم الظاهر أدناه يحتاج أن نقوم فيه بتعليق السطور الثلاثة الأخيرة لكي نتمكّن من تضمين الشهادة والمفتاح مباشرةً في ملفّ HsoubAcademy.ovpn، يجب أن يبدو هكذا:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint"># SSL/TLS parms.
# . . .
#ca ca.crt
#cert client.crt
#key client.key</pre><p>لدمج الملفّات المنفصلة إلى ملفٍّ شخصي واحدٍ موحّد، يجب أن يتم وضع محتويات الملفّات ca.crt, client1.crt, و client1.key مباشرةً في ملفّ .ovpn باستخدام هيكلة XML. يجب بالنهاية أن يبدو شكلها كالتالي:</p><pre data-pbcklang="html" data-pbcktabsize="" class="html ipsCode prettyprint">&lt;ca&gt;
(أدخل محتويات ca.crt هنا)
&lt;/ca&gt;
&lt;cert&gt;
(أدخل محتويات client1.crt هنا)
&lt;/cert&gt;
&lt;key&gt;
(أدخل محتويات client1.key هنا)
&lt;/key&gt;</pre><p>عندما تنتهي، يجب أن تبدو نهاية الملفّ كالتالي:</p><pre data-pbcklang="html" data-pbcktabsize="" class="html ipsCode prettyprint">&lt;ca&gt;
-----BEGIN CERTIFICATE-----
. . .
-----END CERTIFICATE-----
&lt;/ca&gt;

&lt;cert&gt;
Certificate:
. . .
-----END CERTIFICATE-----
. . .
-----END CERTIFICATE-----
&lt;/cert&gt;

&lt;key&gt;
-----BEGIN PRIVATE KEY-----
. . .
-----END PRIVATE KEY-----
&lt;/key&gt;</pre><p>يمتلك ملفّ <span style="font-family:courier new,courier,monospace;">client1.crt</span> معلوماتٍ إضافية في داخله; لا بأس بتضمين الملفّ بأكمله.</p><p>احفظ التغييرات واخرج. أصبح لدينا الآن ملفّ واحد موحّد لضبط جهازنا المحلّي client1.</p><h2>الخطوة الخامسة: تثبيت ملفّ العميل</h2><p>الآن سنناقش تثبيت ملفّ VPN على Windows, OS X, iOS, و Android. لا يعتمد أيٌّ من إرشادات هذه الأنظمة على الآخر لذا يمكنك التجاوز إلى الذي يطابق نظامك التشغيلي الحالي فقط.</p><p>تذكّر أنّ الاتصال سيتم تسميته بحساب اسم ملفّ .ovpn الذي استخدمته. في مثالنا قمنا بتسمية الملفّ كـ HsoubAcademy.ovpn ولذلك سيكون اسم الاتصال هو HsoubAcademy.</p><h3>Windows</h3><h4>التثبيت</h4><p>يمكن العثور على تطبيق عميل OpenVPN لنظام ويندوز من <a rel="external nofollow" href="https://openvpn.net/index.php/open-source/downloads.html">صفحة التحميلات الخاصّة بـOpenVPN</a>. اختر المُثبّت المناسب لإصدارك من ويندوز.</p><p><strong>ملاحظة:</strong> يتطلّب OpenVPN الصلاحيات الإدارية ليتم تثبيته.</p><p>بعد تثبيته، انسخ الملفّ HsoubAcademy.ovpn إلى:</p><pre data-pbcklang="" data-pbcktabsize="" class="ipsCode prettyprint">C:\Program Files\OpenVPN\config</pre><p>عندما تقوم بتشغيل OpenVPN، فسيقوم تلقائيًا برؤية الملفّ وجعله متاحًا.</p><p>يجب أن يتم تشغيل OpenVPN بصلاحيات المسؤول في كلّ مرّة يتم تشغيله، حتى ولو كان يتم تشغيله على حسابات المستخدمين. لفعل هذا دون الحاجة إلى الضغط على زرّ الفأرة الأيمن واختيار <strong>التشغيل كمسؤول</strong> في كلّ مرّة تقوم باستعمال الـVPN، يمكنك ضبط هذا الأمر ولكنك ستحتاج إلى القيام به من حساب بصلاحياتٍ إدارية. هذا يعني أيضًا أنّه سيجب على المستخدمين إدخال كلمة مرور المستخدم المدير لاستخدام OpenVPN. على الناحية الأخرى، لن يتمكن المستخدمون من استخدام OpenVPN بشكلٍ صحيح دون أن يتم تشغيله على جهاز العميل بصلاحياتٍ إدارية، لذا فإنّ الصلاحيات الإدارة مطلوبة.</p><p>لجعل تطبيق OpenVPN يتم تشغيله دومًا كمدير، اضغط بزرّ الفأرة الأيمن على أيقونة الاختصار الخاصّة به واذهب إلى <strong>خصائص</strong>. في نهاية لسان <strong>التوافقية</strong>، اضغط على الزرّ <strong>لتغيير الإعدادات لجميع المستخدمين</strong>. في النافذة الجديدة، اختر <strong>تشغيل هذا البرنامج كمدير</strong>.</p><h4>الاتصال</h4><p>في كلّ مرّة تقوم بتشغيل واجهة OpenVPN الرسومية، سيسألك ويندوز عمّا إذا كنتَ تريد السماح للبرنامج بتطبيق التغييرات على نظامك. اضغط على <strong>موافق</strong>. تشغيل تطبيق عميل OpenVPN سيقوم فقط بوضع الأيقونة في تنبيهات النظام ويمكن الاتصال أو قطع الاتصال بخادوم OpenVPN عند الحاجة; وهو لا يقوم حقيقةً بالاتصال بـ VPN.</p><p>بمجرّد بدء OpenVPN، قم بإنشاء اتصال عبر الذهاب إلى تنبيهات النظام والضغط بزرّ الفأرة الأيمن على أيقونة OpenVPN. هذا سيفتح لك قائمةً فرعية. اختر HsoubAcademy من أعلى القائمة (والذي هو عبارة عن HsoubAcademy.ovpn) واختر <strong>اتصال</strong>.</p><p>سيتم فتح نافذة حالة جديدة تعرض لك الخرج أثناء تأسيس الاتصال، وسيتم طباعة رسالة بمجرّد اكتمال العملية.</p><p>يمكنك إلغاء الاتصال من VPN بنفس الطريقة: اذهب إلى تنبيهات النظام وانقر بزرّ الفأرة الأيمن على أيقونة OpenVPN واختر <strong>قطع الاتصال</strong>.</p><h3>OS X</h3><h4>التثبيت</h4><p><a rel="external nofollow" href="https://code.google.com/p/tunnelblick">Tunnelblick</a> هو تطبيق عميل OpenVPN مجاني ومفتوح المصدر لنظام MAC OS X. يمكنك تحميله من <a rel="external nofollow" href="https://code.google.com/p/tunnelblick/wiki/DownloadsEntry">صفحة تحميلات Tunnelblick</a>. انقر نقرتين على ملفّ .dmg المحمّل وتابع إرشادات التثبيت.</p><p>إلى نهاية عملية التثبيت، سيسألك Tunnelblick عمّا إذا كنتَ تمتلك أيّ ملفّات إعدادات. الأسهل حاليًا هو اختيار <strong>لا</strong> وترك Tunnelblick ليتابع التثبيت. ابحث نافذة Finder وانقر على ملفّ HsoubAcademy.ovpn وسيتم تشغيل Tunnelblick باستخدام ذلك الملفّ، الصلاحيات الإدارية مطلوبة.</p><h4>الاتصال</h4><p>شغّل Tunnelblick عبر النقر مرّتين على مجلّد أيقونة التطبيقات. بمجرّد تشغيل Tunnelblick، سيكون هناك أيقونة Tunnelblick على شريط القائمة في أعلى يمين الشاشة للتحكّم بالاتصالات. اضغط على الأيقونة ومن ثمّ عنصر قائمة <strong>اتصال</strong> لبدء اتصالٍ جديد واختر HsoubAcademy.</p><h3>iOS</h3><h4>التثبيت</h4><p>من متجر تطبيقات iTunes، ابحث وثبّت تطبيق <a rel="external nofollow" href="https://itunes.apple.com/us/app/id590379981">OpenVPN Connect</a>، والذي هو تطبيق عميل OpenVPN الرسمي لـiOS. لنقل ملفّ .ovpn الخاصّ بك إلى هاتفك، قم بتوصيله مباشرةً إلى حاسوب.</p><p>إكمال النقل مع iTunes سيكون خارجيًا هنا. افتح iTunes من على الحاسوب واضغط على iPhone &gt; apps. انتقل إلى الأسفل إلى قسم <strong>مشاركة الملفّات</strong> وانقر على تطبيق OpenVPN. النافذة الموجودة على اليمين، <strong>OpenVPN Documents</strong> هي لمشاركة الملفّات. اسحب ملفّ .ovpn وأفلته إلى النافذة أدناه.</p><p style="text-align: center;"><a class="ipsAttachLink ipsAttachLink_image" href="https://academy.hsoub.com/uploads/monthly_2015_05/002.png.ac68a4cf98dfddbb2090c10cc8699124.png"><img data-fileid="2235" class="ipsImage ipsImage_thumbnailed" alt="002.thumb.png.584cd6cf9cdd0fd5f208ebbd8a" src="https://academy.hsoub.com/uploads/monthly_2015_05/002.thumb.png.584cd6cf9cdd0fd5f208ebbd8afb20d4.png"></a></p><p>الآن شغّل تطبيق OpenVPN على iPhone. سيكون هناك إشعار أنّه هناك ملفّ جديد ليتم استيراده. انقر على إشارة الزائد الخضراء ليتمّ ذلك:</p><p style="text-align: center;"><a class="ipsAttachLink ipsAttachLink_image" href="https://academy.hsoub.com/uploads/monthly_2015_05/003.png.dd8880a7c32c45379e40370b4ae2d904.png"><img data-fileid="2236" class="ipsImage ipsImage_thumbnailed" alt="003.thumb.png.a149e053dcfe3f66249728a5e3" src="https://academy.hsoub.com/uploads/monthly_2015_05/003.thumb.png.a149e053dcfe3f66249728a5e390cf56.png"></a></p><h4>الاتصال</h4><p>أصبح OpenVPN الآن جاهزًا للاستخدام مع الملفّ الجديد. ابدأ الاتصال عبر النقر على زرّ <strong>Connect</strong> وجعله <strong>On</strong>. ويمكنك قطع الاتصال عبر جعله <strong>Off</strong>.</p><p><strong>ملاحظة:</strong> لا يمكن استخدام محوّل VPN الموجود تحت <strong>الإعدادات</strong> للاتصال بـVPN. إذا حاولت، فسيصلك إشعار باستخدام تطبيق OpenVPN فقط.</p><p style="text-align: center;"><a class="ipsAttachLink ipsAttachLink_image" href="https://academy.hsoub.com/uploads/monthly_2015_05/004.png.a198b998aa262293dcb0accb7b5838de.png"><img data-fileid="2237" class="ipsImage ipsImage_thumbnailed" alt="004.thumb.png.598847e785856cd285b6f49b0b" src="https://academy.hsoub.com/uploads/monthly_2015_05/004.thumb.png.598847e785856cd285b6f49b0b18c24a.png"></a></p><h3>Android</h3><h4>التثبيت</h4><p>افتح متجر Google Play. ابحث عن تطبيق <a rel="external nofollow" href="https://play.google.com/store/apps/details?id=net.openvpn.openvpn">Android OpenVPN Connect</a> وثبّته، إنّه تطبيق OpenVPN الرسمي لأندرويد.</p><p>يمكن نقل ملفّ .ovpn إلى الهاتف عبر إيصال جهاز الأندرويد الخاصّ بك إلى الحاسوب عبر USB ونقل الملفّ. بشكلٍ مغاير، إذا كنتَ تمتلك قارئ بطاقات SD، فيمكنك إزالة بطاقة SD من الجهاز، نسخ الملفّ إليها ومن ثمّ إدراجها مجددًا إلى جهاز الأندرويد.</p><p>ابدأ تطبيق OpenVPN وانقر على القائمة للاستيراد:</p><p style="text-align: center;"><a class="ipsAttachLink ipsAttachLink_image" href="https://academy.hsoub.com/uploads/monthly_2015_05/005.png.944900f9ed43f1ea0176659c88d0334a.png"><img data-fileid="2238" class="ipsImage ipsImage_thumbnailed" alt="005.thumb.png.66e5e0b8098f5c3fcd3cf944b3" src="https://academy.hsoub.com/uploads/monthly_2015_05/005.thumb.png.66e5e0b8098f5c3fcd3cf944b396e556.png"></a></p><p>ثمّ تنقّل إلى موقع الملفّ المحفوظ (لقطة الشاشة تستخدم /sdcard/Download/) واختر الملفّ. وسيقوم التطبيق بإخبارك أنّ الملفّ تمّ استيراده:</p><p style="text-align: center;"><a class="ipsAttachLink ipsAttachLink_image" href="https://academy.hsoub.com/uploads/monthly_2015_05/006.png.c6d1828fb6fb806469ed2c262d50b531.png"><img data-fileid="2239" class="ipsImage ipsImage_thumbnailed" alt="006.thumb.png.b48ec62c31582b3aa87b30fac0" src="https://academy.hsoub.com/uploads/monthly_2015_05/006.thumb.png.b48ec62c31582b3aa87b30fac0a2b25d.png"></a></p><h4>الاتصال</h4><p>للاتصال، قم ببساطة بالضغط على زرّ <strong>الاتصال</strong> الموجود أمامك. سيتم سؤالك عمّا إذا كنتَ تثق بالتطبيق، اضغط على <strong>موافق</strong> وتابع. لإلغاء الاتصال، انقر على زرّ <strong>قطع الاتصال</strong> بالتطبيق.</p><p style="text-align: center;"><a class="ipsAttachLink ipsAttachLink_image" href="https://academy.hsoub.com/uploads/monthly_2015_05/007.png.ce8789e0a0be1a8839db8fe29fa44460.png"><img data-fileid="2240" class="ipsImage ipsImage_thumbnailed" alt="007.thumb.png.27db4dda61b4f208fd826a000d" src="https://academy.hsoub.com/uploads/monthly_2015_05/007.thumb.png.27db4dda61b4f208fd826a000dc8ca58.png"></a></p><h2>الخطوة السادسة: اختبار اتصالك بـ VPN</h2><p>بمجرّد تثبيت كلّ شيء، يمكن لفحصٍ سريع أن يؤكّد لك أنّك تستعمل VPN الآن أو لا. أولًا قبل استخدام أيّ VPN، اذهب إلى موقع <a rel="external nofollow" href="https://www.dnsleaktest.com/">DNSLeakTest</a>.</p><p>سيعطيك الموقع عنوان الـIP الخاصّ بك عبر مزوّد الإنترنت لديك وستظهر أنت كما تبدو لبقية العالم. للتحقق من إعدادات DNS الخاصّ بك عبر نفس الموقع، انقر على <strong>Extended Test</strong> وسيخبرك عن خواديم DNS التي تستعملها.</p><p>الآن، قم بالاتصال بخادوم OpenVPN الموجود على خادومك وحدّث الصفحة. وشاهد عنوان الـIP الجديد المختلف كليًا عن السابق. هذا سيكون هو عنوان الـIP الظاهر للعالم عند تصفّحك لمواقعهم. مجددًا، انقر على <strong>Extended Test</strong> وسيخبرك عن خواديم DNS التي تستعملها وسيؤكد لك أنّك تستخدم الآن خواديم الـDNS المُعدّة من قبل OpenVPN.</p><p>تهانينا! يمكنك الآن التنقّل بأمان في الإنترنت وحماية خصوصيتك، موقعك وبياناتك من المراقبة والمُخترقين.</p><p>ترجمة -وبتصرّف- للمقال: <a rel="external nofollow" href="https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-14-04">How To Set Up an OpenVPN Server on Ubuntu 14.04</a>.</p>
]]></description><guid isPermaLink="false">57</guid><pubDate>Fri, 29 May 2015 21:04:09 +0000</pubDate></item></channel></rss>
