نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04
LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.
سرورهای VPS معمولاً توسط افراد متجاوز هدف قرار می گیرند. یک نوع متداول از حم��ه به عنوان صدها تلاش برای ورود به سیستم ssh غیر مجاز در پرونده های سیستم مشاهده می شود. راه اندازی فایروال بسیار مفید است ، اما به خودی خود ممکن است کوشش های نفوذی مختل کننده را به درستی کنترل نکند.
این آموزش نحوه ساخت سد نفوذ افزایشی شده برای FreeBSD را با استفاده از دو برنامه ، ipfw
فایروال و sshguard
. SSHGuard یک برنامه افزودنی کوچک است که بر روی سیاهههای مربوط به سیستم برای ورودی های "سوءاستفاده" نظارت می کند. هنگامی که متخلفان سعی در دستیابی به دسترسی دارند ، sshguard
دستور ipfw
می دهند که ترافیک ناشی از آدرس IP متخلف را مسدود کنند. متخلف سپس به طور موقت خاموش است.
پس از درک نحوه کار این برنامه ها ، مدیریت حفاظت از سرور بسیار ساده است. اگرچه این راهنما روی پیکربندی FreeBSD متمرکز است ، اما بخش هایی از آن برای سایر سیستم عامل ها و نرم افزارهای فایروال کاربرد دارد.
FreeBSD 3 فایروال را در GENERIC
هسته پیش فرض ( ) خود ، ipfw
و pf
، فراهم می کند ipfilter
. هر کدام از این مزایا و طرفداران زیادی دارند اما ipfw
نرم افزار فایروال بومی FBSD است و برای استفاده در اهداف ما بسیار ساده است. شایان ذکر است که ipfw
کارهای بسیاری را انجام می دهد همانطور که صفحه اصلی آن نشان می دهد ، با این وجود قابلیت هایی مانند NAT ، شکل دادن به ترافیک و غیره برای وضعیت معمولی VPS لازم نیست. خوشبختانه ، ویژگی های اصلی فایروال به راحتی نیازهای ما را برآورده می کند.
برای شروع فایروال در زمان راه اندازی ، موارد زیر را به آن اضافه کنید /etc/rc.conf
:
firewall_enable="YES"
firewall_script="/usr/local/etc/IPFW.rules"
firewall_logging="YES"
این service
دستور برای شروع و متوقف کردن فایروال بصورت دستی موجود است:
[user@vultr ~]$ sudo service ipfw start
به طور طبیعی ، ipfw
تا زمانی که قوانینی را اضافه کنید ، اغلب از یک پرونده ، در این مثال که در آن قرار دارد ، هیچ کاری نخواهید کرد /usr/local/etc/IPFW.rules
. در واقع پرونده قوانین می تواند در هرجای دیگری واقع شده باشد و یا دارای هر اسمی باشد ، تا زمانی که با پارامتر "firewall_script" مطابقت داشته باشد. پرونده قوانین به شرح زیر است.
sshguard
در چندین طعم برای استفاده با فایروال های مختلف ارائه می شود. pkg
برای واکشی و نصب از ابزارهای زیر استفاده کنید sshguard-ipfw
:
[user@vultr ~]$ sudo pkg install sshguard-ipfw
در بیشتر موارد ، همه اینها باید انجام دهند. متغیر مناسب به طور خودکار /etc/rc.conf
برای شروع کار راه اندازی می شود:
sshguard_enable="YES"
پیش فرض ها به طور معمول خوب کار می کنند. اگر مقادیر مختلف لازم باشد ، sshguard
صفحه صفحه اطلاعات دقیقی در مورد پارامترها می دهد:
# sshguard--program defaults, so don't need to be in rc.conf unless assigning different value
# sshguard_pidfile="/var/run/sshguard.pid"
# sshguard_watch_logs="/var/log/auth.log:/var/log/mail"
# sshguard_blacklist="40:/var/db/sshguard/blacklist.db"
# sshguard_safety_thresh="40"
# sshguard_pardon_min_interval="420"
# sshguard_prescribe_interval="1200"
می توانید sshguard
با service
دعوت معمول شروع کنید :
[user@vultr ~]$ sudo service sshguard start
سخت ترین قسمت ایجاد خط مقدماتی فایروال است. ipfw
می تواند از /etc/rc.firewall
اسکریپت ارائه شده استفاده کند ، اما باید آنرا تغییر داد تا در SSHGuard ، و همچنین سناریوهای مختلف عملیاتی جای گیرد. تعدادی از صفحات وب و کتابچه راهنمای FreeBSD اطلاعات مفیدی در مورد انجام این کار دارند. با این حال ، نوشتن یک پرونده قوانین کار چندان سختی نیست ، علاوه بر این ، یک آیین نامه سفارشی می تواند درک و تغییر در صورت لزوم ساده تر باشد.
ویژگی مهم ipfw
قوانین این است که در مسابقه اول برنده می شود و این بدان معنی است که ترتیب قاعده مهم است. در ipfw
، هر قانون یک دستور است ، و پرونده قاعده یک اسکریپت پوسته قابل اجرا است. این امر باعث می شود كه قواعد با تغییر قوانین تغییر یافته و سپس پرونده قوانین به عنوان اسكریپت پوسته ای كه در آن قرار دارد تغییر یابد:
[user@vultr /usr/local/etc]$ sudo ./IPFW.rules
به طور کلی ، یک پرونده قواعد متغیر را برای ipfw
فرمان تعریف می کند ، سپس قواعد فعلی را پاک می کند ، قواعد عمومی را صادر می کند ، سپس به تنظیم قوانین "از" می پردازد و به دنبال آن قواعد "in". صفحه راهنما ipfw و منابع دیگر حاوی اطلاعات زیادی در مورد ساختار قانون و گزینه هایی هستند که کمترین گفتن را دارند.
از آنجا که نسخه sshguard FreeBSD به نسخه 1.6.2 به روز شده است ، روش درج قوانین مسدود کردن برای متخلفان تغییر کرده است. اکنون آدرس متخلفان به جای اینکه در قوانین بالاتر از 55000 مانند قبل وارد شود ، در یک جدول ipfw (جدول 22 خاص) نگه داشته می شوند.
خوشبختانه ، تنظیم پرونده قوانین برای استفاده از جدول بسیار ساده است. این فقط مسئله ای است که جدول جدول را در جای مناسب قرار دهید و مطمئن شوید که هنگام نوشتن قانون از نحو صحیح استفاده می کنید.
هنگامی sshguard
که متخلف را پیدا کرد ، آدرس متخلف را در لیست سیاه خود قرار می دهد و همچنین آدرس را در ipfw
جدول وارد می کند تا باعث شود که "دسترسی" را انکار کند. این قانون این اهداف را انجام می دهد:
01000 deny ip from table\(22\) to any
هنوز لازم است در این مورد قوانینی را مجاز کنید که خدمات ورودی را بالای 01000 انجام دهند. به عنوان مثال ، بیایید بگوییم آدرس 10.20.30.40
یک مجرم در جدول 22 است و ما این قانون ipfw را داریم:
56420 allow tcp from any to me dst-port 22 in via $vif
از آنجا که ipfw
برخورد حکومت 01،000 قبل از حکومت 56420 ، 10.20.30.40
است مسدود . این امر هرگز به هیچ وجه توسط قانون "اجازه 22 در" مشاهده نخواهد شد. اگر قانون مجاز دارای یک شماره "معمولی" مانند 00420 باشد ، ترافیک بد وارد می شود و هرگز مسدود نمی شود (زیرا 00420 کمتر از 01000 است و "اولین مسابقه برنده است").
از ویژگی های خوب نسخه به روز شده این است که اکنون وقتی sshguard شروع به کار می کند ، تمام آدرس های موجود در لیست سیاه به جدول اضافه می شوند و برای جلوگیری از متخلفین ورودی بدون تأخیر در دسترس هستند. لیست سیاه تجمعی است و بین جلسات حفظ می شود.
در این مرحله احتمالاً معقول است که یک قانون کامل را ipfw
برای آن تغییر دهید sshguard
. نظرات باید پیروی از منطق قاعده را بسیار آسان کند:
#!/bin/sh
# ipfw config/rules
# from FBSD Handbook, rc.firewall, et. al.
# Flush all rules before we begin.
ipfw -q -f flush
# Set rules command prefix
cmd="ipfw -q add "
vif="vtnet0"
# allow all for localhost
$cmd 00010 allow ip from any to any via lo0
# checks stateful rules. If marked as "keep-state" the packet has
# already passed through filters and is "OK" without futher
# rule matching
$cmd 00101 check-state
# allow DNS out
$cmd 00110 allow tcp from me to any dst-port 53 out via $vif setup keep-state
$cmd 00111 allow udp from me to any dst-port 53 out via $vif keep-state
# allow dhclient connection out (port numbers are important)
$cmd 00120 allow udp from me 68 to any dst-port 67 out via $vif keep-state
# allow HTTP HTTPS replies
$cmd 00200 allow tcp from any to any dst-port 80 out via $vif setup keep-state
$cmd 00220 allow tcp from any to any dst-port 443 out via $vif setup keep-state
# allow outbound mail
$cmd 00230 allow tcp from any to any dst-port 25 out via $vif setup keep-state
$cmd 00231 allow tcp from any to any dst-port 465 out via $vif setup keep-state
$cmd 00232 allow tcp from any to any dst-port 587 out via $vif setup keep-state
# allow icmp re: ping, et. al.
# comment this out to disable ping, et.al.
$cmd 00250 allow icmp from any to any out via $vif keep-state
# alllow timeserver out
$cmd 00260 allow tcp from any to any dst-port 37 out via $vif setup keep-state
# allow ntp out
$cmd 00270 allow udp from any to any dst-port 123 out via $vif keep-state
# allow outbound SSH traffic
$cmd 00280 allow tcp from any to any dst-port 22 out via $vif setup keep-state
# otherwise deny outbound packets
# outbound catchall.
$cmd 00299 deny log ip from any to any out via $vif
# inbound rules
# deny inbound traffic to restricted addresses
$cmd 00300 deny ip from 192.168.0.0/16 to any in via $vif
$cmd 00301 deny ip from 172.16.0.0/12 to any in via $vif
$cmd 00302 deny ip from 10.0.0.0/8 to any in via $vif
$cmd 00303 deny ip from 127.0.0.0/8 to any in via $vif
$cmd 00304 deny ip from 0.0.0.0/8 to any in via $vif
$cmd 00305 deny ip from 169.254.0.0/16 to any in via $vif
$cmd 00306 deny ip from 192.0.2.0/24 to any in via $vif
$cmd 00307 deny ip from 204.152.64.0/23 to any in via $vif
$cmd 00308 deny ip from 224.0.0.0/3 to any in via $vif
# deny inbound packets on these ports
# auth 113, netbios (services) 137/138/139, hosts-nameserver 81
$cmd 00315 deny tcp from any to any dst-port 113 in via $vif
$cmd 00320 deny tcp from any to any dst-port 137 in via $vif
$cmd 00321 deny tcp from any to any dst-port 138 in via $vif
$cmd 00322 deny tcp from any to any dst-port 139 in via $vif
$cmd 00323 deny tcp from any to any dst-port 81 in via $vif
# deny partial packets
$cmd 00330 deny ip from any to any frag in via $vif
$cmd 00332 deny tcp from any to any established in via $vif
# allowing icmp re: ping, etc.
$cmd 00310 allow icmp from any to any in via $vif
# allowing inbound mail, dhcp, http, https
$cmd 00350 allow udp from any 53 to me in via $vif
$cmd 00360 allow tcp from any 53 to me in via $vif
$cmd 00370 allow udp from any 67 to me dst-port 68 in via $vif keep-state
$cmd 00400 allow tcp from any to me dst-port 80 in via $vif setup limit src-addr 2
$cmd 00410 allow tcp from any to me dst-port 443 in via $vif setup limit src-addr 2
# SSHguard puts offender addresses in table 22. Set up the table rule
# Please note the '\(22\)' syntax, necessary since it's run as shell command
$cmd 01000 deny ip from table\(22\) to any
# allow inbound ssh, mail. PROTECTED SERVICES: numbered ABOVE sshguard blacklist range
$cmd 56420 allow tcp from any to me dst-port 22 in via $vif setup limit src-addr 2
$cmd 56530 allow tcp from any to any dst-port 25 in via $vif setup keep-state
$cmd 56531 allow tcp from any to any dst-port 465 in via $vif setup keep-state
$cmd 56532 allow tcp from any to any dst-port 587 in via $vif setup keep-state
# deny everything else, and log it
# inbound catchall
$cmd 56599 deny log ip from any to any in via $vif
# ipfw built-in default, don't uncomment
# $cmd 65535 deny ip from any to any
نیازهای سیستم متفاوت است و گزینه های مختلف پورت ها برای مسدود کردن یا رفع انسداد در مجموعه قوانین منعکس می شود. پس از اتمام خط مقدم ، پرونده را ذخیره کرده /usr/local/etc/IPFW.rules
و خدمات FBSD را شروع کنید:
# service ipfw start
# service sshguard start
اکنون فایروال افزودنی باید اجرا شود! بررسی کنید sshguard
:
[user@vultr ~]$ sudo pgrep -lfa ssh
در صورت sshguard
اجرا ، خط pid و فرمان کامل آن نمایش داده می شود:
720 /usr/local/sbin/sshguard -b 40:/var/db/sshguard/blacklist.db -l /var/log/auth.log -l /var/log/maillog -a 40 -p 420 -s 1200 -w /usr/local/etc/sshguard.whitelist -i /var/run/sshguard.pid
این نشان می دهد که قانون فایروال با آمار و آخرین باری که یک بسته با این قانون مطابقت دارد:
[user@vultr ~]$ sudo ipfw -cat list
پس از ساعت ها یا روزها ، آدرس مجرمان به لیست سیاه و همچنین جدول 22 اضافه می شود. برای مشاهده همه آدرس های موجود در جدول ، از این دستور استفاده کنید:
ipfw table 22 list
نتیجه به صورت زیر چاپ می شود:
10.10.10.118/32 0
10.10.10.72/32 0
...
همانطور که در بالا توضیح داده شد ، اتصالات این آدرس ها مجاز نیستند. البته ، در اولین اجرا sshguard
آدرس دیگری در لیست وجود نخواهد داشت ، اما با گذشت زمان می تواند خیلی طولانی شود. یک گزینه ایجاد قوانین مسدود کننده جداگانه برای آدرس های دارای چندین ورودی در جدول و سپس حذف آنها از لیست سیاه است.
این ایده خوبی است که گاهی اوقات سیاههها را چک کنید تا اطمینان حاصل کنید که نفوذها کنترل می شوند. به طور کلی ، /var/log/auth.log
و /var/log/security
آموزنده هستند. ممکن است شکاف ها یا خطاها در پوشش خدمات شبکه آشکار شود. اصلاح مقررات فایروال در صورت نیاز ، یک قسمت عادی از سرور مدیریت است.
در نسخه های sshguard قبلی ، وقتی /var/db/sshguard/blacklist.db
پرونده بزرگ شد ، می تواند مانع sshguard
از شروع به کار سیستم شود. حذف یا تغییر نام پرونده لیست سیاه مجاز sshguard
به شروع است. به نظر می رسد که این شماره در آخرین نسخه sshguard برطرف شده است ، بنابراین احتمالاً این راه حل دیگر ضروری نیست.
حتماً آدرس IP را که از آنجا به SSH Session وصل شده اید ، سفید کنید. اگر به طور اتفاقی خود را قفل کردید ، همیشه می توانید به https://my.vultr.com به کنسول noVNC وصل شوید و IP خود را لیست کنید.
جمع بندی ، استفاده از ترکیب ipfw
و sshguard
کمک به حفظ سیستم FreeBSD و انجام کار خود. به حداقل رساندن فعالیت شبکه مزاحم فواید دیگری دارد: کمتر "نویز" باعث می شود ردیابی و تنظیم سیستم عملکرد راحت تر شود و به یک سرور ایمن تر و بهتر کار کند.
محافظت موثر از سیستم / سرور FreeBSD به خصوص پیچیده نیست. در حالی که یک تلاش متوسط برای رسیدن به آن و اجرای آن مورد نیاز است ، اما در VPS و امنیت پروژه به مراتب بیشتر پرداخت می کند.
LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.
با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.
NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید
هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله
با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o
TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من
Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th
با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB
ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.
رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد