Linux服务器搭建

1 准备工作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
DHCP:
IP:192.168.1.254/24
地址池:192.168.1.100-192.168.1.150
下发DNS:192.168.1.50
下发网关:192.168.1.254
下发掩码:255.255.255.0

DNS:
IP:192.168.1.50/24
ftp.zyl.cn ---- 192.168.1.30
dhcp.zyl.cn ---- 192.168.1.254
dns1.zyl.cn ---- 192.168.1.50
zyl.cn ----- 192.168.1.1

FTP:
IP:192.168.1.30/24

- 三台服务器 --- 同一张网卡
+ 注意点: NAT、仅主机.... 会自动下发ip地址的模式 --- 关闭DHCP服务
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
+ 关闭防火墙和安全标记
防火墙简单操作
systemctl status firewalld #查看防火墙状态
systemctl start/stop firewalld #启动/关闭防火墙
- 重点
systemctl enable/disable firewalld #启用/禁用防火墙开机自启动

防火墙规则(在防火墙开启状态下才可设置)
firewall-cmd --list-all #查看防火墙规则
firewall-cmd --add-service=服务 #放行某服务
firewall-cmd --permanent --add-service=服务 #放行某服务(永久生效)
firewall-cmd --add-port=端口/协议 #放行某端口
firewall-cmd --reload #重新加载配置
firewall-config #打开图形化界面

selinux的三种模式(状态)
enforcing(强制模式):拒绝非法访问并录入日志
permissive(许可模式/警告模式):暂时允许非法访问并录入日志
disabled(禁用模式):允许非法访问且不录入日志(禁用selinux)

切换selinux状态
[root@localhost ~]# getenforce #查看selinux状态
[root@localhost ~]# setenforce 0 #临时关闭selinux策略 enforcing -> permissive
- 重点
[root@localhost ~]# setenforce 1 #临时开启selinux策略 permissive -> enforcing
[root@localhost ~]# vim /etc/selinux/config
SELINUX=enforcing/permissive/disabled #永久切换
[root@localhost ~]# reboot
1
2
3
4
5
6
7
8
9
10
11
12
+ 搭建本地源
cd /etc/yum.repos.d/
vim local.repo
[local-yum]
name=local-yum
baseurl=file:///run/media/zyl/CentOS\ 7\ x86_64
gpgcheck=0

yum makecache


- df 查看硬盘的信息

2 DHCP服务器

1
2
3
4
5
6
7
8
9
10
11
- 为dhcp服务器手动配置ip环境
vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.254
NETMASK=255.255.255.0
DNS1=192.168.1.50
1
2
3
4
5
6
7
- DHCP搭建
①安装DHCP软件包
yum -y install dhcp
②确认软件包安装完成
rpm -q dhcp
③查看软件安装后自带的文件列表
rpm -ql dhcp
文件 描述
/etc/dhcp/dhcpd.conf 主配置文件
/usr/sbin/dhcpd 二进制命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
cd /etc/dhcp/
grep -v "^#\|^$" /usr/share/doc/dhcp*/dhcpd.conf.example > dhcpd.conf
option domain-name "itcast.cc"; //域名
option domain-name-servers 192.168.1.110,8.8.8.8; //DNS(可以写多个)
default-lease-time 3600; //缺省租约
max-lease-time 7200; //客户端最大租约
log-facility local7; //定义日志设备载体(/var/log/boot.log输出)
subnet 192.168.2.0 netmask 255.255.255.0 { 网段 /掩码
range 192.168.2.1 192.168.2.50; //地址池
option routers 192.168.1.110; //网关
option broadcast-address 192.168.2.255 //广播地址
}
host dnsname { 绑定名称
hardware ethernet 00:0c:29:76:b8:97; mac地址
fixed-address 192.168.1.50; IP地址
}

systemctl restart dhcpd //重启服务
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
- 测试验证
①将客户端获取IP方式改为DHCP自动获取
BOOTPROTO=dhcp
②重启客户端网络,自动获取IP
systemctl restart network
③查看获取的IP地址是否为指定IP地址的范围


- 排错
如果发生错误信息,根据提示进行排错
①查看网络状态 //DHCP服务器必须先处于地址池的网段中
②查看日志报错信息
查看日志文件 /var/log/messages
执行命令 journalctl -xe
③检查配置文件是否错误编辑

3 DNS服务器

1
2
3
4
5
6
7
8
9
- 域名解析
DNS(domain name system ) 域名管理系统
域名:由特定的格式组成,用来表示互联网中某一台计算机或者计算机组的名称,能够是人更方便的访问互联网,而不用记住能够被机器直接读取的IP地址。DNS的作用:
- 域名的正向解析
将主机域名转换为对应的IP 地址,以便网络程序能够通过主机域名访问到对应的服务器主机
域名——>IP A记录
- 域名的反向解析
将主机的IP地址转换为对应的域名,以便网络(服务)程序能够通过IP地址查询到主机的域名
IP——>域名 PTR记录
1
2
3
4
5
6
7
- DNS搭建
①安装bind软件包
yum -y install bind
②确认软件包安装完成
rpm -q bind
③查看软件安装后自带的文件列表
rpm -ql bind
文件 描述
/etc/named 配置文件的主目录
/etc/named.conf 主配置文件
/etc/named.rfc1912.zones zone文件,定义域
/usr/sbin/named-checkconf 检查配置文件的命令
/usr/sbin/named-checkzone 检查区域文件的命令
/var/log/named.log 日志文件
/var/named 数据文件的主目录
/var/named/named.ca 根域服务器
/var/named/named.localhost 正向解析区域文件的模板
/var/named/named.loopback 反向解析区域文件的模板
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
- 配置主配置文件
options {
listen-on port 53 { 127.0.0.1; }; 监听端口地址,any表示全网监听
+ 重点
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file “/var/named/data/cache_dump.db”; DNS缓存文件路径
statistics-file “/var/named/data/named_stats.txt”; 统计
memstatistics-file “/var/named/data/named_mem_stats.txt”; 内存统计
allow-query { localhost; }; 可查询范围,any表示任何人
+ 重点
recursion yes; 是否递归
dnssec-enable yes; DNS安全扩展机制(签名认证)
+ 重点 no
dnssec-validation yes;
+ 重点 no
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
zone “.” IN { 根域名服务器
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";


- 正向 --- 域名--》IP
vim /etc/named.rfc1912.zones
zone "zyl.cn" IN {
type master;
file "zyl.cn.zone";
allow-update { none; };
}; 正向解析
cd /var/named/
cp -p named.localhost zyl.cn.zone
vim zyl.cn.zone
$TTL 1D
@ IN SOA zyl.cn. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns1.zyl.cn.
dhcp A 192.168.1.254
ftp A 192.168.1.30
dns1 A 192.168.1.50
@ A 192.168.1.1


- 反向 --- IP--》域名
vim /etc/named.rfc1912.zones
zone "1.168.192.in-addr.arpa" IN {
type master;
file "192.168.1.zone";
allow-update { none; };
}; 反向解析
cd /var/named/
cp -p named.loopback 192.168.1.zone
$TTL 1D
@ IN SOA zyl.cn. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS dns1.zyl.cn.
1 PTR zyl.cn.
30 PTR ftp.zyl.cn.
254 PTR dhcp.zyl.cn.
50 PTR dns1.zyl.cn.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
+ 检查文件是否有问题
①检查配置文件、正向解析文件书写语法是否错误
named-checkconf /etc/named.conf
named-checkconf /etc/named.rfc1912.zones
named-checkzone zyl.cn.zone zyl.cn.zone
②开启服务
systemctl restart named
③检查端口是否处于开放状态
netstat -nltup | grep 53

+ 验证
①工具:nslookup、dig、host
②首先指定DNS服务器,再进行测试
③nslookup:nslookup 域名
④dig:dig @DNS服务器 域名
⑤host:host 域名

4 FTP服务器

1
2
3
4
5
6
主要用于互联网中文件的双向传输(上传/下载)、文件共享
FTP是C/S架构,拥有一个客户端和服务端,使用TCP协议作为底层传输协议,提供可靠的数据传输
FTP数据传输默认使用TCP的20端口,FTP控制命令的传输默认使用TCP的21端口
FTP有主动模式、被动模式两种工作模式,默认在被动模式下工作
跨平台:Linux、Windows、MacOS等
FTP软件包vsftpd
1
2
3
4
5
6
7
- 搭建FTP
①安装FTP软件包
yum -y install vsftpd.x86_64
②确认软件包安装完成
rpm -q vsftpd
③查看软件安装后自带的文件列表
rpm -ql vsftpd
文件 描述
/etc/pam.d/vsftpd 安全认证
/etc/vsftpd 配置文件主目录
/etc/vsftpd/ftpusers 黑名单用户列表
/etc/vsftpd/user_list 用户列表(黑白名单)
/etc/vsftpd/vsftpd.conf 主配置文件
/usr/sbin/vsftpd 二进制命令
/var/ftp 匿名用户的默认数据的根目录
/var/ftp/pub 匿名用户的默认数据目录的扩展目录
1
2
3
4
5
6
- 客户端连接需要安装 lftp
yum -y install lftp
lftp IP/域名 ---- 匿名用户连接
lftp 用户名@IP/域名 ---- 非匿名用户连接

ftp://ftp.zyl.cn/ --- 根目录 --- /var/ftp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
- 匿名用户默认情况下应该能够做些什么? --- 查看和下载
+ 匿名用户该如何实现上传的功能
chmod o+w /var/ftp/
ls: Login failed: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
- 安全认证拦截 --- 默认情况下不能对根目录赋予w权限

chmod o+w pub/
ut: Access failed: 550 Permission denied. (qwe)
- 权限不足


cd /etc/vsftpd/
cp -p vsftpd.conf vsftpd.conf.bak
grep -v "^#\|^$" vsftpd.conf.bak > vsftpd.conf
选项 描述
anonymous_enable=YES 支持匿名用户访问
local_enable=YES 支持非匿名用户访问
write_enable=YES 支持写入
local_umask=022 反掩码
dirmessage_enable=YES 启用消息功能
xferlog_enable=YES 启用xferlog日志
connect_from_port_20=YES 支持主动模式(默认为被动模式)
xferlog_std_format=YES xferlog日志格式
listen=NO FTP服务独立模式下的监听
listen_ipv6=YES FTP服务独立模式下的监听(IPv6)
pam_service_name=vsftpd 指定认证文件
userlist_enable=YES 启用用户列表
tcp_wrappers=YES 支持tcp_wrappers功能
1
2
3
4
5
6
7
vim vsftpd.conf
anon_upload_enable=YES 支持匿名用户上传功能
anon_mkdir_write_enable=YES 支持匿名用户创建目录
anon_other_write_enable=YES 支持匿名用户删除等操作
- 注意点 --- 如果 根目录底下的pub目录没有w权限,也无法正常上传 --- 必须要有w权限才可以,否则会出现530报错

https://blog.csdn.net/m0_64304713/article/details/133790019
1
2
3
4
+ 实现root登录ftp
ftpusers --- 黑名单用户列表
user_list --- 用户列表(黑白名单)
- 将该文件中的root注释 --- 安全风险 密码泄露