目录
-
- 网络基础服务
-
- CentOS6与CentOS7区别
- 常见的网络协议和端口
- 网关和路由
- 网络管理命令
- SSH管理
- TCP Wrappers 简单防火墙
- DHCP服务
-
- DHCP的工作原理
- DHCP服务搭建
- DNS服务
-
- 构成和分类域名
- 域名分析过程
- DNS实验
- VSFTP服务
-
- VSFTP服务概述
- 登录验证方式
- 使用FTP
- 普通实验
- openSSL vsftp加密验证
- SAMBA服务
-
- Samba概述
- 登录验证模式
- 基本使用
- 实验
- NFS服务
-
- NFS挂载原理
- 实验
- LAMP平台
-
- 环境搭建
- Apache
-
- 启动方式
- 工作模式
- 文件位置
- 配置文件
- Apache目录别名实验
- Apache用户验证
- 虚拟主机实验
- 域名跳转实验
- Apache OpenSSL实验https
- Apache日志切割
- Apache不记录某种类型的文件
- Apache静态缓存
- Apache禁止解析PHP
- LNMP平台
- Nginx
-
- 概念
- 工作模式
- 配置文件结构
- 状态统计实验
- 目录保护试验
- IP验证限制
- 虚拟主机实验
- 反向代理实验
- 负载均衡
- https 永久重写
- 邮件服务器
-
- 概述
- 搭建DNS
- 配置邮件发送方
- 配置接收方
- Web客户端
- Rsync
-
- SSH单次备份实验
- Rsync单次备份实验
- Rsync inotify实时同步
- unison inotify实现双向数据同步
- JavaWeb环境搭建
-
- 安装JDK
- 安装Tomcat
- ELK平台搭建
-
- 实验部署
- 关系数据库平台(MySQL)
-
- 关系数据库理论基础
- MySQL基础信息
- MySQL基础命令
- 数据库的备份和还原
- MySQL主从备份
- MySQL主主备份
- MySQL一主多从
- MySQL多主一从
- MySQL读写分离
- 非关系数据库平台(Redis)
-
- 在CentOS7下安装Redis
- 数据类型
- 其他相关命令
- Redis 高级应用
首先,解释我使用的环境
[root@C7B1 filesrc]# uname -a Linux C7B1 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux [root@C7B1 filesrc]# cat /proc/version Linux version 3.10.0-1160.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Mon Oct 19 16:18:59 UTC 2020 [root@C7B1 filesrc]# cat /etc/issue \S Kernel \r on an \m [root@C7B1 filesrc]# cat /etc/redhat-release CentOS Linux release 7.9.200 (Core)
以下实验,如无特殊说明均指的是 CentOS7 关闭防火墙与SELinux
网络基础服务
CentOS6与CentOS7区别
项目 | CentOS6.x | CentOS7.x | 区别 |
---|---|---|---|
文件系统 | ext4 | xfs(性能好,速度快) | 使用的时候ext4的瓶颈都很难达到,感知不强 |
内核 | 2.6.x-x | 3.10.x-x | 内核存在大升级导致防火墙等变化 |
防火墙 | iptables | firewalld | 后者优秀,感知不强,短期不会取而代之,大多数人习惯安装7后再重装iptables |
默认数据库 | MySQL | MariaDB | 两者几乎相同,更换只是防止版权纠纷,MySQL优化方案比较成熟,短期不会取而代之 |
时间同步 | ntpq -p | chronyc sources | |
修改时区 | /etc/sysconfig/clock加入ZONE=“Asia/Shanghai” | timedatectl set-timezone Asia/Shanghai | 7的命令实际上就是修改了6的配置文件 |
修改语言 | /etc/sysconfig/i18n写入LANG=“zh_CN.UTF-8” | localectl set-locale LANG=zh_CN.UTF-8 | 这个指的是终端的语言,自己不要改,怕不支持给乱码 |
主机名 | /etc/sysconfig/network写入 | /etc/hostname写入或者hostnamectl set-hostname XXX,全是永久生效 | 主机名有一个设置要求,完整主机名是主机名.localhost.localdomain,不遵守也问题不大 |
操作 | CentOS6.x | CentOS7.x |
---|---|---|
启动服务 | service 服务名 start | systemctl start 服务名 |
关闭服务 | service 服务名 stop | systemctl stop 服务名 |
重启服务 | service 服务名 restart | systemctl restart 服务名 |
查看所有服务状态 | service --status-all | systemctl list-units |
查看某个服务状态 | service 服务名 status | systemctl statu 服务名 |
设置自启动 | chkconfig 服务名 on | systemctl enable 服务 |
设置不自启动 | chkconfig 服务名 off | systemctl disable 服务 |
查看所有自启动状态 | chkconfig --list | systemctl list-unit-files |
CentOS7中所有的服务后面加上了.service,例如httpd.service
这个写法的变化在CentOS7.0.x,CentOS7.1.x是必须的,但是后来RedHat加不加都可以了
项目 | CentOS6.x | CentOS7.x |
---|---|---|
网卡名 | eth0 | ens33(7.0-7.5是ens+随机数) |
网络配置 | ifconfig/setup | ip/nmtui |
网络服务名 | network | NetworkManager(network作为备用) |
网卡的配置文件在/etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp # 网络连接模式 dhcp动态,static静态IP
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3 # 网卡名
UUID=ddc655f4-514a-499e-bbca-8dd27fa91684
DEVICE=enp0s3 # 设备名
ONBOOT=yes # 开机加载
和CentOS6比起来就是多了IPv6的配置,注意大小写,,如果可以用nmtui解决不要用这个
[root@bogon ~]# cd /etc/sysconfig/network-scripts/ # 进入目录
[root@bogon network-scripts]# ls ifcfg-enp0s3
ifcfg-enp0s3
[root@bogon network-scripts]# cp -a ifcfg-enp0s3 ifcfg-enp0s3.back # 备份原文件
[root@bogon network-scripts]# mv ifcfg-enp0s3 ifcfg-eth0 # 修改文件名
[root@bogon network-scripts]# vim ifcfg-eth0 # 修改配置文件
修改网卡配置信息,改两处
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
- NAME=enp0s3
+ NAME=eth0
UUID=ddc655f4-514a-499e-bbca-8dd27fa91684
- DEVICE=enp0s3
+ DEVICE=eth0
ONBOOT=yes
修改GRUB配置,关闭一致性命名规则(就是不让内核算名字)
[root@bogon network-scripts]# vim /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
- GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet"
+ GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0 biosdevname=0"
GRUB_DISABLE_RECOVERY="true"
更新配置文件加载新的参数,重启
[root@bogon network-scripts]# grub2-mkconfig -o /boot/grub2/grub.cfg
[root@bogon network-scripts]# reboot
注意,CentOS7.x用的是Grub2,配置文件变化到/etc/default/grub
,/boot/grub2/grub.cfg
是grub2-mkconfig生成的
常见的网络协议与端口
-
网络地址与物理地址:
IP地址是互联网协议地址,作用是为了给每个连接局域网的设备一个独一无二的数字地址,10.X.X.X,172.16.X.X-172.31.X.X.X,192.168.X.X是内网IP段
MAC地址是物理地址,是为每一个设备设置一个固定的硬件地址,MAC工作在链路层,是一个12个16进制数
-
TCP/IP五层协议
应用层:FTP,HTTP,SMTP,Telnet,DNS…
传输层:TCP,UDP…
网络层:IP,ARP,ICMP…
数字链路:PPP,PPPop…
物理层:不常用
-
最常见网络端口
配置文件在:
/etc/service
端口 服务 作用 20/21 FTP 文件共享 22 ssh 远程管理 23 Telnet 不安全的远程管理 25 smtp 发邮件 465 smtp(SSL) 发邮件 110 pop3 收邮件 143 IMAP4 收邮件 993 IMAP4(SSL) 收邮件 80 www服务http 网页访问 443 www服务https 加密网页访问 3306 musql端口 数据库链接端口 53 DNS端口 域名解析端口 - FTP有两个端口,21是长期监听的,用于登录等验证,具体文件传输走20端口
- SMTP有两个,一个是加密的,一个没加密
- pop3只能收文本文件,想要图片需要IMAP
网关和路由
- 一个局域网中的设备可能需要访问另一个局域网中的设备,这个时候就需要路由器作为连接
- 一个网段去另一个网段可能有很多路可以走,这时候根据路由协议的不同路由器可能会规划出不同的走法 路由有动态路由与动态路由,静态是规定路线的,计算少,但是网络情况变化就要修改所有路由,适合局域网,动态是自动寻路的
- 网关首先必须是一个路由(可以是虚拟的也可以是真实的),所以具有的能力
- 网关可以,只要是的都会交给网关进行路由
- 网关可以进行NAT转换例如一个内网IP想要访问公网IP,可以经过网关,网关可以记下下这个数据包,重新包装,转发(例如几下这个包是内网ip10.65.1.1发来的,然后将这个数据包打包,用自己的公网IP名义发出,等收到包后根据包的特征返还非10.65.1.1)
,路由器可以作为网关来使用。。应该说:路由器可以实现网关的功能。另外,网关的功能还可以由局域网中一台双网卡的机器(其中一块网卡接入广域网)来实现。
-
查询路由表
[root@bogon ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.2.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
我们可以看到这是本机可以处理几个路由表,这是没有配配置网关的情况,当配置网关后,下方会显示一个默认路由,网关进行处理
-
临时修改网关
添加:
route add default gw 网关的地址(路由器的地址)
添加:
route del default gw 网关的地址(路由器的地址)
之后查询可以看到
[root@bogon ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.0.2.2 0.0.0.0 UG 100 0 0 eth0 10.0.2.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
最上面这个0.0.0.0意思是任意ip,意思是,不在下面这几个ip列表的ip本机没法路由,就直接交给网关10.0.2.2路由
网络管理命令
-
DNS解析测试命令
-
可以用过
nslookup
进行测试[root@bogon ~]# nslookup www.baidu.com Server: 192.168.43.1 Address: 192.168.43.1#53 Non-authoritative answer: Name: www.baidu.com Address: 112.80.248.76 Name: www.baidu.com Address: 112.80.248.75 www.baidu.com canonical name = www.a.shifen.com.
-
修改一张网卡的DNS
/etc/sysconfig/network-scripts/ifcfg-eth0
文件下DNS1=ip
,DNS2=ip
…或者使用setup
-
修改全局DNS
/etc/resolv.conf
文件下nameserver ip
或者使用setup
-
hosts文件
/etc/hosts
文件下是静态的解析记录,优先级高于DNS解析
-
-
网络查看命令
查看网络连接与端口:
netstat -tuln
查看进程,网络连接与端口:
netstat -tulnp
查看所有不管是否连接的活动:
netstat -an
-
查询本机和目标主机经过的节点数,路由追踪
traceroute [选项] 网址
-p
指定UDP端口测试(默认是ICMP)-q n
指定测试n次n
以IP的方式测试,避开DNS
注意这个功能在虚拟机NAT模式下无法实现,想要实现开机桥接模式
这个可以测试主机连接效率
这个功能的原理就是尝试去ping网址,成功之后就去ping他指向的网站,但是这个功能成功率不断下降,原因是很多网址禁止了这种ping
-
测试网络连通性
ping 网站
选项
-i
间隔时间-c
ping的次数-s
数据包的大小
-
地址解析,将ip转化为mac
arp ip
选项
-a
查看曾经与本机连接过的所有设备的mac-d ip
删除某个ip的记录
-
网络探测命令
nmap
命令,默认不安装选项
-sP
扫描网段内有哪些计算机,例如nmap -sP 10.0.2.0/24
子网掩码为24,网段为10.0.2.0,对方必须关闭防火墙才扫的到-sT
查询指定ip开了哪些端口
-
常见的远程工具
- Windows管理Linux:Xshell SecureCRT
- Linux管理Windows:rdesktop
- Linux管理Linux:SSH
SSH管理
-
什么是SSH
是Secure Shell缩写,与之前的Telnet比起来非明文传输,比较安全
-
SSH的登录验证模式
有账户密码验证与密钥对连接两种模式
- 客户端尝试发送连接请求(问问能不能远程连接)
- 服务器生成和发送公钥给计算机
- 客户端使用公钥加密信息,发送
- 服务器解密验证
- 客户端向服务器发送连接请求和自己的文件,服务器收到后直接返回
- 服务器检查到自己没有客户端公钥时:
- 返回没有收到客户端的公钥
- 服务器检查到有公钥的时候
- 服务器返回一段使用加密的challenge(随便找了点内容加密)
- 客户端用解密,然后用加密
- 服务器用解密验证到和之前自己找的那个内容一样
- :在连接之前客户端要想办法把自己的公钥放在服务器上
-
环境准备
-
修改主机名以方便识别
[root@bogon ~]# uname -n # 查看主机名 bogon [root@bogon ~]# vim /etc/sysconfig/network # 修改主机名
NETWORKING=yes - HOSTNAME=localhost.localdomain + HOSTNAME=KarryZenBook14s
注意,主机名规范应该是X.Y但是不写成这种格式基本不影响,最多有两个waring
如果需要立即生效还需要修改hosts文件
[root@bogon ~]# vim /etc/hosts
将原主机名(localhost.localdomain)换成新的(KarryZenBook14s)注意原主机名是一个整体,第一列那个localhost不是主机名
- 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 + 127.0.0.1 localhost KarryZenBook14s localhost4 localhost4.localdomain4 - ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 + ::1 localhost KarryZenBook14s localhost6 localhost6.localdomain6
重启
-
关闭防火墙和SELinux
永久关闭防护(重启生效)
[root@KarryZenBook14s ~]# chkconfig iptables off # 关闭防火墙自启 [root@KarryZenBook14s ~]# vim /etc/selinux/config
修改SELinux配置
# disabled - No SELinux policy is loaded. - SELINUX=enforcing + SELINUX=disabled # SELINUXTYPE= can take one of these two values:
临时关闭防火墙和SELinux
[root@KarryZenBook14s ~]# iptables -F # 注意,这里不是关闭了防火墙,是清空了防火墙规则 [root@KarryZenBook14s ~]# setenforce 0
-
-
用户密码验证连接(客户端Windows与Linux均可)
ssh
命令:ssh [-l username] [-p port] ip地址
,这里-l
指定用户不写会自动root登录,-p
指定端口,不写默认22,如果虚拟机是NAT的还是要写端口,例如PS C:\Users\tclkr> ssh -l root -p 9001 127.0.0.1
退出连接:
exit
或者Ctrl+D
-
使用密钥对连接(客户端Windows与Linux均可)
-
在客户端生成客户端的公钥与私钥
PS C:\Users\tclkr> ssh-keygen -t rsa -b 2048 Generating public/private rsa key pair. Enter file in which to save the key (C:\Users\tclkr/.ssh/id_rsa): # 询问存放位置 Enter passphrase (empty for no passphrase): Enter same passphrase again: # 询问是否加密 Your identification has been saved in C:\Users\tclkr/.ssh/id_rsa. Your public key has been saved in C:\Users\tclkr/.ssh/id_rsa.pub. The key fingerprint is: SHA256:xfRZov/YP/9Jas0OcLmTZ1vlPv3Ka3dmgUP65yENgHY tclkr@KarryZenBook14s The key's randomart image is: +---[RSA 2048]----+ | . . . | | o.o + | | o+Eo | | ....... | | S .++. .| | .o*=o.| | o***=| | +XO@| | .oB@&| +----[SHA256]-----+
-t
加密方式,设置为rsa-b
密钥长度- 询问密钥位置的时候直接回车保存在默认的家目录的/.ssh/id_rsa,在Linux上可能是/root,也可能是/home
- 之后询问是否加密私钥,这个是考虑到在不加密的情况下,如果别人获取到了计算机,就可以直接免密连接服务器,回车就是不加密,也可以连续两边输入私钥密码以后登录的时候输入私钥密码即可
-
上传客户端公钥到服务器
不必使用scp/ftp,ssh有自己的命令
tclkr@KarryZenBook14s MINGW64 ~/Desktop $ ssh-copy-id -p 9001 root@127.0.0.1 root@127.0.0.1's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh -p '9001' 'root@127.0.0.1'" and check to make sure that only the key(s) you wanted were added.
ssh-copy-id可以直接复制,但是windows的PowerShell并没有这个命令,这里临时切换到了Windows的GitBash完成了操作,
-p
是指定端口命令执行完,你的公钥(HOME/.ssh/id_rsa.pub)内容就被追加到了(Linux的HOME/.ssh/authorized_keys)
注意:这里,不能写了一个用户还想免密登录到别的用户
注意:,如果不用ssh-copy-id,请将文件复制下来,自己创建文件然后粘贴,而不是使用ftp/scp直接上传,因为Windows与Linux的换行格式不同!
-
登录服务器
与密码登录的命令一样,只不过免密了
-
-
禁用密码登录
正常情况下是允许密钥对和密码同时登录的,但是密钥对明显安全等级高,可以禁用密码登录
修改配置文件(是sshd,d是deamon缩写,是守护程序的意思,一般服务的进程有d,客户端进程没有d)
[root@KarryZenBook14s ~]# vim /etc/ssh/sshd_config
搜索Password修改即可,
#PasswordAuthentication yes #PermitEmptyPasswords no - PasswordAuthentication yes + PasswordAuthentication no # Change to no to disable s/key passwords #ChallengeResponseAuthentication yes
-
禁止使用root远程登录
由于很多事故是root误操作造成的,建议ssh的时候禁止root登录,可以在需要的时候由普通用户su过去
[root@KarryZenBook14s ~]# vim /etc/ssh/sshd_config
搜索RootLogin修改即可,
#LoginGraceTime 2m - #PermitRootLogin yes + PermitRootLogin no #StrictModes yes
-
修改ssh默认端口
默认ssh是使用22口,为了防止攻击,我们可以修改端口,尽量使用1000-65536端口(1000-端酒容易被占用)
[root@KarryZenBook14s ~]# vim /etc/ssh/sshd_config
搜索Port修改即可,
# possible, but leave them commented. Uncommented options change a # default value. - #Port 22 + Port 9000 #AddressFamily any #ListenAddress 0.0.0
之后
ssh -p 9000 ip
,要是使用的是NAT,要修改NAT端口转发设置 -
限制ssh监听IP
在生产环境中服务器大都有两块网卡,一个对内,一个对外,对外的负责服务,对内的负责被管理,,例如,有:客户机IP为10.1.1.1,服务器内网网卡IP为10.2.2.2,服务器外网网卡IP为:9.9.9.9,这个时候我们可以限制ssh只能连接到10.2.2.2不可连接到9.9.9.9,对公网暴露9.9.9.9这个IP。是限制服务器被连接的网卡IP不是客户机的IP!
[root@KarryZenBook14s ~]# vim /etc/ssh/sshd_config
搜索ListenAddress修改即可,
#Port 22 #AddressFamily any - #ListenAddress 0.0.0.0 + ListenAddress 内网IP #ListenAddress ::
-
scp
命令是一个安全的远程文件赋值命令,类似于命令cp,scp的传输是加密的,所以可能会影响一点速度,但是scp不是很站资源,不会提高多少系统负荷
scp [-P 端口] [-r] 源文件 username@ip:目标位置
-P
表示连接端口,scp默认是22口,-r
递归复制,例如scp -P 9000 -r ./download/httpd-2.2.9.tar.bz2 liukairui@127.0.0.1:/home/liukairui
当然,既然和cp差不多,也可以反向拷贝
scp [-P 端口] [-r] username@ip:源文件 目标位置
注意,ssh的端口是
-p
,scp的端口是-P
-
sftp
命令是一个安全的文件学出协议,几乎与ftp语法功能一样,但是由于使用了加密技术,安全但是低效,使用示例:
sftp -P 9001 liukairui@127.0.0.1
执行后进入一个交互界面,在这里的命令可能与Linux的相似,不一样,这里面的是独立的
-
help
获取帮助 -
pwd
与lpwd
,pwd指的是服务器当前工作路径,lpwd是登录这个服务器前宿主机的位置,l是local的意思,例如sftp> pwd Remote working directory: /home/liukairui sftp> lpwd Local working directory: c:\users\tclkr
-
cd
与lcd
,cd进入服务器目录,lcd进入客户端的某个目录 -
ls
与lls
,ls查看服务器目录,lls查看客户端的某个目录sftp> cd itisserverflod sftp> ls itisserverfile sftp> lcd Desktop sftp> lls 驱动器 C 中的卷没有
标签。 卷的序列号是 E25C-B336 C:\Users\tclkr\Desktop 的目录 2021/03/04 11:24 <DIR> . 2021/03/04 11:24 <DIR> .. 2021/03/01 23:04 10,337 2021.xlsx 1 个文件 10,337 字节 2 个目录 212,300,955,648 可用字节
-
put
,get
上传和下载文件到服务器sftp> pwd Remote working directory: /home/liukairui/tmp sftp> put .wakatime.cfg Uploading .wakatime.cfg to /home/liukairui/tmp/.wakatime.cfg .wakatime.cfg 100% 58 41.6KB/s 00:00 sftp> ls -al drwxrwxr-x 2 liukairui liukairui 4096 Mar 5 08:41 . drwx------ 6 liukairui liukairui 4096 Mar 5 08:40 .. -rw-rw-r-- 1 liukairui liukairui 58 Mar 5 08:41 .wakatime.cfg
sftp> pwd Remote working directory: /home/liukairui/test sftp> lpwd Local working directory: c:\users\tclkr\desktop sftp> get .wakatime.db Fetching /home/liukairui/test/.wakatime.db to .wakatime.db /home/liukairui/test/.wakatime.db 100% 12KB 4.4MB/s 00:00 sftp> lls 驱动器 C 中的卷没有标签。 卷的序列号是 E25C-B336 C:\Users\tclkr\Desktop 的目录 2021/03/05 08:45 <DIR> . 2021/03/05 08:45 <DIR> .. 2021/03/05 08:45 12,288 .wakatime.db 2021/03/01 23:04 10,337 2021.xlsx 2 个文件 22,625 字节 2 个目录 212,298,076,160 可用字节
注意sftp只能get服务器登录用户所属的文件
-
要是
-P
换端口不行可以尝试-oPort=端口
-
TCP Wrappers 简单防火墙
一个Linux自带的简易版防火墙,比iptables弱,生产环境用的不多,是工作在传输层的安全工具,可以对的的服务,常见的服务有telnet,sshd,vsftpd,rpcbind
-
查询服务是否被TCP Wrapper控制 先查询服务的命令所在位置(以ssh为例,但是我们要查的是服务端的,命令是sshd) 使用ldd静态的查看服务在执行的时候调用的库文件列表,使用grep查询有没有调用libwrap.so
[root@KarryZenBook14s itisserverflod]# which sshd /usr/sbin/sshd [root@KarryZenBook14s itisserverflod]# ldd /usr/sbin/sshd | grep libwrap.so libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f864052c000)
-
TCP Wrappers的工作原理
当获取连接请求后,先读取系统管理员设置的访问控制文件,符合要求就会将连接原封不动的发送给服务,否则直接拒绝
控制文件的读取方式
- /etc/host.allow的权限比/etc/host.deny大
- 看到/etc/host.allow有则直接放行
- 看到/etc/host.allow无但是/etc/host.deny没有也放行
- 看到/etc/host.allow无但是/etc/host.deny有不放行
- 需要个别服务允许,其他拒绝需要把服务写在allow,deny上写all
- 需要拒绝部分直接在deny里面写要拒绝的
-
TCP Wrappers的使用
编写规则是
service_list@host: client_list
-
service_list 服务列表
-
host 的ip,例如服务器有内网网卡IP为10.65.1.1和外网网卡2.2.2.2,我们希望只有内网网卡可以建立服务,可以在allow中将host写成10.65.1.1,不写就是哪个网卡均可
-
client_list 列出访问者的显示,多个可以用
,
或者空格隔开- 基于IP地址的:10.65.1.1(一个ip),一个ip段
10.65.1.
,一个ip段10.65.
注意,限制网段要这么写,不得写成10.65..
- 基于主机名的:很少用,
- 基于ip/掩码的,10.65.1.1/255.255.255.0,在CentOS7中支持将掩码改为/24
- 其他规则写法:ALL和LOCAL
- 基于IP地址的:10.65.1.1(一个ip),一个ip段
-
限制网段用户访问ssh
修改限制文件
[root@KarryZenBook14s ~]# vim /etc/hosts.deny
添加规则,注意,希望限制
10.65.11.*
写10.65.11.
,希望限制10.65.*.*
写10.65.
,不得写成10.65..
,我们限制的是访问服务器的ssh所以写的是sshdsshd:10.65.
直接exit退出登录即可,这个服务的配置文件无需重启服务,尝试登录
PS C:\Users\tclkr> ssh -l root -p 9001 127.0.0.1 Last login: Fri Mar 5 10:09:16 2021 from 10.0.2.2
-
DHCP服务
DHCP动态主机配置协议,是一种在的使用的不可靠传输协议工作的协议,主要作用是集中网络资源,使得网络中的主机可以…
DHCP的工作原理
所谓的DHCP就是给需要IP的机器分配IP地址,当机器不需要的时候就收回来,相当于租房子一样,有一个租期,快到的时候还需要报告是否续租