نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP
با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.
ظروف LXC (ظروف لینوکس) یک ویژگی سیستم عامل در لینوکس است که می تواند برای اجرای چندین سیستم جدا شده لینوکس روی یک هاست واحد مورد استفاده قرار گیرد.
این دستورالعمل ها شما را در مراحل اساسی پیکربندی سرور برای میزبانی کانتینر جداول لینوکس طی می کنند. ما ویژگی های زیر را پیکربندی می کنیم:
ssh box1@example.comوssh box2@example.comاین راهنما فرض می کند که:
در پایان آموزش دو کانتینر مجازی خواهیم داشت که به اینترنت دسترسی خواهند داشت اما نمی توانند یکدیگر را پینگ کنند. همچنین حمل و نقل پورت را example.comبه ظروف پیکربندی خواهیم کرد. ما با کمک ابزارهایی از بسته Proxmox ، پیکربندی و کنترل پنل ایمن را مستقر خواهیم کرد.
ما فقط برای مدیریت ظروف LXC از Proxmox استفاده خواهیم کرد. معمولاً از KVM پشتیبانی می کند ، اما مجازی سازی تو در تو Vultr ممنوع است. قبل از شروع ، یک ISO Proxmox باید از وب سایت رسمی بارگیری شود. ما استفاده Proxmox VE 5.0 ISO Installerخواهیم کرد با تنظیمات پیش فرض سیستم عامل را از روی تصویر نصب کرده و دستگاه مجازی را دوباره راه اندازی کنید. همچنین ، می توانید Proxmox را به صورت دستی از منابع نصب کنید ، اما در اکثر موارد این کار ضروری نیست (دستورالعمل های اینجا را دنبال کنید ).
با SSH به میزبان خود متصل شوید ، لیست الگوهای proxmox را به روز کنید و یک الگوی مناسب برای ظروف بارگیری کنید.
apt-get update
pveam update
pveam available
pveam download local ubuntu-14.04-standard_14.04-1_amd64.tar.gz
حال باید یک کانتینر لینوکس با رابط شبکه ایجاد کنیم که به یک پل لینوکس متصل است. /etc/network/interfacesخطوط زیر را باز کرده و ضمیمه کنید:
auto vmbr1
iface vmbr1 inet static
address 10.100.0.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
پس از راه اندازی مجدد سیستم ، می توانید یک ظرف جدید از Ubuntu 14.04قالب ایجاد کنید.
pct create 200 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr1,ip=10.100.0.200/24,gw=10.100.0.1
می توانید ظرف خود را با استفاده از ظرف تأیید کنید pct list، ظرف شماره 200 را با pct start 200آن شروع کنید و پوسته آن را وارد کنید pct enter 200. همچنین می توانید تنظیمات و آدرس های شبکه را با آنها تأیید کنید ip addr.
برای برقراری ارتباط اینترنتی در داخل کانتینر ، باید آن را فعال کنیم NAT. موارد زیر باعث می شود تا ترافیک از کانتینر به اینترنت با کمک فناوری NAT هدایت شود. این vmbr0پل به رابط خارجی وصل شده و این vmbr1پل به ظروف متصل است.
sysctl -w net.ipv4.ip_forward=1
iptables --table nat --append POSTROUTING --out-interface vmbr0 -j MASQUERADE
iptables --append FORWARD --in-interface vmbr1 -j ACCEPT
ظرف را وارد کنید pct enter 200و سرور وب را درون آن پیکربندی کنید.
apt-get update
apt-get install nginx
service nginx start
exit
اکنون ، ما باید Nginx را بر روی سرور خود پیکربندی کنیم تا وب سایت های پروکسی را در ظروف قرار دهیم.
apt-get update
apt-get install nginx
/etc/nginx/sites-available/box200با پیوند زیر یک پرونده پیکربندی جدید ایجاد کنید :
server {
listen 80;
server_name server200.example.com;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
location / {
proxy_pass http://10.100.0.200/;
}
}
Nginx اکنون درخواست server200.example.comIP HTTP را از طریق سرور خود به ظرف با IP 10.100.0.200 پروکسی می کند. این پیکربندی را فعال کنید.
ln -s /etc/nginx/sites-available/box200 /etc/nginx/sites-enabled/
service nginx restart
اگر می خواهید دسترسی آسان به ماسهبازی ها داشته باشید ، لازم است جلسات SSH را درون ظروف منتقل کنید. برای انجام این کار ، یک کاربر جدید در سرور root خود ایجاد کنید. فراموش کردن رمز عبور ، پارامترهای دیگر لازم نیست.
adduser box200
su - box200
ssh-keygen
cat .ssh/id_rsa.pub
exit
این کلید SSH را کپی کنید و برای اضافه کردن کلید وارد ظرف شوید.
pct enter 200
mkdir .ssh
nano .ssh/authorized_keys
exit
در سرور خود ، خط زیر را به .ssh/authorized_keysپرونده اضافه کنید.
command="ssh root@10.100.0.200",no-X11-forwarding,no-agent-forwarding,no-port-forwarding <YOUR SSH KEY>
فراموش نکنید که <YOUR SSH KEY>به کلید عمومی منزل خود تغییر دهید . همچنین می توانید موارد زیر را از خط فرمان اجرا کنید.
echo 'command="ssh root@10.100.0.200",no-X11-forwarding,no-agent-forwarding,no-port-forwarding <YOUR SSH KEY>' >> .ssh/authorized_keys
سپس می توانید با ssh به sandbox خود متصل شوید.
`ssh box200@<your_server_IP>`
اکنون زمان اجرای چندین پیشرفت امنیتی است. ابتدا می خواهیم پورت پیش فرض SSH را تغییر دهیم. سپس می خواهیم از صفحه مدیریت Proxmox خود با احراز هویت اولیه HTTP محافظت کنیم.
nano /etc/ssh/sshd_config
رفع اشکال و تغییر خط
#Port 22
به
Port 24000
شروع مجدد ssh
service ssh restart
دوباره به ssh با درگاه جدید وصل شوید.
ssh root@<your_IP> -p 24000
ایجاد فایل /etc/default/pveproxy.
ALLOW_FROM="127.0.0.1"
DENY_FROM="all"
POLICY="allow"
pveproxyبرای اعمال تغییرات مجدداً راه اندازی کنید .
/etc/init.d/pveproxy restart
nginx را پیکربندی کنید (اگر قبلاً این کار را نکرده اید).
apt-get install nginx
service nginx restart
یک پیکربندی پیش فرض در ایجاد کنید /etc/nginx/site-available/default.
server {
listen 80;
server_name example.com;
rewrite ^ https://$hostname.example.com$request_uri? permanent;
}
server {
listen 443 ssl;
server_name example.com;
#auth_basic "Restricted";
#auth_basic_user_file htpasswd;
#location / { proxy_pass https://127.0.0.1:8006; }
}
یک گواهی SSL معتبر بدست آورید و پیکربندی nginx خود را به روز کنید. به عنوان مثال ، این کار را می توان با کمک گواهی نامه و letsencrypt انجام داد. برای اطلاعات بیشتر، کلیک کنید اینجا .
wget https://dl.eff.org/certbot-auto
chmod +x certbot-auto
./certbot-auto --nginx
اکنون ، پیکربندی nginx شما باید شبیه به این باشد (یا می توانید پس از آن به صورت دستی آن را تغییر دهید). فراموش نکنید که خطوط ssl ، auth و موقعیت مکانی را فراموش نکنید.
server {
listen 80;
server_name example.com;
rewrite ^ https://$hostname.example.com$request_uri? permanent;
}
server {
listen 443 ssl;
server_name example.com;
ssl on;
auth_basic "Restricted";
auth_basic_user_file htpasswd;
location / { proxy_pass https://127.0.0.1:8006; }
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
}
/etc/htpasswdبا استفاده از ژنراتور Htpasswd یک فایل ایجاد کنید .
nano /etc/nginx/htpasswd
Nginx را مجدداً راه اندازی کنید
service nginx restart
اکنون می توانید کنسول مدیریت را https://example.comبعد از تأیید اعتبار اولیه مشاهده کنید.
اکنون ظروف توسط درخواست HTTP و SSH در دسترس هستند. اکنون می توانیم پیکربندی پورت را از سرور خارجی به ظروف پیکربندی کنیم. به عنوان مثال ، برای نقشه برداری example.com:8080برای 10.100.0.200:3000ورودی موارد زیر.
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8080 -j DNAT --to 10.100.0.200:3000
شما می توانید قوانین فعلی را مشاهده کنید.
`iptables -t nat -v -L PREROUTING -n --line-number`
همچنین می توانید یک قانون را با شماره زیر حذف کنید.
`iptables -t nat -D PREROUTING <#>`.
اکنون می توانیم از ظرف دیگری به یک ظرف دیگر دسترسی پیدا کنیم.
pct create 250 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr1,ip=10.100.0.250/24,gw=10.100.0.1
pct start 250
pct enter 250
ping 10.100.0.200
اگر می خواهید دسترسی از ظرف 250 تا 200 را محدود کنید ، باید هر ظرف را به یک پل شخصی وصل کنید و حمل و نقل بین پل ها را غیرفعال کنید.
ظروف موجود را حذف کنید.
pct stop 200
pct stop 250
pct destroy 200
pct destroy 250
تغییر محتوای /etc/network/interfaces.
auto vmbr1
iface vmbr1 inet static
address 10.100.1.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
auto vmbr2
iface vmbr2 inet static
address 10.100.2.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
reboot سیستم
حمل و نقل را فعال کنید
`sysctl -w net.ipv4.ip_forward=1`
برای اینکه این تغییرات دائمی شود ، می توانید /etc/sysctl.confپرونده را ویرایش کرده و متن زیر را بیابید.
#net.ipv4.ip_forward=1
ناراضی بودن
net.ipv4.ip_forward=1
شما همچنین می توانید اجرا کنید sysctl -pتا تغییرات بلافاصله عملی شوند.
ظروف ایجاد کنید.
pct create 200 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr1,ip=10.100.1.200/24,gw=10.100.1.1
pct create 250 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr2,ip=10.100.2.250/24,gw=10.100.2.1
ظروف را با pct start 200و شروع کنید pct start 250.
iptablesقوانین را شستشو دهید .
iptables -F
NAT را فعال کنید.
iptables --table nat --append POSTROUTING --out-interface vmbr0 -j MASQUERADE
vmbr0 پلی است که شامل رابط خارجی است.
اجازه انتقال از رابط خارجی.
iptables --append FORWARD --in-interface vmbr0 -j ACCEPT
حمل و نقل از ظروف به اینترنت مجاز است.
iptables -A FORWARD -i vmbr1 -o vmbr0 -s 10.100.1.0/24 -j ACCEPT
iptables -A FORWARD -i vmbr2 -o vmbr0 -s 10.100.2.0/24 -j ACCEPT
حمل و نقل دیگر را رها کنید.
iptables -A FORWARD -i vmbr1 -j DROP
iptables -A FORWARD -i vmbr2 -j DROP
اکنون بررسی کنید که 10.100.1.200می تواند پینگ کند 8.8.8.8اما نمی تواند پینگ کند 10.100.2.250و 10.100.2.250می تواند پینگ کند 8.8.8.8اما نمی تواند پینگ کند 10.100.1.200.
ترتیب دستورات مربوط به iptables مهم است. بهترین راه برای استفاده از قوانین خود استفاده از آن است iptables-persistent. این بسته به شما کمک می کند تا قوانین iptables را در پرونده ها ذخیره کنید /etc/iptables/rules.v4و /etc/iptables/rules.v6پس از راه اندازی مجدد سیستم می توانید آنها را به طور خودکار بارگیری کنید. فقط آن را با موارد زیر نصب کنید.
apt-get install iptables-persistent
YESوقتی از شما خواسته شد انتخاب کنید .
با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.
NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید
هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله
LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.
با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o
TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من
Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th
با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB
رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد
ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.