2022-01-28 · 5

服务器搭建 3

serverlinux

这篇文章发布已超过两年,内容可能已过时。


Linux 账户管理

示例

这个问题我们在 main-server 上解决。必须做好这个才能继续下一部分的工作。

最先要做的是创建 UserGroup。

groupadd semiAdmin
groupadd common

vim /etc/group

按上面的代码用 groupadd 添加,然后进入 /etc/group 改成符合题目的数字。

或者直接进入 /etc/group 手动添加也行。

vim /etc/group

如上改为 semiAdmin:x:1040: 和 common:x:1050:。之后先创建 semiAdmin 里的 2 个账户吧。

mkdir smadmin
useradd -d /home/smadmin/smroot1 -g semiAdmin -s /bin/bash -m smroot1

由于 smadmin 目录不存在,先创建它,然后在 useradd 中用 -d 选项直接指定目录位置。用 -g 指定组,且 useradd 需要手动配置一切,所以连 shell 类型也要写——因此用 -s 选项加上 /bin/bash。还要加上 -m,home 目录才会被创建。先照同样方式再建一个账户吧。

useradd -d /home/smroot2 -g semiAdmin -s /bin/bash -m smroot2

这样一来,semiAdmin 组里要创建的账户就都建好了。接下来设置备注里写的密码使用期限 14 天。这时使用 chage 命令

chage -m 14 smroot1
chage -l smroot1

chage -l smroot1

可以看到 Minimum number of days between password change 变成了 14 天。因为是最小有效期,所以要用 -m 选项。Maximum 则是 -M 选项。这样两个都设置好,semiAdmin 组就全部设置完成了。接下来配置 common 组这边。

mkdir common
useradd -d /home/common/user01 -g common -s /bin/bash -m user01
useradd -d /home/user02 -g common -s /bin/csh -m user02
useradd -d /home/user03 -g common -s /bin/bash -m user03

相信你已经会了。要说明的是:用 -g 设为 common,看 user02,题目让设为 /csh,那也是 shell 类型之一,所以在 /bin 里。那样设置好账户创建就结束了。接下来只需设置密码。命令全都通用。

passwd smroot1
passwd smroot2
passwd user01
passwd user02
passwd user03

如上用 passwd 命令,按上面的表设置相同的密码。下面是对该问题的答案。

用上面的命令做会像左边那样显示。右边的情况为了可读性可以那样写(不写也能正常工作..)。

如果显示成上面那样就全部完成了。到这里是题目部分。接下来是附加设置。改一下 ssh 配置,让只有 semiAdmin 能用 SSH 连接。

vim /etc/ssh/sshd_config

vim /etc/ssh/sshd_config

按上面配置即可。除了 AllowGroups,还有其他项。由于 AllowGroups 没有以注释写出,在想要的位置添加写上即可。

允许特定用户时

  • AllowUsers, User, Buser, Cuser, Duser
  • 用空格作为分隔符列举。

允许特定 IP 的特定账户时

  • AllowUsers username@ip

把 Allow 改为 Deny 就会全部拦截(AllowUsers、AllowGroups、DenyUsers、DenyGroups)。

之后重启 sshd 服务,从 windows client 尝试连接吧。

以 main 连接 以 user01 连接

以 smroot1 连接 以 smroot2 连接

可以确认:除了配置的组名 semiAdmin 之外的全都连不上,只有以 semiAdmin 为组的账户才能用 ssh 连接。

DNS 配置

DNS 配置在 slave-server 上进行。

apt install bind9

用上面的命令安装 bind9。为使用 DNS,我们将使用 bind9。

cd /etc/bind
ll

ll

这是敲 ll 的样子。我已经预先建了很多 zone,所以有各种东西,不用特别在意。

vim named.conf

vim named.conf

所有 DNS 配置都在 named.conf 里,但如上文所示,它说不要在这里添加。我们要在被 include 的文件中,名为 named.conf.local 的地方添加 zone。

vim named.conf.local

我预先配置过所以显示成这样,原本应该什么都没写。为使用想要的域名,按上图做即可。

zone "域名" IN {
	type master;
   	file "zone 文件路径";
};

按上面写即可。这是正向。是把域名(文字)→ IP(数字)转换的形式。

zone "IP 反向书写.in-addr.arpa" IN {
	type master;
   	file "zone 文件路径";
}

按上面写就配置为反向。把 IP(数字)→ 域名(文字)转换。

现在把在文件路径里写好的文件实际创建出来。与其在这里一个个敲,不如复制 db.local 来用。

db.local

sunrin.com.zone

我把名字设为了 sunrin.com.zone,所以就这样创建了。把上面 SOA 部分的 localhost 改成自己的域名,下面的 NS 部分也改。之后需要通告 ns,看第 2 行可以看到通告了 ns 的地址。@ 用于完全没有子域名的情况,其他则要写在前面,才会移动到写在后面的 IP。之后

systemctl restart bind9
service bind9 restart

用上面 2 条命令中你想用的那条重启 bind9。然后在 windows client 的 cmd 里输入 nslookup。

输入 sunrin.com 时

可以看到 sunrin.com 指向 22.1.24.10。这样一来,ssh 和 web 服务也都用那个域名输入就能连接成功。装上 vmware-tools,装 FileZilla 和 Putty,用 FileZilla 连接 main-server 吧。

这是连接成功的样子。

我把端口又改回了 22,但如果你没改,用 22000 端口应该能连上……

如果碰巧连不上,试着配置一次 sftp。

可以确认连接 sunrin.com 时连到 22.1.24.10。

今天就到这里。你已经一路成功搭好 DNS 了~


原文(韩语): tistory — 发布于 2022-01-28,已迁移至本博客。本翻译由 AI 协助完成。

评论

删除这条评论?

相关文章

服务器搭建 3 · 나봄하랑