【Linux服务器】

1、Linux 到底可以达成哪些网络功能呢?

这可就多着咯!不论是 WWW, Mail, FTP, DNS, 或者是 DHCP, NATRouter 等等,Linux 系统都可以达到,而且,只要
一部 Linux 就能够达到上面所有的功能了!当然,那是在不考虑网络安全与效能的情况下,你可以使用一部 Linux 主机来达成所有的网络功能。

2、架设Linux服务器难不难呢?

不管是 Windows 还是 Linux ,要架设好一部堪称完美的服务器,『基本功课』还是得做的,这包括了:

  1. 基础网络的基本概念,以方便进行联网与设定及除错;
  2. 熟悉操作系统的简易操作:包括登录分析、账号管理、文书编辑器的使用等等的技巧;
  3. 信息安全方面:包括防火墙与软件更新方面的相关知识等等;
  4. 该服务器协议所需软件的基本安装、设定、除错等,才有办法实作。

3、网络服务器成功联机的分析

底下我们就整个服务器的简易架设流程当中来分析一下,以了解为什么了解操作系统的基础对于网站维护是相当重要的呢?首先,到底我们是如何联机到服务器的? 联机到服务器又取得啥咚咚?我们先以底下这张图示来作个简单的说明好了。

网络联机至服务器所需经过的各项环节:
网络联机至服务器所需经过的各项环节

上图显示的是:首先,客户端到服务器的网络要能够通,等到客户端到达服务器后,会先由服务器的防火墙判断该联机能否放行, 等到放行之后才能使用到服务器软件的功能。而该功能又得要通过 SELinux 这个细部权限设定的项目后,才能够读取到文件系统。 但能不能读到文件系统呢?这又跟文件系统的权限 (rwx) 有关啦!上述的每个部分都要能够成功,否则就无法顺利读取数据啰。

3.1、网络:了解网络基础知识与所需服务之通讯协议

既然要架设服务器,首先当然得要了解一下因特网。因为不管是哪种操作系统,若想要与因特网联机,这个网络基础就得了解。 举例来说,『网域』是经常会谈到的概念,当你发现一个设定为 192.168.1.0/255.255.255.0 时,晓得那是什么鬼东西吗? 如果不知道的话,呵呵!绝对无法设定好网站的啦!另外,为何你需要服务器?当然是想要达成某项网络服务。 举例来说,传输档案可以用FTP,那 WWW 可以传递档案吗?网芳可以传递吗?各有何用处?哪个比较方便?对于客户或老板来说,我们所设定的服务能否满足他们的需求等等,这都需要了解,否则你将一头雾水啊! 因此这部份你就得要了解:

  • 基本的网络基础知识:包括以太网络硬件与协议、TCP/IP、网络联机 所需参数等;
  • 各网络服务所对应的通讯协议原理,以及各通讯协议所需对应的软件。

3.2、 服务器本身:了解架网络服务器之目的以配合主机的安装规划

想要架设服务器吗?那…架什么服务器?这个服务器要不要对 Internet 开放?这个服务要不要针对客户提供相关账号? 要不要针对不同的客户账号进行例如磁盘容量、可活动空间与可用系统资源进行限制?如果要进行各项资源的限制,那服务器操作系统应该要如何安装与设定?问题很多吧!所以,先了解你要的服务器服务目的之后,后续的规划才能陆续出炉。 不过,如果架站只是为了『练功』而已,呵呵!那就不需要考虑太多了~

3.3、服务器本身:了解操作系统的基本操作

网络服务软件是需要建置在操作系统上面的,所以基本的操作系统操作就得要了解才行啊!包括软件如何安装与移除? 如何让系统进行例行的工作管理?如何依据服务器服务之目的规划文件系统?如何让文件系统具有未来扩充性 (LVM之类)? 系统如何管理各项服务之启动?系统的开机流程为何?系统出错时,该如何进行快速复原等等,这都需要了解的呢!

4、内部防火墙设定:管理系统的可分享资源

一部主机可以拥有多种服务器软件的运作,而很多 Linux distributions 出厂的默认值就已经开放很多服务给 Internet 使用了,不过这些服务可能并不是你想要开放的呢。我们在了解网络基础与所需服务的目的之后, 接下来就是透过防火墙来规范可以使用本服务器服务的用户,以让系统在使用上拥有较佳的控管情况。 此外,不管你的防火墙系统设定的再怎么严格,只要是你要开放的服务,那防火墙对于该服务就没有保护的效果。因此,那个重要的在线更新软件机制就一定要定期进行!否则你的系统将会非常非常的不安全!

5、服务器软件设定:学习设定技巧与开机是否自动执行

刚刚第一点就提到我们得要知道每种服务所能达成的功能,如此一来才能够架设你所需要的服务的网站。 那你所需要的服务是由哪个软件达成的?同一个服务可否有不同的软件?每种软件可以达成的目的是否相同? 依据所需要的功能如何设定你的服务器软件?架设过程中如果出现错误,你该如何观察与除错? 可否定期的分析服务器相关的登录信息,以方便了解该服务器的使用情况与错误发生的原因? 能否通知多个用户进行联机测试,以取得较佳的服务器设定值?所以这里你可能就得要知道:

  • 软件如何安装、如何查询相关配置文件所在位置;
  • 服务器软件如何设定?
  • 服务器软件如何启动?如何设定自动开机启动?如何观察启动的埠口?
  • 服务器软件激活失败如何除错?如何观察登录档?如何透过登录档进行除错?
  • 透过客户端进行联机测试,如果失败该如何处理?联机失败的原因是服务器还是防火墙?
  • 服务器的设定修改是否有建立日志?登录档是否有定期分析?
  • 服务器所提供或分享的数据有无定期备份?如何定期自动备份或异地备份?

6、细部权限设定:包括 SELinux 与档案权限

等到你的服务器全部设定妥当,最后你所提供的档案数据权限却是给了『 000 』的权限分数,大家都无法读到你所提供的数据啊…!此外,新的 distributions 都建议你要启动 SELinux ,那是什么咚咚? 如果你的数据放置于非正规的目录,那该如何处理 SELinux 的问题?又如何让档案具有保密性或共享性 (档案权限概念与 ACL 等) 等等,这也都是需要厘清的观念喔! 上述的服务器架设流程中,其实除了第 5 点之外,其他步骤在各服务器设定都需要了解啊!而且都是一样的东西说! 因此,这些基础如果学会了,最终,你只要知道第 5 点里面那个软件的基础设定,你的服务器一下子就可以设定完成啦! 这样说,你是否开始觉得基础学习很重要啊!

上面讲完后或许你还是不很清楚到底这些技能如何串起来?鸟哥这里提供一个简单的案例来分析一下好了,这样你应该就比较容易清楚的知道为何需要学习这些咚咚。

  • 网络环境:假设你的环境里面 (不管是家里还是宿舍) 共有五部计算机,这五部计算机需要串接在一起,且都可以对外联机;
  • 对外网络:你的环境只有一个对外的联机方式,这里假设是台湾较流行的ADSL 或 10M 的光纤这种透过电话线拨接的类型;
  • 额外服务:你想要让这五部计算机都可以上网,而且其中还有一部可以做为网络驱动器机,提供同学或家人作为数据备份与分享之用;
  • 服务器管理:由于你可能需要进行远程管理,因此你这部服务器得要开放联机机制,以让远程计算机可以联机到这部主机来进行维护;
  • 防火墙管理:因为担心这部做为档案分享服务器的系统被攻击,因此你需要针对 IP 来源进行登入权力的控制;
  • 账号管理:另外,由于同学的数据有隐密与共享之分,因此你还得要提供每个同学个别的账号, 且每个账号都有磁盘容量的使用限制;
  • 后端分析:最后,由于担心系统出问题所以你得要让系统自动定期分析磁盘使用量、登录文件参数信息等等。

7、了解网络基础

8、硬件规划

我们想要将五部计算机串接在一块,但是却又只有一个可以对外的联机,此时就得要购买集线器 (hub) 或者是交换器 (switch) 来串接所有的计算机了。但是这两者有何不同?为何 switch 比较贵?我们知道网络线被称为 RJ-45 的网络线,但网络线材
竟然有等级之分,这个等级要怎么分辨?不同等级的线材速度有没有差异?等到这些硬件基础了解之后, 你才能够针对你的环境来进行联机的设计。

9、联机规划

由于只有一条对外联机而已,因此通常我们就建议你可以用如下的方式来串接你的
网络:
在这里插入图片描述
透过 IP 分享器,我们的五部计算机就都能够上网了。此时你得要注意,能否上网与 Internet 有关,Internet 就是那有名的 TCP/IP 通讯协议,而想要了解网络就得要知道啥是 OSI 七层协定。我们也知道能连上 Internet 与所谓的 IP 有关,那么我
们内部这五部计算机所取得的 IP 能不能拿来架站?也就是说,IP 有没有不同种类?如果 IP 分享器突然挂了,那你的这五部计算机能不能联机玩魔兽?这就考虑你的网络参数设定问题了

10、服务器本身的基本操作系统操作

既然我们这部主机得要提供不同账号来使用他们自己的网络驱动器,因此还需要建立账号啊,使用磁盘配额 (quota) 等等的。 那么你会不会建立账号呢?你会不会建置共享目录呢?你能不能处理每个账号的 Quota 配额呢?如果 /home 的容量不足了,你会不会放大 /home 的容量呢?有没有办法将系统的磁盘使用情况定期的发送邮件给管理员呢?这些都是基本的维护行为喔! 我们底下就以几个实际例子来练习看看你的基础能力吧!

10.1、例题-大量建置账号:

假设我的五个朋友账号分别是 vbirduser{1,2,3,4,5},且这五个朋友未来想要
共享一个目录,因此应该要加入同一个群组,假设这个群组为 vbirdgroup,且这五
个账号的密码均为 password 。那该如何建置这五个账号?(这里偷懒建两个为例)

#!/bin/bash
groupadd smallfatman
for username in smallfatman1 smallfatman2
do
        useradd -G smallfatman $username
        echo "password" | passwd --stdin $username
done

在这里插入图片描述

10.2、例题-共享目录的权限:

这五个朋友的共享目录建置于 /home/smallfatman 这个目录,这个目录只能给这五个人使用,且每个人均可于该目录内进行任何动作!若有其他人则无法使用 (没有权限),那该如何建置这个目录的权限呢?

答:
考虑到共享目录,因此目录需要有 SGID 的权限才行!否则个别群组数据会让这五个人彼此间无法修改对方的数据的。因此需要这样做:
在这里插入图片描述

mkdir /home/smallfatman
chgrp smallfatman /home/smallfatman
chmod 2770 /home/smallfatman
ll -d /home/smallfatman

这个命令是 ll -d /home/vbirdgroup,它的意思是列出 /home/vbirdgroup 目录的详细信息。

解读这个命令可以分成两部分:

  1. ll:这是一个常用的命令别名,实际上它是 ls -l 的简写。ls 是列出文件和目录的命令,而 -l 则表示以长格式(详细信息)显示。

  2. -d /home/vbirdgroup-d 参数是 ls 命令的选项之一,它会将目录本身显示为一个条目,而不会显示目录下的文件和子目录。/home/vbirdgroup 是欲列出的目录路径。

最终,当你执行 ll -d /home/vbirdgroup 这个命令时,它会显示出 /home/vbirdgroup 目录的详细信息,包括权限、拥有者、所属组、大小、最后修改时间等。在你提供的输出中,drwxrws---. 是权限信息,2 是链接数,root 是拥有者,vbirdgroup 是所属组,4096 是目录的大小,2011-07-14 14:49 是最后修改时间。

10.3、例题-Quota 实作:

假设这五个用户均需要进行磁盘配额限制,每个用户的配额为 2GB (hard) 以
及 1.8GB (soft),该如何处理?
答:
这一题实作比较难,因为必须要包括文件系统的支持、quota 数据文件建置、
quota 启动、建立用户 quota 信息等过程。整个过程在基础篇有讲过了,这里很快
速的带领大家进行一次吧!

vim /etc/fstab 

这是一个典型的 Linux 系统中 /etc/fstab 文件中的内容,用于定义文件系统的挂载点和参数。每一行代表一个文件系统的挂载配置,以下是对每一行的解释:

  1. UUID=aaa1e171-b59d-42bc-8d38-b92711c495c7 / xfs defaults 0 0

    • UUID=aaa1e171-b59d-42bc-8d38-b92711c495c7:这是根文件系统的 UUID,用来唯一标识该文件系统。
    • /:这是根文件系统的挂载点,即操作系统的根目录。
    • xfs:这是文件系统类型,表示根文件系统采用 XFS 格式。
    • defaults:这是挂载选项,表示使用默认的挂载参数。
    • 0 0:这是用于文件系统检查的选项,第一个数字表示是否要进行文件系统检查,第二个数字表示在什么情况下进行检查。
  2. UUID=d0e6af67-f262-4184-a294-f7c974980541 /boot ext4 defaults 1 2

    • UUID=d0e6af67-f262-4184-a294-f7c974980541:这是 /boot 分区的 UUID。
    • /boot:这是 /boot 分区的挂载点,用于存储启动所需的文件。
    • ext4:这是 /boot 分区的文件系统类型,使用 ext4 格式。
    • defaults:同样是默认的挂载选项。
    • 1 2:用于文件系统检查的选项,与上述解释类似。
  3. UUID=9cb30b4d-2c43-474d-8011-66b43ea3fff0 swap swap defaults 0 0

    • UUID=9cb30b4d-2c43-474d-8011-66b43ea3fff0:这是交换分区的 UUID。
    • swap:这是交换分区的类型,表示这是一个交换分区。
    • defaults:同样是默认的挂载选项。
    • 0 0:由于交换分区不需要像文件系统一样进行检查,这里的选项设置为 0 0

总之,这些配置行描述了系统中三个重要的文件系统或分区的挂载点、类型和选项。

因为是要处理用户的磁盘,所以找到的是 /home 这个目录来处理的啊!
另外,CentOS 6.x 以后,默认使用 UUID 的磁盘代号而非使用文件名。
不过,你还是能使用类似 /dev/sda1 之类的档名啦!

umount /home; mount -a
mount | grep home
/dev/mapper/server-myhome on /home type ext4 (rw,usrquota,grpquota)

 # 做完使用 mount 去检查一下 /home 所在的 filesystem 有没有上述的字眼!

11、Quota 数据文件是啥

Quota 数据文件是用于实现磁盘配额(disk quota)管理的文件。磁盘配额是一种管理文件系统上用户或组使用磁盘空间的方法,它可以限制用户或组可以使用的磁盘空间的量。这对于系统管理员来说是一个重要的工具,可以帮助他们控制磁盘空间的使用,避免某些用户或组占用过多的存储资源。

在许多 Unix-like 操作系统中,如 Linux,磁盘配额的管理是通过 Quota 机制来实现的,而 Quota 数据文件就是这一机制的一部分。这些数据文件存储了关于用户或组的磁盘使用情况的信息,以及设置的配额限制。

一般来说,Quota 数据文件包括以下两个主要部分:

  1. Quota Usage File(配额使用文件):这个文件记录了每个用户或组已使用的磁盘空间量。它通常包含每个用户或组的标识符以及相应的已使用空间量。

  2. Quota Limits File(配额限制文件):这个文件包含了每个用户或组被允许使用的最大磁盘空间量。管理员可以在这个文件中设置配额限制。

这些文件通常存储在特定的文件系统中,例如 ext3、ext4 和 xfs 等文件系统,以支持磁盘配额功能。操作系统会定期更新这些文件,以便正确地跟踪用户或组的磁盘使用情况。

总之,Quota 数据文件是用于实现磁盘配额管理的文件,用于跟踪用户或组的磁盘使用情况和限制。

12、制作 Quota 数据文件,并启动 Quota 支持

quotacheck -avug
quotaon -avug

12.1、制作 Quota 数据给用户

edquota -u smallfatman1

因为 Quota 的单位是 KB所以输出内容会有很多0

edquota -p smallfatman1 smallfatman2
repquota -au

12.2、例题-文件系统的放大 (LVM):

纯粹假设的,我们的 /home 不够用了,你想要将 /home 放大到 7GB 可不可行啊?
答:
因为当初就担心这个问题,所以 /home 已经是 LVM 的方式来管理了。此时我们要来瞧瞧 VG 够不够用,如果够用的话,那就可以继续进行。如果不够用呢?我们就得要从 PV 着手啰!整个流程可以是这样来观察的。

12.2.1、先看看VG的量够不够用:
vgdisplay

在这里插入图片描述

12.2.2、 开始制作出所需要的 partition 吧!作为 PV 用的!
fdisk /dev/sda

在这里插入图片描述

partprobe
12.2.3、 将 /dev/sda9 加入 PV,并将该 PV 加入 server 这个 VG 吧
pvcreate /dev/sda9
vgextend server /dev/sda9
vgdisplay

在这里插入图片描述

12.2.4、 准备加大 /home,开始前,还是先观察一下才增加 LV 容量较好!
lvdisplay

在这里插入图片描述

lvresize -L 6.88G /dev/server/myhome

在这里插入图片描述

12.2.5、 扩大文件系统
resize2fs /dev/server/myhome

在这里插入图片描述

df -h

在这里插入图片描述
可以看到文件系统确实有放大到 6.8G 喔!这样了解了吗?

12.3、例题-不同 runlevel 的服务控管:

在目前的 runlevel 之下,取得预设启动的服务有哪些呢?此外,我的系统目前不想启动自动网络挂载 (autofs) 机制,我不想要启动该服务的话,该如何处理?
答:
默认的 runlevel 可以使用 runlevel 这个指令来处理,那我们预设使用 3 号的 runlevel,因此你可以这样做:

LANG=C chkconfig --list | grep '3:on'

在这里插入图片描述

systemctl list-unit-files

在这里插入图片描述
上面指令的输出讯息中,会有 autofs 服务是在启动的状态,如果想要关闭他,可
以这样做:

chkconfig autofs off

在这里插入图片描述

systemctl disable autovt@.service

在这里插入图片描述
试完记得开启

systemctl enable autovt@.service

在这里插入图片描述
上面提到的仅只是有启动的服务,如果我想要了解到启动监听 TCP/UDP 封包的服务 (网络封包格式下章会谈到),那该如何处理? 可以参考底下这个练习题喔!

12.4、例题-查询启动在网络监听的服务

我想要检查目前我这部主机启动在网络端口口监听的服务有哪些,并且关闭不要的程序,该如何进行?
答:网络监听的端口口分析,可以使用如下的方式分析到:
在这里插入图片描述
我们常常会开玩笑说,如果对外开放的软件没有更新,那防火墙不过是个屁!所以啦,软件更新是相当重要的。 在 CentOS 内,我们已经有 yum 来进行在线更新了,你当然可以自己利用更改配置文件来指定 yum 要去查询的映像站 (mirror site)

12.5、例题-利用 yum 进行系统更新

假设你的网络已经通了,目前你想要处理全系统更新,同时需要每天凌晨 2:15 自动进行全系统更新,该如何作?
答:
全系统更新使用 yum update 即可。但是由于 yum update 需要使用者手动输入 y 去确认真的要安装,因此在 crontab 里头处理相关任务时,就得要使用 yum -y update 了

在这里插入图片描述
不过这里还是要额外提醒各位喔,如果你的系统有更新过核心 (kernel) 这个软件,务必要重新启动啊!因为核心是在开机时加载的,一经载入就无法在这次的操作中更改版本的。那个 crontab 档案的处理,以及 crontab -e 的指令应用,内容的写法字段不太一样

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SmallFatMan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值