大三下学期的Linux实验内容

Yum配置

yum的安装仓库从 /etc/yum.repo.d/ 中的配置文件中读取

注意

  • Base为网络源,Media为挂载的光盘的源,即本地源,yum会先在Base上查找然后在Media上查找(?真是这样也不应该报错才对)
  • 删除base后正常,而且我测试了两次,不管是找着谢进的还是默认的(当然enabled改成了1,我没有验证),均删除base后正常
  • 博客来源:https://www.jianshu.com/p/be9e93bf1b42

修改网络安全策略

  1. 关闭防火墙

service iptables stop

  1. 修改安全策略为不积极

setenforce

DHCP配置

情境

  1. 直球要求你的这台机器作为DHCP服务器来要求你配置
  2. 要求客户机能够从你的机器上获取IP地址

步骤

  1. 查询dhcp的软件包

rpm -qa | grep dhcp

如果只有一个dhcp-common则说明没有安装

使用yum install dhcp (dhcpd?未验证,我忘记我是用d还是没有d安装的了) 来安装dhcp服务

成功后再用查询命令会有两条结果

  1. 复制dhcp的模板文件到对应目录中

注意!dhcp的配置文件为/etc/dhcp/dhcpd.conf,默认内容为空,而sample文件是放在/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample

复制过来然后就能修改了。不做这一步直接service dhcpd start 会失败。然后复制完之后去尝试着启动服务依旧会失败

注意!经过DHCP服务得到的IP地址一定与DHCP主机的IP处于同一段网段

  1. 配置文件解析

配置文件大概是这个样子

#这里是配置DNS的全局配置,也可以在subnet中修改对应的配置,把第二个换成题目要求的DNS服务器就可以,这里可以不用管 option domain-name example.org; option domain-name-servers ns1.example.org, ns2.example.org  # default和max开头的可以不用管,默认即可  # 不更新DDNS的设定,因为好像没有和DNS联动的需要,默认被注释掉了 # ddns-update-style none; # 忽略DNS服务器的更新功能,默认没有 # ignore client-updates;  # 重点是配置这里的子网 # 在subnet这里配置子网网段 # 有一个就可以生效,因此把其他的删掉就行 subnet 10.5.5.0 netmask 255.255.255.224 { # 配置分配的范围 range 10.5.5.26 10.5.5.30; # 下面两行是配置DNS,如果全局配置了则下面可以删掉 # option domain-name-servers ns1.internal.example.org; # option domain-name internal.example.org; # 配置网关地址 option routers 10.5.5.1; # 广播地址可以不写 option broadcast-address 10.5.5.31; # 超时时间限制,可以不管 default-lease-time 600; max-lease-time 7200; } # 如果有服务器是固定IP,那么就用下面的强制固定住IP host 主机名 {     hardware ethernet 硬件地址     fixed-address IP地址 } }   

参考的配置文件,还有要确定网卡的IP地址已经改成了手动,ip为172.16.8.0

option domain-name example.org; # 配置DNS1和DNS2 option domain-name-servers 172.16.8.88, 8.8.8.8;  subnet 172.16.8.0 netmask 255.255.255.0 { # 配置分配的范围 range 172.16.8.50 172.16.8.150; # 配置网关地址 option routers 172.16.8.254; # 广播地址可以不写 # option broadcast-address 10.5.5.31; } 

如果以上都能配置正确,那么dhcp服务就能启动成功了

配置完成后如果dhcp服务不能启动,检查:

  • subnet后的ip地址跟ip需要是同一个网段,最后一位需要是0
  • 子网掩码需要配置正确

验证

大概是隔离虚拟网络和物理网络,然后使用客户机来获得主机的DHCP服务,然后用ip addr来查看是否成功

未验证

DNS服务的搭建

情境

  1. 要求使用特定IP的机器直接搭建DNS服务器
  2. 要求搭建域名解析服务器

步骤

  1. 查询Bind软件包是否存在

推荐:rpm -q bind

也可以:rpm -qa | grep bind

一般电脑上只有Bind软件的相关依赖,使用yum install bind-chroot -y来安装软件包

(一般来说使用bind也可以满足需求,但是chroot的相比原版软件,它会将工作空间限定到一个文件夹,从而提高了安全性)

安装完毕后使用services iptables stop关闭防火墙

  1. 配置文件的相关信息

/etc/named.conf bind软件的全局配置文件,在里面可以修改域声明文件(rfc1912)的相关信息

/etc/namd.rfc1912.zones 域文件的清单文件,需要在里面声明对应的zone文件才能生效...

**对应的域文件是放在var中的! **

/var/named/目录 真正执行功能的文件,分为正向和反向两种

  1. 配置文件解析

named.conf只需要修改监听多个IP以及开启允许其他IP查询即可

在option里面修改

# 允许监听任意IP地址 listen-on port 53 { any; } # 允许任意IP地址进行查询 allow-query { any; } 

namd.rfc1912.zones 文件中都是形如

zone 这里填写域名,例如baidu.com IN { 	type master; 表示服务器类型,这里master表示主服务器 	file baidu.com.zone; 对应的数据库文件,用于解析 	allow-update {none;}; }; 

如果用hys放出来的例题为参考的话,这个配置应该写成

zone xuni.edu.cn IN { 	type master; 	file xuni.edu.cn.zone; 	allow-update {none;}; }; 

因为题目只有这个要求,所以暂时只写正向解析的例子,反向的只留一个大概的笔记

下一步就是创建对应的数据文件(正向代理或者反向代理的数据文件)

文件保存在/var/named中,并非保存在/etc中

当中有一些模板,可以直接拷贝使用

cp -a named.localhost xuni.edu.cn.zone

-a 的意思是保存之前的用户组

(如果直接复制粘贴的话复制后的文件的所属组就是你的用户组例如root,但是必须是named组才有权限来读写文件)

之后就可以编辑了

# 表示有效时间 $TTL 1D @	IN SOA	@{将@替换成你的域名,注意后面一定要加点.} rname.invalid.{你的邮箱,@替换成.,末尾也要加.} ( # 这里是一些配置,不要动 					0	; serial 					1D	; refresh 					1H	; retry 					1W	; expire 					3H )	; minimum  	NS	@{写上域名,记得加点.} 	A	{这里写上域名服务器的IP地址,} 	AAAA	::1 # 如果你的域名中有邮件主机的话,需要声明MX(邮件转投)记录,加上数字作为优先级,默认10 	MX 10 mail.xiaocai.com. mail   A IP地址 web    A IP地址 ftp    A IP地址 

还是以那个文件来举例的话,正向解析的文件应该为

# 表示有效时间 $TTL 1D @	IN SOA	xuni.edu.cn. 304052687.qq.com. ( # 这里是一些配置,不要动 					0	; serial 					1D	; refresh 					1H	; retry 					1W	; expire 					3H )	; minimum  	NS	xuni.edu.cn. 	A	10.1.1.110 	AAAA	::1 

至此,关于配置文件部分的内容已经完成。

  1. 修改网卡指定的DNS服务器地址,启动named服务,并用nslookup加网址查看是否成功(我失败了,显示超时)

路由配置

情境

  1. 直接要求指定机器充当路由器
  2. 要求不同网段的机器能够相互连接或者访问指定网段上的网站

步骤

通过setup设置的虚拟网卡使得该主机可以同时ping通两个网段的机器,然后修改路由表使得能够ping通对应网段的网卡接受到的数据包能走对应网卡出去,这样就能实现不同网段互联了

使用setup指令设置静态IP并创建多IP,重装网卡使得配置生效,然后修改配置文件是路由转发功能生效,最关闭防火墙、修改策略等,用客户机去ping看是否能连接

谢进能成功ping通三台主机,但是我没成功

todo 什么时候再去试一试

FTP服务

情境

  1. 要求搭建ftp服务器
  2. 要求机器之间能够通过网络彼此分享文件

步骤

  1. 查看ftp服务是否安装

如果没有安装则通过yum来安装vsftp软件包

yum install vsftpd -y

  1. 关闭防火墙和设置策略不积极,开启ftp服务...

关闭防火墙

service iptables stop

设置策略为不积极

setenforce 0

然后开启服务

service vsftpd start

理论上能ping通的机器应该就能访问你的ftp地址了

我用克隆的虚拟机测试了,没有问题

  1. vsftpd配置文件解读

默认的配置文件暂时没有修改,加了一条

# 允许匿名用户访问 anonymous_enabled=YES  # 自定义匿名用户配置 anon_root=/var/ftp/pub/ anon_upload_enable=YES   # 修改客户机不能访问系统目录 chroot_local_user=yes 

...不看咯

工作模式(不重要)

主动模式

当客户机向服务器请求ftp服务时,会启用一个随机端口x,与服务器的21端口建立命令 连接,这条通道用来传输命令。
通过该连接,客户机会启动另外一个随机端口y来与服务器的20端口建立数据连接,这条通道用来传输数据。

被动模式

在防火墙启动时主动模式无法正常工作,因为数据连接会被阻塞。被动模式下数据传输两段的端口都是随机的Y和N。

Samba服务器

情境

步骤

  1. 检测samba的主程序有没有安装

rpm -qa|grep samba

如果只有四个说明只安装课一些库文件没有安装主程序。

使用yum install samba -y 来安装软件包

  1. 准备samba共享文件夹以及共享文件

随便什么文件都可以,跳过

  1. samba的配置文件

vim /etc/samba/smb.conf

简单来说分为全局配置共享资源配置

# 1.全局部分参数设置: [global]         #与主机名相关的设置         workgroup = zkhouse  <==工作组名称         netbios name = zkserver   <==主机名称,跟hostname不是一个概念,在同一个组中,netbios name必须唯一         serverstring = this is a test samba server <==说明性文字,内容无关紧要         #与登录文件有关的设置         log file = /var/log/samba/log.%m   <==日志文件的存储文件名,%m代表的是client端Internet主机名,就是hostname         max log size = 50      <==日志文件最大的大小为50Kb         #与密码相关的设置         security = share       <==表示不需要密码,可设置的值为share、user和server         passdb backend = tdbsam         #打印机加载方式         load printer = no <==不加载打印机          ----------------------------------------------------------- # 2.共享资源设置方面:将旧的注释掉,加入新的 #先取消[homes]、[printers]的项目,添加[temp]项目如下 [temp]              <==共享资源名称         comment = Temporary file space <==简单的解释,内容无关紧要         path = /tmp     <==实际的共享目录         writable = yes    <==设置为可写入         browseable = yes   <==可以被所有用户浏览到资源名称,         guest ok = yes    <==可以让用户随意登录 

参考:https://www.jb51.net/article/220124.htm 脚本之家