Tux

  • تدوينات
    20
  • تعليقات
    3
  • قراءات
    2135

التدوينات في هذه المدونه

mohammed

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

linux_vim_8.png.3eeb8eb004ee0223c9fcaa2b37922a50.png

فقط نحتاج إيقاف تفعيل فأرة الحاسوب كل مرة ندخل vim

:set mouse=

ويمكننا الحصول على كيفية النسخ واللصق

linux_vim_8_mouse.png.d6efa01669485cd7235d26d305fa3f1b.png

تحياتي وحتى معلومة آخرى

mohammed

احتجت هذه الأيام تصدير قواعد بيانات وتحويلها من نوعية علائقية 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

تحديث 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

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

هي أوامر لا يمكن نسيانها لأنها تستعمل من حين لآخر لمعرفة حجم مجلدات ومساحة القرص الصلب

حجم الملفات والمجلدات عبر أمر du

يعتبر من الأوامر السهلة التي تمكننا من معرفة حجم ملف او مجلد ويأتي مثبت في كل أغلب توزيعات لينكس

مثلا لمعرفة حجم ملف أو مجلد

#du -dsh /var/folder_or_file

-b [--bytes]: ليكون وحدة الحساب بايت.
-s [--sumarize]: لحساب فقط المجموع، عندما نقوم بإستعمال الأمر للمجلدات.
-h [--human-readable]: لوحدات سكان الأرض من نوعية  (1K, 234M, 2G)

معرفة مساحة القرص الصلب عبر أمر df

لمعرفة مساحة المستهلكة في القرص الصلب وكم بقي لنا للوصول إلى الاستعمال الشامل له يمكن ذالك عبر أمر

# df -h

سيقوم باسترجاع كل أقسام القرص الصلب ومساحتها والمساحة الكلية

 

mohammed

عندما نفكر في عمل نسخة احتياطية أو نقل الملفات بين خادمين نفكر دائما أن افضل إرسال سيكون عبر نظام sftp والذي يأتي مثبت في كل نظام عبر خادم ssh ،و بطبعه يرسل المعلومات مشفرة بين الخادمين، و المؤكد انه لا يمكن لأي احد أخذ المعلومات عبر  رجل في المنتصف – Man in The Middle – ، لكن تشفير ssh يتوسط بين المرسل والمستقبل لذالك أي تغيير في المتلقي يضمن الحصول على المعلومات دون عناء من المهاجم.والحل
IronSFTP هو بديل مطابق ل sftp ويعمل عبر الأوامر ليحل المشكلة المطروحة سابقا،ف   IronSFTP يستعمل التشفير حتى النهاية -End-to-end encryption- ويقوم بتشفير الملف وإرساله للمستقبل مشفرة لكي يتم أزالت التشفير عليه عند وصوله للخادم.

ironsftp-demo8.gif

الملفات المشفرة ومفاتيح التي تم توليدها من التطبيق متوافقة مع 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

جافا هي لغة برمجة وتحتاج لآلة جافا الافتراضية وهذا ما سنقوم بتثبيته في نظام دبيان ليمكن استعمال التطبيقات والخدمات التي تعامل مع هذه المنصة ، سأقوم باستعمال Geoserver لذالك احتاج آلة جافا للعمل.

Java8-Logo.jpg

تثبيت جافا 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

أجهزة التعقب والتتبع عبر نظام التموضع العالمي أو بصيغة أخرى GPS أصبحة لا تحصى في الوقت الراهن، وإضافة إلى ذالك كل الهواتف التي تحمل على متنها هذه الوحدة التي تمثل إضافة لا يمكن الاستغناء عنها ووحدات تضاف الى آردوينو او اجهزة آخرى، المجالات الذي يمكننا أن نستعمل فيه GPS هي كثيرة ومنها ما سنقوم بالتطرق له بالتحديد والذي لا يأخذ منها.

تعقب المركبات بنظام GPS

هي اجهره مخصص للمركبات من السيارات وسيارات الأجرة والشاحنات والدراجات إلى غير ذالك، ومنها ما يأتي متخصص في تركيب مركبة بتخصصات محدد ومنها ما يأتي للقيام بكل الأعمال، يمكننا أن نجد الكثير من الأجهزة وكل له مزاياه وعيوبه،

gps-tracker-tk103.jpg
تعقب الأشخاص بنظام GPS
هي أجهزة صغيرة موجهة للأشخاص من الأطفال وكبار السن. العائق الوحيد لهذه الأجهزة انها تحتاج ان يتم شحنها باستمرار وتأتي أيضا بزر إنظار في حالة الطوارئ وفي بعض الحالات سماعة وميكروفون للاتصال، في الوقت الراهن يمكن استعمال الهواتف لهذا الغرض ايضا باضافة تطبيق ويقوم مباشرة بإرسال الإحداثيات للخادم ليمكن معرفة تواجده في كل حين ووقت.
TK102.jpg

تثبيت خادم لتعقب الاجهزة 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/

traccar-GPS.png

mohammed

عندما يتم التكلم على الأمن من خلال الغموض (Security through obscurity)  فإننا نتخذ من الغموض تحكم بالثغرات الأمنية التي يمكن أن تظهر مع الوقت  أو الموجودة حاليا ولم تنطبق عيلنا بعد، ولتسهيل شرحه نأخذ بعين الاعتبار منافذ الشبكة فمثلا منفذ الاتصال عبر أنظمة لينوكس تعتمد على ssh، وبطبعة الحال فإن المنفذ المعتاد والتلقائي 22 وهذا يسمح للكل دون عبء أن يقوم بتجربة كل ما يريد دون أن يضيف بحث عن المنفذ للإنصال الذي اتخذناه.

باختصار فالأمن من خلال الغموض لا يقتصر فقط على المنافذ بل يتعدى لكي يحتوي أيضا بروتوكولات الاتصال والخوارزميات  وأكود المصدر للتطبيقات وغير ذالك. فكل شيء لا نفصح عن معلوماته وهناك صعوبة للحصول عليه ولو قليلة فلا يمكن لشخص آخر اتخاذه جزئا من تجربة يمكن أن تبوء بالنجاح.

في الغالب عدم تغير المنافذ سببه يرجع لعدة أسباب منها عدم الوعي المتسخدم أو شركات دون مسؤولية أو مدير لنظام sysadmin كسول.

  • فالأول لا يمكن أن نلومه بسبب انه ليس واعي بنظام قام بتثبيته أو وصف له ولا يعرف ما يجب تغيره للحصول على افضل أسلوب حماية، والواجب يتعلق به مباشرة بالبحث عن كيفية القيام بذالك أو طلبه لشركة التي أعطته  إياه .
  • الثاني يستصغر مستواه إلى مستوى دون الوعي والغير المسؤول عن نفسه وعن من قاموا بالثقة في مسؤوليته. فيتخذ من المستخدمين ذرعية وأن عليهم توخي الحضر عوض إصدار دليل للاستخدام الواعي أو  القيام بها شخصيا. فعمل نظام خالي من الشوائب ليس سهل لكن تسهيل تغير يحب لن يكون ضرورة وإعادة بيع انظمه موجودة يجب اتباعه دليل استخدام
  • مدير النظام الكسول فالتعبير يعبر عن العمل الشاق والذي سينهكه أو الكسل الناجم على تغيير شيء بسيط ، فمثلا سيكون عليه تغيره كل منافذ الخوادم العملاء برقم عشوائي وتذكره لإضافته في خادم المراقبة مع إرساله للعميل. وإذا اتصل العميل يطلب معلومات الإتصال عليه البحث عنه وتوصيله

تغير منفذ ssh

openssh.jpg

هو بسهولة تغير ملف واحد وإعادة تشغيل الخدمة

vim /etc/ssh/sshd_config

تغيير القيمة Port من 22 إلى اي رقم عشوائي حتى اقصي ما يمكن تحمله tcp 65535

Port 2225

وأخيرا وليس أخيرا أعادة التشغيل

/etc/init.d/ssh reload

ولكي نغلق الدائرة فالمستخدمين المعرفين أسمائهم في النظام فيجب أخفاءهم هم أيضا ، فمثلا عدم السماح بدخول مستخدم root مباشرة.

في الختام ليس الأمن من خلال الغموض حل يوقي من كل الأشياء لكن يخفف ويجبر الطرف الثاني عن البحث عليها والبحث عن كل نقطة قمنا بإخفاء معالمها .

 

mohammed

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

twilio_feepbx_1.png

معلومات Dialplan Manipulation Rules

Outbound Dial Prefix:  +

twilio_feepbx_2.png

وأخيرا في معلومات 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

twilio_feepbx_3.png

 

للحصول على الاتصال علينا إضافة خوادم السحابية واحدة تلوى الأخرى في 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

ضهور ثغرة جديدة وخروجها من الفرن (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

الكثير منا يتذكر OpenERP الذي كان مهيئ فقط لتخطيط موارد المؤسسة ERP فقط بوحدات غير مستقلة، بذالك التصميم المزعج، لكن بتحوله الى اسم آخر تغير مساره واصبح يضم اكثر من وحدة مستقلة ومنها ، إدارة المبيعات والمشتريات ،إدارة المخازن، نضام بيع للمخازن ومواقع ويب الى آخرى، هو في الاصل مفتوح المصدر  مبرمج بلغة بايثون، آخر تثبيت لي له كان يضم نظام POSBOX والذي يعمل كنظام نقطة بيع في المحلات التجارية

pos_hardware_03.png

 

تهيئة الخادم

تثبيت قواعد البيانات 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 يمكننا ان نصل الى صفحة البداية وفي اول وصول سيطلب منا اسم المستخدم وكلمة المرور لقواعد البيانات

 

odoo-database.png

عند ملء المعلومات نحصل على صفحة تثبيت الوحدات يمكننا تثبيت ما نحتاج

odoo-app.png

وحدة نقطة البيع

odoo-tpv.png

mohammed

السلام عليكم ورحمة الله وبركاته

الكثير من اذاعات الرديوا عليها ألا تبقى في عصر 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

icecast-streaming-media-server-airtime-login.png

تعديل ملفات الخادم والتحكم به

icecast-streaming-media-server-airtime.png

 

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

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
اقتباس

تغيير somepassword بكلمة المرور الخاصة ب root التي قمنا بتثبيت بها قواعد البيانات Mysql

إضافة عناصر التحكم ل 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

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

zimbra1.png

عند الوصول إلى معلومات الخادم نضغط  رقم 7 وبعدها رقم 4 لتغير كلمة المرور ل Admin ونقوم بحفض المعلومات عبر كتابة yes وبعدها زر دخول

zimbra2.png

سيقوم بحفض المعلومات في ملف وسيقوم بعمل مفاتيح ssl وتفعيل الخدمات

عند الانتهاء يمكننا الدخول للخادم zimbra

zimbra-client.png

لتغير أو إضافة المستخدمين عبر منفذ 7071

zimbra-administration.png

mohammed

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

pac-manager.jpeg

mohammed

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

المشروع هو الحصول على قاعدة بيانات بخارطة بلد تمكننا من تغييرها و البحث فيها واحتساب الطريق الافضل للوصول لمكان معين، كل ما سنستعمله هو تطبيقات مفتوحة المصدر وخرائط ايضا مفتوحة المصدر. ما نحتاجه في اول الامر قواعد بيانات مستقرة ومفتوحة المصدر وهذا يعطيه لنا

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

هذا الاخير يأخذ وقت طويل والناتج

qgis_spain.png

 

تصدير احتساب الطرقات لقواعد البيانات

تثبيت ما نحتاجه

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

اضافة بعض الامن لخادم 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