大厂linux面试题攻略四之Linux网络服务(一)

一、Linux网络服务-SSH服务

1.哪些设置能够提升SSH远程管理的安全等级?

ssh的登录验证方式


ssh的登录端口和监听设置:

配置文件: /etc/ssh/sshd_config
#Port 22                                #ssh服务默认监听端口
#ListenAddress 0.0.0.0         #ssh服务默认监听IP地址

监听IP地址和默认监听端口可以改为不常用的地址,可以提升安全

ssh的登录用户限制

配置文件: /etc/ssh/sshd_config
#PermitRootLogin yes                #是否允许root用户使用ssh登录

ssh的登录超时设置

配置文件: /etc/profile
export TMOUT=300                #设置客户端5分钟无操作自动断开连接

ssh登录失败尝试次数

配置文件: /etc/ssh/sshd_config
#MaxAuthTries 6                #设置客户端登录失败尝试次数为6次

参考答案:
登录验证模式修改为密钥登录
登录端口修改为非22端口以及指定监听IP
禁止root用户远程登录
设置无操作时自动断开连接
设置登录失败后登录尝试次数为6次
编写防火墙规则,使用白名单机制放行ssh服务的监听端口

2.ssh连接时认证时间过长如何解决?

配置文件: /etc/ssh/sshd config
#UseDns yes                                #取消ssh登录时的dns反向解析请求功能

注意事项:在/etc/ssh/sshd_config配置文件中注释掉的选项不代表不生效,反而代表默认生效,想关闭某功能,一定要取消注释然后修改为no才可以

3.scp和rsync进行远程文件复制有什么区别?

二、Linux网络服务-DHCP+FTP

1.请描述通过DHCP服务器获取IP地址的过程

通过DHCP(动态主机配置协议)服务器获取IP地址的过程是一个自动化的网络配置过程,它允许网络中的设备(如计算机、手机等)自动获取IP地址、子网掩码、默认网关等网络配置信息。这个过程通常可以概括为以下几个阶段:

一、发现阶段(DHCP Discover)

  1. 客户机请求IP地址
    • 当一个DHCP客户机启动或重新连接到网络时,它还没有IP地址,因此需要通过DHCP获取一个合法的IP地址。
    • 客户机会以广播方式发送一个DHCP Discover消息(也称为DHCP-DISCOVER报文),该消息包含客户机的MAC地址和其他一些识别信息,如客户端标识符等。
    • 由于客户机此时还不知道DHCP服务器的地址,因此它使用全F(即255.255.255.255)作为目标地址进行广播。

二、提供阶段(DHCP Offer)

  1. 服务器响应
    • 当网络中的DHCP服务器接收到DHCP Discover消息后,它会根据自身的配置(如IP地址池的范围、租期等)为客户机选择一个可用的IP地址。
    • DHCP服务器会构造一个DHCP Offer消息(也称为DHCP-OFFER报文),其中包含为客户机分配的IP地址、子网掩码、默认网关、DNS服务器地址以及服务器的IP地址等信息。
    • DHCP服务器同样以广播方式发送DHCP Offer消息,以便客户机能够接收到。

三、选择阶段(DHCP Request)

  1. 客户机选择IP地址
    • 如果网络中存在多台DHCP服务器,客户机可能会收到多个DHCP Offer消息。
    • 客户机通常会选择第一个收到的DHCP Offer消息,并向提供该IP地址的DHCP服务器发送一个DHCP Request消息(也称为DHCP-REQUEST报文),以确认选择该IP地址。
    • DHCP Request消息中包含客户机选择的IP地址和服务器标识符,以便服务器能够识别出是哪个请求被确认。

四、确认阶段(DHCP ACK)

  1. 服务器确定租约
    • DHCP服务器在接收到DHCP Request消息后,会检查请求中的IP地址是否仍然可用(即没有被其他设备占用)。
    • 如果IP地址可用,DHCP服务器会向客户机发送一个DHCP ACK消息(也称为DHCP-ACK报文),确认IP地址的分配。
    • DHCP ACK消息中包含IP地址的租期以及其他相关的网络配置信息。
    • 客户机在接收到DHCP ACK消息后,会配置其网络接口,使用分配的IP地址进行网络通信。

五、续租过程(可选)

  • 当IP地址的租期即将到期时,客户机会自动向DHCP服务器发送续租请求,以延长IP地址的使用期限。
  • DHCP服务器根据当前的网络状况和客户机的请求,可能会同意续租并发送DHCP ACK消息确认,或者拒绝续租并发送DHCP NAK消息。

通过以上过程,DHCP客户机能够自动从DHCP服务器获取IP地址和其他必要的网络配置信息,从而简化了网络管理的复杂性。

DHCP租约:

DHCP续租:

DHCP租用失败
如果DHCP客户机无法找到DHCP服务器,它将从TCP/IP的B类网段169.254.0.0/16中挑选一个IP地址作为自己的临时IP地址,继续每隔5分钟尝试与DHCP服务器进行通讯,一旦与DHCP服务器取得联系,则客户机放弃自动配置的临时IP地址,而使用DHCP服务器分配的IP地址。
DHCP客户机收到DHCP服务器回应的ACK报文后,通过地址冲突检测 (arp)发现服务器分配的地址冲突或者由于其他原因导致不能使用,则发送DECLINE报文,通知服务器所分配的IP地址不用。

参考答案:
DHCP租约简要过程分为4步:
        客户机请求IP(客户机发DHCPDISCOVER广播包)
        服务器响应(服务器发DHCPOFFER广播包)
        客户机选择IP(客户机发DHCPREQUEST广播包)
        服务器确定租约(服务器发DHCPACK/DHCPNAK广播包)

2.简单描述FTP的主动模式和被动模式的区别?

FTP(File Transfer Protocol,文件传输协议)是一种基于TCP的协议,主要用于在客户端和服务器之间传输文件。FTP协议支持两种工作模式:主动模式(PORT模式)和被动模式(PASV模式)。以下是这两种模式的简单描述及区别:

主动模式(PORT模式)

工作原理

  • 客户端随机开启一个大于1024的端口N,向服务器的21号端口(命令端口)发起连接,发送FTP用户名和密码进行登录。
  • 登录成功后,客户端会开放另一个端口N+1进行监听,并向服务器发出PORT N+1命令,告诉服务器客户端采用主动模式并开放了端口N+1。
  • 服务器收到PORT命令后,会从其本地的数据端口(通常是20号端口)主动连接到客户端指定的端口N+1,进行数据传输。

特点

  • 数据传输的主动权在服务器一方。
  • 客户端需要开放端口给服务器,这在很多情况下(尤其是客户端位于防火墙内时)可能会遇到困难。
  • 服务器需要开启21端口的“准入”和20端口的“准出”。

被动模式(PASV模式)

工作原理

  • 客户端同样随机开启一个大于1024的端口N,向服务器的21号端口发起连接,发送FTP用户名和密码进行登录。
  • 登录成功后,客户端向服务器发送PASV命令,通知服务器采用被动模式。
  • 服务器收到PASV命令后,会在本地随机开放一个大于1024的端口P进行监听,并通过PORT命令将P端口号告知客户端。
  • 客户端收到端口号后,通过其开放的端口N+1连接到服务器的端口P,建立数据连接进行数据传输。

特点

  • 数据传输的主动权在客户端一方。
  • 客户端不需要开放任何端口给服务器,只需等待服务器告知数据端口号后主动连接即可。
  • 服务器需要开放一个随机端口给客户端连接,这个端口号范围通常是可以设置的,以避免与防火墙冲突。

区别总结

主动模式(PORT模式)被动模式(PASV模式)
数据传输主动权服务器客户端
客户端端口状态需要开放端口给服务器无需开放端口,只需等待连接
服务器端口状态使用固定数据端口(通常是20号端口)主动连接客户端随机开放端口等待客户端连接
防火墙配置客户端可能需要配置防火墙以允许服务器连接服务器可能需要配置防火墙以允许客户端连接随机端口
应用场景适用于客户端防火墙配置灵活,允许外部连接的情况适用于客户端位于防火墙内,难以开放端口给外部连接的情况

在实际应用中,由于大多数客户端都位于防火墙或NAT(网络地址转换)之后,被动模式因其灵活性而更受欢迎。然而,在选择使用哪种模式时,还需要考虑服务器和客户端的具体网络环境及防火墙配置。

3.集群环境中,如何保证所有服务器之间的时间误差较小?

在集群环境中,保证所有服务器之间的时间误差较小是至关重要的,因为这直接影响到集群中各项操作的协调性和数据的准确性。以下是几种实现这一目标的方法:

1. 使用网络时间协议(NTP)

NTP(Network Time Protocol)是一种广泛使用的网络时间同步协议,通过它可以实现计算机时间的精确同步。

  • 选择NTP服务器:选择一个或多个高精度和高可靠性的NTP服务器作为时间源。这些服务器可以是公共NTP服务器,如pool.ntp.org,或者是由专门机构(如国家授时中心)提供的时间服务器。
  • 配置NTP客户端:在集群中的每台服务器上安装NTP客户端,并配置它们连接到选定的NTP服务器。NTP客户端会定期从服务器获取时间信息,并调整本地系统时间,以保持与服务器时间的同步。
  • 监控与调整:定期检查NTP同步状态,确保所有服务器都与NTP服务器保持同步。如果发现同步问题,及时进行调整。

2. 使用外部时钟源

如果集群中的服务器无法接入互联网,或者对时间同步的精度要求极高,可以考虑使用外部时钟源,如GPS设备或原子钟。

  • 连接外部时钟源:将GPS设备或原子钟连接到集群中的一台或多台服务器上。这些设备可以提供非常准确的时间信号。
  • 同步时间:通过软件或协议将服务器与外部时钟源进行连接,并同步时间。这样,即使在没有互联网连接的情况下,服务器也能保持时间的一致性。

3. 定期检查和维护

  • 硬件检查:定期检查服务器中的时钟芯片和电池是否正常工作。如果发现故障或老化现象,及时更换硬件。
  • 软件更新:保持操作系统和NTP客户端软件的更新,以修复已知的时钟问题和漏洞。
  • 时区设置:确保集群中所有服务器的时区设置一致,避免因时区不一致导致的时间误差。

4. 使用时间同步软件

除了NTP之外,还有一些专门的时间同步软件可以用于集群环境。这些软件通常提供了更丰富的功能和更灵活的配置选项。

  • 选择适合的软件:根据集群的具体需求和操作系统环境,选择适合的时间同步软件。
  • 配置和部署:在集群中部署时间同步软件,并按照软件文档进行配置。确保所有服务器都能正确连接到时间同步服务。

5. 考虑网络延迟和单点故障

  • 优化网络:使用高速网络设备和低延迟的网络连接,以减少时间同步过程中的网络延迟。
  • 备份时间服务器:配置多个NTP服务器作为备份,以减少单点故障对时间同步的影响。当主NTP服务器不可用时,客户端可以自动切换到备份服务器进行时间同步。

6. 同步频率和策略

  • 配置同步频率:根据集群的具体需求和网络环境,配置合适的时间同步频率。一般情况下,保持较小的时间间隔进行同步可以更精确地保持服务器时间的一致性。
  • 设置时间漂移修正:由于硬件或操作系统的影响,服务器时钟可能会出现时间漂移。在同步过程中设置时间漂移修正策略可以纠正这种偏差。

综上所述,通过综合运用NTP协议、外部时钟源、定期检查和维护、时间同步软件以及考虑网络延迟和单点故障等因素,可以有效地保证集群环境中所有服务器之间的时间误差较小。

三、Linux网络服务-DNS服务

 1.请描述用户访问网站时DNS的解析过程

参考答案
客户机首先查看本地hosts文件是否有解析记录,有则直接用来访问web server
没有则向网卡中记录的首选DNS (本地DNS) 发起查询请求
本地DNS若有记录则返回给客户端,客户端接收到后直接访问web server
若没有,则本地DNS向根域服务器发起请求,请求解析对应顶级域的IP地址
本地DNS得到顶级域服务器IP后,再向顶级域服务器发起请求,请求解析权威DNS
服务器的IP地址
本地DNS服务器获取到权威DNS服务器IP地址后,再向其查询具体的完整域名的对
应解析记录
最终本地DNS将查询到的对应域名的解析记录发送给客户端,并在本地记录一份

2.解释权威DNS和递归DNS的含义,并描述智能DNS的实现原理

参考答案
权威DNS是经上一级授权对域名进行解析的DNS服务器,同时它可以把解析授权转授给其他服务器
递归DNS负责接受用户对任何域名的查询,并返回结果给用户,它可以缓存结果避免用户再向上查询

智能DNS就是将对用户发起的查询进行判断出是哪个运营商的用户查询,然后将请求转发给相应的运营商IP处理,减少跨运营访问的时间,提高访问速度。

四、Linux网络服务-Apache配置

1.公司里有一台服务器,需要在上面跑两个网站,并且其中一个网站需要更换新域名,请问如何处理?
网站1: www.a.com
网站2:www.b.com(旧)               www.d.com(新)

考查虚拟主机、rewrite地址重写

虚拟主机:
基于IP的虚拟主机:

基于IP的虚拟主机是一种在共享服务器上托管多个网站的网络托管服务。每个虚拟主机都有一个独立的IP地址,这使得每个虚拟主机在网络上具有独立的身份。基于IP的虚拟主机可以通过将不同的域名与不同的IP地址关联来实现多个网站的托管。

基于IP的虚拟主机的工作原理是通过使用虚拟化技术将一台物理服务器分割成多个虚拟环境。每个虚拟环境都有自己的操作系统、文件系统和网络配置。通过使用专门的软件,每个虚拟主机可以独立地管理和运行其分配的资源,包括处理器、内存和存储空间

基于IP+端口的虚拟主机:

基于IP+端口的虚拟主机是一种虚拟化技术,它允许在单个物理服务器上运行多个虚拟主机。每个虚拟主机通过不同的IP地址和端口号来区分,从而实现独立的运行环境。

在这种虚拟主机环境下,每个虚拟主机都有自己独立的操作系统、应用程序和数据库。这样可以将多个网站或应用程序分别部署在不同的虚拟主机上,实现隔离和资源的有效利用。

基于域名的虚拟主机:

基于域名的虚拟主机是一种共享服务器资源的托管服务,它允许多个不同域名的网站共享同一台服务器的硬件和软件资源。每个域名都被分配一个独立的虚拟主机空间,可以独立管理自己的网站内容、数据库和邮件服务等。

rewrite地址重写:

2.简述Apache的三种工作模式?

Apache服务器有三种工作模式:prefork、worker和event。

  1. Prefork模式:这是Apache最常用的工作模式。在这种模式下,Apache会在启动时创建多个独立的进程(也称为子进程),每个进程都有自己的内存空间,可以独立处理客户端的请求。每个进程都会预先分配一部分内存用于接受和处理连接请求。每个连接会由一个独立的进程处理,这个进程会处理完整个请求后再释放资源。这种模式的好处是每个进程都是独立的,不受其他进程的影响,但同时也会占用较多的内存和系统资源。

  2. Worker模式:这种模式是通过多线程实现的。在启动时,Apache会创建一些子进程,每个子进程会创建多个线程,每个线程都可以处理一个客户端的请求。不同于prefork模式,worker模式中的线程是共享内存空间的。这样可以减少内存的消耗并提高服务器的性能。同时,线程之间的切换比进程之间的切换要快,可以更高效地处理请求。

  3. Event模式:这是一种更高级的工作模式,结合了prefork和worker的优点。在event模式下,Apache同样会创建一些子进程,每个子进程中会创建多个线程。与worker模式不同的是,event模式中的进程不会一直等待连接,而是通过事件驱动的方式来处理请求。当有一个新的请求到达时,会触发一个事件,然后由合适的线程来处理。这样可以更高效地利用系统资源,并提高服务器的吞吐量。event模式需要操作系统支持epoll(Linux)、kqueue(BSD)或者IOCP(Windows)等高级事件通知机制。

  4. 查看Apache的三种工作模式的方式:
    # httpd -V | grep -i "server mpm"
    指定方式:
    在编译时,在选项中指定模式,--with-mpm=xxx

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值