Linux服务器搭建、配置与管理

一、安装与配置Linux操作系统(CentOS-8)


二、配置网络和使用SSH服务


三、配置与管理防火墙和SELinux

#查看防火墙状态
systemctl status firewalld

#开启/关闭防火墙
systemctl start firewalld  # 开启防火墙
systemctl stop firewalld   # 关闭防火墙

#开启/关闭端口
firewall-cmd --zone=public --add-port=22/tcp --permanent    # 开启SSH端口(22)
firewall-cmd --zone=public --remove-port=22/tcp --permanent   # 关闭SSH端口(22) 

#查看规则列表
firewall-cmd --list-all

#重新加载防火墙配置
firewall-cmd --reload


配置与管理SELinux
#查看SELinux状态
sestatus

#开启/关闭SELinux
setenforce 0      # 暂时关闭SELinux(需要重启后才生效)  

# 永久关闭SELinux
vim /etc/selinux/config     # 将 SELINUX=enforcing 改为 SELINUX=disabled

#修改文件上下文
# 查看文件上下文
ls -Z file.txt

# 修改文件上下文
chcon -t httpd_sys_content_t file.txt

#查看SELinux日志
tail -f /var/log/audit/audit.log


四、配置与管理代理服务器


五、配置与管理Samba服务器

#安装Samba
sudo yum install samba    

#创建Samba用户
sudo useradd -M -s /sbin/nologin <username>
sudo smbpasswd -a <username>
#-M选项表示不创建用户主目录,
#-s /sbin/nologin选项表示不允许该用户登录系统,
#<username>为你想要创建的Samba账号用户名

#配置Samba服务器
sudo nano /etc/samba/smb.conf
#在文件末尾添加以下内容
[sharename]                    #<sharename>为你想要共享的目录名,
path = <path_to_share>         #<path_to_share>为你想要共享的目录路径
valid users = <username>       #<username>为你刚才创建的Samba账号用户名
writable = yes
browseable = yes

#重启Samba服务
sudo systemctl restart smb.service

#配置防火墙
使用以下命令开放Samba服务端口
sudo firewall-cmd --add-service=samba --permanent

然后重启防火墙:
sudo firewall-cmd --reload


六、配置与管理NFS服务器

#安装NFS服务器
sudo dnf install nfs-utils

#配置NFS服务器
sudo vi /etc/exports
#在文件的末尾添加:
/share    *(rw,sync,no_subtree_check)

#重启NFS服务器
sudo systemctl restart nfs-server

#配置NFS客户端
sudo dnf install nfs-utils
#使用以下命令挂载NFS共享目录:
sudo mount nfs-server-ip:/share /mnt/nfs


#管理NFS服务器
#查看NFS共享的目录
sudo showmount -e
#显示当前NFS会话
sudo nfsstat -c
#显示当前NFS操作的统计信息:
sudo nfsstat -o


七、配置与管理DHCP服务器

#安装 DHCP 软件包:
sudo yum install -y iputils isc-dhcp-server  

#启动并启用 DHCP 服务:
sudo systemctl start dhcpd
sudo systemctl enable dhcpd  

#配置 DHCP 服务器:
# 声明作用域  
ddns-update-style none;  
default-lease-time 86400;  
max-lease-time 31536000;
# 定义地址池  
subnet 10.115.223.0 255.255.255.0 {  
    range 10.115.223.10 10.115.223.100;  
    declare ddns-domain-name "example.com";  
};  

#配置排除地址:
exclude-address 10.115.223.10, 10.115.223.20;  

#重启 DHCP 服务
sudo systemctl restart isc-dhcp-server  

#验证 DHCP 服务:
ls -la /var/state/dhcp/  
#还可以使用dhclient命令查询客户端的 IP 地址:
sudo dhclient -v  


八、配置与管理DNS服务器

#服务端
yum install -y bind bind-chroot
systemctl start named
systemctl enable named

#主配置文件
vim /etc/named.conf
    options {
 @!    listen-on port 53 { any; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
 @!    allow-query     { any; };

        recursion yes;

        dnssec-enable yes;
 @!    dnssec-validation no;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";

        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
        };

        logging {
                channel default_debug {
                        file "data/named.run";
                        severity dynamic;
                };
        };

        zone "." IN {
                type hint;
                file "named.ca";
        };
  @!   include "/etc/named.zones";        #指定区域配置文件(与区域配置文件关联)
        include "/etc/named.root.key";


#区域配置文件
vi /etc/named.zones

            zone "long60.cn" IN {
                    type master;
                    file "long60.cn.zone";
                    allow-update { none; };
                    };

            zone"1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
                    type master;
                    file "named.loopback";
                    allow-update { none; };
};
            zone "11.168.192.in-addr.arpa" IN {
                    type master;
                    file "21.10.168.192.zone";
                    allow-update { none; };
            };

            zone "0.in-addr.arpa" IN {
                    type master;
                    file "named.empty";
                    allow-update { none; };
            };
            zone "localhost.localdomain" IN {
                    type master;
                    file "named.localhost";
                    allow-update { none; };
            };

            zone "long60.cn" IN {
                    type master;
                    file "long60.cn.zone";
                    allow-update { none; };
            };



#创建正向解析区域声明文件
#(named.localhost是正向区域解析文件的样本文件)
cp -p /var/named/named.localhost  long60.cn.zone
vi /var/named/long60.cn.zone
        $TTL 1D
        @       IN SOA  @ root.long60.cn. (
                                        2023112101      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        #第一列为三级域名
        @       IN      NS      dns.long60.cn.
        @       IN      MX      5       mail.long60.cn.
        dns     IN      A       192.168.11.21
        mail    IN      A       192.168.11.22
        slave   IN      A       192.168.11.23
        www     IN      A       192.168.11.24
        ftp     IN      A       192.168.11.25
        web     IN      CNAME   www.long60.cn.


#@:代表域名本身。

#IN:代表Internet。

#MX:代表Mail Exchange,邮件交换记录。

#NS:代表Name Server,域名服务器记录。

#A:代表Address,IP地址记录。

#CNAME:代表Canonical Name记录,CNAME记录被使用来给一个域名指定一个规范化的名称,这个规范化的名称可以是一个IP地址或者一个域名。这样做可以使得DNS服务器能够将多个域名解析为同一个IP地址,以避免重复的配置。例如,将www.example.com指向example.com,这样访问www.example.com时会自动跳转到example.com。


#创建反向解析区域声明文件
#(named.loopback是反向区域解析文件的样本文件)
cp -p /var/named/named.loopback /var/named/21.10.168.192.zone
vi /var/named/21.10.168.192.zone
        $TTL 1D
        @       IN SOA  @ rname.invalid. (
                                        2023112101      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        #第一列为主机名/IP地址
        @                   IN      NS      dns.long60.cn.
        @                   IN      MX      5       mail.long60.cn.
        21                  IN      PTR     dns.long60.cn.
        22                  IN      PTR     mail.long60.cn.
        23                  IN      PTR     slave.long60.cn.
        24                  IN      PTR     www.long60.cn.
        25                  IN      PTR     ftp.long60.cn.

#PTR通常表示"Pointer",指针的意思。在计算机编程中,指针是一种变量类型,它存储了内存地址的值,可以用于访问和操作变量、数组、结构体等数据类型。在网络领域中,PTR有时也可以表示"Pointer Record",用于指向域名对应的IP地址



cd /var/named
#设置主配置文件与正、反向解析区域声明文件的数组为named
chgrp named /etc/named.conf /etc/named.zones
chgrp named long60.cn.zone 21.11.168.192

firewalld-cmd --permanent --add-service=dns
firewalld-cmd --reload

systemctl restart named 
systemctl enable named





#客户端
#注意网网络模式以及网段
yum install -y bind-untils
vi /etc/resolv.conf
    # Generatea by etworkManager
    rkManager
    nameserver 192.168.11.21
    nameserver 192.168.11.22
    nameserver 192.168.11.23
    search  long60.cn


nslookup
server
www.long60.cn
192.168.11.21



    
    
    

    
    


九、配置与管理Apache服务器

#服务目录			/etc/httpd
#主配置文件			/etc/httpd/conf/httpd.conf
#网站数据目录		/var/www/html
#访问日志			/var/log/httpd/access_log
#错误日志			/var/log/httpd/error_log
DocumentRoot:			定义 web 服务器文档根目录。例如:DocumentRoot /var/www/html
ServerAdmin				管理员邮箱
ServerName:			定义 web 服务器的域名。例如:ServerName www.example.com
Listen:				定义 web 服务器侦听的 IP 地址和端口。例如:Listen 80
ErrorLog:				定义 web 服务器错误日志的路径。例如:ErrorLog /var/log/httpd/error_log
CustomLog:				定义 web 服务器自定义日志的路径。例如:CustomLog /var/log/httpd/access_log combined
DirectoryIndex:		定义 web 服务器默认的索引文件。例如:DirectoryIndex index.html index.htm index.php
Options:				定义 web 服务器可用选项。例如:Options FollowSymLinks
AllowOverride:			定义 web 服务器是否允许 .htaccess 文件。例如:AllowOverride All
Require:				定义 web 服务器的访问权限。例如:Require all granted
SSLCertificateFile:	定义 SSL 证书文件的路径。例如:SSLCertificateFile /etc/pki/tls/certs/server.crt



dnf install -y httpd
rpm -qa | grep httpd
systemctl start httpd
systemctl enable httpd


firewalld-cmd --list-all
firewalld-cmd --permanent --add-service=http
firewalld-cmd --reload
firewalld-cmd --list-all

setenforce 0
getenforce

systemctl start httpd
systemctl enable httpd
curl http://127.0.0.1

#!SElinux关闭
setenforce 0 			
echo "welcome to myweb" > /var/www/html/index.html

mkdir /home/www
echo "aaa" > /home/www/myweb.html
#主配置文件
vi /etc/httpd/conf/httpd.conf
	DocumentRoot "/home/www"
		<Directory "/home/www">
			AllowOverride None
			#Allow open access
			Require all granted
		<Directory>
		
		<IfModule dir_module>
			DirectoryIndex index.htnl myweb.html
		<IfModule>

firewalld-cmd --permanent --add-service=http
firewalld-cmd --reload
firewalld-cmd --list-all
setenface 0
systemctl restart httpd


#用户个人主页
useradd long
passwd long
chmod 705 /home/long

mkdir /home/long/public_html

cd /home/long/public_html
echo "aaa" > index.html

#开启个人用户主页
vi /etc/httpd/conf.d/userdir.conf
	#UserDir disabled			#注释掉
	变为UserDir public_html

systemctl restart httpd

#setenface 1
#setsebool -P httpd_enable_homedirs=on

#虚拟目录
mkdir -p /virdir/
cd /virdir/
echo "aaa" > index.html		#虚拟目录首页文件
chmod 705 index.html

vi /etc/htttpd/conf/httpd.conf
	Alias /test "/virdir"
	<Directory "/virdir">
		AllowOverride None
		#Allow open access
		Require all granted
	<Directory>

#selinux,firewalld放行
systemctl stop firewalld 
setenforce 0

systemctl restart httpd

#配置基于IP的虚拟主机
#ens33设置两个IP地址(192.168.153.51	192.168.153.52)

mkdir /var/www/ip1 /var/www/ip2
echo "192.168.153.51" > /var/www/ip1/index.html
echo "192.168.153.52" > /var/www/ip2/index.html

vi /etc/httpd/conf.d/vhost.conf

	<Virtualhost 192.168.153.51>
		DocumentRoot /var/www/ip1
	<Virtualhost>
	
	<Virtualhost 1192.168.153.52>
		DocumentRoot /var/www/ip2
	<Virtualhost>
	
vi /etc/httpd/conf/httpd.conf

	<Directory "/var/www/ip1">
		AllowOverride None
		#Allow open access
		Require all granted
	<Directory>
	<Directory "/var/www/ip2">
		AllowOverride None
		#Allow open access
		Require all granted
	<Directory>

	
#配置基于域名的虚拟主机

mkdir /var/www/www1 /var/www/www2
echo "www1.long60.cn de web" > /var/www/www1/index.html
echo "www2.long60.cn de web" > /var/www/www2/index.html

vi /etc/httpd/conf/httpd.conf
	<Directory "/var/www/">
		AllowOverride None
		#Allow open access
		Require all granted
			#...
	<Directory>
	
vi /etc/httpd/conf.d/vhost.conf
	<Virtualhost 192.168.153.51>
		DocumentRoot /var/www/www1
		ServerName www1.long60.cn
	<Virtualhost>
	<Virtualhost 192.168.153.51>
		DocumentRoot /var/www/www2
		ServerName www2.long60.cn
	<Virtualhost>
	
	
在DNS中添加www1,www2
vi /var/named/long60.cn.zone

STTL 1D
@	IN	SOA		dns.long60.cn.	mail.long60.cn.	(
								0
								1D
								1H
								1W
								3H
		)
@		IN		NS		dns.long60.cn
@		IN		MX	10	mail.long60.cn
		
dns		IN		A		192.168.153.51
www1	IN		A		192.168.153.51
www2	IN		A		192.168.153.51
	

#基于端口的虚拟主机
mkdir /var/www/8088 /var/www/8089
echo "8088" > /var/www/8088/index.html
echo "8089" > /var/www/8089/index.html

vi /etc/httpd/conf/httpd.conf
	Listen 80
	Listen 8088
	Listen 8089
	...
	...
	<Directory "/var/www/">
		AllowOverride None
		#Allow open access
		Require all granted
			#...
	<Directory>
	<Directory "/var/www/">
		AllowOverride None
		#Allow open access
		Require all granted
			#...
	<Directory>

	
vi /etc/httpd/conf.d/vhost.conf
	<Virtualhost 192.168.153.51:8088>
		DocumentRoot /var/www/8088
	<Virtualhost>
	<Virtualhost 192.168.153.51:8089>
		DocumentRoot /var/www/8089
	<Virtualhost>
	
	
#允许防火墙通过端口
firewalld-cmd --permanent --zone=public --add-port=8088/tcp
firewalld-cmd --permanent --zone=public --add-port=8089/tcp
firewalld-cmd --reload
firewalld-cmd --list-all


十、配置与管理FTP服务器

#安装 vsftpd: 使用 yum 软件包管理器安装 vsftpd
sudo yum install vsftpd -y  

#配置 vsftpd 服务
sudo nano /etc/vsftpd/vsftpd.conf  
	anonymous_enable YES  
	local_enable YES  
	write_enable YES  
	passwd_file /etc/vsftpd/passwd  
#其中,passwd_file 需要自行创建,后续步骤会详细说明。
sudo mkdir /etc/vsftpd/passwd  
sudo echo "user1:password1" > /etc/vsftpd/passwd  

#配置防火墙以允许 FTP 流量: 如果您的系统已启用防火墙,请确保允许 FTP 端口(21)的流量。
sudo firewall-cmd --permanent --zone=public --add-port=21/tcp  
sudo firewall-cmd --reload  

#启动 vsftpd 服务
sudo systemctl start vsftpd  

#验证 vsftpd 服务
sudo systemctl status vsftpd  
#如果一切正常,您应该能看到以下输出:
#vsftpd (pid 12345) is running  

#配置 vsftpd 开机自启动: 为了让 vsftpd 服务在系统启动时自动运行,请确保在 /etc/systemd/system/multi-user.target.wants/ 目录下存在对应的单元文件。您可以使用以下命令创建:
sudo ln -s /usr/lib/systemd/system/vsftpd.service /etc/systemd/system/multi-user.target.wants/  

#设置 vsftpd 服务日志
sudo nano /etc/vsftpd/vsftpd.log  
#在配置文件中,设置以下选项:
log_file /var/log/vsftpd.log  
log_pid /var/run/vsftpd.pid  

#创建日志文件和 PID 文件
sudo mkdir /var/log/vsftpd  
sudo touch /var/log/vsftpd/vsftpd.log  
sudo mkdir /var/run  
sudo touch /var/run/vsftpd.pid  


十一、配置与管理postfix(邮件)服务器

#安装 Postfix:
sudo yum install postfix -y  

#配置 Postfix 服务
sudo nano /etc/postfix/main.cf  
#在配置文件中,设置以下选项:
myhostname = mail.example.com  
mydomain = example.com  
myorigin = $mydomain  

#启动 Postfix 服务:
sudo systemctl start postfix

#配置防火墙以允许邮件流量:
sudo firewall-cmd --permanent --zone=public --add-port=25/tcp
sudo firewall-cmd --permanent --zone=public --add-port=110/tcp
sudo firewall-cmd --permanent --zone=public --add-port=143/tcp
sudo firewall-cmd --reload

#启动 Postfix 服务:
sudo systemctl status postfix

#如果一切正常,您应该能看到以下输出:
postfix (pid 12345) is running

#配置 Postfix 开机自启动:
sudo ln -s /usr/lib/systemd/system/postfix.service /etc/systemd/system/multi-user.target.wants/

#设置 Postfix 服务日志:
sudo nano /etc/syslog.conf
#在配置文件中,添加以下行:
postfix/[email protected]

#重启 syslog 服务以应用更改
sudo systemctl restart syslog

#创建一个单独的 Postfix 日志文件
sudo mkdir /var/log/postfix
sudo 
touch /var/log/postfix/postfix.log

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值