مدونات

 

حل مشكلة النسخ واللصق في vim نسخة 8.0

عند تحديث نسخة دبيان نحصل على مشكلة نحن الذين نستعمل vim حتى للبرمجة في بعض الأحيان، عندما تكون فأرة الحاسوب مفعلة لا تسمح بنقل ولصق لأن تأتي مفعل (mouse=a) تلقائيا فقط نحتاج إيقاف تفعيل فأرة الحاسوب كل مرة ندخل vim :set mouse= ويمكننا الحصول على كيفية النسخ واللصق تحياتي وحتى معلومة آخرى

mohammed

mohammed

 

تحويل قواعد بيانات من SQL إلى MongoDB عبر mongify

احتجت هذه الأيام تصدير قواعد بيانات وتحويلها من نوعية علائقية sql من mysql إلى mongodb ،وأثار فضولي تطبيق mongify الذي يمكنه التحويل من عدة قواعد بيانات ومنها MySQL، PostgreSQL، SQLite، Oracle، SQLServer  إلى قواعد بيانات Mongodb بنوعية الغير علائقي NoSql،
تثبيت mongify gem install mongify إنشاء ملف database.config بمعلومات الاتصال
  sql_connection do adapter "mysql2" host "localhost" username "root" password "password" database "dbname" batch_size 10000 # This is defaulted to 10000 but in case you want to make that smaller (on lower RAM machines) end mongodb_connection do host "localhost" database "dbname" end تجربة الاتصال بين قاعدتي البيانات mongify check database.config وإذا كان الاتصال إيجابي  يمكن تصدير ملف التحويل عبر أمر، الملف يمكننا تغيره يدويا لتغير بعض الأشياء ونوعية الأعمدة mongify translation database.config > translation.rb وأخيرا تصدير المعلومات إلى قاعدة البيانات Mongodb mongify process database.config translation.rb لمعلومات اكثر في موقع التطبيق http://mongify.com/

mohammed

mohammed

 

تحديث Asterisk

السلام عليكم ورحمة الله وبركاته في بعض الحالات يجب تحديث تحديث نسخة asterisk لتفادي مشاكل الثغرات والتحسينات المستمرة. التحديث يشمل نفس النسخة وليس نسخة برقم إصدار مختلف في احد الخوادم التي لدي سأقوم بتحديث من النسخة 13.10.0 إلى 13.14.0 نقوم بتحميل النسخة الجديدة وفك الضغط عليها wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz tar -xvzf asterisk-13-current.tar.gz cd asterisk-13.14.0/ إيقاف تشغيل Asterisk /etc/init.d/asterisk stop مراجعة هل ما زال يعمل ps -aux | grep asterisk   القيام بالإعدادات الأولية contrib/scripts/install_prereq install contrib/scripts/get_mp3_source.sh ./configure تحديث الإضافات المستعملة في أول تثبيت make menuselect تحديث
  make all make upgrade إعادة تشغيل وتجربة عمله
  /etc/init.d/asterisk start  

mohammed

mohammed

 

imapsync تصدير البريد من حساب لآخر

imapsync هي أدات وتطبيق لتصدير البريد من حساب قديم في خادم قديم لبريد جديد في خادم جديد او غير ذالك، مهمتها هو نقل البريد من حساب لآخر ، تثبيت imapsync في دبيان 8 أو 7 apt-get install libauthen-ntlm-perl libcrypt-ssleay-perl libdigest-hmac-perl libfile-copy-recursive-perl libio-compress-perl libio-socket-inet6-perl libio-socket-ssl-perl libio-tee-perl libmail-imapclient-perl libmodule-scandeps-perl libnet-ssleay-perl libpar-packer-perl libreadonly-perl libterm-readkey-perl libtest-pod-perl libtest-simple-perl libunicode-string-perl liburi-perl make cpanminus git وبعدها تثبيت بعض وحدات perl cpanm Data::Uniqid Mail::IMAPClient تحميل آخر نسخة من التطبيق git clone https://github.com/imapsync/imapsync.git cd imapsync تصدير البريد من حساب لآخر تجربة أن لا يعطي أخطاء في الوحدات ./imapsync -v   تصدير ./imapsync --host1 srv3.arsrv.net -user1 info@arsrv.org --password1 'p@ssw0rd' --host2 srv4.arsrv.net --user2 info@arsrv.org --password2 'p@55w0rd'     لمعلومات اكثر وكيفية تثبيته في توزيعات اخرى يمكن مراجعة الموقع الرسمي http://imapsync.lamiral.info/

mohammed

mohammed

 

حجم المجلدات والقرص الصلب بأوامر لينكس

هي أوامر لا يمكن نسيانها لأنها تستعمل من حين لآخر لمعرفة حجم مجلدات ومساحة القرص الصلب حجم الملفات والمجلدات عبر أمر du يعتبر من الأوامر السهلة التي تمكننا من معرفة حجم ملف او مجلد ويأتي مثبت في كل أغلب توزيعات لينكس مثلا لمعرفة حجم ملف أو مجلد #du -dsh /var/folder_or_file -b [--bytes]: ليكون وحدة الحساب بايت.
-s [--sumarize]: لحساب فقط المجموع، عندما نقوم بإستعمال الأمر للمجلدات.
-h [--human-readable]: لوحدات سكان الأرض من نوعية  (1K, 234M, 2G) معرفة مساحة القرص الصلب عبر أمر df لمعرفة مساحة المستهلكة في القرص الصلب وكم بقي لنا للوصول إلى الاستعمال الشامل له يمكن ذالك عبر أمر # df -h سيقوم باسترجاع كل أقسام القرص الصلب ومساحتها والمساحة الكلية  

mohammed

mohammed

 

IronSFTP نقل الملفات بتشفير حتى النهاية بين الخوادم

عندما نفكر في عمل نسخة احتياطية أو نقل الملفات بين خادمين نفكر دائما أن افضل إرسال سيكون عبر نظام sftp والذي يأتي مثبت في كل نظام عبر خادم ssh ،و بطبعه يرسل المعلومات مشفرة بين الخادمين، و المؤكد انه لا يمكن لأي احد أخذ المعلومات عبر  رجل في المنتصف – Man in The Middle – ، لكن تشفير ssh يتوسط بين المرسل والمستقبل لذالك أي تغيير في المتلقي يضمن الحصول على المعلومات دون عناء من المهاجم.والحل
IronSFTP هو بديل مطابق ل sftp ويعمل عبر الأوامر ليحل المشكلة المطروحة سابقا،ف   IronSFTP يستعمل التشفير حتى النهاية -End-to-end encryption- ويقوم بتشفير الملف وإرساله للمستقبل مشفرة لكي يتم أزالت التشفير عليه عند وصوله للخادم. الملفات المشفرة ومفاتيح التي تم توليدها من التطبيق متوافقة مع GPG 2.1.7+، بحيث يمكن فك شفرتها دون اللجوء IronCore. وبالإضافة إلى ذلك، IronSFTP هو فرع من OpenSSH ومفتوح المصدر عبر رخصة BSD. IronSSH يحتاج OpenSSL 1.0.2+ وهو متوافقة مع انظمة التشغيل CentOS 7 Red Hat Enterprise 7 Fedora 23, 24 Debian Stretch Ubuntu Wily, Xenial, yakkety MacOS باقي انظمة التشغيل عبر ملفات المصدر لتبيت و معلومات الاستعمال  

mohammed

mohammed

 

تثبيت جافا Java JDK 8 في دبيان

جافا هي لغة برمجة وتحتاج لآلة جافا الافتراضية وهذا ما سنقوم بتثبيته في نظام دبيان ليمكن استعمال التطبيقات والخدمات التي تعامل مع هذه المنصة ، سأقوم باستعمال Geoserver لذالك احتاج آلة جافا للعمل. تثبيت جافا JDK 8 نقوم بعمل مجلد الذي سنضع به الآلة mkdir /opt/jdk/ cd /opt/jdk/ نقوم بتحمل وفك الضغط wget --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u102-b14/jdk-8u102-linux-x64.tar.gz tar -xzvf jdk-8u102-linux-x64.tar.gz تثبيت update-alternatives --install /usr/bin/java java /opt/jdk/jdk1.8.0_102/bin/java 100 update-alternatives --install /usr/bin/javac javac /opt/jdk/jdk1.8.0_102/bin/javac 100 إذا وجدت اكثر من نسخة يمكن التحكم باختيار النسخة المستعملة عبر أمر update-alternatives --config java update-alternatives --config javac لتيقن أي نسخة نستعمل root@srv9:/opt/jdk# java -version java version "1.8.0_102" Java(TM) SE Runtime Environment (build 1.8.0_102-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode) لترقية نسخة جافا يمكننا حذف النسخة القديمة عبر أمر ونقوم بإعادة تثبيت من جديد النسخة الجديدة، او إضافة نسخة جديدة وتحديد النسخة عبر update-alternatives update-alternatives --remove java /opt/jdk/jdk1.8.0_102/bin/java update-alternatives --remove javac /opt/jdk/jdk1.8.0_102/bin/javac  

mohammed

mohammed

 

خادم لمراقبة أجهزة GPS

أجهزة التعقب والتتبع عبر نظام التموضع العالمي أو بصيغة أخرى GPS أصبحة لا تحصى في الوقت الراهن، وإضافة إلى ذالك كل الهواتف التي تحمل على متنها هذه الوحدة التي تمثل إضافة لا يمكن الاستغناء عنها ووحدات تضاف الى آردوينو او اجهزة آخرى، المجالات الذي يمكننا أن نستعمل فيه GPS هي كثيرة ومنها ما سنقوم بالتطرق له بالتحديد والذي لا يأخذ منها. تعقب المركبات بنظام GPS هي اجهره مخصص للمركبات من السيارات وسيارات الأجرة والشاحنات والدراجات إلى غير ذالك، ومنها ما يأتي متخصص في تركيب مركبة بتخصصات محدد ومنها ما يأتي للقيام بكل الأعمال، يمكننا أن نجد الكثير من الأجهزة وكل له مزاياه وعيوبه،
تعقب الأشخاص بنظام GPS
هي أجهزة صغيرة موجهة للأشخاص من الأطفال وكبار السن. العائق الوحيد لهذه الأجهزة انها تحتاج ان يتم شحنها باستمرار وتأتي أيضا بزر إنظار في حالة الطوارئ وفي بعض الحالات سماعة وميكروفون للاتصال، في الوقت الراهن يمكن استعمال الهواتف لهذا الغرض ايضا باضافة تطبيق ويقوم مباشرة بإرسال الإحداثيات للخادم ليمكن معرفة تواجده في كل حين ووقت.
تثبيت خادم لتعقب الاجهزة GPS في الوقت الماضي كنت استعمل opengts لكفائته العالية في هذا المجال ،لكن في هذا الشرح سأكتفي بتجربة خادم جديد يقوم بنفس الأعمال traccar، هو تطبيق مفتوح المصدر ويأتي بتطبيقات للهواتف لكي تقوم بإرسال الاحداثيات للخادم. تثبيت قواعد البيانات للخادم تطبيق الخادم يحتاج قواعد البيانات من نوعية mysql او Microsoft SQL او PostgreSQL وايضا يستعمل يمكننا لتجربة استعمال قواعد البيانات الداخلية التي تأتي معه نفتح ملف المستودعات vim /etc/apt/sources.list نضيف مستودع قواعد البيانات في هذه الحالة سأقوم باستعمال PostgreSQL في دبيان 8 deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main إضافة المفتاح للمستودع الذي قمنا بإضافته سابقا wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - إعادة تحميل وتثبيت apt-get update apt-get install postgresql-9.5 postgresql-contrib-9.5 postgresql-server-dev-9.5 لإضافة قاعدة بينات وتغيير كلمة مرور postgres su postgres اضافة قاعدة بيانات createdb traccar ندخل إلى psql psql وبعدها وسيطلب إدخال كلمة المرور مرتين \password postgres للخروج \q بعد كتابة exit لرجوع للمستخدم السابق نحتاج تثبيت Java في هذه الحالة سأكتفي بتثبيته بالمستودعات تثبيت Java vim /etc/apt/sources.list إضافة deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main اضافة المفتاح وإعادة تحميل المستودعات وتثبيت java apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886 apt-get update apt-get install oracle-java8-installer apt-get install oracle-java8-set-default تثبيت traccar تحميل الخادم عبر صفحة التحميل wget https://github.com/tananaev/traccar/releases/download/v3.6/traccar-windows-64-3.6.zip فك الضغط على الملف apt-get install unzip && unzip traccar-linux-64-3.6.zip تثبيت ./traccar.run تغير في ملف التعديلات قواعد البيانات الذي سنقوم بإستعماله <entry key='database.driver'>org.postgresql.Driver</entry> <entry key='database.url'>jdbc:postgresql://127.0.0.1:5432/traccar</entry> <entry key='database.user'>postgre</entry> <entry key='database.password'>[PASSWORD]</entry> تشغيل /etc/init.d/traccar start بهذا الأخير سيقوم بالعمل عبر منفذ 8082 يمكننا الوصل عبر اسم الخادم او رقم الإبي واسم المستخدم وكلمة المرور admin http://srv.domain.com:8082/

mohammed

mohammed

 

الأمن من خلال الغموض: منافذ الشبكة

عندما يتم التكلم على الأمن من خلال الغموض (Security through obscurity)  فإننا نتخذ من الغموض تحكم بالثغرات الأمنية التي يمكن أن تظهر مع الوقت  أو الموجودة حاليا ولم تنطبق عيلنا بعد، ولتسهيل شرحه نأخذ بعين الاعتبار منافذ الشبكة فمثلا منفذ الاتصال عبر أنظمة لينوكس تعتمد على ssh، وبطبعة الحال فإن المنفذ المعتاد والتلقائي 22 وهذا يسمح للكل دون عبء أن يقوم بتجربة كل ما يريد دون أن يضيف بحث عن المنفذ للإنصال الذي اتخذناه. باختصار فالأمن من خلال الغموض لا يقتصر فقط على المنافذ بل يتعدى لكي يحتوي أيضا بروتوكولات الاتصال والخوارزميات  وأكود المصدر للتطبيقات وغير ذالك. فكل شيء لا نفصح عن معلوماته وهناك صعوبة للحصول عليه ولو قليلة فلا يمكن لشخص آخر اتخاذه جزئا من تجربة يمكن أن تبوء بالنجاح. في الغالب عدم تغير المنافذ سببه يرجع لعدة أسباب منها عدم الوعي المتسخدم أو شركات دون مسؤولية أو مدير لنظام sysadmin كسول. فالأول لا يمكن أن نلومه بسبب انه ليس واعي بنظام قام بتثبيته أو وصف له ولا يعرف ما يجب تغيره للحصول على افضل أسلوب حماية، والواجب يتعلق به مباشرة بالبحث عن كيفية القيام بذالك أو طلبه لشركة التي أعطته  إياه . الثاني يستصغر مستواه إلى مستوى دون الوعي والغير المسؤول عن نفسه وعن من قاموا بالثقة في مسؤوليته. فيتخذ من المستخدمين ذرعية وأن عليهم توخي الحضر عوض إصدار دليل للاستخدام الواعي أو  القيام بها شخصيا. فعمل نظام خالي من الشوائب ليس سهل لكن تسهيل تغير يحب لن يكون ضرورة وإعادة بيع انظمه موجودة يجب اتباعه دليل استخدام مدير النظام الكسول فالتعبير يعبر عن العمل الشاق والذي سينهكه أو الكسل الناجم على تغيير شيء بسيط ، فمثلا سيكون عليه تغيره كل منافذ الخوادم العملاء برقم عشوائي وتذكره لإضافته في خادم المراقبة مع إرساله للعميل. وإذا اتصل العميل يطلب معلومات الإتصال عليه البحث عنه وتوصيله تغير منفذ ssh هو بسهولة تغير ملف واحد وإعادة تشغيل الخدمة vim /etc/ssh/sshd_config تغيير القيمة Port من 22 إلى اي رقم عشوائي حتى اقصي ما يمكن تحمله tcp 65535 Port 2225 وأخيرا وليس أخيرا أعادة التشغيل /etc/init.d/ssh reload ولكي نغلق الدائرة فالمستخدمين المعرفين أسمائهم في النظام فيجب أخفاءهم هم أيضا ، فمثلا عدم السماح بدخول مستخدم root مباشرة. في الختام ليس الأمن من خلال الغموض حل يوقي من كل الأشياء لكن يخفف ويجبر الطرف الثاني عن البحث عليها والبحث عن كل نقطة قمنا بإخفاء معالمها .  

mohammed

mohammed

 

تشغيل خط هاتف Twilio على FreePBX 13

Twilio هي شركة تطوير ومنصة لخدمات الصوت عبر الأنترنيت Voip سحالبية cloud، تسمح بالعديد من الخدمات ومنها إدارة المكالمات، رسائل كتابية والصوت والصورة عبر API،  ومن الاختصاصات التي تسمح بها هو أرقام هواتف عالمية عبر خدمة Elastic SIP Trunking. مما يجب ذكره عن Elastic SIP Trunking ان الأرقام ثمنها 1 دولار مقارنة مع الشركات الأخري، وان الخدمة سحابية فمشاكل التي تتعلق بتوقف الخدمة منعدمة، مع إمكانية إدخال التشفير وتسجيل للمكالمة. شراء خط هاتف في Twilio لن ادخل تفاصيل لان نسخة الواجهة في التطوير ويمكن أن تتغير دون إنذار في أي وقت، لكن اللازم هو الحصول على رقم يمكن استعماله للاتصال، وإضافة رقم الإبي للخادم الذي سنستعمله ل voip  والاسم وكلمة المرور . ويمكن أيضا استعمال دليل Twilio للقيام بهذه الخطوات اضافة خط SIP Twilio الى  FreePBX عند الدخول الى تطبيق feePBX مباشرة نذهب الى connectivity وبعده إلى  Trunk ونقوم بإضافة جديد في الإعدادات العامة ندخل Trunk name: twilio
Outbound CallerID: رقم الهاتف بتعريف E.164
CID Options: Force Trunk CID معلومات Dialplan Manipulation Rules Outbound Dial Prefix:  + وأخيرا في معلومات sip Settings (outgoing) Trunk Name : TwilioSIP معلومات الاتصال بتغير معلومات الخادم الذي سنستعمله والاسم وكلمة المرور host=name.pstn.twilio.com username=الاسم secret=كلمة المرور type=peer dtmfmode=rfc2833 canreinvite=no disallow=all allow=ulaw qualify=yes insecure=port,invite   للحصول على الاتصال علينا إضافة خوادم السحابية واحدة تلوى الأخرى في Trunk او عبر اضافتها في ملف sip_custom.conf يدويا vim /etc/asterisk/sip_custom.conf يجب إضافة كل الأرقام الابي  إذا استعملت الاسم خادم pstn.twilio.com دون تعرف قارة بالخصوص، المثال في الملف هو لتخصيص أروبا فقط
ارقام الابي كل الخوادم التي تستعمل لعمل الاتصال توجد في networking info ثم IP Address Whitelist [twiliocaller](!) context = from-trunk type = peer qualify=no allowguest=yes [twilioip-1](twiliocaller) host=54.171.127.192 [twilioip-2](twiliocaller) host=54.171.127.193 [twilioip-3](twiliocaller) host=54.171.127.194 [twilioip-4](twiliocaller) host=54.171.127.195 لإضافة الاتصال الداخل يجب Inbound Routes يجب استعمال الرقم من نوعية التعريف E.164، اي بإضافة + لرقم مع رقم الدولة متبوع برقم الهاتف وللإستعمال للإتصال الخارج  Outbound Routes  يجب ازالة 00 في بداية الرقم، واضافة علامة + لرقم  

mohammed

mohammed

 

HTTPoxy ثغرة أمنية PHP و CGI

ضهور ثغرة جديدة وخروجها من الفرن (HTTPoxy) بطابع جد حساس للخوادم التي تستعمل PHP و CGI لكن يأثر ايضا على استعمال برمجة السكريبت الآخرى في الخادم،مصدر المشكلة هي متغير HTTP_PROXY
من جهة CGI وما تٌعَرف الثغرة RFC 3875 يقوم باستعمال تلقائي للعلامة الوصفية "HTTP_" لتحديد البرتوكول المستعمل، لذالك اذا اضفنا header في طلب HTTP من نوعية "PROXY" فربما سيتم اعادة كتابة متغير  HTTP_PROXY في الخادم الضحية، وبالتالي يمكن تحديد بروكسي وهمي وعمل هجوم MiTM.
يمكن رأيته افضل في كيفية استعماله،ملف من نوعية cgi نقوم برد ما يوجد بمتغير HTTP_PROXY test.cgi: #!/bin/sh echo "Content-Type:text/plain" echo "" echo "HTTP_PROXY='$HTTP_PROXY'"  في طلب http بطلب تغيير قيمة "Proxy:" curl -H 'Proxy: AFFECTED' http://my-server-name/cgi-bin/test.cgi خارج الطلب اذا ضهر HTTP_PROXY='AFFECTED' فيمكنك ان تبحث عن حل في اقرب وقت. العجيب في الامر ان الثغرة تم اصلاحها في نسخ perl و curl منذ 15 في عام 2001 لكن لزمتنا كل هذا الوقت في cgi، ولإتخاذ اجرائات في اصلاحها هناك بعض ما يمكننا القيام به على حسب نوعية الخادم الذي نستعمل Apache لكل الخادم او في ملف للموقع RequestHeader unset Proxy early Apache + Mod_Security SecRule &REQUEST_HEADERS:Proxy "@gt 0" "id:1000005,log,deny,msg:'httpoxy denied'" HAProxy http-request del-header Proxy NGINX و FastCGI fastcgi_param HTTP_PROXY ""; Varnish sub vcl_recv { [...] unset req.http.proxy; [...] }  

mohammed

mohammed

 

تثبيت odoo 9 في دبيان 8 Jessie

الكثير منا يتذكر OpenERP الذي كان مهيئ فقط لتخطيط موارد المؤسسة ERP فقط بوحدات غير مستقلة، بذالك التصميم المزعج، لكن بتحوله الى اسم آخر تغير مساره واصبح يضم اكثر من وحدة مستقلة ومنها ، إدارة المبيعات والمشتريات ،إدارة المخازن، نضام بيع للمخازن ومواقع ويب الى آخرى، هو في الاصل مفتوح المصدر  مبرمج بلغة بايثون، آخر تثبيت لي له كان يضم نظام POSBOX والذي يعمل كنظام نقطة بيع في المحلات التجارية   تهيئة الخادم تثبيت قواعد البيانات Postgresql نظام odoo يحتاج قواعد البيانات من نوعية postgresql وبعد التحديث نقوم بتثبيته آخر نسخة موجودة في المستودعات apt-get update apt-get upgrade apt-get install postgresql postgresql-client libpq-dev إضافة مستخدم نحتاج اضافة مستخدم للخادم بملف مستخدم /opt/odoo adduser --system --home=/opt/odoo --group odoo إضافة مستخدم Postgresql نستخدم اسم مستخدم الاداري لقواعد البيانات postgres su - postgres نقوم بإضافة مستخدم في قواعد البيانات يخص التطبيق الذي سنقوم بتثبيته، odoo هو اسم المستخدم الذي قمنا بإنشائه في الخادم createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo سيطلب ادخال كلمة المرور واعادة كتابتها ، نكتبها ونحتفض بها لأننا سنقوم بإستعمالها في التثبيت للخروج والرجوع للمستخدم السابق exit او ازرار Ctrl+d exit تثبيت المكتبات اللازمة تثبيت ما يلزم من التطبيقات والمكتبات التي يحتاجها odoo للعمل apt-get install git gcc python-dev python-pip python-virtualenv libevent-dev libxml2-dev libxslt1-dev libsasl2-dev libldap2-dev libssl-dev libjpeg-dev تثبيت less css apt-get install npm ln -s /usr/bin/nodejs /usr/bin/node npm install -g less تثبيت wkhtmltopdf يتم احتياجه للقيام بعمل الفاتورات بنسخة pdf يمكننا تحميله بنسخة wkhtmltopdf 32 او wkhtmltopdf 64 wget http://nightly.odoo.com/extra/wkhtmltox-0.12.1.2_linux-jessie-amd64.deb dpkg -i wkhtmltox-0.12.1.2_linux-jessie-amd64.deb apt-get install -f تبيت Odoo نستخدم المستخدم الذي قمنا باضافته سابقا لدخول المجلد الخاص به واستعمال نفس التصاريح التي يستعملها su - odoo -s /bin/bash نقوم بتحميل النسخة الآخيرة من odoo والتي هي 9 git clone https://www.github.com/odoo/odoo --depth 1 --branch 9.0 --single-branch . نقوم بالرجوع لمستخدم الذي  نستعمله لادارة الخادم عبر exit او رز ctrl متبوع ب d ونضيف مجلد التعديلات odoo ونقل الملف mkdir /etc/odoo cp -p /opt/odoo/debian/openerp-server.conf /etc/odoo/ تثبيت مكتبات odoo pip install -r /opt/odoo/requirements.txt   تفعيل التشغيل الذاتي نضيف مجلد الخاص ب Log mkdir /var/log/odoo وانشاء ملف فارغ ليستطيع odoo الكتابة فيه touch /var/log/odoo/odoo-server.log تحميل ملف التشغيل الذاتي odoo-server نقوم بوضعه في ملف التشغيل cp odoo-server /etc/init.d/odoo-server اضافة له تصريح التشغيل chmod 755 /etc/init.d/odoo-server واخيرا تفعيله update-rc.d odoo-server defaults تشغيل Odoo عبر رقم الابي او اسم الخادم بمنفذ 8090 يمكننا ان نصل الى صفحة البداية وفي اول وصول سيطلب منا اسم المستخدم وكلمة المرور لقواعد البيانات   عند ملء المعلومات نحصل على صفحة تثبيت الوحدات يمكننا تثبيت ما نحتاج وحدة نقطة البيع

mohammed

mohammed

 

تثبيت خادم راديوا عبر الانترنيت في 5 دقائق

السلام عليكم ورحمة الله وبركاته الكثير من اذاعات الرديوا عليها ألا تبقى في عصر FM و AM وتطور من الوصول للمستخدم ، في الوقت الراهن الكل يراهن على المحتوى عبر الانترنيت وكل الاجهزة المحمولة يوجد به ميزة الانترنيت ولا يوجد به مستقبل لموجات الرديوا، فلذالك يجب على كل اذاعة راديوا غلق الفجوة بعمل اذاعة على الانترنيت. ويمكننا ايضا عمل راديوا يقوم بنفس العمل وتحديث المحتوى وصياغة اذاعة عبر بث مباشر وحي للمحتوى. icecast2 هو خادم لملفات البث المباشر streaming، مفتوح المصدر ، به العديد من المزيا ويتم التحكم به عبر ملفات xml Airtime هو نظام مفتوح المصدر مقدم من شركة sourcefabric لتحكم بترتيب ملفات الصوت واضافتها والبث المباشر فخادم icecast2 تهيئة الخادم تحسين النظام الامني للخادم اضافة مستخدم جديد للخادم والذي سيقوم برفع ملفات المحتوى adduser radio سيطلب وضع كلمة المرور ومعلومات المستخدم نقوم باضافتها ونتذكر كلمة المرور التي استعملنها نضيف مجلد للمحتوى mkdir /home/radio/data فتح ملف sshd_config vim /etc/ssh/sshd_config تغيير المنفذ الرئيسي ل ssh بآخر Port 2222 نغيره لكي لا يتيح لستخدم root بالدخول PermitRootLogin no تثبيت تثبيت Airtime تحميل wget http://apt.sourcefabric.org/misc/airtime-easy-setup.deb تثبيت التطبيق dpkg -i airtime-easy-setup.deb apt-get install -f تثبيت الخادم airtime-easy-setup بعدها برقم الابي او اسم الخادم يمكننا الولوج للوحة التحكم عبر إسم وكلمة المرور admin تعديل ملفات الخادم والتحكم به  

mohammed

mohammed

 

ترتيب الملفات عبر الحجم بشكل مقروء

عندما نحتاج عمل ترتيب للملفات نجد مشكلة عند استعمال امر du لكي يطرح الخارج مهيئ للمستخدم باضافة -h، لكن المشكلة هي عندما نقوم بطلب ترتيب له عبر امر sort سندرك انه لا يقوم بالترتيب كما يجب du -hs * | sort 0 man 100K lib 3.0M bin 36M src 4.0K etc 4.0K games 4.0K include 4.0K sbin 68K share بإضافة -h لامر الترتيب  sort سيقوم برد الناتج مهيئ ومرتب du -hs * | sort -h 0 man 4.0K etc 4.0K games 4.0K include 4.0K sbin 68K share 100K lib 3.0M bin 36M src  

mohammed

mohammed

 

تثبيت Freepbx v13 لدبيان 8

Freepbx هو تطبيق ويب يستعمل لتحكم بخادم Voip Asterisk واللذي تطرقنا لتثبيته في شرح سابق، يمَكننا بالتحكم في نظام Asterisk عبر واجهة فعالة وسريعة وجد مهيئة ويمْكننا اضافة ارقام الهواتف واضافة المستخدمين ووضع اولوية للاتصالات وغير ذالك. هو تطبيق مفتوح المصدر وآخر اصداره النسخة 13 والتي تضم مزايا تحسن التصميم ووصول ادق لتطبيقات المثبة. إعداد النظام apt-get install apache2 mysql-server mysql-client bison flex php5 php5-curl php5-cli php5-mysql php-pear php5-gd curl sox libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config libtool autoconf uuid git تحميل cd /usr/src git clone -b release/13.0 --single-branch https://github.com/FreePBX/framework.git freepbx تثبيت cd freepbx ./start_asterisk start ./install -n --dbpass somepassword إضافة عناصر التحكم ل Freepbx fwconsole ma upgrade framework core voicemail infoservices sipsettings featurecodeadmin callrecording logfiles cdr dashboard إعادة التشغيل fwconsole restart fwconsole reload fwconsole chown إعداد Apache sed -i 's/\(APACHE_RUN_USER=\)\(.*\)/\1asterisk/g' /etc/apache2/envvars sed -i 's/\(APACHE_RUN_GROUP=\)\(.*\)/\1asterisk/g' /etc/apache2/envvars chown asterisk. /run/lock/apache2 mv /var/www/html/index.html /var/www/html/index.html.disable systemctl restart apache2 إعداد Freepbx مراجعة ملف التشغيل التلقائي vim /etc/systemd/system/freepbx.service [Unit] Description=FreePBX VoIP Server After=mysql.service [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/sbin/fwconsole start ExecStop=/usr/sbin/fwconsole stop [Install] WantedBy=multi-user.target واخيرا تفعيل التشغيل الذاتي systemctl enable freepbx واعادة تشغيل الجهاز reboot  

mohammed

mohammed

 

تثبيت Zimbra 8.6 في ubuntu 14.04

Zimbra هو نظام برمجيات تعاونية وبين التطبيقات التي يحتويها خادم البريد إضافة إلى تطبيقات متخصص بين التقوم، الكتابة الفورية، رفع ملفات وغير ذالك، مراجعة الى اصوله هو مفتوح المصدر كان ضمن تصرف yahoo! حتى قامت بشرائه VMware في 2013، ومن بين التطبيقات التي يعمل عليها البريد Postfix,MySQL,OpenLDAP,ClamAV .... تهيئة الخادم تغيير اسم الخادم لتغير اسم الخادم نحتاج فتح ملف vim /etc/hostname وتغيره باسم الذي سنستعمله mail.arsrv.org تغيير ملف hosts فتح ملف vim /etc/hosts وإضافة إليه 81.2.244.250 mail.arsrv.org mail ازالت خادم exim4 apt-get remove --purge exim4* نقوم بإعادة تشغيل الخادم reboot تثبيت التطبيقات اللازمة apt-get install unzip pax sysstat sqlite3 dnsmasq wget libperl5.18 libgmp10 sudo libgmp10 libperl5.18 libaio1 libgmp3-dev تثبيت Zimbra نقوم بتحميله من الموقع الرسمي النسخة الأخيرة wget https://files.zimbra.com/downloads/8.6.0_GA/zcs-8.6.0_GA_1153.UBUNTU14_64.20141215151116.tgz فك الضغط على الملف والولوج للمجلد التثبيت tar -xvzf zcs-8.6.0_GA_1153.UBUNTU14_64.20141215151116.tgz cd zcs-8.6.0_GA_1153.UBUNTU14_64.20141215151116 تثبيت ./install.sh سيطلب الموافقة على الرخص والتطبيقات التي سيقوم بتثبيتها ، نكتب Y ونضغط زر الدخول وصولا الى المراجعة ما سنقوم بتثبيته نكتب Y عند الوصول إلى معلومات الخادم نضغط  رقم 7 وبعدها رقم 4 لتغير كلمة المرور ل Admin ونقوم بحفض المعلومات عبر كتابة yes وبعدها زر دخول سيقوم بحفض المعلومات في ملف وسيقوم بعمل مفاتيح ssl وتفعيل الخدمات عند الانتهاء يمكننا الدخول للخادم zimbra لتغير أو إضافة المستخدمين عبر منفذ 7071

mohammed

mohammed

 

PAC Manager افضل التطبيقات لتحكم بالخوادم عبر ssh

PAC Manager هو افضل تطبيق من الناحية الشخصية و مفتوح المصدر لنظام لينوكس لتحكم بالخوادم عبر برتوكول ssh، اضافة الى ذالك فهو يقدم تحكم شامل للانفاق واستعمال cluster.
  لتحميله من الموقع الرسمي او عبر الاوامر wget "http://downloads.sourceforge.net/project/pacmanager/pac-4.0/pac-4.5.5.7-all.deb?r=&amp;ts=1467032402&amp;use_mirror=ufpr" -O pac-4.5.5.7-all.deb تثبت dpkg -i pac-4.5.5.7-all.deb

mohammed

mohammed

 

تثبيت Asterisk لدبيان 8 Jessie

Asterisk هو خادم للاتصال عبر برتوكول الابي Voip، يستعمل لتقديم حلول متعلقة بالهواتف والاتصلات لشركات وانهاء عصر الهواتف التقليدية، الذي يميزه قوته وقابليته لتطوير، يوجد به العديد من الملحقات ويمكن اضافة ملحق جديد ليتزامن والاحتياجات اليومية. الشرح سيكون فقط لتثبيت Asterisk دون اي نضام تحكم او شرح التحكم به . مقادير الطبخ: خادم او جهاز بمعالج اكثر من 512 ميغابايت نضام دبيان آخر اصدار 8 في هذه الحالة وصول شامل لنضام عبر سطر الاوامر او مباشر تثبيت تحديث النظام apt-get update apt-get upgrade تثبيت كل التطبيقات التي سيتم احتياجها apt-get install -y build-essential linux-headers-`uname -r` openssh-server bison flex php5-curl php5-cli php5-mysql php-pear php-db php5-gd curl sox libncurses5-dev libssl-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git subversion libtool-bin apt-get install python-dev اضافة تطبيقات perl pear install db pear install Console_getopt من متطلبات التثبيت نقوم بتثبيت iksemel git clone https://github.com/meduketto/iksemel.git cd iksemel ./configure make make install تثبيت jansson git clone https://github.com/akheron/jansson.git cd jansson autoreconf -i ./configure make make install تثبيت Asterisk wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz tar xvfz asterisk-13-current.tar.gz cd asterisk-13.3.2/ contrib/scripts/install_prereq install contrib/scripts/install_prereq install-unpackaged contrib/scripts/get_mp3_source.sh ./configure make menuselect make all make install make config make install-logrotate update-rc.d asterisk defaults asterisk -vvvvvvvvvvc وهكذا نحصل على الخادم ويمكننا مباشرة العمل عليه او تثبيت Freepbx لتحكم به عبر الويب.

mohammed

mohammed

 

تثبيت postgreSQL postGIS pgRouting في دبيان

المشروع هو الحصول على قاعدة بيانات بخارطة بلد تمكننا من تغييرها و البحث فيها واحتساب الطريق الافضل للوصول لمكان معين، كل ما سنستعمله هو تطبيقات مفتوحة المصدر وخرائط ايضا مفتوحة المصدر. ما نحتاجه في اول الامر قواعد بيانات مستقرة ومفتوحة المصدر وهذا يعطيه لنا postgreSQL قواعد بيانات مفتوحة المصدر يوصف بالاستقرار وتميزه بالقابلية التطوير، postGIS هي عبارة عن اضافة لقواعد البيانات postgreSQL ليصبح لنا قواعد بيانات بنظم معلومات الجغرافية، يمكننا هذا الاخير بتخزين معلومات تحتوي على المعلومات المكانية وطلبها عندما نشاء او معالجتها واستخراج ناتئج من الخوارزميات التي يحتويه pgRouting هي اضافة ل postGIS لكي يتمكن من عمل تحليل لطرقات والبحث عن مسلك بينها ، فالاسم يعرف عليه ، تثبيت postgreSQL فتج ملف المستدوعات vim /etc/apt/sources.list اضافة المستودع deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main اضافة المفتاح واعادة تحديث المستودعات wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - apt-get update تثبيت apt-get install postgresql-9.4 postgresql-contrib-9.4 postgresql-server-dev-9.4 تثبيت Postgis اضافة قبل ذالك ما نحتاج له apt-get install build-essential libxml2-dev libproj-dev libjson0-dev libgeos-dev xsltproc docbook-xsl docbook-mathml libgdal-dev تحميل النسخة الاخيرة wget http://download.osgeo.org/postgis/source/postgis-2.2.2.tar.gz فك الضغط عليه tar xfz postgis-2.2.2.tar.gz cd postgis-2.2.2 تثبيت ./configure make make install ldconfig make comments-install عمل اختصار لتطبيقات سنحتاجها ln -sf /usr/share/postgresql-common/pg_wrapper /usr/local/bin/shp2pgsql ln -sf /usr/share/postgresql-common/pg_wrapper /usr/local/bin/pgsql2shp ln -sf /usr/share/postgresql-common/pg_wrapper /usr/local/bin/raster2pgsql تثبيت pgRouting تثبيت ما سنحتاجه apt-get install libboost-graph-dev cmake subversion git libcgal-dev تحميل النسخة الاخيرة wget https://github.com/pgRouting/pgrouting/archive/pgrouting-2.2.3.tar.gz فك الضغط والدخول للمجلد التطبيق tar xfz pgrouting-2.2.3.tar.gz cd pgrouting-pgrouting-2.2.3 تثبيت mkdir build cd build cmake .. make make install نثبيت osm2pgsql تثبيت ما سنحتاجه apt-get install make cmake g++ libboost-dev libboost-system-dev libboost-filesystem-dev libexpat1-dev zlib1g-dev libbz2-dev libpq-dev libgeos-dev libgeos++-dev libproj-dev lua5.2 liblua5.2-dev تحميل ودخول المجلد git clone git://github.com/openstreetmap/osm2pgsql.git cd osm2pgsql تصدير خرائط openstreetmap لقواعد البيانات الدخول باسم مستخدم قواعد البيانات postgresql su postgres اضافة قاعدة بيانات واضافة لها خوارزميات pgRouting postGIS createdb gis psql -d gis -c 'CREATE EXTENSION postgis; CREATE EXTENSION pgrouting ;CREATE EXTENSION hstore;' تحميل نسخة من ملفات openstreetmap، لهذه الغاية. استعمل http://download.geofabrik.de/index.html وساقوم بتحميل خريطة اسبانيا wget http://download.geofabrik.de/europe/spain-latest.osm.pbf تصدير الملفات لقواعد البيانات osm2pgsql --create --database gis spain-latest.osm.pbf هذا الاخير يأخذ وقت طويل والناتج   تصدير احتساب الطرقات لقواعد البيانات تثبيت ما نحتاجه apt-get install libexpat1-dev expat تحميل ودخول التطبيق git clone https://github.com/pgRouting/osm2pgrouting.git cd osm2pgrouting تثبيت cmake -H. -Bbuild cd build/ make make install تغيير الملفات من pbf الى osm wget http://m.m.i24.cc/osmconvert64 && mv osmconvert64 osmconvert && chmod 700 osmconvert ./osmconvert spain-latest.osm.pbf &gt; spain-latest.osm انشاء قواعد البيانات الخاصة بحساب الطرقات su postgres createdb routing psql -d routing -c 'CREATE EXTENSION postgis; CREATE EXTENSION pgrouting ;CREATE EXTENSION hstore;' تصدير المعلومات cp osm2pgrouting/mapconfig_for_cars.xml mapconfig.xml osm2pgrouting --f spain-latest.osm --conf mapconfig.xml --dbname routing --username postgres --password postgres --clean  

mohammed

mohammed

 

تثبيت NGINX, MariaDB و PHP 7 في دبيان 8

اضافة بعض الامن لخادم Mariadb في هذه الفرصة سيتم التطرق لشرح تثبيت نظام خادم ويب Nginx بقواعد بيانات Mariadb وخادوم Nginx . NGINX هو خادوم ويب يستعمل بكثرة في المواقع التي لها تدفق كبير من الزوار مثل تمبلر و فيسبوك ....، يعرف بقوت استجابته والاستقرار Mariadb نسخة قواعد البيانات التي ظهرت بعد شراء Sun من طرف شركة Oracle التي كانت تقوم بتطوير Mysql، وتغيير هذه الاخيرة رخصة التطبيق ليصبح ليس مفتوح المصدر ، يذكر ان ويكيبيديا غيرت كل خوادمها Mysql ب Mariadb، PHP7 افضل تحكم واستقرار في النسخة الجديدة والتي تعرف انها 25% اسرع من النسخ القديمة أعداد الخادم فتح ملف المستدوعات vim /etc/apt/sources.list تغيير المستدوعات #Stable deb http://mirrors.kernel.org/debian/ jessie main contrib non-free deb-src http://mirrors.kernel.org/debian/ jessie main contrib non-free deb http://security.debian.org/ jessie/updates main contrib non-free deb-src http://security.debian.org/ jessie/updates main contrib non-free deb http://mirrors.kernel.org/debian/ jessie-updates main contrib non-free deb-src http://mirrors.kernel.org/debian/ jessie-updates main contrib non-free deb http://mirrors.kernel.org/debian/ jessie-backports main contrib non-free deb-src http://mirrors.kernel.org/debian/ jessie-backports main contrib non-free #NGINX deb http://nginx.org/packages/mainline/debian/ jessie nginx deb-src http://nginx.org/packages/mainline/debian/ jessie nginx #php7 deb http://packages.dotdeb.org jessie all deb-src http://packages.dotdeb.org jessie all #MariaDB deb [arch=amd64,i386] http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.1/debian jessie main deb-src http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.1/debian jessie main تحديث وتثبيت apt-get update apt-get upgrade apt-get install software-properties-common python-software-properties -y اضافة المفاتيح لكل من nginx،php و Mariadb cd /tmp wget http://nginx.org/keys/nginx_signing.key apt-key add nginx_signing.key wget https://www.dotdeb.org/dotdeb.gpg apt-key add dotdeb.gpg apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db تثبيت الخادم apt-get update apt-get install nginx mariadb-server libclass-dbi-mysql-perl php7.0-fpm php7.0-curl php7.0-gd php7.0-pspell php7.0-intl php7.0-mysql php7.0-imap php7.0-recode php7.0-snmp php7.0-tidy php7.0-opcache php7.0-json اضافة بعض الامن لخادم Mariadb mysql_secure_installation وبهذا نحصل على خادم لبدأ استعماله في المشاريع التي تتعلق بمواقع المبرمجة ب php والتي تستعمل نضام قواعد البيانات Mysql او MariaDb

mohammed

mohammed

  • احصائيات المدونات

    1
    اجمالي المدونات
    20
    اجمالي التدوينات