标签归档:免费

在Oracle Cloud免费VPS CentOS 7 系统上开启SELinux和防火墙(firewalld和iptables)情况下安装Web服务器Caddy

参考:

https://src.fedoraproject.org/rpms/caddy/blob/master/f/caddy.spec
https://github.com/caddyserver/caddy/tree/master/dist/init/linux-systemd

本文的亮点在于开启SELinux、防火墙(Firewalld和iptables)情况下,配置caddy。 本文不限于Oracle Cloud云服务,同样适用于其他类似的情况下。

按照以上教程,默认路径为:

  • /usr/local/bin/caddy #caddy程序所在目录
  • /etc/caddy/Caddyfile #caddy配置文件所作目录
  • /etc/ssl/caddy #ssl证书所在目录
  • /var/www/ #网页所在目录

建立www-data用户

caddy服务默认使用www-data用户运行,因此需要建立该用户。教程中为建立用户组为33,但Oracle CentOS 7系统中GID 33被tape占用:

grep '33' /etc/group

使用GID 36建立www-data用户

sudo groupadd -g 36 www-data
sudo useradd \
  -g www-data --no-user-group \
  --home-dir /var/www --no-create-home \
  --shell /usr/sbin/nologin \
  --system --uid 36 www-data

下载并安装caddy

sudo mkdir ~/caddy && cd ~/caddy
sudo wget https://github.com/caddyserver/caddy/releases/download/v1.0.3/caddy_v1.0.3_linux_amd64.tar.gz
sudo tar xvf caddy_v1.0.3_linux_amd64.tar.gz
sudo cp caddy /usr/local/bin

sudo chown root:root /usr/local/bin/caddy

sudo chmod 755 /usr/local/bin/caddy

使caddy能监听443,80端口

sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/caddy

安装systemd服务

sudo cp init/linux-systemd/caddy.service /etc/systemd/system/

sudo chown root:root /etc/systemd/system/caddy.service

sudo chmod 644 /etc/systemd/system/caddy.service

修改servicen内容

sudo vi /etc/systemd/system/caddy.service

需要修改为以下三行:

  1. ExecStart=/usr/local/bin/caddy -quic -log stdout -agree=true -conf=/etc/caddy/Caddyfile -root=/var/tmp
  2. ReadWriteDirectories=/etc/ssl/caddy
  3. AmbientCapabilities=CAP_NET_BIND_SERVICE

说明:

第一行,加入-quic,使caddy开启QUIC协议;

第二行,默认为ReadWritePaths=/etc/ssl/caddy,此时启动caddy服务,会出现如下错误:[ERROR] Making new certificate manager: could not save user: mkdir /etc/ssl/caddy/acme: read-only file system。

第三行,注释掉AmbientCapabilities=CAP_NET_BIND_SERVICE前的#,不用注释应该页没问题。因前面已经setcap过了。

建立caddy配置文件和ssl相关文件夹

sudo mkdir /etc/caddy
sudo touch /etc/caddy/Caddyfile
sudo chown -R www-data:www-data /etc/caddy
sudo chmod 644 /etc/caddy/Caddyfile
sudo mkdir /etc/ssl/caddy
sudo chown www-data:www-data /etc/ssl/caddy
sudo chown -R root:www-data /etc/ssl/caddy
sudo chmod 0770 /etc/ssl/caddy

修改VPS系统内SELinux和防火墙相关设置

将caddy定义为httpd服务

sudo semanage fcontext -a -t httpd_exec_t /usr/local/bin/caddy
sudo restorecon /usr/local/bin/caddy

设置caddy配置文件和ssl相关文件夹SELinux权限

sudo semanage fcontext -a -t httpd_config_t /etc/caddy
sudo semanage fcontext -a -t httpd_config_t /etc/caddy/Caddyfile
sudo semanage fcontext -a -t httpd_sys_rw_content_t /etc/ssl/caddy
sudo restorecon -r /etc/caddy
sudo restorecon -r /etc/ssl/caddy

开启http和https服务,即开启80和443端口,默认为tcp

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https

允许ACME进行连接以获取证书

sudo setsebool -P httpd_can_network_connect 1

HTTP challenge 端口的SELinux权限

sudo semanage port -a -t http_port_t -p tcp 5033

开启QUIC,需开放udp端口

sudo semanage port --add --type http_port_t --proto udp 80
sudo semanage port --add --type http_port_t --proto udp 443

QUIC-firewalld设置

sudo firewall-cmd --zone=public --add-port=80/udp --permanent
sudo firewall-cmd --zone=public --add-port=443/udp --permanent

保存设置,重启防火墙,以使配置生效

sudo firewall-cmd --reload

在Oracle Cloud后台网页开放端口

进入“实例”,点击“实例信息”下的“虚拟云网络”右侧类似“VirtualCloudNetwork-2019****-****”的按钮并进入;

在“(根)区间中的子网”下,如果存在多个类似“公共子网 pbOp:***-**-1 ”的项目列表,就随便点进去一个

在“安全列表”下,点击并进入“Default Security List for VirtualCloudNetwork-2019****-****”。

编辑“入站规则”下“目的地端口范围”为22那条规则,或者参照这条规则新建也可以。
将“目的地端口范围”下的“22”改为“22,80,443,5033”,然后“保存更改”即可。 系统会自动根据添加的IP生成新的三条规则。

注意:每个端口或范围间隔需要英文逗号。

开启QUIC,需要开放80和443的UDP端口,参照刚才设置的80和433端口新建规则即可,注意在“IP 协议 ”下选择“UDP”。

web站点文件相关设置

建立web站点文件夹

sudo mkdir /var/www
sudo chown -R www-data:www-data /var/www
sudo chmod 555 /var/www
sudo mkdir -p /var/www/example.com

sudo chown -R www-data:www-data /var/www/example.com

sudo chmod -R 555 /var/www/example.com

设置网站文件夹SELinux权限

sudo restorecon -r /var/www

建立web测试页

sudo vi /var/www/example.com/index.html

写入如下内容

<h1>Hello world!</h1>

测试web页

修改Caddyfile,添加站点

sudo vi /etc/caddy/Caddyfile

添加如下内容:

example.com {
     root /var/www/example.com
}

启动caddy服务

sudo systemctl daemon-reload
sudo systemctl start caddy.service
systemctl status caddy

访问example.com,看是否能见到网站页面

如能成功访问,设置开机启动

sudo systemctl enable caddy.service

完毕。

Windows新手入门软件推荐列表

早年就想弄一个软件网站,面向Windows入门用户提供一些常用软件,尽量以免费为主,而且最好不要包括推广或者广告,并推荐少量找不到合适替代的收费软件,不要大而全,而要少而精。因为各种原因,这个想法一直没有实现。对比迅雷、千千静听和IDM、foobar2000的发展后,不禁感慨:不忘初心,方得始终。现在这个想法再次出现,但是不想再弄成下载站,而是建立一个推荐列表。如有错误,我会尽量完善。

更新日志

20180710
增加通过torrent下载的文件完整性校验工具: Torrent File Hash Checker;
增加系统工具用于分析磁盘空间占用的软件:SpaceSniffer。
20180708
增加qBittorrent搜索插件。
20180523
增加Notepad++插件: NppQrCode。
20180428
增加Chromebook app: StackEdit和JSON Editor Online。
20180426
增加Notepad++插件: MarkdownViewerPlusPlus。
20180409
将Chrome广告屏蔽扩展程序由Adblock改为Adblock Plus。
20180319
删除迅雷精简版。
20180209
删除视频播放器:MPC-HC、K-Lite Codec Pack、VLC;
更新Potplayer的部分信息。
20180204
增加Notepad++插件: JSON-Viewer。
20180109
增加Chrome扩展程序: Video Speed Controller;
增加视频播放器: VLC;
增加下载工具: Free Download Manager(FDM)。
20171218
删除QQ旋风。
20171203
增加Chrome浏览器扩展程序的链接。
20171024
增加BT下载工具: qBittorrent。推荐使用@ngosang的trackerslist。
20171006
增加QQ旋风的官方下载链接和最后一版的Hash值已备查询。

常用软件推荐

安全软件
ESET INTERNET SECURITY (收费软件)
曾经的NOD32,这货不是诺顿。装上去,世界就清净了。
请卸载国产各种管家、系统优化软件,如果你喜欢,就当我没说。

浏览器
Chrome
推荐的扩展程序或app有:
Adblock Plus
屏蔽网页上的绝大多数广告。
Chrono下载管理器
Chrome自带的下载工具太简陋了。
购物党
网购比价,看历史低价,获得真正的实惠。
Video Speed Controller
以1.2倍的速度播放HTML5视频还是可以接受的,可以节省些时间。
StackEdit
Chromebook app,可以离线编辑MarkDown,担心隐私的可以看看这个,但是谁知道呢。
JSON Editor Online
Chromebook app,可以离线编辑Json格式的数据。

压缩工具
7-Zip
支持的压缩类型非常多。
而且集成了CRC、SHA1、SHA256等文件校验功能。感谢@睡觉。

虚拟光驱
DAEMON Tools Lite
加载各种镜像,很方便,但是不能制作镜像,缺点是增加了广告。

视频播放器
Potplayer
一个这就足够了。Potplayer过于臃肿,可以尝试这里:下载、精简。
推荐的操作和设置有:安装额外解码器,使用bat脚本精简绿色化,屏蔽TV推送,禁止恼人的自动更新,开启硬件加速。

音频播放器
foobar2000
时间久了,就不会追求一些花里胡哨的界面。不仅小巧,而且功能十分强大。

下载工具

非离散类资源下载工具
Internet Download Manager (收费软件)
支持HTTP、FTP、HTTPS和MMS 协议,可以下载网页上的音频、视频,基本上可以做到能播就能下,这个工具绝对是不二之选。
如果不想用收费软件,也可以尝试下面提到的FDM。

BT下载工具
qBittorrent
免费,开源,小巧,以替代 µTorrent为目标的BT软件,成为迅雷在201710出现不能下载后较好的选择。
建议配合@ngosang的trackerslist使用。
开启 分享 torrents 直至达到比率 1.00吧,下载一个传播一个才有未来。
推荐添加搜索插件

Free Download Manager
简称为FDM,免费开源无广告,支持torrent、磁力链接,支持视频捕捉,支持Windows和Mac;
遗憾的不支持自定义tracker,也不支持ed2k链接。

磁力链接
可以尝试使用qBittorrent、Free Download Manager下载。

文件校验工具

Torrent File Hash Checker
有个现象:同一个种子,qBittorrent下到99.8%再也不动了,剩余几M未下载。通过迅雷完成了下载(已经在迅雷“已完成”处)。奇怪的现象是迅雷“已完成”下载的文件与qBittorrent未完成下载文件的hash值是一样的。Torrent File Hash Checker的作用就是对种子(torrent,包括通过磁力链接获取的种子)内所含的校验信息(应该是分段sha1)与下载所得的文件进行比对,以检验文件完整性。

MD5 & SHA Checksum Utility
Free版已经足够。之前用的一直是Robin Keir 早在2006年就已出品的的Hash 1.04,但不能校验Sha256。

SSH & SCP 工具
puttyWinSCP
轻量、够用。

记事本
Notepad++
可以替代系统自带的记事本软件。用上这个,就不想再换。
推荐的插件:
JSON-Viewer
以树形视图展示JSON格式的数据,自动标记错误位置,还可以对JSON进行格式化。
MarkdownViewerPlusPlus
可以实时呈现的方式编写MarkDown,支持导出为HTML和PDF,支持32位和64位系统。
NppQrCode
选中文本以生成二维码(QR code)。

系统工具

SpaceSniffer
以类似metra界面的方式从大到小展示磁盘中空间占用的文件信息。