نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04
LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.
iptables
ابزاری قدرتمند است که برای پیکربندی فایروال یکپارچه هسته هسته لینوکس استفاده می شود. این برنامه در اکثر توزیع های اوبونتو از قبل نصب شده است ، اما اگر از نسخه شخصی سازی اوبونتو استفاده می کنید یا داخل یک ظرف کار می کنید ، به احتمال زیاد مجبور خواهید بود که آن را به صورت دستی نصب کنید.
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
: tcp در بندر 21HTTPS
: tcp در بندر 443DHCP
: udp در بندر 67NTP
: udp در بندر 123توجه: اگر می خواهید اجازه دهید apt-get
ممکن است لازم باشد FTP
وHTTPS
.
ترافیک برگشتی را فقط برای اتصالات RELATED
و در حال حاضر مجاز کنید ESTABLISHED
( توصیه می شود زیرا گاهی اوقات ارتباط دو طرفه لازم است).
sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
درخواست های پینگ را از خارج مجاز کنید.
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 با موفقیت به سرور خود وارد شوید ، یک اتصال پایدار ایجاد می شود (یعنی بدون اتصال بیش از 1 ساعت به اینترنت وصل شوید). اگر شکست بخورید و دوباره به سیستم وارد شوید ، یک اتصال جدید ایجاد می شود. با محدود کردن اتصالات جدید در هر ساعت ، تلاش های مداوم ورود به سیستم 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
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 است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد