نحوه پیدا کردن فایل‌های حجیم در سرورهای لینوکس از طریق SSH

نحوه پیدا کردن فایل‌های حجیم در سرورهای لینوکس از طریق SSH

4.1kviews

در مرکز آموزش زاگریو قصد داریم به بررسی نحوه پیدا کردن فایل‌های حجیم در سرورهای لینوکس از طریق SSH رسیده و دستورات آن را به شما بگوییم.

دستورات لازم | بررسی نحوه پیدا کردن فایل‌های حجیم در سرورهای لینوکس

دستور خاصی جهت پیدا کردن فایل‌های حجیم در سیستم عامل‌های لینوکس وجود ندارد، با این حال شما می‌توانید با استفاده از دستور find به همراه برخی از امکانات Shell به مقصود خود دست یابید.

SSH

  • در توزیع های RedHat / CentOS / Fedora از دستور زیر استفاده کنید:

"find {/path/to/directory/} -type f -size +{size-in-kb}k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

  • برای پیدا کردن فایل‌های بیش از ۵۰MB در پوشه فعلی از دستور زیر استفاده کنید:

$ find . -type f -size +50000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

  • جهت جستجو در پوشه /var/log/ از دستور زیر استفاده کنید:

# find /var/log -type f -size +100000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

  • در توزیع‌های Ubunto / Linux از دستور زیر استفاده کنید:

find {/path/to/directory} -type f -size +{file-size-in-kb}k -exec ls -lh {} \; | awk '{ print $8 ": " $5 }'

  •  برای جستجو در پوشه فعلی:

$ find . -type f -size +10000k -exec ls -lh {} \; | awk '{ print $8 ": " $5 }'

  • نمونه خروجی:

./.kde/share/apps/akregator/Archive/http___blogs.msdn.com_MainFeed.aspx?Type=AllBlogs.mk4: 91M
./out/out.tar.gz: 828M
./.cache/tracker/file-meta.db: 101M
./ubuntu-8.04-desktop-i386.iso: 700M
./MSH/out/mp3/Shadmani: 230M

  • اس اس اچ
  • دستورات فوق فایل‌هایی را که بیش از ۱۰۰۰۰ کیلوبایت حجم دارند را نمایش می‌دهند.
  • جهت پیدا کردن کلیه فایل‌هایی که در پوشه Home هستند و حجم آن‌ها کمتر از ۵۰۰ بایت می‌باشد از دستور زیر استفاده کنید:

$ find $HOME -size -500b

یا

$ find ~ -size -500b

  • برای پیدا کردن فایل‌هایی که حجم آن‌ها دقیقا ۲۰ بلوک ۵۱۲ بایتی می باشد از دستور زیر استفاده کنید:

# find / -size 20

کانفیگ Name Server با استفاده از BIND روی CentOS 7

کانفیگ Name Server با استفاده از BIND روی CentOS 7

7.1kviews

در این مقاله می‌خواهیم به بررسی، کانفیگ Name Server با استفاده از BIND روی CentOS 7، بپردازیم و با شما در مورد مواردی مثل آماده‌سازی سرورها (سرور مجازی) برای کانفیگ Name Server، نصب BIND، صحبت کنیم.

BIND چیست و چه کاربردی دارد؟

BIND یکی از محبوبترین سرورهای DNS است که در شبکه اینترنت استفاده می‌شود. این سرور می‌تواند به عنوان یک server authoritative، server recursive و یا سرور ذخیره نام عمل کند و طیف وسیعی از ویژگی‌ها را پشتیبانی می‌کند.

در این آموزش ایجاد سرورهای اولیه و ثانویه BIND به عنوان یک authoritative name servers توضیح داده می‌شود. این روش برای name server عمومی یا خصوصی (سرور اختصاصی) مناسب است. با این حال name serverهای خصوصی internal معمولا شامل عناصر بازگشتی و ذخیره‌سازی برای تحلیل DNS محلی است.

 . . این مقاله را نیز به شما پیشنهاد می‌کنیم . .

راه اندازی DNSSEC در سرور BIND DNS

 

کانفیگ Name Server

بسیار تاکید می شود که name serverهای اولیه و ثانویه در شبکه ها و مکان‌های فیزیکی جداگانه قرار داشته باشند. این امر باعث می شود که اگر یکی از name server ها بنا به دلایلی همچون در دسترس نبودن سرور، شبکه و یا مشکلات دیتاسنتر در دسترس نبود name server دیگر در دسترس باشد.

تجهیزات مورد نیاز

• دو سرور ( اولیه و ثانویه)
• CentOS or Red Hat Enterprise Linux 7
• BIND 9
• یک دامین (به عنوان مثال zagrio.com)
• آدرس IP اولیه: ۱۹۲٫۰٫۲٫۱
• آدرس IP ثانویه: ۱۹۲٫۰٫۲٫۲

آماده‌سازی سرورها برای کانفیگ Name Server

هر دو شبکه و فایروال‌های host ها باید به ترافیک TCP و UDP از طریق پورت ۵۳ اجازه ورود دهند. درخواست‌های استاندارد DNS بیشتر از طریق پورت ۵۳ اتقاق می‌افتد. با این‌حال اگر حجم پاسخ بیشتر از ۵۱۲ بایت باشد ممکن است باعث DNSSEC شود که درخواست به پورت ۵۳ TCP فرستاده می‌شود.

آماده‌سازی سرورها برای کانفیگ Name Server 
انتقال‌های Zone بین name server های اولیه و ثانویه از طریق پورت ۵۳ صورت می‌گیرد.

firewall-cmd --permanent --zone=public --add-port=53/tcp
firewall-cmd --permanent --zone=public --add-port=53/udp
firewall-cmd --reload

نصب BIND

BIND بصورت پیش‌فرض در مخازن CentOS موجود است. bind-utils برای تست و عیب‌یابی مسائل مربوط به DNS بسیار مفید است.

نصب BIND

yum -y install bind bind-utils

کانفیگ سرور اولیه

اولین قدم اصلاح فایل named.conf است که معمولا به عنوان یک name server برای ذخیره‌سازی کانفیگ می‌شود.

nano /etc/named.conf

برای اینکه کانفیگ Name Server به درخواستهای خارجی پاسخ دهد، named process به یک IP آدرس Public نیاز دارد.تمامی IP آدرس‌های مقداردهی شده به سرور متصل خواهند شد.

...
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
...

نیاز است که کانفیگ Name Server ها به تمام درخواست‌های مناطق معتبر پاسخ دهند اما به صورت پیش‌فرض اجازه ندارند که درخواست‌ها را بین مناطق انتقال دهند.

...
allow-query { any; };
allow-transfer { none; };
recursion no;
...

در اینجا یک فایل named.conf کامل برای تنظیم کردن سرویس‌های authoritative name داریم.

options {
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
allow-transfer { none; };
recursion no;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

مسیر فایل‌های Zone و جزئیات Zone باید در فایل etc/named.rfc1912.zones/ اضافه شود.

nano /etc/named.rfc1912.zones

قسمت نام دامین باید با مسیر فایلی که حاوی اطلاعات Zone است ایجاد شود که این منطقه اصلی و آدرس IP سرور دوم است.

zone "zagrio.com" IN {
type master;
file "zagrio.com";
allow-transfer { 192.0.2.2; };
};
};

این فایل را ذخیره کنید و سپس ببندید.

ایجاد یک Zone File برای کانفیگ Name Server

اکنون یک Zone File واقعی می‌توان ایجاد کرد:

nano /var/named/zagrio.com

Zone File شامل تنظیمات دامین و هر رکورد منبع است. در اینجا مثالی از یک دامنه با رکوردهای منبع آن آورده شده است.

$TTL 3H
@ IN SOA @ hostmaster.zagrio.com. (
۰ ; serial
۳H ; refresh
۱H ; retry
۱W ; expire
۳H ) ; minimum
@ IN NS ns1.zagrio.com.
@ IN NS ns2.zagrio.com.
@ IN A 192.0.2.10
@ IN MX 10 host2.zagrio.com.
@ IN MX 20 host3.zagrio.com.
ns1 IN A 192.0.2.1
ns2 IN A 192.0.2.2
host1 IN A 192.0.2.10
host2 IN A 192.0.2.11
host3 IN A 192.0.2.12
www IN CNAME zagrio.com.
mail IN CNAME host2.zagrio.com.
gopher IN CNAME host3.zagrio.com.
zagrio.com. IN TXT "v=spf1 ip4:203.0.113.42 include:_spf.google.com ~all"

@ در فایل Zone نام دامین را نشان می‌دهد. در این مثال @ معادل دامین zagrio.com است. علامت . در انتهای نام دامین برای شناسایی انتهای نام دامین در Zone File استفاده می‌شود.
Zone File را ذخیره کنید و از ویرایشگر خارج شوید. قبل از شروع سرویس شما باید تائید کنید که در فایل named.conf هیچ خطایی وجود ندارد.

named-checkconf

اکنون BIND named می تواند فعال و start شود.

systemctl enable named
systemctl start named

کانفیگ Name Server ثانویه:
به سرور ثانویه log in کنید و etc/named.conf/ را برای مطابقت با سرور اصلی اصلاح کنید.

nano /etc/named.conf

به قسمت named.conf. در کانفیگ سرور اولیه مراجعه کنید. هنگامی که فایل update شد نیاز است که etc/named.rfc1912.zones/ در zone سرور ثانویه اضافه شود.

zone "zagrio.com" IN {
type slave;
file "slaves/zagrio.com";
masters { 192.0.2.1; };
};

فایل zone را ذخیره کنید و از ویرایشگر خارج شوید. قبل از شروع سرویس باید مطمئن شوید که هیچ خطایی در فایل named.conf وجود ندارد.

named-checkconf

اکنون فرآیند name ثانویه در هنگام بوت می تواند enable و start شود.

systemctl enable named
systemctl start named

تست DNS Resolution

با دستور dig زیر می‌توان هردو name server را برای برگرداندن رکوردهای دامین بر روی سرور فعال کرد.

dig any zagrio.com @localhost

شما باید نتایجی که از یک host راه دور که قادر است به name serverها متصل شود را بازیابی کنید و تطابق دهید. این اتصال اعلام می‌شود و قوانین فایروال در اینجا به کار برده می شود.

dig any zagrio.com @192.0.2.1
dig any zagrio.com @192.0.2.2

اصلاح Zone File برای کانفیگ Name Server

Zone File را می‌توان در name serverهای اولیه تغییر داد. هنگامی که رکوردهای منبع حذف، اضافه و یا اصلاح می‌شوند، شما باید یه یاد داشته باشید که شمار سریال zone را افزایش دهید. در ادامه شماره سریال Zone مربوط به zagrio.com نشان داده می‌شود.

اصلاح Zone File برای کانفیگ Name Server

...
@ IN SOA @ hostmaster.zagrio.com. (
۰ ; serial
۳H ; refresh
...

اگر شماره سریال از صفر شروع شود، مقدار بعدی ۱ خواهد بود.

...
@ IN SOA @ hostmaster.zagrio.com. (
۱ ; serial
۳H ; refresh
...

هنگامی‌که شماره سریال Zone افزایش می‌یابد، نیاز است که Zone مجددا بارگزاری شود که بدون نیاز به restart کردن named process می‌توان این‌کار را انجام داد.

rndc reload example.com

reload همچنین انتقال Zoneبه سرور ثانویه را آغاز می‌کند.

Reverse DNS

Reverse DNS نام دامنه را به IP آدرس تبدیل می‌کند. برخی از سرویس‌ها مانند SMTP یا Kerberos ممکن است به این سرویس نیاز داشته باشند.
در اکثر موارد در مورد فضای IP آدرس‌های عمومی، reverse DNS توسط ارائه‌دهنده خدمات مدیریت IP subnets به کار گرفته می‌شود. پیشنهاد می‌شود که اگر نیاز به تنظیمات reverse DNS دارید با پشتیبانی ارائه‌دهنده خدمات تماس بگیرید.
در برخی شرایط ممکن است بخواهید reverse DNS برای یک subnet که به سمت سرور شما هدایت شده است را استفاده نمائید و یا ممکن است بخواهید که reverse DNS را به یک آدرس خصوصی یا شبکه داخلی متصل کنید در این شرایط یک دامین مخصوص به نام in-addr.arp برای ارائه این‌کار استفاده می‌شود.

Reverse DNS

برای زیر شبکه ۱۹۲٫۰٫۲٫۰/۲۴ Zone File 2.0.192.in-addr.arpa می‌شود و فرآیند پیکربندی برای یک Zone File نرمال همانند name server های اولیه و ثانویه است.

nano /var/named/2.0.192.in-addr.arpa

در اینجا یک مثال از رکوردهای PTR فایل Zone مربوط به ۲٫۰٫۱۹۲٫in-addr.arpa داریم:

$TTL 3H
@ IN SOA @ hostmaster.zagrio.com. (
۲ ; serial
۳H ; refresh
۱H ; retry
۱W ; expire
۳H ) ; minimum
@ IN NS ns1.zagrio.com.
@ IN NS ns2.zagrio.com.
۱ IN PTR ns1.zagrio.com.
۲ IN PTR ns2.zagrio.com.
۱۰ IN PTR host1.zagrio.com.
۱۱ IN PTR host2.zagrio.com.
۱۲ IN PTR host3.zagrio.com

عیب‌یابی مشکلات DNS

خطاهای نحوی در فایل‌های کانفیگ خیلی آسان نادیده گرفته می‌شوند. بنابراین همیشه توصیه می‌شود قبل از start یا restart کردن فرآیند named، دستور named-checkconf اجرا شود.

named-checkconf

وقتی خطایی رخ می دهد فایل named log اولین مکان برای شروع جستجو است. فایل log در CentOs در مسیر زیر یافت می‌شود:

/var/named/data/named.run

bind-utils شامل چندین منبع مانند dig، nslookup و host است که می‌توان به منظور درخواست‌های مستقیم در برابر authoritative name server از آن‌ها استفاده کرد. آن‌ها از نام دامین، authoritative server و در صورت تمایل از یک رکورد منبع به عنوان پارامتر استفاده می‌کنند.

dig mx zagrio.com @192.0.2.1

یک پرس‌و‌جو با authoritative name server رکوردهای منبع و Zone فعلی را بدون در نظر گرفتن caching یا TTL نشان می‌دهد.
آخرین نکته برای عیب‌یابی دامنه‌های ثبت شده بر روی اینترنت است که به منظور بررسی ثبت دامنه از authoritative name server است و اینکه نام دامنه منقضی نشده باشد.

whois zagrio.com

چگونه SNMP را روی CentOS نصب و کانفیگ کنیم؟

چگونه SNMP را روی CentOS نصب و کانفیگ کنیم؟

3.6kviews

در این مطلب، در زاگریو قصد داریم تا به بررسی این که چگونه SNMP را روی CentOS نصب و کانفیگ کنیم؟ بپردازیم و بررسی‌‌های لازم برای قبل از شروع و نصب را به صورت کامل توضیح دهیم.

SNMP چیست؟

SNMP یا Simple Network Management Protocol (پروتکل مدیریت ساده شبکه) به طور گسترده برای برقراری ارتباط و نظارت بر دستگاه‌های شبکه، سرورها و دستگاه‌هایی که از طریق IP ارتباط دارند، استفاده می‌شود. در اینجا مراحل نصب Simple Network Management Protocol را بر روی یک سرور CentOS 6.5 توضیح داده می‌شود که اجازه می‌دهد اطلاعات از سرور ما جمع‌آوری شده و آن‌ها را برای یک نرم‌افزار مدیریت SNMP در سروری دیگر ارسال می‌کند.

SNMP

بررسی‌های لازم قبل از شروع کردن:

•    این دستورالعمل‌ها برای نصب SNMP و انجام یک پیکربندی بسیار اساسی در نظر گرفته شده است.

•    من کار را از یک هسته مدیریت سرور CentOS 6.5 شروع می‌کنم و بعنوان Root وارد سیستم می‌شوم.

نصب SNMP و فواید SNMP:

نصب SNMP و فواید SNMP
نصب SNMP و برخی از فواید اختیاری SNMP به سادگی با اجرای یک دستور انجام می‌شود:
yum -y install net-snmp net-snmp-utils

افزودن پیکربندی اساسی برای Simple Network Management Protocol:

اکنون اجازه دهید فایل پیکربندی SNMP را که به صورت پیش فرض در /etc/snmp/snmpd.conf قرار دارد را به محل دیگری مانند /etc/snmp/snmpd.conf.orig منتقل کنیم.
mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.orig
اکنون یک /etc/snmp/snmpd.conf ایجاد می‌کنیم:
vim /etc/snmp/snmpd.conf

برای یادآوری ویرایش فایلها توسط vim لینک روبرو را مشاهده نمائید. New User Tutorial: Overview of the Vim Text Editor

متن زیر را در ادامه /etc/snmp/snmpd.conf جدید که ایجاد کردیم، وارد نمائید.
# Map 'idv90we3rnov90wer' community to the 'ConfigUser'
# Map '209ijvfwer0df92jd' community to the 'AllUser'
# sec.name source community
com2sec ConfigUser default idv90we3rnov90wer
com2sec AllUser default 209ijvfwer0df92jd
# Map 'ConfigUser' to 'ConfigGroup' for SNMP Version 2c
# Map 'AllUser' to 'AllGroup' for SNMP Version 2c
# sec.model sec.name
group ConfigGroup v2c ConfigUser
group AllGroup v2c AllUser
# Define 'SystemView', which includes everything under .1.3.6.1.2.1.1 (or .1.3.6.1.2.1.25.1)
# Define 'AllView', which includes everything under .1
# incl/excl subtree
view SystemView included .1.3.6.1.2.1.1
view SystemView included .1.3.6.1.2.1.25.1.1
view AllView included .1
# Give 'ConfigGroup' read access to objects in the view 'SystemView'
# Give 'AllGroup' read access to objects in the view 'AllView'
# context model level prefix read write notify
access ConfigGroup "" any noauth exact SystemView none none
access AllGroup "" any noauth exact AllView none none

متن بالا اطلاعات اساسی درمورد عملکرد هرخط از پیکربندی است. به طور خلاصه، ما در حال ایجاد دو سناریو در مورد SNMP ورژن۲C  هستیم.

نکته: SNMPv2c نسبت به SNMPv1 شامل برخی پیشرفت‌های امنیتی است اما از ساختار مدیریتی SNMPv1 استفاده می‌کند که اساس آن انجمن است. زمینه‌های پیشرفت آن شامل: نقشه حمل و نقل، انواع بسته‌های پروتکل و عناصر ساختار MIB است.

 

در سناریوی اول: ConfigUser به ConfigGroup اختصاص داده می‌شود و ممکن است فقط از مدل امنیتی SNMP 2C استفاده کند. ConfigGroup می‌تواند از SystemView استفاده کند، SystemView به دو زیرشاخه OID اختصاص داده می‌شود و همه این‌ها به فهرست SNMP با یک رمز و یک رشته انجمن منحصربه‌فرد idv90we3rnov90wer  اشاره می‌کنند.

در سناریوی دوم: همه کاربران به تمامی گروه‌ها اختصاص داده شده‌اند و فقط از مدل امنیتی SNMP 2C استفاده می‌کنند. تمامی گروه‌ها می‌توانند از AllView استفاده کنند. AllView به کل درخت OID اختصاص داده شده است و همه این‌ها به فهرست SNMP با یک رمز و یک رشته انجمن منحصربه‌فرد ۲۰۹ijvfwer0df92jd اشاره می‌کنند.

نکته مهم: مطمئن شوید که یک رشته انجمن منحصربه‌فرد را انتخاب کرده‌اید و آن را جایگزین رشته بالا که در مثال آمده کنید.  هر زمری را امن نگه دارید.

 

از vim خارج شوید و سرویس SNMP را با بارگذاری فایل پیکربندی جدید راه اندازی کنید.
service snmpd restart
هنگامی که سرور boot شد، snmp را برای شروع پیکربندی کنید:
chkconfig snmpd on

تست پیکربندی Simple Network Management Protocol:

اکنون اجازه دهید که پیکربندی و کانفیگ snmp را تست کنیم. دو دستور زیر را اجرا کنید :
تست پیکربندی SNMP
snmpwalk -v 2c -c idv90we3rnov90wer -O e 127.0.0.1
snmpwalk -v 2c -c 209ijvfwer0df92jd -O e 127.0.0.1

نکته: پورت پیش‌فرض برای snmp  پورت‌های ۱۶۱ و ۱۶۲ است. اگر می‌خواهید با Remote server به SNMP متصل شوید مطمئن شوید که در فایروال سرور شما پورت‌های مناسب باز است.
نتیجه اولین دستور شما باید حدود ۳۳ خط و شامل برخی از اطلاعات اساسی سیستم باشد. نتیجه دستورات دوم شما باید شامل اطلاعات بسیاری در مورد سیستم باشد و احتمالا حدود هزاران خط است.
نحوه بک‌ آپ‌ گیری و ریستور کردن بانک اطلاعاتی از طریق SSh

نحوه بک‌ آپ‌ گیری و ریستور کردن بانک اطلاعاتی از طریق SSh

3.8kviews

بک آپ گیری و ریستور کردن بانک اطلاعاتی روش‌های متفاوتی دارد، که در این مقاله قصد داریم از طریق ssh، این کار را انجام دهیم و به بررسی آن بپردازیم.

نحوه بک‌ آپ‌ گیری و ریستور کردن بانک اطلاعاتی از طریق SSh

برای این‌که بتوانید از بانک اطلاعاتی خود بک‌ آپ‌ گیری انجام دهید و یا ریستور بک‌ آپ را انجام دهید از طریق ssh به سرور خود لاگین نمائید.

بک‌ آپ‌ گیری

برای بک‌ آپ‌ گیری از دیتابیس دستور زیر را وارد کرده و Enter کنید:

 

mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql

برای ریستور کردن دیتابیس دستور زیر را وارد نمائید:

 

mysql -u root -p[root_password] [database_name] < dumpfilename.sql
در دستورات بالا در قسمت root_password باید پسورد دیتابیس موردنظر و در قسمت database_name نام دیتابیس و در قسمت dumpfilename.sql فایلی را که می‌خواهیم از آن بک‌آپ تهیه کنیم با ریستور کنیم را وارد می‌کنیم.

نحوه بک‌ آپ گرفتن کامل از سیستم با rsync

2.2kviews

در این مقاله می‌خواهیم با استفاده از دستور rsync تمامی مسیر / بجر چند فولدر خاص را منتقل کنیم. این روش نسبت به روش کپی کردن دیسک، که با دستور dd صورت می‌گیرد، بسیار مناسب‌تر است، زیرا اجازه می‌دهد از پارتیشن‌ها و فایل سیستم‌های متفاوت و سایزهای متفاوت دیسک بهره‌مند شویم.

نحوه بک‌ آپ گرفتن کامل از سیستم با rsync

همچنین از روش کپی کردن cp –a بهتر است زیرا کنترل بیشتری بر روی سطوح دسترسی، صفات و Access Control Lists و extended attributes به ما می‌دهد. تمامی روش‌های فوق برای کپی کردن یک سیستم در حال اجرا قابل استفاده است اما فایل‌هایی که در این مدت تغییر می‌کند ممکن است منتقل بشوند یا نشوند.

rsync

که این مورد برای برخی از نرم‌افزارهایی که با فایل‌های تغییر داده کار می‌کنند ممکن است مشکلی بوجود بیاورند. این روش همچنین برای مهاجرت از یک هارد دیسک به هارد دیسک دیگر و یا از یک سیستم عامل به سیستم عامل دیگر مناسب است.

با یک تک دستور

دستور زیر را تحت یک کاربر root اجرا کنید تا مطمئن شوید rsync به تمامی فایل‌های موجود و فایل‌های سیستمی می‌تواند دسترسی داشته باشد و مالکیت آن‌ها را حفظ کند.

# rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /path/to/backup/folder

با استفاده از سوئیچ aAX– این تنظیمات را انجام می‌دهیم که تمامی فایل‌ها در قالب فشرده شده به‌صورتی‌که تمامی لینک‌های نمادین فایل‌ها به حالت آرشیو منتقل می‌شوند. اطمینان داشته باشید که لینک‌های نمادین، دستگاه‌ها، سطوح دسترسی‌ها و مالکیت‌ها، تغییرات زمانی، ACL ها و ویژگی‌های توسعه تماما حفظ می‌شوند (با در نظر گرفتن این‌که سیستم عامل مقصد از این موارد پشتیبانی می‌کند).
سوئیج exclude- این اجازه را به شما می‌دهد تا مسیرهای مشخصی را نادیده بگیرید. برای مثال محتوای پوشه‌های dev, /proc, /sys, /tmp, /run در دستور فوق حذف شده‌اند. زیرا پوشه‌ها در هنگام بوت شدن سیستم لود می‌شوند (هرچند که آن‌ها حقیقتا ساخته نمی‌شوند). مسیر /lost+found یک مسیر مخصوص فایل سیستم است.

نکات مهم

  • اگر تمایل به بکاپ گرفتن از سیستم‌تان و مدیریت سرور بهترتان را در مسیری غیر از /mnt یا /media را دارید مطمئن شوید که آن‌ها در مسیر exclude وجود داشته باشند در غیر این‌صورت یک چرخه بی‌نهایت ایجاد خواهید کرد.
  • اگر مسیرهای مشخصی را در سیستم خود mount کرده‌اید، آنها را نیز باید از لیست Bound خود حذف کنید چرا که فقط لازم است یکبار محتوای آن‌ها کپی شود.
  • اگر از فایل swap هم استفاده می‌کنید اطمینان حاصل کنید که آن فایل‌ها در لیست استثناها باشند.
  • چنان‌چه بخواهید مسیر /home/ را منتقل کنید عموما این پوشه اطلاعات بیشتری به نسبت پوشه‌های سیستمی دارد. استثنا کردن یک تعداد از فایل‌های غیر نیاز مانند /home/*/.thumbnails/*, /home/*/.cache/mozilla/*, /home/*/.cache/chromium/*, /home/*/.local/share/Trash/* به شما کمک می‌کند که فضای کمتری اشغال کنید و اطلاعات مورد نیاز را منتقل نکنید که این مورد بسته به نرم‌افزارهای روی سستم ممکن است متفاوت باشد.
  • شما همچنین می‌توانید دستورات و سوئیچ‌های بیشتری را به rsync اضافه کنید. (جهت مشاهده لیست کامل این دستورات man rsync را کلیک کنید):
  • اگر از تعداد زیادی hardlink استفاده می‌کنید حتما دستور H- را اضافه کنید. این دستور به صورت پیش‌فرض به دلیل مصرف بالای حافظه رم غیرفعال است هرچند که در اکثر سیتسم‌های جدید مشکلی بوجود نمی‌آورد. خیلی از مسیرهای Hardlink در پوشه /usr/ قرار دارند.
  • ممکن است تمایل داشته باشد دستور –delete را به دستور اصلی خود اضافه کنید، چنان‌چه می‌خواهید چندین بار این دستور را بر روی پوشه بکاپ خود اجرا کنید. این سوئیچ به شما این اطمینان را می‌دهد مسیرها هیچگاه بصورت /* نشوند.
  • این مورد فقط بر روی فایل‌هایی که درون زیر پوشه‌های پوشه اصلی وجود دارند اتفاق می‌افتد اما بر روی فایل‌های موجود در پوشه اصلی اثری ندارد.
  • اگر از فایل‌هایی که بصورت هارد مجازی استفاده می‌شوند مانند virtual disks ، Docker images و مشابه آن شما باید دستور S- را استفاده کنید.
  • سوئیچ numeric-ids– این اجازه را به شما می‌دهد که ارتباط بین نام کاربری و نام گروه‌ها را غیرفعال کنید و به جای آنها از شناسه گروه‌ها و کابران برای انتقال استفاده کنید. این روش به شما این اطمینان را می‌دهد که در صورت انتقال بر روی SSH فایل سیتسم فعال شما بتواند به سیستم دیگری منتقل شود.
  • استفاده از سوئیچ info=progress2 — به جای v- پروسه و سرعت انتقال کپی کردن اطلاعات را به شما نشان می‌دهد.
  • اگر نیاز داشتید که بکاپ خود را بازیابی کنید از همان دستور rsync که در ابتدا استفاده کردید به کار ببرید فقط منبع و مقصد را باید معکوس نمائید.

نیازمندی‌های بوت شدن:

داشتن یک نسخه پشتیبان با قابلیت بوت شدن می‌تواند در مواقعی که سیستم خراب می‌شود یا پروسه آپدیت سیستم شما باعث خرابی سیستم‌تان می‌شود می‌تواند کاربردی باشد. این بکاپ همچنین به شما این اجازه را می‌دهد که شما بتوانید یک بستر تستی با مخازن تستی در اختیار داشته باشید و قبل از بروز رسانی سیستم اصلی خود، بروز رسانی را بر روی این سیستم تست نمائید.

اگر شما فایل‌های سیستمی را در پوشه‌ها یا پارتیشن‌های متفاوتی منتقل کرده‌اید و می‌خواهید آن‌ها را بوت کنید این روش به راحتی آپدیت کردن فایل /etc/fstab بر روی فایل تنظیمات bootloader خود است. که به راحتی با Edit کردن این فایل می‌توانید این کار را انجام دهید. در ادامه این تصور را داریم که شما به صورت کامل سیستم خود را بکاپ گرفته‌اید و بر روی یک هارد، یک درایو و یا یک پارتیشن دیگر آن‌ها را بازیابی کرده‌اید و سیستم بوت فعلی شما به درستی کار می‌کند و می‌خواهید که از روی بکاپ نیز بوت شما به درستی کار کند.

به‌روزرسانی fstab

پس از انتقال اطلاعات قبل از اینکه سیستم خود را Restart نمائید فایل fstab را باز کنید و تمام محتوای آن را حذف کنید و یک رکود پارتیشن بکاپ را مانند نمونه زیر در سیستم اضافه کنید.

به‌روزرسانی fstab

/dev/sdaX / ext4 defaults 0 1

به خاطر داشته باشید که شما باید مسیر صحیح و فایل سیستم صحیح را در مورد نمونه فوق مطابق نیاز خود اصلاح کنید.

به‌روزرسانی فایل تنظیمات bootloaderها:

در syslinux تنها کاری که لازم است این است که یک کپی از رکورد مورد نظر تهیه کرده و فقط مسیر درایو یا پارتیشن را تغییر دهید.

نکته: به جای ویرایش syslinux.cfg، شما می‌توانید در زمان بوت به صورت موقت منو را ویرایش کنید. وقتی که منو نشان داده می‌شود کلید تب را فشار دهید و ورودی‌های مربوطه را تغییر دهید. پارتیش‌ها از یک و درایوها از صفر شمارش می‌شوند.

برای Grub توصیه می‌شود که به صورت خودکار فایل‌های تنظیمات را ایجاد کنید. اگر نیاز دارید که تمامی فایل‌های Grub را در مسیری به غیر از /boot مانند مسیر /mnt/newroot/boot ، از دستور –boot-directory flag استفاده کنید.
همچنین اطمینان حاصل کنید که ردیف درج شده در /boot/grub/grub.cfg شناسه هارد دیسک (UUID) با پارتیشن جدید همخوانی دارد در غیر این‌صورت سیستم همچنان از سیستم قدیمی بوت می‌شود. با استفاده از دستور زیر می‌توانید UUID هر پارتیشن را پیدا کنید:

# lsblk -no NAME,UUID /dev/sdb3

پس از جابجا کردن پارتیشن مورد نظر خود، برای مشاهده کردن UUID هایی که Grub می‌تواند از روی آن‌ها بوت کند دستور زیر را استفاده کنید.

# grep UUID= /boot/grub/grub.cfg

اولین Boot:

تمامی مسیرهای موقتی حذف شده و پوشه‌هایی که در مسیر / خالی بودند با اطلاعات جدید پر می‌شوند. حالا شما می‌توانید با ویرایش کردن مجدد فایل /etc/fstab مسیرهای مورد و پارتیشن‌ها و mount point نظر خود را مجدد ایجاد نمائید.

نحوه Zip و Unzip کردن فایل‌ ها به وسیله SSH

نحوه Zip و Unzip کردن فایل‌ ها به وسیله SSH

7.6kviews

در این مطلب، قصد داریم تا در مورد نحوه Zip و Unzip کردن فایل‌ ها به وسیله SSH، در مرکز آموزش زاگریو صحبت کنیم، تا به شما در زیپ و آنزیپ کردن فایل‌هایتان کمک کنیم.

نحوه Zip و Unzip کردن فایل‌ ها به وسیله SSH

در ادامه به بررسی این مورد به وسیله SSH خواهیم پرداخت :

نحوه Zip و Unzip کردن فایل‌ ها به وسیله SSH

مطالعه این مقاله را نیز از دست ندهید : 

دستورات مفید SSH برای مدیریت CFS

1. ابتدا از طریق نرم‌افزار Putty و یا Terminal به سرور خود متصل شوید.

برای ZIP کردن فایل‌ها دستور زیر را تایپ کنید:

# zip -r myarchive.zip myfolder

این دستور یک آرشیو ZIP شده از تمامی فایل‌ها و sub directorie ها ایجاد می‌کند.

2.  به سرور می‌گوید که تمامی فایل‌ها و sub directorie را شامل شود.

  • myarchive.zip: نام پوشه ZIP شده که می‌خواهیم ایجاد کنیم.
  • myfolder: نام پوشه‌ای که می‌خواهیم آنرا ZIP کنیم.

3. برای UNZIP کردن فایل ها دستور زیر را استفاده نمائید:

# unzip myarchive.zip

myarchive.zip نام فایلی است، که می‌خواهیم آن را از حالت فشرده خارج کنیم.

WINDOWS BACKUP

بررسی کلی و آموزش Windows Backup

6.6kviews

در Windows Backup، هدف این است که در صورت خلل در سخت افزارتان و پاک شدن اطلات به بازیابی سریع و قابل اعتماد داده هایتان دسترسی داشته باشید و همیشه در اختیارتان باشند.

آموزش Windows Backup

بکاپ ویندوز سرور یا Windows Backup Wizard شامل پنجره‌های کنسول مدیریت مایکروسافت (MMC)، ابزارهای خط فرمان و cmdletهای Windows powershell است که راه‌حلی کامل برای تهیه بکاپ‌ها و بازیابی‌های مورد نیاز برای شما را فراهم می‌کند. شما با استفاده از بکاپ ویندوز سرور می‌توانید  از کل سرور یا از فایل‌ها، فولدرهای خاص، فضاهای انتخاب شده و … بک‌آپ تهیه کنید.

شما می‌توانید با استفاده از بکاپ ویندوز سرور، بکاپ را بر روی یک کامپیوتر محلی یا یک کامپیوتر راه دور ایجاد و مدیریت کنید. همچنین می‌توانید با استفاده از Backup Schedule Wizard در بکاپ ویندوز سرور به صورت اتوماتیک هر روز یا هرچند روز یک‌بار یک بکاپ برنامه‌ریزی شده را اجرا کنید.

خرید هاست

هنگام استفاده از Windows Server Backup باید این نکات را در نظر بگیرید:

  • برای استفاده از این کنسول باید کاربر شما حتما عضو گروه Administrator یا Backup Operators باشد.
  • برای ریکاوری کردن سیستم عامل یک ویندوز باید از System State Backup همان ورژن از ویندوز استفاده کنید. یعنی نمی‌توانید از System State Backup ویندوز ۲۰۰۸ برای ریکاوری OS ویندوز ۲۰۰۸R2 استفاده نمایید.

بکاپ‌گیری در Windows Backup را می‌توان به دو صورت تقسیم‌بندی کرد:

1. بکاپ‌گیری به صورت دستی (Manual Backup): شما می‌توانید با استفاده از Backup Once Wizard که در Windows Server Backup وجود دارد یک بکاپ بر روی کامپیوتر خود ایجاد کنید. همچنین با استفاده از فرمان‌های Wbadmin start backup و یا  Wbadmin start systemstatebackup و یاWindows PowerShell  cmdlets  برای windows Server یک بکاپ یک‌باره تهیه کنید.
2. بکاپ‌گیری به صورت اتوماتیک (Automatic Backup): شما می‌توانید با استفاده از گزینه Backup Schedule Wizard در Schedule Backup به صورت روزانه یا هر چند روز یک‌بار بکاپ تهیه کنید. همچنین می‌توانید با استفاده از فرمان‌های Wbadmin enable backup  و  Windows PowerShell cmdlets یک بکاپ زمان‌بندی شده ایجاد کنید.

معرفی انواع Backup ها در:

Full Server all volumes: از تمام Volume ها Backup تهیه می‌کند و شما می‌توانید از آن برای انواع ریکاوری‌ها استفاده کنید. از جمله Recovery System State و Bare metal Recovery

Critical volumes/Bare metal recovery: از این گزینه برای Backup گیری از اطلاعات لازم برای ریکاور کردن سیستم عامل استفاده کنید.

System Stateاین گزینه فقط از اطلاعات لازم برای ریکاور کردن System State dataها نسخه پشتیبان تهیه می‌کند. این اطلاعات عبارت‌اند از:
  • اطلاعات رجیستری
  • Boot fileها و فایل های سیستمی
  • اطلاعات مربوط به سرویس Certificate، اگر کامپیوتر شما یک Certificate Server باشد.
  • اطلاعات مربوط به Active Directory، اگر کامپیوتر شما عضو یک Domain باشد.
  • SYSVOL directory، اگر کامپیوتر شما یک DC باشد.
  • اطلاعات مربوط به Clusterها، اگر چنین اطلاعاتی وجود داشته باشد.

Individual volumes: فقط از یک Volume که شما تعیین می‌کنید، Backup می‌گیرد.

Folders or files

فقط از فایل‌ها و فولدرهایی که شما تعیین می‌کنید، Backup گرفته می‌شود.

قبل از شروع باید مشخص کنید که هر چند روز یک‌بار و در چه زمانی می‌خواهید برنامه بکاپ اجرا شود و مشخص کنید که بکاپ را کجا می‌خواهید ذخیره کنید؟ بر روی یک دیسک یا چند دیسک، بر روی یک پوشه اشتراکی راه دور و یا … و اینکه باید مشخص کنید که از کدام فایل یا فولدر می‌خواهید بک آپ تهیه کنید.
بعد از انتخاب و برنامه‌ریزی نوع بکاپ باید در مورد مکان ذخیره‌سازی بک آپ تصمیم بگیرید. برای انتخاب مکان ذخیره‌سازی بکاپ باید با انواع ذخیره‌سازی آشنایی داشته باشید که در ادامه توضیح داده شده است.

۱- Remote Shared Folder

شما می‌توانید هر دو نوع بکاپ را (On-Time Backup و Schedule Bacakup) را بر روی فولدر اشتراکی راه دور ذخیره کنید. اگر بکاپ را بر روی فولدر اشتراکی راه دور ذخیره کنید، بکاپ شما هر زمان که یک بکاپ جدید ایجاد می‌شود شما گزینه‌ای را ندارید که بتوانید انتخاب کنید بکاپ‌های متعددی ذخیره کنید. همچنین اگر بکاپی را که بر روی فولدر اشتراکی ایجاد کنید که از قبل بکاپی بر روی این قرار گرفته، اگر بکاپ‌گیری شما با شکست بخورد ممکن است که بکا‌پ‌های قبلی را هم از دست بدهید و هیچ بک آپی نداشته باشید.

۲- DVD – Other optical media or Removeable media

شما می‌توانید فقط On – Time Backup را بر روی Removable media یا Optical ذخیره کنید. همچنین می‌توان بکاپ ذخیره شده بر روی Removable media یا Optical را برای بازیابی تمام فضاها یا Bare Mental استفاده کنید و نمی‌توانید Aplicatios، فایل‌ها و حالت‌های سیستم را از روی بکاپ ذخیره شده در Optical or Removable media بازیابی کنید.

بکاپ ذخیره شده بر روی DVD ها فشرده خواهد بود و کمتر از بک آپ ذخیره شده بر روی هارد دیسک فضا اشغال می‌کند.

مدیریت سرور

۳- Internal Hard Disk:

شما می‌توانید  هر دو نوع بکاپ (On- Time Backup و Schedule Backup) را بر روی دیسک با فرمت NTFS و با جدول پارتیشن GUID با فرمت GPT ذخیره کنید. اگر شما Schedule Backup را بر روی دیسک ذخیره کنید شما یک گزینه مختص برای ذخیره‌سازی روی دیسک دارید بنابراین دیسکی که شما انتخاب می‌کنید برای ذخیره Schedule Backup اختصاص می‌یابد و در ویندوز اکسپلورر قابل مشاهده است.

۴- External Hard Disk:

اگر شما بکاپ خود را بر روی یک هارد دیسک خارجی با فرمت NTFS یا GPT ذخیره کنید می‌توانید:
  • فایل‌ها و فولدرها و Aplication ها و Volumeها را بازیابی کنید.
  • اگر بکاپ کورد استفاده شامل آیتم‌های مورد نیاز باشد می‌توانید بازیابی حالت سیستم و سیستم عامل را انجام دهید.
  • می ‌توانید  بک آپ را برای حفاظت بیشتر جابجا کنید.
  • می‌توانید حالت سیستم را بازیابی کنید اگر بکاپ مورد استفاده شامل حالت سیستم باشد.

در ادامه برای دسترسی به ابزارهای بکاپ ویندوز سرور باید این ابزارها را نصب کنیم که در زیر مراحل نصب این ابزارها را برای شما توضیح می‌دهیم:

نصب Windows Server Backup Tools

برای دسترسی به ابزارهای Backup  و Recovery و همچنین سیستم‌های وابسته‌ای که در Add features Wizard در Server Manager موجود هستند باید windows Server Backup Feature را نصب کنیم.
برای نصب ابزارهای Backup  و Recovery:
۱- بر روی Start  کلیک می‌کنیم. گزینه Administrative Tool را انتخاب می‌کنیم. سپس بر روی Server Manager کلیک می‌کنیم. در پنجره سمت چپ بر روی Feature کلیک می‌کنیم و در پنجره سمت راست گزینه Add Features را کلیک کرده، Add Feature wizard باز می‌شود.
۲- در پنجره Add Feature Wizard با کلیک بر روی Select Features ویژگی‌های بکاپ نمایان می‌شود، سپس چک باکس‌های ابزارهای خط فرمان و بکاپ ویندوز را انتخاب می‌کنیم.
۳- در صفحه Confirm Installation Selection گزینه‌هایی را که انتخاب کرده‌ایم بررسی می‎کنیم و بر روی Install کلیک می‎‌کنیم. اگر در هنگام نصب خطایی رخ بدهد در صفحه Installation error مشخص می‌‎شود.
۴- برای دسترسی به گزینه بکاپ با کلیک بر روی Start و انتخاب گزینه Administrative Tools و در نهایت با انتخاب گزینه windows Server  Backup به این گزینه برای اجرای بکاپ دسترسی می‎‌یابید.
زاگریو
Windows Server 2012 : آموزش نصب Core Mode | بخش اول

Windows Server 2012 : آموزش نصب Core Mode | بخش اول

3.9kviews

در بخش اول آموزش نصب Windows Server 2012 Core Edition را به شما آموزش خواهیم داد، در بخش دوم نحوه مدیریت کردن این سیستم را از طریق روش‌های مختلف به شما آموزش می‌دهیم.

آموزش نصب – Core Mode – بخش اول

به دلیل عدم وجود رابط گرافیکی GUI مزایای زیر برای این نسخه بسیار محسوس است:
۱- سرعت بالاتر در لود سیستم عامل Boot Speed
۲- پایداری بسیار بالا به نسبت نسخه گرافیکی
۳- عدم هنگ و یا Crash سیستم به علت رابط گرافیکی
۴- مصرف بسیار پایین منابع سرور مانند CPU & RAM
۵- عدم دریافت بروزرسانی‌های زیاد که بیشتر مربوط به GUI است.
۶- به دلیل عدم وجود GUI بسیاری از مشکلات امنیتی که ممکن است در رابط گرافیکی وجود داشته باشد وجود ندارد.
۷- کاربر با سیستم گرافیکی کار نمی‌کند در نتیجه عدم نصب برنامه‌های غیرضروری بر روی سرور مشکلات کمتری بوجود می‌آورد.
۸- اشغال حجم کمتری از هارد دیسک
و بسیاری از موارد دیگر که در مقاله‌ای جداگانه به آن خواهیم پرداخت.

دریافت ویندوز Windows Server 2012:

با استفاده از این لینک آخرین نسخه Windows 2012 را دریافت نمائید. (نسخه Evaluation است)

مدیریت سرور

مراحل نصب :

پس از راه‌اندازی سیستم عامل از طریق DVD همانند نسخه‌های دیگر با صفحه زیر روبرو می‌شوید، زبان موردنظر خود را انتخاب و بر روی دکمه Next کلیک کنید.

Windows Server 2012

بر روی دکمه Install Now کلیک کنید.

Windows Server 2012

در این صفحه باید نسخه موردنظر خود را انتخاب کنید. در این مثال بر روی Windows Server 2012 Datacenter Evaluation (Server Core Installation) x64 کلیک می‌کنیم.
تفاوت نسخه Datacecnter و Standard در این است که نسخه Datacenter به شما اجاره استفاده لایسنس نامحدود Virtual Machine را می‌دهد در صورتی که نسخه Standard اجازه داشتن دو یا کمتر را می‌دهد. نسخه استاندارد عموما برای سرورهای استفاده می‌شود که به عنوان Hyper-V سرور استفاده نمی‌شوند و بیشتر برای نرم‌افزارها، سرویس‌ها و وب‌سایت‌ها استفاده می‌شود. در این قسمت بر روی گزینه Next کلیک می‌کنیم.

Windows Server 2012

حالا باید با شرایط و قوانین Licensing Terms موافقت نمائیم، گزینه I Accept .. را انتخاب و بر روی گزینه Next کلیک کنید.

حالا با توجه به اینکه قصد بروزرسانی و یا نصب جدید را دارید گزینه مورد نظر خود را انتخاب کنید، در این آموزش ما گزینه Custom: Install Windows only (advanced) را انتخاب می‌کنیم.

درصورتی‌که مایل به پارتیشن‌بندی هستید بر روی گزینه (Drive Options (advanced کلیک کنید، در غیر این‌صورت بر روی گزینه Next کلیک کنید.

حالا باید سیستم به حالت نصب برود. پیشنهاد می‌کنیم در این مرحله یک لیوان چای بنوشید و از سرویس‌های ما دیدن فرمائید :

خرید سرور مجازی

پس از نصب سرور و بوت شدن مجدد سیستم باید برای کاربر Administrator یک رمز عبور انتخاب نمائید، رمز عبور را دو دفعه وارد و ادامه دهید:

پس از ورود شما فقط یک صفحه سیاه رنگ مشاهده می‌کنید، با تایپ کردن دستور help می‌توانید لیستی از دستورات قابل اجرا را مشاهده نمائید.
برای مشاهده اطلاعات سیستم دستور systeminfo را تایپ نمائید، همچنین دستور ipconfig را وارد نمائید.

با استفاده از این دستور می‌توانید اطلاعات IP سیستم را مشاهده نمائید، این اطلاعات به شما کمک میکند تا بتوانید از راه دور این سرور را کنترل نمائید.
در بخش دوم این آموزش استفاده از ابزار Remote Server Administration Tool را در Windows Server 2012 به شما آموزش خواهیم داد.

میزبانی وب زاگریو

تغییر مسیر بازدیدکنندگان HTTP به HTTPS در IIS

تغییر مسیر بازدیدکنندگان HTTP به HTTPS در IIS

4.3kviews
در این مقاله قصد داریم تا در مورد تغییر مسیر بازدیدکنندگان HTTP به HTTPS در IIS، به صورت کامل و تخصصی با شما صحبت کنیم.

تغییر مسیر بازدیدکنندگان HTTP به HTTPS در IIS

اگر شما یک گواهینامه SSL، در وب سایت خود دارید و نیاز دارید که بازدیدکنندگان HTTP شما به صورت خودکار به نسخه HTTPS منتقل شوند تا اطمینان یابید که تمامی ارتباطات شما رمزگذاری شده است، باید مراحل زیر را انجام دهید: میزبانی وب اشتراکی ما (زاگریو)، سیستم‌های سرور ویندوزی با IIS هستند.
 
 
بعد از نصب گواهینامه SSL بر روی وب سایتتان، ممکن است URL rewrite به صورت اتوماتیک درفایل web.config، تغییر مسیر HTTPS را اضافه کند.

IIS

1 .  با استفاده از ویرایشگر متن (text editor)، فایل web.config را باز کنید.

2 . دستور URL rewrite برای تغییر مسیر HTTPS در  زیر اضافه شده است.

<configuration>
    <system.webserver>
    <rewrite>
           <rules>
                 <rule name=”HTTP to HTTPS redirect” stopProcessing=”true”>
                 <match url=”(.*)” />
                 <conditions>
                             <add input=”{HTTPS}” pattern=”off” ignoreCase=”true” />
                 </conditions>
                 <action type=”Redirect” redirectType=”Found” url=”https://{HTTP_HOST}/{R:1}” />
                 </rule>
            </rules>
    </rewrite>
    </system.webserver>

    </configuration>

3 . به سادگی و با کپی کردن دستورات بالا در فایل web.config، می‌توانید تغییرات را ذخیره کنید.

4 . فایل web.config ذخیره شده را از طریق FTP یا گزینه File Manager در کنترل پنل حساب خود، به سرور میزبان وب خود آپلود کنید.

5 . دستور جدید بلافاصله بعد از آپلود شدن فایل انجام می‌شود.
 

مسدودسازی IP های حمله کننده به MySQL, MSSQL, RDP

مسدودسازی IP های حمله کننده به MySQL ,MSSQL ,RDP

756views

یکی دیگر از مواردی که قصد داریم در زاگریو به آن بپردازیم، مسدودسازی IP های حمله کننده به MySQL ،MSSQ ،RDP، است. تا مدیریت سرور شما، توسط این آی‌پی‌ها دیگر مورد حمله قرار نگیریند و امنیت سرور شما، همیشه برقرار باشد.

مسدودسازی IP های حمله کننده به MySQL, MSSQL, RDP ️

اگر سرویس‌هایی بر روی سرور خود دارید، که باید از بیرون از سازمان شما به آن منابع دسترسی پیدا کرد، ممکن است شما نیز قربانی حملات بی‌پایان و تلاش‌های هکرها برای Brute Force باشید، راه حل این موضوع مسدودسازی IP های حمله کننده به MySQL, MSSQL, RDP.

سرویس‌هایی نظیر RDP ،MYSQL ،MSSQL از امثال این سرویس‌ها هستند و مسدودسازی IP های حمله کننده تنها راه است.

حملات صورت گرفته علاوه بر مصرف میزان پهنای باند شما و کند کردن سرعت اتصال، منابع بسیاری از پردازنده و حافظه را نیز هدر می‌دهند، از طرفی داشتن رمز عبورهای ضعیف خصوصا در محیط‌های اشتراکی، باعث نفوذ هکرها به سیستم شده و مشکلات فراوانی را برای شما پدید می‌آورد.

مسدودسازی IP

در این آموزش سعی داریم تا با استفاده از پاورشل، لاک‌های درج شده در Event Log را استخراج و پس از جدا کردن قسمت‌های آدرس IP که برای فرض مثال بیش از ۳ بار خطای ورود ناموفق داشته‌اند یک Rule با شرط Block در سیستم فایروال ویندوز ایجاد کنیم.

ما در این روش، به منظور امکان بررسی IP هایی که مسدود شده‌اند، تمامی آدرس‌ها را در فایل ذخیره کرده و برای استفاده‌های آتی نگهداری می‌کنیم.

️نکته️:
– می‌توان لاگ‌ها را حذف نکرد و در ابتدا تاریخ و ساعت مشخص کرد که اسکریپت صرفا لاگ‌های یک روز پیش را جستجو کند.
– می‌توانید هیچ گونه فایلی نگهداری نکنید و مستقیما آن‌ها را در فایروال مسدود کنید.
– در یک بخش از کد مقداری تحت عنوان “{ $_.Count -gt 3 }” آمده است، که با افزایش یا کاهش این عدد می‌توانید به تعداد خطاهای لاگین مورد نظر برسید.
– برای اتوماتیک کردن پروسه، می‌توانید در Scheduled Tasks یک TASK با عنوان و زمان‌بندی مورد نظر خود ایجاد کنید.
– فایل دوم صرفا وظیفه وارد کردن آدرس IP ها از یک فایل برای ایجاد RULE های BLOCK را دارد و می‌توانید از آن در موارد دیگر نیز استفاده کنید و مسدودسازی IP را انجام دهید.

فایل شماره ۱- Block-Brute.ps1 | مسدودسازی IP

$datetime = (((get-date).ToUniversalTime()).ToString("yyyyMMddhhmmss"))
$regex = ‘\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b’

## MySQL ##
$input_path = "C:\BLOCK\mysql-raw.txt"
$output_file = "C:\BLOCK\mysql-all-ip.txt"
$output_unique = "C:\BLOCK\MySQL-Bruteforce-$datetime.txt"
Get-EventLog -Source MySQL -LogName Application | select Message | Out-File $input_path
Select-String -Path $input_path -Pattern $regex -AllMatches | % { $_.Matches } | % { $_.Value } > $output_file
Get-Content $output_file | sort | Group-Object | Where-Object { $_.Count -gt 3 } | Select -ExpandProperty Name | Get-Unique > $output_unique
c:\BLOCK\import-firewall-blocklist.ps1 -inputfile $output_unique
Remove-Item $input_path
Remove-Item $output_file

## MSSQL ###
$MSSQLinput_path = "C:\BLOCK\mssql-raw.txt"
$MSSQLoutput_file = "C:\BLOCK\mssql-all-ip.txt"
$MSSQLoutput_unique = "C:\BLOCK\MSSQL-Bruteforce-$datetime.txt"
Get-EventLog -LogName Application | Where-Object { $_.eventid -eq 18456 } | select Message | Out-File $MSSQLinput_path
Select-String -Path $MSSQLinput_path -Pattern $regex -AllMatches | % { $_.Matches } | % { $_.Value } > $MSSQLoutput_file
Get-Content $MSSQLoutput_file | sort | Group-Object | Where-Object { $_.Count -gt 3 } | Select -ExpandProperty Name | Get-Unique > $MSSQLoutput_unique
c:\BLOCK\import-firewall-blocklist.ps1 -inputfile $MSSQLoutput_unique
Remove-Item $MSSQLinput_path
Remove-Item $MSSQLoutput_file

Clear-EventLog -LogName Application

 

فایل شماره ۲- import-firewall-blocklist.ps1 | مسدودسازی IP

####################################################################################
#.Synopsis
# Block all IP addresses listed in a text file using the Windows Firewall.
#
#.Description
# Script will create inbound and outbound rules in the Windows Firewall to
# block all the IPv4 and/or IPv6 addresses listed in an input text file. IP
# address ranges can be defined with CIDR notation (10.4.0.0/16) or with a
# dash (10.4.0.0-10.4.255.255). Comments and blank lines are ignored in the
# input file. The script deletes and recreates the rules each time the
# script is run, so don't edit the rules by hand. Requires admin privileges.
# Multiple rules will be created if the input list is large. Requires
# Windows Vista, Windows 7, Server 2008 or later operating system. Blocking
# more than 5000 IP address ranges does delay initial connections, will slow
# the loading of the Windows Firewall snap-in, and will lengthen the time
# to disable/enable a network interface. This script is just a wrapper for
# the netsh.exe tool. You can block individual IP addresses too, you do not
# need to use CIDR notation for this (10.1.1.1/32), though this does work.
#
#.Parameter InputFile
# File containing IP addresses and ranges to block; IPv4 and IPv6 supported.
# By default, the script will look for and use a file named 'blocklist.txt'.
#
#.Parameter RuleName
# (Optional) Override default firewall rule name; default based on file name.
# When used with -DeleteOnly, just give the rule basename without the "-#1".
#
#.Parameter ProfileType
# (Optional) Comma-delimited list of network profile types for which the
# blocking rules will apply: public, private, domain, any (default = any).
#
#.Parameter InterfaceType
# (Optional) Comma-delimited list of interface types for which the
# blocking rules will apply: wireless, ras, lan, any (default = any).
#
#.Parameter DeleteOnly
# (Switch) Matching firewall rules will be deleted, none will be created.
# When used with -RuleName, leave off the "-#1" at the end of the rulename.
#
#.Example
# import-firewall-blocklist.ps1 -inputfile IpToBlock.txt
#
#.Example
# import-firewall-blocklist.ps1 -inputfile iptoblock.txt -profiletype public
#
#.Example
# import-firewall-blocklist.ps1 -inputfile iptoblock.txt -interfacetype wireless
#
#.Example
# import-firewall-blocklist.ps1 -inputfile IpToBlock.txt -deleteonly
#
#.Example
# import-firewall-blocklist.ps1 -rulename IpToBlock -deleteonly
#
#Requires -Version 1.0
#
#.Notes
# Author: Jason Fossen (http://www.sans.org/windows-security/)
# Version: 1.2
# Updated: 20.Mar.2012
# LEGAL: PUBLIC DOMAIN. SCRIPT PROVIDED "AS IS" WITH NO WARRANTIES OR GUARANTEES OF
# ANY KIND, INCLUDING BUT NOT LIMITED TO MERCHANTABILITY AND/OR FITNESS FOR
# A PARTICULAR PURPOSE. ALL RISKS OF DAMAGE REMAINS WITH THE USER, EVEN IF
# THE AUTHOR, SUPPLIER OR DISTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF
# ANY SUCH DAMAGE. IF YOUR STATE DOES NOT PERMIT THE COMPLETE LIMITATION OF
# LIABILITY, THEN DELETE THIS FILE SINCE YOU ARE NOW PROHIBITED TO HAVE IT.
####################################################################################

param ($InputFile = "BlockList.txt", $RuleName, $ProfileType = "any", $InterfaceType = "any", [Switch] $DeleteOnly)

# Look for some help arguments, show help, then quit.
if ($InputFile -match '/[?h]') { "nPlease run 'get-help .\import-firewall-blocklist.ps1 -full' for help on PowerShell 2.0 and later, or just read the script's header in a text editor.n" ; exit }

# Get input file and set the name of the firewall rule.
$file = get-item $InputFile -ErrorAction SilentlyContinue # Sometimes rules will be deleted by name and there is no file.
if (-not $? -and -not $DeleteOnly) { "nCannot find $InputFile, quitting...n" ; exit }
if (-not $rulename) { $rulename = $file.basename } # The '-#1' will be appended later.

# Description will be seen in the properties of the firewall rules.
$description = "Rule created by script on $(get-date). Do not edit rule by hand, it will be overwritten when the script is run again. By default, the name of the rule is named after the input file."

# Any existing firewall rules which match the name are deleted every time the script runs.
"nDeleting any inbound or outbound firewall rules named like '$rulename-#*'n"
$currentrules = netsh.exe advfirewall firewall show rule name=all | select-string '^[Rule Name|Regelname]+:\s+(.+$)' | foreach { $_.matches[0].groups[1].value }
if ($currentrules.count -lt 3) {"nProblem getting a list of current firewall rules, quitting...n" ; exit }
# Note: If you are getting the above error, try editing the regex pattern two lines above to include the 'Rule Name' in your local language.
$currentrules | foreach { if ($_ -like "$rulename-#*"){ netsh.exe advfirewall firewall delete rule name="$_" | out-null } }

# Don't create the firewall rules again if the -DeleteOnly switch was used.
if ($deleteonly -and $rulename) { "nReminder: when deleting by name, leave off the '-#1' at the end of the rulename.n" }
if ($deleteonly) { exit }

# Create array of IP ranges; any line that doesn't start like an IPv4/IPv6 address is ignored.
$ranges = get-content $file | where {($_.trim().length -ne 0) -and ($_ -match '^[0-9a-f]{1,4}[\.\:]')}
if (-not $?) { "nCould not parse $file, quitting...n" ; exit }
$linecount = $ranges.count
if ($linecount -eq 0) { "nZero IP addresses to block, quitting...n" ; exit }

# Now start creating rules with hundreds of IP address ranges per rule. Testing shows
# that netsh.exe errors begin to occur with more than 400 IPv4 ranges per rule, and
# this number might still be too large when using IPv6 or the Start-to-End format, so
# default to only 100 ranges per rule, but feel free to edit the following variable:
$MaxRangesPerRule = 100

$i = 1 # Rule number counter, when more than one rule must be created, e.g., BlockList-#001.
$start = 1 # For array slicing out of IP $ranges.
$end = $maxrangesperrule # For array slicing out of IP $ranges.
do {
$icount = $i.tostring().padleft(3,"0") # Used in name of rule, e.g., BlockList-#042.

if ($end -gt $linecount) { $end = $linecount }
$textranges = [System.String]::Join(",",$($ranges[$($start - 1)..$($end - 1)]))

"nCreating an inbound firewall rule named '$rulename-#$icount' for IP ranges $start - $end"
netsh.exe advfirewall firewall add rule name="$rulename-#$icount" dir=in action=block localip=any remoteip="$textranges" description="$description" profile="$profiletype" interfacetype="$interfacetype"
if (-not $?) { "
nFailed to create '$rulename-#$icount' inbound rule for some reason, continuing anyway..."}

"nCreating an outbound firewall rule named '$rulename-#$icount' for IP ranges $start - $end"
netsh.exe advfirewall firewall add rule name="$rulename-#$icount" dir=out action=block localip=any remoteip="$textranges" description="$description" profile="$profiletype" interfacetype="$interfacetype"
if (-not $?) { "
nFailed to create '$rulename-#$icount' outbound rule for some reason, continuing anyway..."}

$i++
$start += $maxrangesperrule
$end += $maxrangesperrule
} while ($start -le $linecount)

# END-O-SCRIPT

# Incidentally, testing shows a delay of 2-5 seconds sometimes for the initial
# connection when there are more than 5000 IP address ranges total in the various
# outbound rules (once established, there is no delay). However, it does not seem
# consistent. Also, at 5000+ subnets in one's rules, it delays the opening of the
# Windows Firewall snap-in, and at 9000+ subnets it sometimes prevents the WF snap-in
# from opening successfully at all. However, this behavior is not consistent either.