نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
iptables
هي أداة قوية تُستخدم لتكوين جدار الحماية المدمج لـ Linux-kernel. يأتي مثبتًا مسبقًا على معظم توزيعات Ubuntu ، ولكن إذا كنت تستخدم إصدار Ubuntu مخصصًا أو تعمل داخل حاوية ، فمن المرجح أن تحتاج إلى تثبيته يدويًا.
sudo apt-get install iptables iptables-persistent
بعد التثبيت ، إذا تم سؤالك عما إذا كنت تريد حفظ قواعدك الحالية ، فلا يهم في الوقت الحالي لأنك ستقوم بإزالة أو إنشاء قواعد جديدة لاحقًا.
يمكنك استخدام netcat
الأمر (على كمبيوتر مختلف عن الخادم الخاص بك) لاختبار أي من المنافذ مفتوحة أو مغلقة.
nc -z -w5 -v SERVER_IP PORT
nc
هو الأمر netcat.-z
فقط أرسل حزمة بدون حمولة.-w5
انتظر حتى 5 ثوان للرد.-v
وضع مفصل.SERVER_IP
بعنوان الخادم الخاص بك.PORT
المنفذ الذي تريد اختباره إذا كان مفتوحًا (على سبيل المثال 22
).على خادمك ، يمكنك استخدام netstat
الأمر لمعرفة المنافذ التي تستمع حاليًا للاتصالات.
sudo netstat -tulpn
ملاحظة: على الرغم من netstat
أنه من السهل العثور على المنافذ التي ترغب في العمل معها ، يجب أن تكون على دراية بالتطبيقات التي قمت بتثبيتها حاليًا على الخادم الخاص بك والمنافذ التي تستمع إليها ، ليس عليك السماح لكل منفذ تجده في netstat
الإخراج .
sudo iptables -A INPUT -p tcp -m tcp --dport 22 --m geoip --src-cc PE -j ACCEPT
-A INPUT
إضافة قاعدة إلى INPUT
السلسلة ، السلسلة هي مجموعة من القواعد ، والقواعد التي نستخدمها أكثر في هذا الدليل ستكون INPUT
، OUTPUT
و PREROUTING
.-p tcp
تعيين tcp
كبروتوكول ستنطبق عليه هذه القاعدة ، يمكنك أيضًا استخدام بروتوكولات أخرى مثل udp
، icmp
أو all
.-m tcp
استخدم tcp
الوحدة. iptables
يدعم ميزات إضافية عبر الوحدات النمطية ، بعضها يأتي بالفعل مثبتًا مسبقًا مع iptables
البعض الآخر ، مثل geoip
الوحدة النمطية.--dport 22
--
تشير الأوامر التي تبدأ بـ إلى خيارات إضافية للوحدة النمطية المستخدمة سابقًا ، في هذه الحالة سنخبر tcp
الوحدة بأن تنطبق فقط على المنفذ 22
.-m geoip
استخدم geoip
الوحدة. سيحد من الحزم على أساس كل بلد (مزيد من المعلومات في الخطوة 5).--src-cc PE
أخبر geoip
الوحدة النمطية بقصر الحزم الواردة على الحزم الواردة من بيرو. لمزيد من رموز البلدان ابحث عنها ISO 3166 country codes
على الإنترنت.-j ACCEPT
و -j
حجة تقول iptables
ما يجب القيام به إذا كانت العبوة تطابق القيود المحددة في الحجج السابقة. في هذه الحالة ستكون ACCEPT
هذه الحزم ، والخيارات الأخرى REJECT
، DROP
والمزيد. يمكنك العثور على المزيد من الخيارات من خلال البحث iptables jump targets
على الإنترنت.أدرج جميع القواعد.
sudo iptables -L
قم بإدراج جميع الأوامر التي تم استخدامها لإنشاء القواعد المستخدمة حاليًا ، وهي مفيدة لتحرير القواعد أو حذفها.
sudo iptables -S
لحذف قاعدة معينة ، اختر قاعدة sudo iptables -S
واستبدل -A
بها -D
.
# -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
sudo iptables -D INPUT -p tcp -m tcp --dport 22 -j ACCEPT
أدرج جميع القواعد المرقمة في INPUT
السلسلة.
sudo iptables -L INPUT --line-numbers
حذف قاعدة مرقمة.
sudo iptables -D INPUT 2
لمسح جميع القواعد.
sudo iptables -F
تحذير: قد تفقد الاتصال إذا تم الاتصال بواسطة SSH .
امسح القواعد فقط في OUTPUT
السلسلة.
sudo iptables -F OUTPUT
سماح SSH
على eth0
واجهة
sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-i eth0
تطبيق القاعدة على واجهة معينة ، للسماح لأي واجهة بإزالة هذا الأمر.لتحديد الحزم الواردة إلى IP معين (أي 10.0.3.1/32
).
sudo iptables -A INPUT -i eth0 -s 10.0.3.1/32 -p tcp -m tcp --dport 22 -j ACCEPT
-s 10.0.3.1/32
يحدد IP / شبكة فرعية للسماح بالاتصالات من.تعيين قواعد السلسلة الافتراضية.
تحذير: قبل المتابعة ، تأكد من أنك قمت بتطبيق قواعد SSH الصحيحة إذا كنت تعمل على خادم بعيد .
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
-P INPUT DROP
يرفض جميع الحزم الواردة (أي لن يتمكن أحد من الاتصال بخوادمك قيد التشغيل مثل Apache و SQL وما إلى ذلك).-P FORWARD DROP
يرفض جميع الحزم المعاد توجيهها (أي عندما تستخدم نظامك كموجه).-P OUTPUT ACCEPT
يسمح لجميع الحزم الصادرة (أي عند تنفيذ HTTP
طلب).السماح لجميع حركة المرور على واجهة الاسترجاع ( مستحسن ).
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
احفظ iptables
القواعد الحالية .
sudo netfilter-persistent save
sudo netfilter-persistent reload
إذا كنت تعمل داخل حاوية ، netfilter-persistent
فمن المرجح ألا يعمل الأمر ، لذلك تحتاج إلى إعادة تكوين iptables-persistent
الحزمة.
sudo dpkg-reconfigure iptables-persistent
السماح باستعلامات DNS.
sudo iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
sudo iptables -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
استخدام state
وحدة للسماح RELATED
و ESTABLISHED
الحزم الصادرة.
sudo iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
السماح للمنافذ المطلوبة ؛ في هذه الحالة ، HTTP
الموانئ.
sudo iptables -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
المزيد من المنافذ التي قد ترغب في استخدامها.
FTP
: برنامج التعاون الفني في المنفذ 21HTTPS
: TCP في المنفذ 443DHCP
: UDP في المنفذ 67NTP
: UDP في المنفذ 123ملاحظة: إذا كنت تريد السماح apt-get
فقد يكون من الضروري السماح FTP
وHTTPS
.
اسمح لحركة المرور المرتجعة فقط بالاتصالات RELATED
بالفعل ESTABLISHED
( يُنصح بذلك لأنه يلزم أحيانًا الاتصال ثنائي الاتجاه).
sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
السماح بطلبات ping من الخارج.
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
sudo iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
إعادة توجيه حركة المرور على eth0
المنفذ 2200
إلى 10.0.3.21:22
(مفيد إذا كنت تريد فضح خادم SSH قيد التشغيل داخل الحاوية).
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2200 -j DNAT --to-destination 10.0.3.21:22
إذا نجحت في تسجيل الدخول إلى الخادم الخاص بك باستخدام SSH ، فسيتم إنشاء اتصال مستمر (أي عدم وجود اتصالات جديدة حتى إذا كنت متصلاً لأكثر من ساعة واحدة). إذا فشلت وحاولت تسجيل الدخول مرة أخرى ، فسيتم إنشاء اتصال جديد. سيؤدي هذا إلى منع محاولات تسجيل الدخول إلى SSH المستمرة عن طريق الحد من الاتصالات الجديدة لكل ساعة.
sudo iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
sudo iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 3600 --hitcount 4 -j DROP
أعد توجيه جميع الطلبات على المنفذ 443
إلى المنفذ 4430
(مفيد إذا كنت ترغب في الربط بالمنفذ 443
بدون root
).
sudo iptables -t nat -A PREROUTING -i ens3 -p tcp --dport 443 -j REDIRECT --to-port 4430
sudo iptables -A INPUT -p tcp -m tcp --dport 4430 -m geoip --src-cc PE -j ACCEPT
ens3
واجهة الشبكة.-m geoip
وحدة كتلة البلد (انظر الخطوة 5).تحذير: لا تستخدم lo
، سيتجاهل نظام التشغيل جميع الحزم المعاد توجيهها إلى واجهة الاسترجاع .
xtables-addons
يمكنك تثبيت xtables-addons
الوحدة النمطية باستخدام طرق مختلفة ، لا تتردد في استخدام طريقة التثبيت التي تناسبك.
التثبيت باستخدام apt-get
.
sudo apt-get install xtables-addons-common
التثبيت باستخدام module-assistant
.
sudo apt-get install module-assistant xtables-addons-source
sudo module-assistant --verbose --text-mode auto-install xtables-addons
التثبيت من المصدر.
sudo apt-get install git bc libncurses5-dev libtext-csv-xs-perl autoconf automake libtool xutils-dev iptables-dev
git clone git://git.code.sf.net/p/xtables-addons/xtables-addons
cd xtables-addons
./autogen.sh
./configure
make
sudo make install
بناء قاعدة بيانات "البلدان".
sudo apt-get install libtext-csv-xs-perl unzip
sudo mkdir /usr/share/xt_geoip
sudo /usr/lib/xtables-addons/xt_geoip_dl
sudo /usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip *.csv
sudo rm GeoIPCountryCSV.zip GeoIPCountryWhois.csv GeoIPv6.csv
إعادة تشغيل النظام الخاص بك.
sudo reboot
بعد xtables-addons
التثبيت بنجاح ، وبعد إعادة التشغيل الأولى ، depmod
لن يعمل تشغيل حظر البلد وإلا فلن يعمل بشكل صحيح (هذا مطلوب للمرة الأولى فقط).
sudo depmod
أنشئ برنامجًا نصيًا /etc/cron.monthly/geoip-updater
لتحديث geoip
قاعدة البيانات شهريًا.
#!/usr/bin/env bash
# this script is intended to run with sudo privileges
echo 'Removing old database---------------------------------------------------'
rm -rf /usr/share/xt_geoip/*
mkdir -p /usr/share/xt_geoip
echo 'Downloading country databases-------------------------------------------'
mkdir /tmp/geoip-updater
cd /tmp/geoip-updater
/usr/lib/xtables-addons/xt_geoip_dl
echo 'Building geoip database-------------------------------------------------'
/usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip *.csv
echo 'Removing temporary files------------------------------------------------'
cd /tmp
rm -rf /tmp/geoip-updater
جعل /etc/cron.monthly/geoip-updater
الملف القابل للتنفيذ.
sudo chmod +x /etc/cron.monthly/geoip-updater
ملاحظة: إذا كنت تتلقى iptables: No chain/target/match by that name
خطأ عند محاولة تطبيق geoip
قاعدة ، فمن المحتمل أنه xtables-addons
لم يتم تثبيت بشكل صحيح. جرب طريقة تثبيت أخرى.
حظر جميع الحزم الواردة من الصين وهونغ كونغ وروسيا وكوريا.
sudo iptables -A INPUT -m geoip --src-cc CN,HK,RU,KR -j DROP
السماح بالحزم الواردة على المنفذ 80
من كل مكان باستثناء البلدان المذكورة أعلاه.
sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
السماح بالحزم الواردة على ens3
الواجهة على المنفذ 22
فقط من بيرو (لا تتردد في اختيار رمز البلد الذي تريد قبول الحزم منه ، على سبيل المثال ، US
للولايات المتحدة).
sudo iptables -A INPUT -i ens3 -p tcp -m tcp --dport 22 -m geoip --src-cc PE -j ACCEPT
السماح بالحزم الواردة على المنفذ 443
فقط من بيرو.
sudo iptables -A INPUT -p tcp -m tcp --dport 443 -m geoip --src-cc PE -j ACCEPT
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".
هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.
اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.
اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.
لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟
مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.
ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!
ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.
أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد