فعالسازی تایید هویت دومرحله ای در cPanel
FirewallD یک راهکار مدیریت دیوار آتش برای اکثر توزیع های لینوکس است که به عنوان یک رابط کاربری برای iptables عمل می کند.
در این آموزش، نحوه استفاده از دستورات مدیریتی firewall-cmd را به شما آموزش خواهیم داد.
آشنایی با مفاهیم اولیه FirewallD
قبل از بررسی دستورات، لازم است با برخی مفاهیم اولیه آشنا شویم:
منطقه – Zones
سرویس firewalld مجموعه ای از قوانین به نام zones را مدیریت میکند. این مناطق بصورت کلی تعیین می کنند که چه ترافیکی می بایست بر اساس سطح اعمتادی که شما به شبکه های متصل به سیستم خود دارید رد و بدل شوند. کارت های شبکه به مناطق مورد نظر شما متصل می شوند تا رفتار ترافیکی توسط دیوار آتش کنترل شود.
برای سیستم های کامپیوتری مانند لپتاپ ها که همیشه در حال جابجایی هستند، این انعطاف پذیری کمک می کند تا راهکار خوبی را برای قوانین شبکه بر اساس محیط کاری شما ایجاد شود. شاید شما برای شبکه های عمومی مانند هتل ها و .. نیازمند راهکار سخت گیرانه تری باشید به نسبت شبکه خانگی خودتان. برای سرور ها این موقعیت ها خیلی مهم نیستند زیرا جابجایی نوع شبکه اصلا وجود ندارد و یا در صورت وجود به ندرت اتفاق می افتد.
بدون در نظر گرفتن اینکه چقدر محیط شبکه شما پویا است، دانستن و آشنا شدن با این ایده هایی که برای طراحی firewalld در نظر گرفته شده است امری ضروری است. به ترتیب در شبکه های پیشفرض تعریف شده از “کمترین میزان اعتماد” تا “بیشترین میزان اعتماد” مناطق زیر تعریف شده اند:
منطقه drop: کمترین میزان اعتماد به شبکه، تمامی ورودی ها بسته شده و درخواست های ارسالی بی پاسخ خواهند ماند و فقط اتصال های خروجی فعال هستند.
منطقه block: مانند مورد فوق با این تفاوت که اتصال های ورودی با پیام icmp-host-prohibited یا icmp6-adm-prohibited رد (reject) می شوند.
منطقه public: به عنوان شبکه عمومی و نا مطمئن. شما به سیستم های کامپیوتری موجود اعتمادی ندارید و صرفا ممکن است اجازه اتصال های ورودی را بر اساس مورد به مورد بدهید.
منطقه external: شبکه های خارجی در مواقعی که شما از فایروال به عنوان gateway خود استفاده می کنید. در اصل بصورت NAT masquerading به سمت شبکه داخلی شما متصل شده است و به همین منظور شبکه داخلی شما خصوصی اما در دسترس خواهد بود.
منطقه internal: سمت دیگر external است، برای بخش داخلی gateway شما است. سیستم های موجود تقریبا قابل اعتماد هستند و برخی سرویس ها نیز در دسترس هستند.
منطقه dmz: جهت استفاده برای سیستم هایی که در DMZ (سیستم هایی در شبکه که به هسته اصلی شبکه شما دسترسی ندارند) وجود دارد. صرفا برخی اتصال های ورودی مجاز هستند.
منطقه work: برای سیستم های کاری در نظر گرفته شده اند، در حالی که شما به سیستم های اطراف خود اطمینان دارید و برخی سرویس ها نیز فعال هستند.
منطقه home: شبکه خانگی، در اصل شبکه ای که شما به اجزای آن اطمینان دارید و سرویس های بیشتری در دسترس هستند.
منطقه trusted: به تمامی سیستم های موجود در شبکه اطمینان دارید. باز ترین نوع منطقه موجود که می بایست با بررسی دقیق انتخاب شود.
با استفاده از دیوارآتش، شما می توانید قوانین (rules) مورد نظر خود را ایجاد کنید و آنها را به مناطق مورد نظر خود متصل کنید و سپس آنها را به کارتهای شبکه مورد نظر الحاق کنید.
دوام قوانین
در firewalld، قوانین تعریف شده می توانند به دو صورت “فوری” یا “دائمی” تعریف شوند. چنانچه یک rule اضافه شود و یا تغییر یابد، بصورت فوری رفتار فایروال تغییر می کند اما پس از ریستارت شدن سیستم قوانین قدیمی مجددا فعال می شوند و تغییرات از بین خواهند رفت.
اغلب دستورات firewall-cmd می توانند گزینه permanent– را به همراه داشته باشند. این گزینه مشخص می کند که پس از ریستارت شدن سیستم قانون تعریف شده مجددا فراخوانی شده و حذف نشود. این بدین معناست که شما می توانید قوانین را بصورت همزمان تست کنید و در صورتی که مشکلی برای شما پیش آمد با یک ریستارت قانون تعریف شده را حذف کنید. همچنین استفاده از تگ permamnet– به شما کمک می کند تا تعداد زیادی قوانین را تعریف کنید که پس از ریستارت سیستم اعمال شوند.
نصب و فعالسازی فایروال بر روی سیستم در زمان بوت شدن
نرم افزار firewalld بصورت پیشفرص بر روی برخی از توریع های لینوکس اعم از CentOS 7 وجود دارد. با این حال با استفاده از دستور زیر می توانید آن را نصب کنید:
1 |
$ sudo yum install firewalld<br> |
پس از نصب می توانید با استفاده از دستور زیر آن را در زمان بوت سیستم نیز فعال کنید. در یاد داشته باشید که با این دستور این سرویس در زمان بوت فعال می شود. بهترین روش این است که شما ابتدا تمامی قوانین موجود را تست کنید تا در صورت بروز اشکال در قوانین با مشکلات احتمالی روبرو نشوید.
1 |
$ sudo systemctl enable firewalld<br>$ sudo reboot |
پس از ریستارت شدن سیستم، فایروال می بایست فعال شده، کارتهای شبکه در zone مربوطه قرار گرفته (و یا به تنظیمات پیشرفض برگردد) و سپس قوانین تعریف شده پردازش شوند.
با استفاده از دستور زیر می توانید وضعیت فایروال را بررسی کنید:
1 |
$ sudo firewall-cmd --state |
1 |
output<br>running |
این بدین معناست که فایروال فعال است و تنظیمات پیشرفض فعال است.
آشنایی با قوانین فعلی فایروال
قبل از شروع تغییرات ابتدا باید با شرایط و قوانین فعلی تعریف شده بر روی سرویس آشنا شوید.
مشاهده تنظیمات پیشرفض
برای مشاهده منطقه انتخاب شده فعلی دستور زیر را بزنید:
1 |
$ firewall-cmd --get-default-zone<br> |
1 |
output<br>public |
از آنجایی که ما برای firewalld هنوز دستوراتی نزده ایم و بصورت پیشفرض است و هیچ یک از کارتهای شبکه ما به منطقه دیگری متصل کنید، تنها منطقه فعال همان مورد فوق است که کارتهای شبکه ما را کنترل می کند. جهت تایید میتوانید از دستور زیر استفاده کنید:
1 |
$ firewall-cmd --get-active-zones<br> |
1 |
output<br>public<br> interfaces: eth0 eth1 |
همانطور که میبینیم سرور ما دو کارت شبکه دارد که هر دو بصورت پیشفرض بر روی منطقه public تنظیم شده است.
چطور متوجه شویم که چه قوانینی برای منطقه عمومی تعریف شده است؟ با استفاده از دستور زیر میتوانید تمامی سرویس های فعال بر روی public zone را مشاهده کنیم:
1 |
$ sudo firewall-cmd --list-all<br> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
output<br> public (default, active)<br> target: default<br> icmp-block-inversion: no<br> interfaces: eth0 eth1<br> sources: <br> services: ssh dhcpv6-client<br> ports: <br> protocols: <br> masquerade: no<br> forward-ports: <br> source-ports: <br> icmp-blocks: <br> rich rules: |
همانطور که با استفاده از دستور قبلی هم دیدیم، هر دو کارت شبکه eth0 و eth1 به این zone متصل هستند. هرچند با این دستور میتوانیم ببینیم که سرویس DHCP Client و سرویس SSH بر روی این zone تعریف شده است.
مشاهده مناطق (zone) های دیگر
حالا ما اطلاعات کافی در مورد تنظیمات پیشفرض داریم، با استفاده از دستور زیر میتوانیم اطلاعات دیگر در خصوص zone های دیگر نیز به دست آوریم.
برای مشاهده لیست zone های موجود دستور زیر را بزنید:
1 |
$ firewall-cmd --get-zones |
1 |
output<br>block dmz drop external home internal public trusted work |
ما می توانیم تنظیمات انجام شده برای یک zone خاص را با اضافه کردن دستور =zone– به همراه list-all– مشاهده کنیم:
1 |
$ sudo firewall-cmd --zone=home --list-all |
1 2 3 4 5 6 7 8 9 10 |
output<br> home<br> interfaces: <br> sources: <br> services: dhcpv6-client ipp-client mdns samba-client ssh<br> ports: <br> masquerade: no<br> forward-ports: <br> icmp-blocks: <br> rich rules: |
شما می توانید تمامی مناطق تعریف شده را با استفاده از list-all-zones– مشاهده کنید.
1 |
$ sudo firewall-cmd --list-all-zones | less |
انتخاب یک منطقه – Zone برای کارت شبکه شما:
در صورتی که شما برای یک کارت شبکه یه منطقه تعریف نکرده باشید، بصورت پیشفرض در زمان بوت منطقه پیشفرض برای آن تعریف شد است.
تغییر Zone بر روی کارت های شبکه
شما با استفاده از پارامتر =zone– به همراه =change-interface– می توانید تنظیمات را انجام دهید. همچنین برای دسترسی مدیریتی باید از sudo نیز استفاده کنید.
با استفاده از دستور زیر ما کارت شبکه eth0 را بر روی منطقه home تعریف می کنیم.
1 |
$ sudo firewall-cmd --zone=home --change-interface=eth0<br> |
1 |
output<br>success |
نکته
توجه داشته باشید که با تغییر zone ممکن است یک سرویس فعال از کار بی افتد، برای مثال در صورت انتقال به شبکه home سرویس SSH در آن فعال است و شما قادر به ادامه کار هستند اما برخی منطقه ها بصورت پیشفرض SSH برای آنها فعال نیست و در صورت جابجایی به آن مناطق دسترسی شما به سرور قطع خواهد شد و قادر به اتصال مجدد به سرور نخواهید بود.
با استفاده از دستور زیر می توانید موفقیت آمیز بودن دستور فوق را بررسی کنید:
1 |
$ firewall-cmd --get-active-zones<br> |
1 2 3 4 5 |
output<br> home<br> interfaces: eth0<br> public<br> interfaces: eth1 |
تنظیم منطقه پیشفرض:
تمامی کارتهای شبکه شما می تواند توسط یک منطقه مدیریت شود. احتمالا راحت تر است که یک منطقه پیشفرض تعریف و تنظیم شود تا بتوانید از آن برای تنظیمات خود استفاده کنید.
شما می توانید منطقه پیشفرض را با پارامتر =set-default-zone– تنظیم کنید. این دستور بلافاصله تمامی کارتهای شبکه را که منطقه ای برای آن تعریف نشده است را به شرح مورد نظر شما تغییر می دهد:
1 |
$ sudo firewall-cmd --set-default-zone=home |
1 |
output<br>success |
بهترین روش برای تعریف قوانین فایروال تعریف آنها به عنوان نرم افزار است. راه کار آن به شرح ذیل است:
اضافه کردن یک سرویس برای منطقه های شما:
راحت ترین روش اضافه کردن سرویس و یا پورت مورد نظر شما برای مناطقی است که از آن استفاده می کنید، مجددا با دستور get-services– سرویس های فعال را دریافت کنید:
1 |
$ firewall-cmd --get-services<br> |
1 2 |
output<br> RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync elasticsearch freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master high-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kibana klogin kpasswd kshell ldap ldaps libvirt libvirt-tls managesieve mdns mosh mountd ms-wbt mssql mysql nfs nrpe ntp openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel radius rpc-bind rsh rsyncd samba samba-client sane sip sips smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server |
نکته
شما می توانید اطلاعات بیشتری در خصوص هر سرویس با مشاهده فایلهای xml. آن به دست آورید که در مسیر /usr/lib/firewalld/services قرار دارد. برای مثال سرویس SSH شامل موارد ذیل است:
1 |
/usr/lib/firewalld/services/ssh.xml <br> |
1 |
<br><code><?xml version="1.0" encoding="utf-8"?></code><br><code><service></code><br><code><short>SSH</short></code><br><code><description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description></code><br><code><port protocol="tcp" port="22"/></code><br><code></service> |
ایمیل به عنوان یک ابزار ارتباطی سریع و قابل اعتماد در دنیای فعلی جا افتاده است.
بر خلاف تصورات رایج، ایمیل ها آنقدر که می بایست امن نیستند و محتوای رد و بدل شده توسط هکر ها به راحتی قابل شنود هستند.
یکی از روش های جلوگیری از این شنود و حصول اطمینان از اینکه ایمیل ها توسط فرستنده مورد نظر شما ارسال شده، امضا کردن و کدگذاری محتوای ایمیل ها است.
در این آموزش به شما روش انجام این کار را نمایش خواهیم داد.
1- ابتدا از طریق cPanel به بخش Encryption رفته و یک کلید جدید ایجاد کنید.
پس از ایجاد کلید دو فایل برای شما ایجاد می شود. فایل Public که به واسطه آن ایمیل ها توسط فرستنده برای شما کد می شود و فایل Private که توسط آن ایمیل ها را شما می توانید مشاهده کنید.
در اصل فرستنده می بایست در زمان ارسال کلید Public شما را در اختیار داشته باشد و بوسیله آن کلید منحصر به فرد ایمیل ها را کدگذاری کند.
2- برای امکان استفاده از این کلید در نرم افزار Outlook لازم است افزونه Gpg4win بر روی سیستم شما نصب شود.
این نرم افزار را می توانید از اینجا دریافت کنید.
3- پس از نصب نرم افزاری به عنوان Kleopatra بر روی سیستم شما نصب خواهد شد که می بایست آن را باز و سپس کلید Private خود را در آن اضافه نمائید.
برای این کار از منوی File بر روی Import بروید و کلید Private ایجاد شده در مرحله 1 را انتخاب کنید.
4- با نصب این نرم افزار، در Outlook در هنگام ارسال توسط ایمیل مورد نظر، یک گزینه در بالای صفحه نمایش داده می شود که با انتخاب گزینه Sign ایمیل ها توسط شما امضا شده و این اطمینان به گیرنده داده می شود که شخص شما این ایمیل را ارسال کرده است و با انتخاب گزینه Encrypt محتوای ایمیل کدگذاری شده و بدون استفاده از کلید Private که در اختیار شما می باشد محتوای آن قابل مشاهده نخواهد بود.
CFS یکی از بهترین نرمافزارهای فایروال برای سرورهای لینوکسی است. در این مقاله برخی از دستورات SSH که برای تنظیمات CSF استفاده میشود برای شما آورده شده است.
برای ریاستارت کردن CSF از دستور زیر استفاده می شود:
csf -r
دستور زیر برای start کردن ruleهای فایروال استفاده میشود:
csf –s
دستور زیر یک آدرس IP را از لیست csf.deny (IP های حذف شده) پاک میکند و IP را آزاد میکند:
csf -dr IP address
با استفاده از دستور زیر میتوان یک IP آدرس را در لیست csf.deny قرار دهیم ( بلاک کردن IP):
csf -d IP address
با استفاده از دستور زیر میتوانیم یک IP آدرس را در لیست سفید (whitelist) فایروال قرار دهیم:
csf -a IP address
برای اضافه کردن یک IP به لیست temp IP ban از دستور زیر استفاده میکنیم:
csf -td IP address
دستور زیر به ما این امکان را میدهد که یک IP برای یک مدت مشخص با استفاده از port مشخص در لیست سفید قرار بگیرد.
csf -ta ipaddress TTL [-p port] [-d direction] [comment]
در دستور بالا TTL برای مشخص کردن زمان برحسب ثانیه است. Port شماره پورت مورد نظر و direction برای مشخص کردن in یا outbound است و از comment هم برای درج پیام استفاده میشود.
دستور زیر یک IP آدرس را بطور موقت از لیست حذف میکند و یا اجازه میدهد موقتا در لیست باشد.
csf -tr
اتصال به SQL Server با استفاده از SQL Managment Studio به صورت پیشفرض امن نیست.
برای داشتن یک اتصال ایمن کافی است تنظیمات زیر را هنگام اتصال به SQL Managment Studio انجام دهید.
در اولین مرحله دقت داشته باشید که در قسمت server name حتما sql.wsp.zagrio.com را به طور کامل وارد کنید و گزینه Options را انتخاب نمائید.
بعد از وارد کردن اطلاعات در پنجره بعد برای داشتن یک ارتباط ایمن از تب Connection Properties از قسمت Connection گزینه Encrypt Connection را تیک بزنید. در شکل زیر این گزینه با کادر قرمز رنگ مشخص شده است.
با انجام این موارد شما میتوانید یک ارتباط امن داشته باشید.
درصورتیکه قرار است تیم پشتیبانی میزبانی زاگریو به سرور لینوکسی شما متصل شوند و خدماتی را مطابق درخواست شما اجرا کنند لازم است به روش زیر این دسترسی را برای ما فراهم نمائید.
شما باید یک فایل با نام زیر در مسیر مشخص شده ایجاد کنید:
.ssh/authorized_keys
و سپس محتوای زیر را درون آن قرار دهید:
1 |
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAgEAkUJOkvIILYhYNpOnlhYj25sc17AeKQ8rize0FU5OpHjW6KlSf5mVt2i1iG5oMFN94k51+1tHwem7aGr0qd4sAfEutd0e8BnXFC/A4KHUKsGoz76RsVAhJJ6HyWL9km7Tk1z3PqVlUHWHfBvWF+wccGLC3ck7bXhEGbDGMUKb9oWsVcnmCgwrFbxDuc5meEkdY1idsTuQafk5hLdDOduegSKKwg3s6Ch4PTPLOXgSMhu8yYg8s5dS8HubGvkeWkII46x/GpqegYns7fUPgg+dUBWNdumJswGfEzK0FyEuZXfF0QNl1sgPXUILEfUdy0YUq31ZjJk2uoc11CXnVLb1owbPCOeQpLrt2tBF5uIJKZi5DFhb81+/EYu/TNkCxFUn7N0k2jSRixV4NUYkXkXPNQXnCR1U4kFjSBhUiIDqkav3eKB3MkkTGd4SK4v3u4+1wY2tM40bt1AZfRmBQYtbBqAUxqqDsuBlesv23zvofFlcCPEcMSeLn3vQ752G6t0uAjMN+L818XmtgS8Bt7PidRp5SipClREP6DhUyJ3n73IBNctoh+C+aKEsjhR98pwDM9UcGy+KWoDeLCaL5SIrckYcGnOcIEI3hzvJMp5mh7Oxx/F12e8b3gClWw2G9soDJs6Y925oiGn7kDcd2hhLPiCtKCnt420UCVJRnFEjIC8= Zagrio_Customer_Keys |
پس از اتمام کار باید نسبت به حذف این فایل اقدام فرمائید.
در این مقاله سعی میکنیم، راه کار انتخاب یک رمز عبور قوی و ایمن را به شما آموزش دهیم و نکات مهم، برای داشتن پسووردی مطمئن را در زاگریو به شما خواهیم گفت.
رمز عبور قوی، یکی از مهمترین مواردی است که شما برای ساخت هر اکانت و ورود به سوشیال مدیا (اینستاگرام، فیسبوک، توییتر، لینکدین و …) به آن نیاز دارید، پس باید بسیار در ساخت پسوورد دقت به خرج دهید.
اکثر سیستمهایی که پسوورد دریافت میکنند به حداقل ۸ کاراکتر نیاز دارند، هر چقدر پسورد شما طولانیتر باشد امنیت آن بیشتر است.
یک کلمه و یا کلماتی “تصادفی” را انتخاب کنید که یادآوری آن برای شما ساده باشد و آن کلمات را به عنوان “کلمات پایه” در نظر بگیرید.
مثال: نام فرزندان من علی، تارا، سامان و ستاره است پس کلمه تصادفی من میتواند altasase باشد (دو حرف اول هر نام).
مثال: سن فرزندان خود را به آن اضافه کنید: altasase391720
مثال: altasase#391720
مثال: AlTaSaSe#391720
کلمات پایه و ترکیب آنها به شما کمک میکند که یادآوری آنها ممکن است ساده باشد پس با ترکیب کردن این موارد آن را از به صورتی تبدیل نمائید که به سادگی قابل شکستن (Crack) نباشد.
مثال: تبدیل AlTaSaSe#391720 به mykidsAlTaSaSe#3090170200
بدون شک این یک چیز با ارزش است اما از طرف دیگر مشکلی وجود دارد و آن این است که بسیاری از طراحان وب نمیدانند که چگونه از امنیت وبسایت خود مطمئن شوند و یا حتی درکی از اهمیت امنیت وبسایت ندارند. ما در این آموزش ۱۰ مرحله مهم که طراحان وب برای تامین امنیت وبسایت خود باید در نظر بگیرند را ارائه میدهیم.
وبسایتهای بسیاری هر روزه در معرض خطر ناشی از استفاده از نرمافزارهای منسوخ و ناامنی که بر روی آنها اجرا میشوند، هستند. این خیلی مهم است که وبسایت خود را با پلاگینها و نسخه CMS جدیدی که در دسترس است بروز رسانی کنید تا امنیت وبسایت شما در خطر نباشد. امروزه بیشترین هکها کاملا اتوماتیک هستند توسط رباتهایی که به طور مداوم سایتها را اسکن میکند و به دنبال بهرهبرداری از فرصتها هستند. بروز رسانی یکبار در ماه یا یکبار در هفته خیلی کافی نیست زیرا به احتمال بسیار زیاد رباتها قبل از شما یک آسیبپذیری برای نفوذ پیدا کردهاند. مگراینکه شما درحال اجرای website firewall like CloudProxy باشید که به محض انتشار آن نیاز به بروز رسانی دارید. اگر در حال اجرای وردپرس هستید پلاگین ‘WP Updates Notifier توصیه میشود. این ایمیلها به شما اجازه میدهد از زمانی که یک پلاگین یا هسته وردپرس برای بروزرسانی موجود باشد، باخبر شوید. شما میتوانید با دنبال کردن @sucuri_security در توتیتر از بروز رسانی و هشدارهای امنیتی اطلاع پیدا کنید.
– منحصربهفرد بودن: از Password تکراری استفاده نکنید.
بعد از اینکه پاکسازی با موفقیت انجام شد شما باید به فکر بازنشانی پسورد باشید، به جای اینکه این کار را فقط برای یک سایت انجام دهید اکنون باید برای تمام سایتهای خود پسورد را بازنشانی کنید. هر پسورد مرتبط با هر وبسایت، تمامی سیستمهای مدیریت محتوا (CMS)، پایگاه دادهها، FTP تمامی کاربران سایتها باید تغییر کند. در نهایت بعد از انجام تمامی این موارد به خانه اول بازمیگردید و وبسایت شما ممکن است که دوباره آلوده شود.
وقتی برای هر کاربر حساب جداگانهای داشته باشید میتوانید رفتار هر کاربر را جداگانه بررسی کنید، بنابراین میتوانید نقاط ناهنجار را پیدا کنید و شخصی که حسابش در معرض خطر است را تشخیص دهید.
– اینکه شما برنامههای افزودنی و تمهای خود را از منابع قانونی دانلود کنید بسیار مهم است. سایتهای بسیاری هستند که نسخههای رایگانی را به شما برای دانلود پیشنهاد میدهند. وبسایتها این نسخههای رایگان را فقط با یک هدف ارائه میدهند: آلوده کردن وبسایت شما با نرمافزارهای مخرب.
اگر میخواهید چندین اجازه دسترسی را به شخصی بدهید کافی است که اعداد را باهم جمع کنید. به عنوان مثال اگر میخواهید به شخصی اجازه خواندن و نوشتن بدهید باید در مجوز دسترسی کاربر عدد ۶ را وارد کنید. اگر علاوه بر خواندن و نوشتن مجوز اجرای فایلها را هم بدهید باید عدد ۷ را وارد کنید.
Internet Protocol Security یا به اختصار IPSec یک پروتکل برای تامین امنیت ارتباطات IP است که این امنیت را توسط Authentication (احراز هویت) و Encryption (کد گذاری) به ازای هر Session از بستههای ارتباطی IP تامین میکند.
IPSec همچنین شامل پروتکلهایی است که با استفاده از کلیدهای کدگذاری شده برای احراز هویت و کد گذاری دو طرفه سمت گیرنده و فرستنده در ابتدای برقراری ارتباط و در طول مدت ارتباط اقدام میکند.
• برای تامین امنیت مورد نیاز ارتباطات و یا برای ارتقای امنیت نرمافزارها
• این امکان را به شما میدهد که بر مبنی IP محدودیتهایی اعمال کنید و در لایه TCP/UDP با اینکه ممکن است نرمافزار شما آن را پشتیبانی نکند کدگذاری انجام دهید.
پیشنیازها:
• ورودی/خروجی پورت (IP Protocol 50 (ESP
• ورودی/خروجی پورت (IP Protocol 51 (AH
• ورودی/خروجی پورت UDP port 500
• انتخابی: پورت TCP/UDP 88 (در صورت Authentication)
• انتخابی: پورت (UDP 4500 (NAT
با استفاده از Windows Firewall with Advanced Security در دامنه Active Directory
لازم است تمامی مراحل زیر را انجام دهید:
Identity Management یک Policy تحت عنوان CIT-IDM-MachineCertificateAutoEnrollment دارد که به هر کامپیوتری که در یک OU وجود دارد این اجازه را میدهد که یک گواهینامه IPSec به ازای هر کامپیوتر ایجاد کند.
۱- یک GPO در OU مورد نظر خود که میخواهید توسط IPSec ایمن شود ایجاد نمائید. تمامی ServerFarm ها باید این GPO به آنها Link شده باشد.
۲- مطمئن شوید این Policy به همه سیستم ها اعمال شده و با دستور gpupdate از به روزرسانی آن اطمینان حاصل کنید (پیشفرض بروزرسانی ۹۰ دقیقه است).
۱- به سرور وارد شوید.
۲- پنجره Windows Firewall with Advanced Security را باز کنید.
۳- بر روی Connection Security Rule دکمه راست را بزنید و گزینه New Rule را انتخاب کنید.
۴- گزینه Custom را انتخاب کنید و بر روی Next کلیک کنید.
۵- در تب Endpoints این موارد را انجام دهید:
• در قسمت Endpoint1 آدرس IP یا آدرسهای IP سرور(های) خود را وارد کنید.
• در قسمت Endpoint2 آدرس IP یا آدرسهای IP کلاینت(های) خود را وارد کنید.
• بر روی Next کلیک کنید.
۶- گزینه Require authentication for inbound and outbound connections را انتخاب و بر روی Next کلیک کنید.
۷- در قسمت Authentication Method گزینه Advanced را انتخاب و Customize را بزنید.
۸- در پنجره First Authentication Method گزینه Add را بزنید.
۹- در پنجره Add First Authentication Method گزینه Computer certificate from this certificate authority را انتخاب و مراحل زیر را انجام دهید:
• (Signing algorithm : (default
• (Certificate store type: (default
• گزینه Browse را زده و مرجع صادرکننده گواهینامه را انتخاب کنید.
• بر روی OK کلیک کنید.
۱۰- در پنجره Customize Advanced Authentication Methods بر روی OK کلیک کنید.
۱۱- مجددا پنجره New Connection Security Rule Wizard: Authentication Method را مشاهده خواهید کرد. بر روی OK کلیک کنید.
۱۲- در باکس To which ports and protocols does this rule apply سرویسها و پروتکلهای موردنظر خود (برای مثال SMB, TCP 445) را انتخاب کنید و بر روی Next کلیک کنید.
از آنجایی که این سرویس فقط در Endpoint1 ارائه میشود، شماره پورت موردنظر را وارد کنید و در قسمت Endpoint2 بر روی All Ports باشد.
۱۳- در باکس When does this rule apply تمامی چک باکسها فعال باشد و بر روی Next کلیک کنید.
۱۴- یک نام برای این Rule انتخاب کنید و گزینه Finish را بزنید.
۱- به ماشین Client وارد شوید.
۲- تمامی مراحل بالا را از مرحله ۳ تا ۱۴ برای کلاینت نیز تکرار کنید. (تمامی مراحل حتی قسمت Endpoint ها یکسان است.)
۳- ارتباط خود را تست کنید و مطمئن شوید کماکان فعال است.
نکته: ممکن است در ابتدای ارتباط شما یک وقفه وجود داشته باشد که این مورد به دلیل شروع Negotiationارتباط است.
۴- در قسمت Monitoring شما باید ارتباط احراز هویت شده خود را فیمابین سیستمها مشاهده کنید.
۵- توجه کنید در همین قسمت در زیر منوی Quick Mode مقدار ESP Encryption بر روی None است. این گزینه به این معناست که احراز هویت سیستم مقابل تامین شده است اما اطلاعات رد و بدل شده توسط IPSecایمن نشده است!
۱- به سرور وارد شوید.
۲- یک New Rule از قسمت Inbound Connections ایجاد کنید.
۳- بر روی Custom کلیک کنید و به مرحله بعدی بروید.
۴- گزینه All Programs را انتخاب کنید و به مرحله بعدی بروید.
۵- پورت ورودی سمت سرور (مثلا ۴۴۵ SMB) را انتخاب و به مرحله بعدی بروید.
۶- آدرس IP های موردنظر خود را مانند بالا انتخاب کنید و بر روی Next کلیک کنید.
۷- گزینه Allow the connection if it is secure را انتخاب و سپس Customize را انتخاب کنید.
۸- گزینه Require the connections to be encrypted را انتخاب و بر روی OK کلیک کنید.
۹- در منوی Action بر روی OK کلیک کنید.
۱۰- در منوی Users نیز OK را بزنید.
۱۱- در منوی Computer نیز OK را بزنید.
۱۲- در قسمت Profiles تمامی تیکها را بزنید و به مرحله بعد بروید.
۱۳- نامی را برای این Rule انتخاب کنید و Finish را بزنید.
۱- به کلاینت وارد شوید.
۲- یک Rule جدید در قسمت Outbound Rules ایجاد کنید.
۳- انتخاب گزینه Custom و سپس مرحله بعد.
۴- انتخاب گزینه All Programs و سپس مرحله بعد.
۵- گزینه Remote Port (در این مثال SMB 445) را انتخاب و به مرحله بعدی بروید.
۶- آدرس IP های مورد نظر را انتخاب کنید.
۷- گزینه Allow the connection if it is secure را انتخاب کنید و بر روی Customize کلیک کنید.
۸- گزینه Require the connections to be encrypted را انتخاب کنید و OK را بزنید.
۹- در منوی Action بر روی OK کلیک کنید.
۱۰- در منوی Computer نیز OK را بزنید.
۱۱- در قسمت Profiles تمامی تیکها را بزنید و به مرحله بعد بروید.
۱۲- نامی را برای این Rule انتخاب کنید و Finish را بزنید.
۱- از سمت کلاینت ارتباط را تست کنید که فعال باشد.
۲- در قسمت Windows Firewall -> Security Associations -> Quick Mode باید گزینه ESP Encryption دارای مقدار موردنظر باشد. این نشانگر امنیت تبادل اطلاعات شماست.
• برای سیستمهایی که به دامنه متصل نیستند میتوانید از PreShared Key استفاده کنید. این کلیدها به صورت یک متن ساده هستند که در سمت کلاینت و سرور ذخیره میشود. برای امنیت اطلاعات در یک شبکه کابلی کماکان مناسب است.
• در قسمت Connection Security Rule باید به جای Computer Certificate گزینه Use PreShared Key را انتخاب کنید.
• برای سیستم عاملهای قدیمیتر از Vista استفاده از این امکان وجود ندارد. در صورت امکان سیستم خود را ارتقا دهید. در صورتی که امکان ارتقا ندارید میتوانید از IPSec بر روی سیستم استفاده نمائید. در این روش فقط به ازای هر سیستم یک ارتباط میتوانید تعریف کنید و امکان تعریف آن بصورت یک Rule در فایروال وجود ندارد. این روش برای یکبار تنظیم قابل استفاده است اما در یک سازمان Enterprise مناسب نیست مگر آنکه تمامی سیستمها از یک تنظیمات استفاده نمائید. اطلاعات بیشتر
• لینوکس و OSX نیز امکان IPSec دارند اما در سمت کلاینت به نرمافزارهای جانبی نیاز خواهید داشت.
• آدرسهای IPv6 بصورت پیشفرض شامل IPSec هستند و به صورت خودکار تنظیم میشوند.
کلیه فرآیندهای جوملا براساس ۲ فایل index.php و index2.php انجام میشود به همین منظور شما میتوانید با استفاده از کدهای زیر از اجرای سایر فایلهای PHP که ممکن است در میان فایلهای شما آپلود شده باشند و در درون آنها backdoor وجود داشته باشد خودداری نمایید.
کد:
<Filesmatch ".(php)$">
order deny,allow
deny from all
Filesmatch>
<Filesmatch "^index.php">
order allow,deny
allow from all
Filesmatch>
<Filesmatch "^index2.php">
order deny,allow
allow from all
Filesmatch>
البته ممکن است یک هکر دانا یک backdoor را با نام index.php در یکی از پوشههای جوملا شما آپلود نماید به همین منظور از کد زیر در همه زیر پوشهها استفاده نمایید:
<Files ~ ".(php)$">
Deny from all
Files>
در پوشه مدیریت نیاز است شما از کد زیر استفاده نمایید:
<Files ~ ".(php)$">
Deny from all
<Files
میدانید که مشخصات FTP هاست شما در درون فایل configuration.php برای استفاده جوملا وجود دارد و در صورت دست یافتن هکر به این اطلاعات ، هکر میتواند به سادگی سایت شما را هک نماید.
به همین منظور شما می توانید دسترسی به FTP را به IP خود سرور و مثلا IP خودتان محدود نمایید.
مثال زیر برای proftpd میباشد و این امر برای سایر سرویس دهندههای FTP کمی متفاوت است.
در فایل /etc/proftpd.conf خط زیر را اضافه نمایید.
<Limit LOGIN>
Order allow,deny
Allow from 11.22.33.44
Allow from 127.0.0.1
Deny from all
Limit>
IP شماره ۱۱٫۲۲٫۳۳٫۴۴ مثلا متعلقه به کامپیوتر شما است و IP شماره ۱۲۷٫۰٫۰٫۱ متعلق به سرور است تا بتواند از FTP استفاده نماید
معمولا اکثر سایتها نیازی به مراجعه کاربران از کشورهای هکرخیز مانند چین و روسیه ندارند به همین منظور میتوانید با استفاده از سایت زیر ، بازه IPهای کشور مورد نظر را یافته و مسدود نمایید:
<countryipblocks.net/country-blocks/select-formats>
/sbin/iptables -I INPUT -s 88.147.196.0/88.147.253.255 -j DROP
اکنون زمان محافظت از فایلها و پوشهها است. مالک فایلها و پوشهها کاربر FTP و دسترسی پوشهها ۷۵۵ و دسترسی فایلها ۶۴۴ میباشد به همین منظور دستور زیر را اجرا نمایید.
Navigate to joomla root chown -R user:group ./ chmod -R 0644 ./ find . -type d -exec chmod 755 {} ;
با این کار مالک فایلهای شما تغییر کرده و دیگر PHP قادر به نوشتن بر روی فایلها نیست.
البته فراموش نکنید که باید به صورت دستی دسترسی cache و backupsرا ۷۷۷ نمایید.
نکته: این کار را از طریق کنترل پنل و FTP هم میتوانید به راحتی انجام دهید.
شما همواره باید جوملا خود را بهروز نگه دارید و پس از انتشار هر نسخه جدید، سریعا جوملا خود را به نسخه جدیدتر ارتقا دهید.
یکی از راههای ساده جهت محافظت از جوملا گذاشتن رمزعبور بر روی پوشه Administrator است با این کار در صورتی که هکر، نام کاربری و رمزعبور شما را هم داشته باشد قادر به تخریب زیادی در سایت شما نخواهد بود.
کاربر admin که مدیرکل جوملا میباشد همواره یکی از اهداف حمله هکرها است. به همین منظور یک کاربر مدیر کل دیگر ایجاد نموده و سپس با آن وارد بخش مدیریت شده و دسترسی کاربر admin را به “کاربر ثبت شده” تغییر دهید.
نصب این پلاگین باعث ایجاد امنیت بیشتر در مسیر ورودی به مدیریت جوملای شما میشود.
از دیتابیس خود بکاپ بگیرید.
وارد مدیریت جوملا شوید.
در تنظیمات کلی وارد بخش دیتابیس شوید.
پیشوند جداول را به مثلا به rthf_ تغییر داده و سپس ذخیره نمایید.
وارد phpMyAdmin شوید.
وارد export شده و از دیتابیس خود خروجی ساده بگیرید.
کل خروجی ایجاد شده را کپی نمایید.
در phpMyAdmin کلیه جدولها را حذف نمایید.
در notepad عبارت jos_ را مثلا با rthf_ جایگزین نمایید.
وارد تب SQL شده و متن را از notapad کپی و سپس بر روی دکمه Go کلیک نمایید.
با انجام کارهای بالا سایت شما بیش از ۹۹٫۹۹% از احتمال هک شدن مصون میگردد.