网络服务
网络服务管理
操作行为 | CentOS 6 | CentOS 7 |
---|---|---|
启动指定服务 | service [服务名] start | systemctl start [服务名] |
关闭指定服务 | service [服务名] stop | systemctl stop [服务名] |
重启指导服务 | service [服务名] restart | systemctl restart [服务名] |
查看指定服务状态 | service [服务名] status | systemctl status [服务名] |
查看所有服务状态 | service --status -all | systemctl list-nuits |
设置服务自启动 | chkconfig [服务名] on | systemctl enable [服务名] |
设置服务不自启动 | chkconfig [服务名] off | systemctl disable [服务名] |
查看所有服务自启动状态 | chkconfig --list | systemctl list-unit-files |
网卡配置
[root@achapc ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none # 连接方式( dhcp/static )
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=eth0 # 网卡名称
UUID=2045ca8b-6656-4597-a113-76091988dc38
DEVICE=eth0 # 设备名称
ONBOOT=yes # 是否开机加载
IPADDR=192.168.0.200 # IP地址
PREFIX=24 # 子网掩码
GATEWAY=192.168.0.2 # 网关
DNS1=210.28.144.8 # DNS
IPV6_PRIVACY=no
注意:选项要大写,小写不生效
修改网卡名(Centos7)
1.修改网卡配置名文件
cp ifcfg-ens33 ifcfg-eth0
2.修改网卡配置文件内容
NAME=eth0
DEVICE=eth0
3.修改grub配置文件
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet net.ifnames=0 biosdevname=0"
4.更新配置文件,并加载新的参数
grub2-mkconfig -o /boot/grub2/grub.cfg
5.重启
reboot
TCP/IP 五层常见协议
应用层: FTP, HTTP, SMTP, Telnet, DNS
传输层: TCP, UDP
网络层: IP, ICMP,ARP
数据链路层: PPP
物理层:不常用
端口配置文件: /etc/service
端口号 | 服务名 | 功能 |
---|---|---|
20/21 | ftp | 文件共享 |
22 | ssh | 安全远程管理 |
23 | telent | 不安全远程管理 |
25 | smtp:简单邮件传输协议 | 发信 |
465 | smtp(ssl) | 发信 |
110 | pop3:邮局1协议 | 收信 |
143 | imap4 | 收信 |
993 | imap4(ssl) | 收信 |
80 | www(http://) | 网页访问 |
443 | www(https://) | 加密网页访问 |
3306 | mysql | 数据库连接端口 |
53 | DNS | 域名解析端口 |
SSH
用户密码验证
格式:
ssh 用户名@IP地址
ssh root@192.168.0.200
-p 指定端口
密钥对登录验证
1.生成密钥对
ssh-keygen -t rsa -b 2048
2.将公钥上传至被控端
ssh-copy-id root@192.168.0.200
3.登录
ssh root@192.168.0.200
ssh 配置文件
位置: /ssh/sshd_confi
1.禁止使用密码登录
PasswordAuthentication no
2.禁止使用root远程登录
PermitRootLogin no
3.修改默认端口
Port 2233
4.限制ssh监听IP
ListenAddress 192.168.0.201
scp
格式:scp 本地文件 用户@服务器IP:目录
scp /root/acha.txt root@192.168.0.200:/tmp
-P 指定端口
sftp
格式:sftp 用户@服务器IP
sftp root@192.168.0.200
-oProt=端口
TCP Wrappers
TCP_ Wrapper 通过控制两个配置文件实现访问控制
允许 /etc/hosts. allow
阻止 /etc/hosts. deny
配置文件编写规则:
service list@host: client list
service_ list: 是程序(服务)的列表,可以是多个,多个时,使用,隔开
host: 设置允许或禁止他人从自己的哪个网口进入。这一项不写,就代表全部
client_ list: 是访问者的地址,如果需要控制的用户较多,可以使用空格或,隔开
格式如下:
基于IP地址: 192.168.0.1 192.168.0.
基于主机名:youto .youto.com
基于网络/掩码:192.168.0.0/24
内置ACL:ALL(所有主机) , LOCAL(本地主机)
DHCP
DHCP介绍
- 准备实验环境
防护关闭:
1)关闭防火墙
2)关闭 SElinux
3)关闭VMware 虚拟网络编辑器DHCP功能
-
DHCP 相关信息
软件名:
dhcp # DHCP服务软件包
dhcp-common # DHCP命令软件包(默认安装)
服务名:
dhcpd # DHCP 服务名
dhcrelay #DHCP 中继服务名
端口号:
udp 67 # 作为客服端的目标端口,接受客服端的请求DHCP
udp 68 # 作为服务器的源端口,用来向客户端回复数据包
配置文件:
dhcpd /etc/dhcp/dhcpd.conf # 此配置文件默认为空,需找模板文件重新生成
dhcpd.conf.sample /usr/share/doc/dhcp-4. . /dhcpd.con.sample # DHCP模板配置文件
dhcrelay /etc/sysconfig/dhcrelay # 中继配置文件
-
DHCP 配置文件详解
DHCP 基本功能实验
-
安装 DHCP
yum install -y dhcp
-
生成配置文件
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
-
修改配置文件
注释所有subnet,修改最后一个subnet
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.101 192.168.0.110;
default-lease-time 600;
max-lease-time 7200;
} -
重启服务
systemctl start dhcpd
-
监控DHCP日志文件
tail -f /var/log/messages
-
重启客户机网卡
ifdown eth0;ifup eth0
固定地址分配
-
获取客户端 mac 地址
arp -a
-
修改 /etc/dhcp/dhcpd.conf 文件
host fantasia {
hardware ethernet 00:0c:29:66:f5:d8; # mac 地址
fixed-address 192.168.0.123; # ip 地址
} -
重启DHCP服务
systemctl start dhcpd
-
重启客户机网卡验证IP
ifdown eth0;ifup eth0
超级作用域
-
设置DHCP服务器单臂路由需要的子网卡
cp -a ifcfg-eth0 ifcfg-eth0:0 #生成网卡,修改网卡名和IP地址
-
开启路由转发
vim /etc/sysctl.conf
net.ipv4.ip_forward=1 #开启路由转发
sysctl -p # 刷新内核参数配置文件
-
修改 /etc/dhcp/dhcpd.conf 文件
shared-network 0-100 {
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.200;
range 192.168.0.121 192.168.0.121;
}
subnet 192.168.100.0 netmask 255.255.255.0 {
option routers 192.168.100.200;
range 192.168.100.131 192.168.100.141;
}
} -
重启 DHCP 服务
systemctl restart dhcpd
-
重启客户机网卡,查看验证ip地址
ifdown eth0;ifup eth0
DHCP 中继
DNS
DNS 介绍
-
域名 (Domain Name):简称 域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机
或计算机组的名称, 用于在数据传输时标识计算机的电子方位。具有独一无二,不可重复的特性。 -
DNS : 域名系统( Domain Name System) , 域名解析就是 域名到 IP 地址的转换过程
正向解析: 域名 --> IP地址
反向解析: IP地址 --> 域名
-
域名的组成和分类
常见格式:www.youto.club
完整格式:www.youto.club.
. 根域,可以省略不写
com 定级域,由ICANN组织指定和管理
分类:
国家地区域名: cn(中国) 、 hk(香港) 、 sg(新加坡) 等
通用顶级域名: com(商业机构) 、 org(非营利组织) 、 edu(教育机构) 等
新通用顶级域名: red(红色、 热情) 、 top(顶级、 高端) 等
youto: 二级域(注册域),可由个人或组织申请注册
www: 三级域(子域) ,服务器网站名代表
主机名: s1.www.youto.club. 中的 s1 就是主机名, 一般用来表示具体某一台主机
com.cn属于“二级域名” ,是 cn 顶级域的子域
4.域名解析过程
- 客户机首先查看查找本地 hosts 文件,如果有则返回,否则进行下一步
- 客户机查看本地缓存,是否存在本条目的缓存,如果有则直接返回, 否则进行下一步。
- 将请求转发给指向的 DNS 服务器。
- 查看域名是否本地解析, 是则本地解析返回, 否则进行下一步。
- 本地 DNS 服务器首先在缓存中查找,有则返回,无则进行下一步。
- 向全球 13 个根域服务器发起 DNS 请求,根域返回 org 域的地址列表。
- 使用某一个 org 域的 IP 地址,发起 DNS 请求, org 域返回 kernel 域服务器地址列表。
- 使用某一个 kernel 域 IP 地址,发起 DNS 请求, kernel 域返回 www.kernel.org 主机的 IP 地址,本
地 DNS 服务收到后,返回给客户机,并在本地 DNS 服务器保存一份
5.DNS 软件信息
软件名称:bind
服务名称:named
软件端口:
UDP 53 数据通信(域名解析)
TCP 53 数据同步(主从同步)
配置文件:
主配置文件: /etc/named.conf(服务器运行参数)
区域配置文件: /etc/named.rfc1912.zones(服务器解析的区域配置,正反向区域定义信息)
数据配置文件: /var/named/xx.xx(主机名和 IP 地址的对应解析关系,及主从同步信息)
DNS 服务搭建
先关闭服务器和客户机上的防火墙和 SELinux
- 软件安装
yum -y install bind
-
配置主配置文件(/etc/named.conf)
-
配置区域文件(/etc/named.rfc1912.zones)
注:先对区域文件进行备份, 删除多余的模板,只留下一个正向和一个反向(反向修改时,网络
位的反写格式, 如 192.168.100.2-->100.168.192.) -
配置数据文件/var/named/
A. 先复制生成正向解析文件和反向解析文件
B. 编辑正向解析文件(注意域名结尾的 “.” )
C. 编辑反向解析文件(注意域名结尾的 “.” )
- 重启 DNS 服务
service named restart
- 客户端测试
在网卡配置文件中添加 DNS 服务器的地址,然后用 nslookup 测试
DNS 主从服务器
实验目的:减轻主服务器的压力
先关闭服务器和客户机上的防火墙和 SELinux
实验准备:
一台主服务器、一台从服务器、一台测试机
搭建过程:
-
搭建主服务器步骤(同上,不截图了) :
a. 安装 bind 软件
b. 主配置文件的修改
c. 区域配置文件的修改
d. 配置数据文件
正向数据文件
反向数据文件(可选做)
e. 启动 named 服务
注意: 主 DNS 的区域配置文件中 allow-updata 参数添加从服务器 IP 地址。
-
搭建从服务器步骤:
a. 安装 bind 软件
b. 修改主配置文件/etc/named.conf
c. 配置区域文件(/etc/named.rfc1912.zones)
注意:从配置文件的类型需要修改为 slave,并且需要填写主服务器的地址,如下
type slave; masters { 192.168.0.10; }; #大括号两侧留有空格 文件保存位置修改为 file “slaves/atguigu.localhost” ;
d. 重启服务
e. 在测试机上填写从服务器的 IP,并使用 nslookup 测试
DNS 缓存服务器
实验作用:加快解析速度, 提高工作效率
先关闭服务器和客户机上的防火墙和 SELinux
实验软件:dnsmasq
配置文件:/etc/dnsmasq.conf
domain=域名 #需要解析的域名
server=ip #主 DNS 服务器 IP
cache-size=15000 #声明缓存条数
重启服务:
service dnsmasq restart
测试效果:
在测试机上填写 DNS 缓存服务器的 ip 地址
智能 DNS (分离解析)
实验原理: DNS 分离解析即将相同域名解析为不同的 IP 地址。现实网络中一些网站为了让用户有更好
的体验效果解析速度更快,就把来自不同运营商的用户解析到相对应的服务器这样就大大提升了访问速度
实验环境:
一台内网测试机(单网卡)
一台网关+DNS(双网卡)
一台外网测试机(单网卡)
一台 web 服务器(双网卡)
先关闭服务器和客户机上的防火墙和 SELinux
实验步骤:
-
安装 bind 软件
-
内核配置文件开启路由转发,修改/etc/sysctl.conf
-
修改主配置文件/etc/named.conf
-
生成自己定义的区域文件(反向解析省略掉了)
cp – a named.rfc1912.zones lan
cp – a named.rfc1912.zones wan -
配置数据文件
配置内网的正向解析文件
配置外网的正向解析文件
-
重启服务
service named restart
-
效果测试
内网客户端网卡配置
将 dns 和网关都指为网关服务器的内网口地址
外网客户端网卡配置
将 dns 和网关都指为网关服务器的外网口地址
VSFTP
VSFTP介绍
-
概述:VSFTP是一个基于 GPL发布的类 Unix 系统上使用的 FTP 服务器软件
-
安全性
vsftp 程序的运行者一般是普通用户,降低了相对应进程的权限
任何需要执行较高权限的指令都需要上层程序许可
ftp 所需要使用的绝大多数命令都被整合到了 vsftp 中,基本不需要系统额外提供命令
拥有 chroot 功能,可以改变用户的根目录,限制用户只能在自己的家目录 -
VSFTP 连接类型
控制连接( 持续连接) --> TCP 21( 命令信道) --> 用户收发FTP命令
数据连接( 按需连接) --> TCP 20( 数据信道) --> 用于上传下载数据
-
工作模式
Port模式 (主动)
Passive 模式 (被动)
-
传输模式
Binary模式:不对数据进行任何处理,适合进行可执行文件、压缩文件、图片等
ASCII模式: 进行文本传输时,自动适应目标操作系统的结束符, 如回车符等切换方式: 在ftp>提示符下输入ascii即转换到ACSII方式,输入bin,即转换到Binary方式
-
软件信息
服务端软件名: vsftpd
客户端软件名: ftp
服务名: vsftpd
端口号: 20、 21、指定范围内随机端口
配置文件: /etc/vsftpd/vsftpd.conf -
登录验证方式
匿名用户验证:
用户账号名称: ftp或anonymous
用户账号密码: 无密码
工作目录: /var/ftp
默认权限: 默认可下载不可上传,上传权限由两部分组成(主配置文件和文件系统)本地用户验证:
用户账号名称:本地用户(/etc/passwd)
用户账号密码: 用户密码(/etc/shadow)
工作目录:登录用户的宿主目录
权限:最大权限(drwx------)虚拟(virtual)用户验证:
1. 创建虚拟用户用来代替本地用户,减少本地用户曝光率 2. 使用本地用户作为虚拟用户的映射用户,为虚拟用户提供工作目录和权限控制 3. 能够设置严格的权限(为每一个用户生成单独的配置文件)
匿名用户实验
tip:关闭服务器和客户机的防火墙和SELinux
目录:/etc/vsftpd/vsftpd.conf
选项 | |
---|---|
anonymous_enable=YES | 启用匿名访问 |
anon_umask=022 | 匿名用户所上传文件的权限掩码 |
anon_root=/var/ftp | 匿名用户的 FTP 根目录 |
anon_upload_enable=YES | 允许上传文件 |
anon_mkdir_write_enable=YES | 允许创建目录 |
anon_other_write_enable=YES | 开放其他写入权(删除、覆盖、重命名) |
anon_max_rate=0 | 限制最大传输速率(0 为不限速, 单位: bytes/秒) |
实验需求与流程:
注意: 在客户端登录后,默认情况下是可以下载的,但不能上传
-
实现可以上传
a. anon_upload_enable=YES
b. 在/var/ftp/下创建上传目录
c. 修改上传目录的权限或所有者,让匿名用户有写入权限 -
实现创建目录和文件其他操作
non_mkdir_write_enable=YES 允许创建目录
anon_other_write_enable=YES 开放其他写入权(删除、覆盖、重命名)
-
用户进入某个文件夹时,弹出相应的说明
a. 在对应目录下创建 .message 文件,并写入相应内容
b. 确认dirmessage_enable=YES是否启用
c. 尝试却换目录查看效果(同一次登录仅提示一次) -
实现上传的文件可下载
默认情况下开放上传权限后,上传的文件是无法被下载的,因为文件的其他人位置没有r权限
设置anon_umask=022,可以让上传的文件其他人位置拥有r权限, 然后才能被其他人下载
本地用户实验
目录:/etc/vsftpd/vsftpd.conf
选项 | |
---|---|
local_enable=YES | 是否启用本地系统用户 |
local_umask=022 | 本地用户所上传文件的权限掩码 |
local_root=/var/ftp | 设置本地用户的 FTP 根目录 |
chroot_local_user=YES | 是否将用户禁锢在主目录 |
local_max_rate=0 | 限制最大传输速率 |
ftpd_banner=Welcome to blah FTP service | 用户登录时显示的欢迎信息 |
userlist_enable=YES & userlist_deny=YES | 禁止user_list 文件中出现的用户名登录 FTP |
userlist_enable=YES & userlist_deny=NO | 仅允许user_list 文件中出现的用户名登录 FTP |
禁止 /etc/vsftpd/ftpusers 文件中出现的用户名登录 FTP,权限比 user_list 更高,即时生效
实验需求与流程:
-
服务端需要创建用户并设置密码(所创建的用户,不需要登录操作系统,仅用来登录VSFTP)
useradd -s /sbin/nologin username
-
将所有用户禁锢在自己的家目录下
注: 默认没有禁锢用户时,客户端登录后可以随意切换目录,查看文件所在位置和文件名
chroot_local_user=YES
开启用户家目录限制, 限制所有用户不能随便切换目录
-
将部分用户禁锢在自己的家目录下
chroot_list_enable=YES
开启白名单功能,允许白名单中的用户随意切换目录
chroot_list_file=/etc/vsftpd/chroot_list
白名单文件所在位置(需自己创建)
-
配置文件: /etc/vsftpd/ftpusers
所有写入此文件内的用户名都不允许登录ftp,立刻生效。
-
修改被动模式数据传输使用端口
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=35000
虚拟用户实验
- 建立 FTP 的虚拟用户的用户数据库文件(在/etc/vsftpd)
vim vsftpd.user
该文件名可以随便定义, 文件内容格式: 奇数行用户, 偶数行密码
db_load -T -t hash -f vsftpd.user vsftpd.db
将用户密码的存放文本转化为数据库类型, 并使用 hash 加密
chmod 600 vsftpd.db
修改文件权限为 600,保证其安全性
- 创建 FTP 虚拟用户的映射用户, 并制定其用户家目录
useradd -d /var/ftproot -s /sbin/nologin virtual
创建 virtual 用户作为 ftp 的虚拟用户的映射用户
- 建立支持虚拟用户的 PAM 认证文件,添加虚拟用户支持
cp – a /etc/pam.d/vsftpd /etc/pam.d/vsftpd.pam
使用模板生成自己的认证配置文件, 方便一会调用
编辑新生成的文件 vsftpd.pam (清空原来内容, 添加下列两行)
auth required pam_userdb.so db=/etc/vsftpd/vsftpd
acco unt required pam_userdb.so db=/etc/vsftpd/vsftpd
在 vsftpd.conf 文件中添加支持配置
修改:
pam_service_name=vsftpd.pam
添加:
guest_enable=YES
guest_username=virtual
user_config_dir=/etc/vsftpd/dir
-
为虚拟用户建立独立的配置文件,启动服务并测试
注:做虚拟用户配置文件设置时,将主配置文件中自定义的匿名用户相关设置注释掉。
用户可以上传:
anon_upload_enable=YES #允许上传文件
用户可以创建目录或文件:
anon_mkdir_write_enable=YES #允许创建目录
用户可以修改文件名:
anon_upload_enable=YES #允许上传文件(为了覆盖开启的)
anon_other_write_enable=YES #允许重名和删除文件、覆盖
注:给映射用户的家目录 设置 o+r 让虚拟用户有读权限
评论