Jean-Daniel Dodin a.k.a 分享了他如何使用 openSUSE 管理个人 Web 服务器的经验
2014年5月14日 | Manu Gupta | 无许可
你好 :-)
我想分享我在openSUSE上管理个人托管Web服务器的经验。
首先,两点。
-
我不是计算机专业人士,而是一位从1996年起就沉迷于openSUSE的用户;
-
我将描述托管服务器的使用,即不在你家中的服务器,而是在云中的某个地方,但仍然是专供你使用的硬件机器。
我为什么要拥有自己的服务器?
主要有两个原因。
-
第一个是乐趣。使用openSUSE Linux管理服务器很有趣。能够对朋友说“我有自己的网站,如果你愿意,我可以为你管理一个”很有趣。能够根据你的精确需求配置计算机,而不必担心共享主机没有合适的php版本或拒绝ssh访问,这很有趣。学习如何管理这种可怕的野兽,达到新的知识水平,这很有趣。
-
第二个是友好和分享。如今,云是万物。互联网是关键。家人和朋友分散在世界各地。能够分享数据,例如图片、视频、评论和技术笔记至关重要。管理自己的服务器是做到这一点的最有效方法。
为什么选择托管服务器?
人们首先尝试的事情是在家中管理自己的服务器。这很容易,大多数旧硬件都可以胜任——我的第一个是一个屏幕坏掉的386笔记本电脑——(是的,服务器不需要屏幕)。
但人们很快就会注意到DSL线路不是为此用途的最佳互联网连接。DSL通常被称为“ADSL”,其中的“A”代表“不对称”。数据的速度大约是10,000用于下载,只有1,000用于上传(实际单位无关紧要),这就是为什么发送照片给朋友如此困难的原因。所以,每当有人想从你家服务器获取某些东西时,他都必须永远等待。
另一个原因是成本。在家中运行一台7/7和24/24的计算机并不便宜。即使你能在噪音不是问题的地方找到一个位置,功耗也不便宜。最简单的计算机就像一直打开一个灯泡,我妈妈一直对我说“请关灯”:-)。
我不知道你怎么样,但在我居住的法国,托管提供商的价格非常便宜。我自己的提供商的价格清单会根据时间而变化很大。去年,你可以以低至每月3美元的价格租用一台服务器,而我现在写的时候,最小的服务器是8美元。我现在使用的服务器每月花费我大约35美元,但有4个处理器、8个线程、2Tb硬盘和24Gb内存,这比我的台式机多得多!
而且,这个价格包括100Mbit对称网络、固定IP和一个专业的员工来维护硬件。
缺点是我必须完全自己管理软件,但这正是我想要服务器的原因,所以对此没有抱怨:-)。
最后的话:当我提到托管时,我的意思是你不必提供硬件。硬件由提供商拥有并由他维护。
我的服务器需要什么?
在生活中做任何事情之前,你必须问自己“为什么”?服务器也是如此。现在,我用我的服务器来托管我的照片集(超过30,000张照片)、我的视频(数量少得多,但体积很大)、我的个人wiki,其中包含我所有的技术笔记,以及一个博客。还有我的个人邮件服务器,我认为它比许多专业服务器更可靠。所有这些都不需要超过100Gb的磁盘空间,所以有很多空闲空间可以备份朋友或我合作的Linux组织的一些数据。
真正的任务是什么?
我试图记录我所做的一切,只是为了让我自己记住!当然,它不是很有条理,但我的wiki页面列出了这些内容,我计划现在和将来与你讨论这些内容。由于我不是专业人士,我所做的事情可能不是那么好或那么聪明。我总是接受建设性的批评和建议,并会很高兴收到它们。
分区和大型磁盘
-
VirtualBoxHost
-
VirtualBoxGuest
-
Kimsufi-kernel-and-boot-setup-3 (旧页面 Kimsufi-kernel-and-boot-setup-2)
-
OpenSUSE-small-server_basics-3 (旧页面 OpenSUSE-small-server_basics-2 OpenSUSE-small-server_basics)
-
用户创建/移动/数据移动
-
主机名
-
Communicating-with-the-server-3
-
Installing-ntp-2
-
MySQL-2
-
Installing-Apache
-
Installing-ftp
-
Remote-access-VNC
-
Remote-access-NX
-
Postfix-configure-2
-
Dovecot-configure-2
-
Configure Squirrel webmail (2011年6月)
-
Install Piwigo
-
以可以阅读存档的方式存档邮件
-
显示服务器日志
-
重新安装Kimsufi服务器
-
安装php脚本
-
使用ssh密码验证
-
完整备份服务器
-
EditCron
我不会涵盖的内容
正如你在这个列表中看到的,我使用VirtualBox。这意味着我在自己的服务器上使用虚拟服务器。我开始这样做是在工作了几年之后,所以我不会——目前——在这里讨论这个选项,我没有从列表中删除这个项目,因为我可能会在某个时候偶然谈论它。
开始:分区和安装
分区
在托管服务器上安装并不像在本地机器上那么容易,因为你没有DVD访问权限。你访问计算机的方式取决于提供商。我的提供商为客户提供了广泛的Linux发行版(以及其他系统),包括openSUSE,并且可以提供带有基本安装和ssh访问权限的服务器。你还有恢复访问权限(类似于openSUSE恢复访问权限)到服务器,以防机器不再启动,但这就像恢复磁盘一样友好,最好不要太频繁地使用它。
多年来,我测试了许多分区方案,并回到了最简单的方案。事实是在远程服务器上管理多个安装比较困难,就像你使用双引导一样——你没有访问启动菜单!
你可以有一个或两个磁盘,使用两个磁盘的目的是使用raid 1——我的提供商免费更换损坏的硬件——但你必须自己重建raid。使用一半的磁盘大小作为raid成本很高,并且简单地拥有两个磁盘用于raid通常会让你转向另一个价格列表。我只是看不到在这样的服务器上使用raid的真正理由。毕竟,如果我的个人服务器停机几个小时,几乎没有人会注意到(或者说,几乎没有人会注意到)。稍后我们将看到我使用另一个服务器作为备份。
所以简单的分区。在我的服务器上,我遇到了默认(提供商)分区的问题——yast不喜欢它——但我可以重新安装系统并选择一个简单的配置
/dev/sda1 20Gb / /dev/sda2 512Mb swap /dev/sda3 1,8Tb /home
请注意,我的交换空间非常小。我可能根本不需要使用交换空间(24Gb内存!),但我将其设置为默认值并保留了它,并且它被一些应用程序使用(496Kb),我不知道为什么。
实际系统大小非常小,因此20Gb的根大小绰绰有余,但这样可以降低/tmp或/usr过度增长的风险,而且总共有2Tb的空间,为什么还要讨论呢?
安装
每个提供商都有自己的安装界面,就像任何Linux发行版一样,所以我不会谈论它,并说出当你最终获得ssh提示时会发生什么:-)
我的提供商提供了一个特定的内核,也可以作为“网络启动”提供。这非常有趣,因为它总是修补了所有问题,而且,毕竟,你从不需要更改托管计算机上的硬件,因此你可以将服务器重新启动到网络启动,以防出现问题。但通常的方法是正常启动,硬件提供带有安装在/boot中的内核。
但是,令人难以置信的是,我用了好几年才意识到内核不是默认openSUSE安装的一部分!它只是手动添加了提供商的磁盘镜像。这些年来,我只是认为硬件不是标准配置,这就是openSUSE无法启动的原因。我知道今天这是错误的,因为我必须使用标准内核才能使用虚拟化。
也就是说,我敦促你使用提供商的内核(如果存在),因为它更方便,并简化了与提供商维护人员的潜在问题。
要删除提供商的内核,我必须删除/etc/grub.d/06-something-providersname配置文件并使用YaST安装默认内核。使用YaST配置启动系统并重新启动。grubd中的文件只有在可执行时才使用,因此“chmod a-x”足以使其不可用(并且可以轻松恢复,如果需要)。
测试和重新测试!
在投入生产使用服务器之前,尽可能长时间地测试它,几个月的时间并不荒谬。你可能会在此期间重新安装多次,所以最好尽可能减少需要再次做的工作。不要忘记任何关键错误可能需要使用恢复控制台或重新安装系统。
记下确切的分区方案。重新安装使用完全相同分区可能会让你至少恢复未受影响的数据。不确定,只是猜测……
技巧
在我的服务器上,初始安装非常小,可能小于openSUSE提供的最小服务器安装。当然,没有YaST!如果你有任何下载rpm文件的方法,你很幸运,请参阅提供商的帮助,你可能只有rpm!
所以首先要安装的是zypper(你可能已经以某种方式下载了rpm文件),然后是“zypper in yast”,
拥有ncurse YaST非常方便,但yast2(图形化)更好,所以安装一个最小的图形系统是个好主意,然后使用“ssh -Y root@yourdomain.yourtld”在本地显示yast2。
基础知识
固定IP
有了服务器,你必须拥有一个固定的IP。这意味着你拥有自己的IP。这可能是你家庭网络的情况——或者不是。这也意味着你必须格外小心你所做的一切,因为你用你的IP签署了你所有的访问权限。这也意味着网络上的大多数服务器会更信任你,正是因为这个原因,他们认识你。
使用证书是现在我不会讨论的另一回事。
更新
你必须做的第一件事是更新你的系统。第一次安装总是从初始数据开始,服务器必须是最新的。一旦你有了zypper,就执行“zypper ref & zypper up”。准备好看到事物闪耀,你获得了半专业的带宽,至少。我的带宽是100Mb对称的,非常愉快。
通过yast进行自动更新是一个挑战。专业的服务器管理器可能不喜欢它(总是担心更新会破坏他的系统),但在你的情况下,我恳求你可能需要几周才能以root身份连接到服务器,更新很重要,所以去做吧。
安装软件
不要忘记安装和启动sshd!否则,第一次重新启动时,你将无法登录到你的服务器!
根据你的初始安装情况,你可能需要安装很多东西。我的服务商安装了一个非常精简的系统。我几乎需要手动安装所有东西。开始安装所有有用的 YaST 模块(在软件安装中搜索 yast)。我安装了 yast(必须的!),但没有 yast2(没有图形界面)。当使用“ssh -X -C”连接时,yast2 更加友好。注意 ssh -X 似乎需要一个最小的 X 安装。我习惯安装 xfce4(但不设置为开机启动)。我没有记录下我安装的所有东西。一个简短的列表可能是:mc, w3m, yast2-gtk 和 qt, vsftpd (ftp), dovecot (mail imap/pop3), mrtg (http 统计), inn (新闻服务器), mailman (邮件列表服务器), spamassassin (垃圾邮件拦截器), apache2, ntp (时间同步), tightVNC (远程管理)。X 和 xfce 也许在将来会派上用场。如果你只安装了最小的 vi,你甚至可能需要安装 vim。别忘了在 YaST 中激活必要的服务,系统,服务(运行级别)。使用模式很友好,但例如我最终安装了 libreoffice 和 Gimp,这些对于 Web 服务器来说并不是必需的 :-) (别忘了最终删除它们 :-)。
防火墙
是否需要防火墙是另一个有争议的问题。你的服务器在它的网络中是独立的,不是网关。未使用的端口无论如何都会关闭。打开的端口由监听的应用程序管理。但是,据说防火墙比其他应用程序更好地管理攻击。它也可能阻止你的其他用户所做的事情(你很快就需要为朋友托管)。所以,最好还是安装一个防火墙。
默认的 openSUSE 防火墙是 SuSEFirewall2。大多数选项都使用 YaST2 模块设置。要避免的主要错误是在设置 ssh 开放之前启动防火墙 - 这样做你会失去与服务器的连接……测试防火墙://www.auditmypc.com/firewall-test.asp (但从被测试的计算机上)。添加允许访问:dovecot
-
smtp (postfix)
-
http (apache)
-
https
-
VNC
-
vsftp
X11 转发
能够使用图形化应用程序有时是必须的。最简单的方法是允许 X1 转发。这使得图形化应用程序直接在你的本地控制台中显示。
为了使 X11 转发在现代发行版上工作,你必须添加
X11Forwarding yes #X11UseLocalhost no AddressFamily inet
到“/etc/ssh/sshd_config”。
然后使用“ssh -X -C [-p
登录。注意:我将“X11UseLocalhost no”保留在列表中(但由于 # 符号未激活),因为它通常被认为是一个可行的解决方案。但是,有人告诉我问题是一个晦涩的 IPV6 问题,并且“AddressFamily inet”指示 ssh 使用 IPV4,并且更加安全,所以最好使用它。
未完待续。在下一篇文章中,我们将讨论如何配置服务器,为其命名,与其通信,设置 mysql(实际上是 mariadb),最后是 apache :-)。
_ 文章贡献者:Jean-Daniel Dodin_
分类: 发行版
标签