SEO 网站优化推广 SEO 网站优化推广

安装 Ubuntu 24.04 (LTS), Webmin, Nginx, MariaDB, PHP8.3-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS(2)

作者:


最后更新于 | 最初发布于 | 分类:


安装 Ubuntu 24.04 (LTS), Webmin, Nginx, MariaDB, PHP8.3-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS

在第一部分,DavidYin 介绍了如何在 DigitalOcean 创建新 VPS,选择基本的 Ubuntu 24.04 LTS的系统。

下面是介绍如何安装 Webmin 这个主机控制面板和 SSH 的安全设置。这非常重要,安全性的事情,如何小心都不为过。

第二部分
最初的安全更新

首先,我使用的是 Putty,这是一个 SSH 工具,先用 putty 登录 VPS,IP 地址可以登录到 DigitalOcean 后台看到,用户名就是 root,密码是自己设置的那个密码。

登录到 VPS 之后,一登录,就可看到显示着有 164个更新需要马上进行,其中有50个事安全更新。

执行 apt update,查询软件库的更新信息。

root@walnut:~# apt update
Hit:1 http://mirrors.digitalocean.com/ubuntu noble InRelease
Hit:2 http://mirrors.digitalocean.com/ubuntu noble-updates InRelease
Hit:3 http://mirrors.digitalocean.com/ubuntu noble-backports InRelease
Hit:4 https://repos-droplet.digitalocean.com/apt/droplet-agent main InRelease
Hit:5 http://security.ubuntu.com/ubuntu noble-security InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
160 packages can be upgraded. Run 'apt list --upgradable' to see them.

看到还是 160 个软件包可更新,于是执行更新命令。

root@walnut:~# apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
  linux-headers-6.8.0-45 linux-headers-6.8.0-45-generic linux-image-6.8.0-45-generic linux-modules-6.8.0-45-generic linux-tools-6.8.0-45 linux-tools-6.8.0-45-generic
The following upgrades have been deferred due to phasing:
  python3-distupgrade ubuntu-release-upgrader-core
The following packages will be upgraded:
  apparmor apport apport-core-dump-handler base-files bind9-dnsutils bind9-host bind9-libs bsdextrautils bsdutils busybox-initramfs busybox-static cloud-init cloud-initramfs-copymods cloud-initramfs-dyn-netconf cryptsetup
  cryptsetup-bin cryptsetup-initramfs curl dbus dbus-bin dbus-daemon dbus-session-bus-common dbus-system-bus-common dbus-user-session dmeventd dmsetup dpkg dracut-install e2fsprogs e2fsprogs-l10n eject fdisk fwupd initramfs-tools
  initramfs-tools-bin initramfs-tools-core krb5-locales landscape-common libapparmor1 libblkid1 libbz2-1.0 libc-bin libc-dev-bin libc-devtools libc6 libc6-dev libcom-err2 libcryptsetup12 libcurl3t64-gnutls libcurl4t64 libdbus-1-3
  libdeflate0 libdevmapper-event1.02.1 libdevmapper1.02.1 libexpat1 libext2fs2t64 libfdisk1 libfwupd2 libgnutls30t64 libgssapi-krb5-2 libhogweed6t64 libicu74 libk5crypto3 libkrb5-3 libkrb5support0 liblvm2cmd2.03 liblz4-1 liblzma5
  libmount1 libnetplan1 libnettle8t64 libnss-systemd libopeniscsiusr libp11-kit0 libpam-systemd libproc2-0 libpython3-stdlib libpython3.12-minimal libpython3.12-stdlib libpython3.12t64 libsasl2-2 libsasl2-modules libsasl2-modules-db
  libseccomp2 libsmartcols1 libss2 libssl3t64 libsystemd-shared libsystemd0 libtiff6 libudev1 libuuid1 libzstd1 linux-headers-generic linux-headers-virtual linux-image-virtual linux-libc-dev linux-tools-common linux-virtual locales
  logsave lvm2 lxd-agent-loader mdadm motd-news-config mount needrestart netplan-generator netplan.io open-iscsi open-vm-tools openssh-client openssh-server openssh-sftp-server openssl overlayroot procps python-apt-common python3
  python3-apport python3-apt python3-minimal python3-netplan python3-pkg-resources python3-problem-report python3-setuptools python3-twisted python3-update-manager python3.12 python3.12-minimal snapd systemd systemd-dev
  systemd-hwe-hwdb systemd-resolved systemd-sysv systemd-timesyncd thin-provisioning-tools tmux ubuntu-kernel-accessories ubuntu-minimal ubuntu-pro-client ubuntu-pro-client-l10n ubuntu-server ubuntu-standard udev update-manager-core
  util-linux uuid-runtime vim vim-common vim-runtime vim-tiny xkb-data xxd xz-utils zlib1g zstd
158 upgraded, 6 newly installed, 0 to remove and 2 not upgraded.
43 standard LTS security updates
Need to get 190 MB of archives.
After this operation, 187 MB of additional disk space will be used.
Do you want to continue? [Y/n]

选择 Y 继续,完成安装,中间会问你,SSHD配置文件是否要更改,我选择的是第二个选项,保持原来的版本。然后再次重启系统,对了重启命令是 shutdown now -r

安装 Webmin 控制面板,SSH 安全设置

为什么要安装 Webmin?

主要就是我习惯使用,用了很多年了。一直在用 Webmin 管理面板,可以很方便的更新系统,安装 perl 包,添加 MySQL 数据库;第二,在出现错误的时候,查看 log 日志,还有很多很多其它功能。

安装 Webmin

参考 webmin 官方的安装 Webmin的方法。

先下载源库的文件。

curl -o setup-repos.sh https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh


然后执行下面命令来添加此库到系统:

sh setup-repos.sh

添加完成后会有提示你使用下面的命令来安装 Webmin 和其所需的其它软件。

apt-get install webmin --install-recommends

安装完成之后,在桌面浏览器(比如 chrome)中输入下面的网址来访问安装好的 Webmin 控制面板。

https://143.110.227.68:10000

然后会出现"Your connection is not private"的警告信息,点击 Advanced 按钮,点击 "Proceed to 143.110.227.68 (unsafe)",就可以继续载入登录页面了。

do-webmin.jpg看到登录页面,输入之前的 root 和对应的密码。

do-webmin-login.jpg

Webmin 默认安装的用户界面是响应式,之前我一直用的是经典样式,现在我也已经习惯使用响应式了。

登入之后,又看到有提示,两个软件包需要更新。一路点击更新之。

do-webmin-update.jpg

看看当前我所创建的这个 VPS 的参数:

  • Operating system     Ubuntu Linux 24.04.1
  • Webmin version     2.202
  • Kernel and CPU     Linux 6.8.0-45-generic on x86_64
  • Processor information     DO-Premium-AMD, 1 cores
  • Running processes     101
  • CPU load averages     0.06 (1 min) 0.11 (5 mins) 0.09 (15 mins)

SSH安全设置

为了 SSH 的安全,我会在 TCP wrappers 处添加两条规则,只允许来自指定的 IP 地址的电脑以 SSH 的方式连上服务器。

左侧,NetworkingTCP Wrappers

Allow 规则处,允许 ALL Services, Remote Hosts 的地方输入服务器 IP 和我所指定的IP,(就是我自己的 IP 地址)在 Deny 规则处,Services 填写 sshd ,Remote Hosts 选 All。

tcp-allow-rule.jpg

tcp-deny-rule.jpg

这样设置完成后,来自指定 IP 地址的 SSH 访问不会受影响,除此之外的 IP,若访问 SSH 服务的话,就会直接被拒绝。比如下面的记录可以看到,服务器才刚刚创立十分钟,就有莫名奇妙的 IP 试图以 root 身份连上 SSH,用不同的端口,尝试密码,当然出错返回,但都会消耗 VPS 资源,大多是自动扫描的工具,设置 TCP Wrapper 之后,就直接 refused 了,连密码尝试的机会都不会给。

auth-log-vps.jpg

查看日志记录: 左侧 SystemSystem Logs RS File /var/log/auth.log Yes auth,authpriv.* 》点击 View,可以看到这么多尝试登录失败的。

添加新用户

Ubuntu 系统平时不建议以 root 用户直接登录操作,而是应该用普通用户,如果需要执行 root 用户的权限,那就采用 sudo 方式。下面就是在 Webmin 的管理面板中进行添加新用户。

在左侧,选择 SystemUsers and Groups, 然后选择 Create a new user,比如用户名输入 davidyin,选择 Normal password 输入自己设定的密码,当然更安全的是使用 SSH public key的方式来登入, Shell 这块我会选择 /bin/bash ,然后在 primary group 的地方,默认是选择已存在的用户组 users。在 Second group 的地方我会把 sudo 组加入,这样以后就只用登入这个用户来操作,即使执行更高权限的操作,也只需要 sudo 就可以了。

walnut-new-user.jpg

为什么没有安装 FTP 服务器?

很多年前,我有用 proftpd 作为 VPS 上的 FTP 服务器,但是后来觉得既然可以直接使用 SFTP,就是 SSH File Transfer Protocol,简而言之,就是利用 SSH 来传输文件的方式,为什么还要安装 FTP服务器呢?第一,ssh 更加安全;第二,服务器上可以少安装一样服务,节约内存,并且少一个可能的安全漏洞。

设置时区

设置时区就可以自动把系统时间同步到我所在的本地时间。

左侧,HardwareSystem Time, 选择 Change Timezone 标签,在时区修改的下拉菜单,改为 America/Vancouver (Pacific -BC (most areas)),点击保存。现在 VPS 显示的时间就是我所在的温哥华地区了。

walnut-timezone.jpg但是时钟走着走着就会不准的,需要定时校正,所以左侧,HardwareSystem Time, 选择 Time Server sync 标签,设置看下图。

walnut-time-sync.jpg就是设置每天都会有一次校正。

这里我发现没有过去设置一直需要的 Timeserver 地址,于是回到 SSH 窗口,执行下面命令安装必要软件包。

apt install ntpdate sntp

然后回到 HardwareSystem Time, 选择 Time Server sync 标签,可以看到多了一个输入框,原来是 0.pool.ntp.org,修改为 ca.pool.ntp.org。然后点击 Sync and Apply 按钮,完成修改更新。

至此, Ubuntu 24.04.1 LTS,Webmin控制面板,以及时区设置,SSH的安全设置都完成了。接下来是介绍如何安装 Nginx Web 服务器,MariaDB数据库服务器,php等等。


分享:
Share on Facebook Share on Twitter

搜索
关于
David Yin
研究(SEO)搜索引擎优化排名和(PPC)竞价排名技术,总结搜索营销学的各种方法和趋势。专业SEO优化研究,致力于搜索引擎优化技术的普及和推广。
David Yin
Email:seo[AT]g2soft.net
版权说明
如果想转载,而又不明白转载的条件,请看本站的详细版权说明
推荐
Dreamhost Hosting
使用优惠码“save252015”,节省更多,每月只要 $2.59。
标签云
热门标签