使用OpenBSD在Vultr上配置BGP
Vultrs BGP功能使您可以拥有自己的IP空间并在我们的任何位置使用它,而OpenBSD实例则不需要其他软件!
本教程将OpenBSD演示为使用PrestaShop和Apache的电子商务解决方案。
需要Apache,因为PrestaShop具有复杂的URL重写要求,而OpenBSD的内置Web服务器httpd不支持这些要求。本教程使用自签名证书。请使用经过验证的证书进行生产。
临时创建一个doas无需密码即可使用的普通用户。设置后,将删除此访问权限。
user add -c "Example User" -m -G wheel -L staff auser
passwd auser
echo 'permit nopass keepenv :wheel' > /etc/doas.conf
添加OpenBSD软件包存储库。
echo 'https://cdn.openbsd.org/pub/OpenBSD' > /etc/installurl
将每日状态和安全电子邮件转发到您的地址。
echo '[email protected]' > /root/.forward
设置服务器的主机名。
echo 'www.example.com' > /etc/myname
hostname www.example.com
将服务器的FQDN和IP地址添加到中 /etc/hosts。
替换192.0.2.1为您的Vultr IP地址。
127.0.0.1 localhost
::1 localhost
192.0.2.1 www.example.com
添加PrestaShop和Apache所需的软件包。出现提示时选择最新版本。
doas su
pkg_add apache-httpd php php-curl php-gd php-intl php-pdo_mysql php-zip mariadb-client mariadb-server wget unzip
创建了一个自签名的SSL证书进行测试。将“公用名”设置为服务器的FQDN,例如www.example.com。
openssl req -x509 -new -nodes -newkey rsa:4096 -keyout /etc/ssl/private/example.com.key -out /etc/ssl/example.com.crt -days 3650 -sha256
chmod 0600 /etc/ssl/private/example.com.key
找到最新版本的PrestaShop的URL ,下载/tmp并提取到/var/www/htdocs/prestashop。
cd /tmp
wget <https://download.prestashop.com/download/releases/prestashop_1.7.6.4.zip>
unzip prestashop_1.7.6.4.zip -d /var/www/htdocs/prestashop
chown -R www:www /var/www/htdocs/prestashop
配置防火墙以阻止除ssh,www和https之外的所有入站流量。
制作的备份副本/etc/pf.conf。
cp /etc/pf.conf /etc/pf.conf.bak
/etc/pf.conf如图所示进行编辑。
set skip on lo
block in
pass out
pass in on egress inet proto tcp to port {ssh, www, https} \
flags S/SA keep state
测试并激活防火墙规则。
doas pfctl -nf /etc/pf.conf
doas pfctl -f /etc/pf.conf
备份/etc/mail/smtpd.conf文件。
cp /etc/mail/smtpd.conf /etc/mail/smtpd.conf.bak
/etc/mail/smtpd.conf如下所示进行编辑。
注意:*秘密的表定义包含邮件中继的用户名和密码。*出站操作会在标签下查找用户名和密码prestashop,/etc/mail/secrets并通过电子邮件服务器转发电子邮件。
table aliases file:/etc/mail/aliases
table secrets file:/etc/mail/secrets
listen on lo0
action "local_mail" mbox alias <aliases>
action "outbound" relay host smtp+tls://[email protected]:587 \
tls no-verify auth <secrets>
match from local for local action "local_mail"
match from local for any action "outbound"
创建 /etc/mail/secrets
用您用于电子邮件服务器的凭据替换电子邮件地址和密码。
echo "prestashop [email protected]:password" > /etc/mail/secrets
设置权限以确保安全 /etc/mail/secrets
chmod 0600 /etc/secrets
删除错误的配置文件,然后重新启动smtpd守护程序。
smtpd -n
rcctl restart smtpd
配置PHP-FPM进程以侦听TCP套接字而不是UNIX域套接字。
在/etc/php-fpm.conf文件下面进行以下更改。
...
; If using a TCP port, never expose this to a public network.
;listen = /var/www/run/php-fpm.sock
listen = 127.0.0.1:9000
对中的PHP环境进行一些其他更改 /etc/php-7.3.ini。如果版本高于7.3,则此文件名可能会稍有更改。这些变化:
配置PHP以通过sendmail发送电子邮件。
; Default Value: not set
;chroot = /var/www
...
; Maximum allowed size for uploaded files.
; <http://php.net/upload-max-filesize>
upload_max_filesize = 6M
...
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; <http://php.net/sendmail-path>
;sendmail_path =
sendmail_path = /usr/sbin/sendmail -t -i
...
; Whether to allow the treatment of URLs (like <http://> or <ftp://)> as files.
; <http://php.net/allow-url-fopen>
allow_url_fopen = On
...
; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; <http://php.net/post-max-size>
post_max_size = 12M
启用PHP插件。
cp /etc/php-7.3.sample/* /etc/php-7.3/。
启用并启动PHP-FPM守护程序。如果版本较新,则守护程序名称可能会略有不同。
rcctl enable php73_fpm
rcctl start php73_fpm
MariaDB为PrestaShop提供数据库后端。由于MariaDB需要的打开文件超出了默认类允许的数量,因此请在中创建一个特殊类/etc/login.conf。
在文件底部,添加以下行:
mysqld:\
:openfiles-cur=1024:\
:openfiles-max=2048:\
:tc=daemon:
安装MariaDB。
doas su
mysql_install_db
rcctl enable mysqld
rcctl start mysqld
配置MariaDB安全性。
mysql_secure_installation
创建PrestaShop数据库。使用强密码。
mysql -u root
CREATE DATABASE prestashop;
GRANT ALL PRIVILEGES ON prestashop.* TO 'prestashop'@'localhost' IDENTIFIED BY 'password123';
FLUSH PRIVILEGES;
EXIT
备份 /etc/apache2/httpd2.conf
cp /etc/apache2/httpd2.conf /etc/apache2/httpd2.conf.bak
对进行以下更改/etc/apache2/httpd2.conf, #以启用和禁用模块。
Listen 443
...
LoadModule mpm_event_module /usr/local/lib/apache2/mod_mpm_event.so
#LoadModule mpm_prefork_module /usr/local/lib/apache2/mod_mpm_prefork.so
LoadModule proxy_module /usr/local/lib/apache2/mod_proxy.so
LoadModule proxy_fcgi_module /usr/local/lib/apache2/mod_proxy_fcgi.so
LoadModule ssl_module /usr/local/lib/apache2/mod_ssl.so
LoadModule rewrite_module /usr/local/lib/apache2/mod_rewrite.so
...
ServerAdmin [email protected]
ServerName 192.0.2.1:80
/etc/apache2/httpd2.conf文件底部将发生更多更改。#从指示的包含语句中删除。
最后添加虚拟主机行。
# Server-pool management (MPM specific)
Include /etc/apache2/extra/httpd-mpm.conf
...
# Virtual Hosts
IncludeOptional /etc/apache2/sites/*.conf
创建/etc/apache2/sites目录。
mkdir /etc/apache2/sites
/etc/apache2/sites/example.conf使用以下信息创建:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin [email protected]
DocumentRoot "/var/www/htdocs/prestashop"
<Directory "/var/www/htdocs/prestashop">
Options -Indexes +Multiviews +FollowSymLinks
AllowOverride All
<Limit GET POST OPTIONS>
</Limit>
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
ServerAdmin [email protected]
DocumentRoot "/var/www/htdocs/prestashop"
<Directory "/var/www/htdocs/prestashop">
Options -Indexes +Multiviews +FollowSymLinks
AllowOverride All
<Limit GET POST OPTIONS>
</Limit>
Require all granted
</Directory>
SSLEngine On
SSLCertificateFile "/etc/ssl/example.com.crt"
SSLCertificateKeyFile "/etc/ssl/private/example.com.key"
SSLCipherSuite HIGH:!aNULL
</VirtualHost>
通过添加以下内容来配置Apache的代理模块 /etc/apache2/sites/example.conf
<IfModule proxy_module>
<IfModule dir_module>
DirectoryIndex index.php
</IfModule>
<FilesMatch "\.php$">
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
</IfModule>
测试配置,然后启用并启动Apache。
apachectl configtest
rcctl enable apache2
rcctl start apache2
确保Apache正在侦听端口80和443。
netstat -ln -finet
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp 0 0 *.443 *.* LISTEN
tcp 0 0 127.0.0.1.25 *.* LISTEN
tcp 0 0 *.22 *.* LISTEN
tcp 0 0 *.80 *.* LISTEN
tcp 0 0 127.0.0.1.3306 *.* LISTEN
tcp 0 0 127.0.0.1.9000 *.* LISTEN
浏览至的网站http://www.example.com。PrestaShop安装向导将启动。
完成安装后,记下商店前面和管理链接并删除目录/var/www/htdocs/prestashop/install。
启用SSL。
更改您的管理密码。
备份您的商店及其数据库:
cd /var/www/htdocs
doas tar cvfz /home/auser/prestashop.tar.gz prestashop/
doas mysqldump -u prestashop -p prestashop | gzip -4 > /home/auser/prestashop.sql.tar.gz
doas chown auser:auser /home/auser/prestashop*
通过重新创建doas.conf文件来删除用户帐户的doas访问权限。
echo 'permit keepenv :wheel' > /etc/doas.conf
Vultrs BGP功能使您可以拥有自己的IP空间并在我们的任何位置使用它,而OpenBSD实例则不需要其他软件!
简介FreeBSD是一种类似于Unix的开源操作系统,用于为现代服务器,台式机和嵌入式平台提供动力。Netflix,雅虎等巨人!
本文中的信息涉及修改磁盘,分区和文件系统,因此在执行任何示例之前,应先完全理解它们,因为它们会导致数据丢失或丢失。
使用其他系统?Omeka Classic 2.4 CMS是一个免费的开源数字发布平台和用于共享数字内容的内容管理系统(CMS)
在Linux和Unix系统管理员中,使用sudo用户访问服务器并在root级执行命令是一种非常普遍的做法。使用泡沫
使用其他系统?osTicket是一个开放源代码的客户支持票务系统。osTicket源代码公开托管在Github上。在本教程中
使用其他系统?Dolibarr是面向企业的开源企业资源计划(ERP)和客户关系管理(CRM)。多利巴尔
Ghost是与WordPress竞争的最新,最大的暴发户。主题开发既快速又容易学习,因为Ghost开发人员决定同时使用
使用其他系统?Monica是一个开源的个人关系管理系统。可以将其视为CRM(销售团队使用的一种流行工具
使用其他系统?Couch CMS是一个简单,灵活,免费和开源的内容管理系统(CMS),可让Web设计人员进行设计
使用其他系统?LimeSurvey是一个用PHP编写的开源调查软件。LimeSurvey源代码托管在GitHub上。本指南将向您展示
使用其他系统?TLS 1.3是传输层安全性(TLS)协议的版本,该协议于2018年作为RFC 8446中的建议标准发布
使用其他系统?MyBB是一个免费,开放源代码,直观且可扩展的论坛程序。MyBB源代码托管在GitHub上。本指南将
尽管ejabberd非常普遍,但最近有一个竞争对手-Prosody。本教程将向您展示如何在FreeBS上设置Prosody
从9.2版开始,FreeBSD引入了一个新工具来替换旧的pkg _ *-命令-pkg,也称为pkgng。它非常类似于Debians apt o
使用其他系统?Matomo(以前称为Piwik)是一个开源分析平台,是Google Analytics(分析)的一种开放替代方案。Matomo源托管o
使用其他系统?ProcessWire CMS 3.0是一个简单,灵活,功能强大,免费和开源的内容管理系统(CMS)。ProcessWire CMS 3。
使用其他系统?TLS 1.3是传输层安全性(TLS)协议的版本,该协议于2018年作为RFC 8446中的建议标准发布
使用其他系统?Redaxscript 3.2 CMS是一款现代,超轻量级,免费和开源的内容管理系统(CMS),具有火箭fas
使用其他系统?简介BookStack是一个简单的,自托管的易于使用的平台,用于组织和存储信息。BookStack已满
在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。
快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。
学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。
使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。
了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。
勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根
ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。
Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+
閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。
最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息