活动公告

系统通知
05-18 21:22
系统通知
通知:本站资源由网友上传分享,如有违规等问题请到版务模块进行投诉,资源失效请在帖子内回复要求补档,会尽快处理!
10-23 09:31

CentOS Stream服务安装实战教程从零开始掌握Web数据库邮件等各类服务的部署与配置技巧

SunJu_FaceMall

3万

主题

2860

科技点

3万

积分

白金月票

碾压王

积分
32872

塔罗立华奏

<font color=白金月票" /> 发表于 2025-9-8 19:10:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1. CentOS Stream简介

CentOS Stream是CentOS项目的一个新版本,它位于Fedora Linux和RHEL(Red Hat Enterprise Linux)之间,作为一个滚动发布的Linux发行版。CentOS Stream是RHEL的上游开发分支,这意味着它比传统的CentOS更接近RHEL的下一个版本。

CentOS Stream的主要特点包括:

• 滚动发布模式,提供持续的更新和新功能
• 稳定性与可靠性的平衡
• 与RHEL的高度兼容性
• 适合开发者和企业用户使用

2. 系统准备和基础配置

2.1 安装CentOS Stream

首先,我们需要从官方网站下载CentOS Stream的ISO镜像文件。访问CentOS Stream官网(https://centos.org/download/)并选择适合你硬件架构的版本(通常是x86_64)。

下载完成后,创建一个启动盘(如使用Rufus、dd命令等工具),然后从该启动盘启动计算机并按照安装向导完成安装过程。

2.2 系统初始化配置

安装完成后,我们需要进行一些基础配置:
  1. sudo dnf update -y
复制代码
  1. sudo hostnamectl set-hostname your-server-name
复制代码

编辑网络配置文件:
  1. sudo nmcli connection modify ens160 ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8 ipv4.method manual
  2. sudo nmcli connection up ens160
复制代码

注意:ens160是网络接口名称,根据你的系统可能不同,可以使用ip a命令查看。
  1. sudo systemctl start firewalld
  2. sudo systemctl enable firewalld
  3. sudo firewall-cmd --permanent --add-service=ssh
  4. sudo firewall-cmd --reload
复制代码
  1. sudo dnf install -y vim wget curl net-tools
复制代码

SELinux(Security-Enhanced Linux)是一个Linux内核的安全模块,默认情况下是启用的。我们可以检查其状态:
  1. sestatus
复制代码

如果需要临时关闭SELinux:
  1. sudo setenforce 0
复制代码

永久关闭需要编辑配置文件:
  1. sudo vim /etc/selinux/config
复制代码

将SELINUX=enforcing改为SELINUX=disabled,然后重启系统。

注意:在生产环境中,建议保持SELinux启用状态,并学习如何正确配置它。

3. Web服务器安装与配置

3.1 Apache HTTP服务器安装与配置

Apache是最流行的Web服务器软件之一。下面是在CentOS Stream上安装和配置Apache的步骤:
  1. sudo dnf install -y httpd
复制代码
  1. sudo systemctl start httpd
  2. sudo systemctl enable httpd
复制代码
  1. sudo firewall-cmd --permanent --add-service=http
  2. sudo firewall-cmd --permanent --add-service=https
  3. sudo firewall-cmd --reload
复制代码

创建一个新的虚拟主机配置文件:
  1. sudo vim /etc/httpd/conf.d/example.com.conf
复制代码

添加以下内容:
  1. <VirtualHost *:80>
  2.     ServerName www.example.com
  3.     ServerAlias example.com
  4.     DocumentRoot /var/www/example.com/public_html
  5.     ErrorLog /var/www/example.com/logs/error.log
  6.     CustomLog /var/www/example.com/logs/access.log combined
  7. </VirtualHost>
复制代码

创建网站目录和日志目录:
  1. sudo mkdir -p /var/www/example.com/public_html
  2. sudo mkdir -p /var/www/example.com/logs
复制代码

设置适当的权限:
  1. sudo chown -R apache:apache /var/www/example.com
  2. sudo chmod -R 755 /var/www/example.com
复制代码

创建一个测试页面:
  1. sudo vim /var/www/example.com/public_html/index.html
复制代码

添加以下内容:
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <title>Welcome to Example.com!</title>
  5. </head>
  6. <body>
  7.     <h1>Success! The example.com virtual host is working!</h1>
  8. </body>
  9. </html>
复制代码

检查Apache配置并重启服务:
  1. sudo apachectl configtest
  2. sudo systemctl restart httpd
复制代码

安装mod_ssl模块:
  1. sudo dnf install -y mod_ssl
复制代码

获取SSL证书(这里以Let’s Encrypt为例):

安装Certbot:
  1. sudo dnf install -y certbot python3-certbot-apache
复制代码

获取并安装证书:
  1. sudo certbot --apache -d example.com -d www.example.com
复制代码

Certbot会自动修改Apache配置以启用HTTPS。

3.2 Nginx Web服务器安装与配置

Nginx是另一个流行的Web服务器,以其高性能和低内存消耗而闻名。
  1. sudo dnf install -y nginx
复制代码
  1. sudo systemctl start nginx
  2. sudo systemctl enable nginx
复制代码
  1. sudo firewall-cmd --permanent --add-service=http
  2. sudo firewall-cmd --permanent --add-service=https
  3. sudo firewall-cmd --reload
复制代码

创建一个新的虚拟主机配置文件:
  1. sudo vim /etc/nginx/conf.d/example.com.conf
复制代码

添加以下内容:
  1. server {
  2.     listen 80;
  3.     server_name example.com www.example.com;
  4.     root /var/www/example.com/public_html;
  5.     index index.html index.htm;
  6.     location / {
  7.         try_files $uri $uri/ =404;
  8.     }
  9.     access_log /var/www/example.com/logs/access.log;
  10.     error_log /var/www/example.com/logs/error.log;
  11. }
复制代码

创建网站目录和日志目录:
  1. sudo mkdir -p /var/www/example.com/public_html
  2. sudo mkdir -p /var/www/example.com/logs
复制代码

设置适当的权限:
  1. sudo chown -R nginx:nginx /var/www/example.com
  2. sudo chmod -R 755 /var/www/example.com
复制代码

创建一个测试页面:
  1. sudo vim /var/www/example.com/public_html/index.html
复制代码

添加以下内容:
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <title>Welcome to Example.com!</title>
  5. </head>
  6. <body>
  7.     <h1>Success! The example.com virtual host is working!</h1>
  8. </body>
  9. </html>
复制代码

检查Nginx配置并重启服务:
  1. sudo nginx -t
  2. sudo systemctl restart nginx
复制代码

获取SSL证书(这里以Let’s Encrypt为例):

安装Certbot:
  1. sudo dnf install -y certbot python3-certbot-nginx
复制代码

获取并安装证书:
  1. sudo certbot --nginx -d example.com -d www.example.com
复制代码

Certbot会自动修改Nginx配置以启用HTTPS。

4. 数据库服务器安装与配置

4.1 MySQL/MariaDB安装与配置

MariaDB是MySQL的一个分支,完全兼容MySQL,并且在CentOS Stream中是默认的数据库服务器。
  1. sudo dnf install -y mariadb-server mariadb
复制代码
  1. sudo systemctl start mariadb
  2. sudo systemctl enable mariadb
复制代码

运行安全配置脚本:
  1. sudo mysql_secure_installation
复制代码

按照提示设置root密码、删除匿名用户、禁止root远程登录等。

登录MariaDB:
  1. mysql -u root -p
复制代码

创建数据库和用户:
  1. CREATE DATABASE exampledb;
  2. CREATE USER 'exampleuser'@'localhost' IDENTIFIED BY 'password';
  3. GRANT ALL PRIVILEGES ON exampledb.* TO 'exampleuser'@'localhost';
  4. FLUSH PRIVILEGES;
  5. EXIT;
复制代码

编辑MariaDB配置文件:
  1. sudo vim /etc/my.cnf.d/mariadb-server.cnf
复制代码

在[mariadb]部分添加或修改以下配置:
  1. character-set-server = utf8mb4
  2. collation-server = utf8mb4_unicode_ci
  3. max_connections = 200
  4. innodb_buffer_pool_size = 2G
复制代码

重启MariaDB服务:
  1. sudo systemctl restart mariadb
复制代码

4.2 PostgreSQL安装与配置

PostgreSQL是一个功能强大的开源对象关系数据库系统。
  1. sudo dnf install -y postgresql-server postgresql-contrib
复制代码
  1. sudo postgresql-setup --initdb
复制代码
  1. sudo systemctl start postgresql
  2. sudo systemctl enable postgresql
复制代码

切换到postgres用户并设置密码:
  1. sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'your_password';"
复制代码

切换到postgres用户:
  1. sudo -u postgres psql
复制代码

创建数据库和用户:
  1. CREATE DATABASE exampledb;
  2. CREATE USER exampleuser WITH ENCRYPTED PASSWORD 'password';
  3. GRANT ALL PRIVILEGES ON DATABASE exampledb TO exampleuser;
  4. \q
复制代码

编辑pg_hba.conf文件:
  1. sudo vim /var/lib/pgsql/data/pg_hba.conf
复制代码

添加以下行以允许特定IP范围的访问:
  1. host    all             all             192.168.1.0/24          md5
复制代码

编辑postgresql.conf文件:
  1. sudo vim /var/lib/pgsql/data/postgresql.conf
复制代码

修改以下行:
  1. listen_addresses = '*'
复制代码

重启PostgreSQL服务:
  1. sudo systemctl restart postgresql
复制代码

配置防火墙允许PostgreSQL流量:
  1. sudo firewall-cmd --permanent --add-service=postgresql
  2. sudo firewall-cmd --reload
复制代码

5. 邮件服务器安装与配置

5.1 Postfix邮件服务器安装与配置

Postfix是一个流行的邮件传输代理(MTA),用于发送和接收电子邮件。
  1. sudo dnf install -y postfix
复制代码

编辑主配置文件:
  1. sudo vim /etc/postfix/main.cf
复制代码

修改或添加以下配置:
  1. myhostname = mail.example.com
  2. mydomain = example.com
  3. myorigin = $mydomain
  4. inet_interfaces = all
  5. inet_protocols = all
  6. mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
  7. mynetworks = 127.0.0.0/8, 192.168.1.0/24
  8. home_mailbox = Maildir/
复制代码
  1. sudo systemctl start postfix
  2. sudo systemctl enable postfix
复制代码
  1. sudo firewall-cmd --permanent --add-service=smtp
  2. sudo firewall-cmd --reload
复制代码

5.2 Dovecot邮件服务器安装与配置

Dovecot是一个开源的IMAP和POP3邮件服务器,用于接收邮件。
  1. sudo dnf install -y dovecot
复制代码

编辑主配置文件:
  1. sudo vim /etc/dovecot/dovecot.conf
复制代码

确保以下配置存在:
  1. protocols = imap pop3
  2. listen = *
复制代码

编辑邮件位置配置文件:
  1. sudo vim /etc/dovecot/conf.d/10-mail.conf
复制代码

修改以下配置:
  1. mail_location = maildir:~/Maildir
复制代码

编辑认证配置文件:
  1. sudo vim /etc/dovecot/conf.d/10-auth.conf
复制代码

修改以下配置:
  1. disable_plaintext_auth = no
  2. auth_mechanisms = plain login
复制代码

编辑SSL配置文件:
  1. sudo vim /etc/dovecot/conf.d/10-ssl.conf
复制代码

修改以下配置:
  1. ssl = required
  2. ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
  3. ssl_key = </etc/pki/dovecot/private/dovecot.pem
复制代码

如果需要,生成自签名证书:
  1. sudo openssl req -new -x509 -days 365 -nodes -out /etc/pki/dovecot/certs/dovecot.pem -keyout /etc/pki/dovecot/private/dovecot.pem
  2. sudo chmod 600 /etc/pki/dovecot/private/dovecot.pem
复制代码
  1. sudo systemctl start dovecot
  2. sudo systemctl enable dovecot
复制代码
  1. sudo firewall-cmd --permanent --add-service=imap
  2. sudo firewall-cmd --permanent --add-service=imaps
  3. sudo firewall-cmd --permanent --add-service=pop3
  4. sudo firewall-cmd --permanent --add-service=pop3s
  5. sudo firewall-cmd --reload
复制代码

5.3 创建邮件用户

创建一个新的系统用户作为邮件用户:
  1. sudo useradd -m user1
  2. sudo passwd user1
复制代码

测试邮件发送:
  1. echo "Test email body" | mail -s "Test Subject" user1@example.com
复制代码

6. 其他常用服务安装与配置

6.1 FTP服务器安装与配置(vsftpd)
  1. sudo dnf install -y vsftpd
复制代码

编辑配置文件:
  1. sudo vim /etc/vsftpd/vsftpd.conf
复制代码

修改或添加以下配置:
  1. anonymous_enable=NO
  2. local_enable=YES
  3. write_enable=YES
  4. chroot_local_user=YES
  5. allow_writeable_chroot=YES
  6. pasv_min_port=40000
  7. pasv_max_port=50000
复制代码
  1. sudo systemctl start vsftpd
  2. sudo systemctl enable vsftpd
复制代码
  1. sudo firewall-cmd --permanent --add-service=ftp
  2. sudo firewall-cmd --permanent --add-port=40000-50000/tcp
  3. sudo firewall-cmd --reload
复制代码

6.2 DNS服务器安装与配置(BIND)
  1. sudo dnf install -y bind bind-utils
复制代码

编辑主配置文件:
  1. sudo vim /etc/named.conf
复制代码

修改以下配置:
  1. listen-on port 53 { any; };
  2. allow-query     { any; };
复制代码

添加区域定义:
  1. zone "example.com" IN {
  2.     type master;
  3.     file "example.com.zone";
  4.     allow-update { none; };
  5. };
复制代码

创建区域文件:
  1. sudo vim /var/named/example.com.zone
复制代码

添加以下内容:
  1. $TTL 86400
  2. @   IN  SOA ns1.example.com. admin.example.com. (
  3.         2023080101  ; Serial
  4.         3600        ; Refresh
  5.         1800        ; Retry
  6.         604800      ; Expire
  7.         86400       ; Minimum TTL
  8. )
  9. @       IN  NS  ns1.example.com.
  10. @       IN  A   192.168.1.100
  11. ns1     IN  A   192.168.1.100
  12. www     IN  A   192.168.1.100
  13. mail    IN  A   192.168.1.100
复制代码

设置适当的权限:
  1. sudo chown named:named /var/named/example.com.zone
  2. sudo chmod 640 /var/named/example.com.zone
复制代码
  1. sudo systemctl start named
  2. sudo systemctl enable named
复制代码
  1. sudo firewall-cmd --permanent --add-service=dns
  2. sudo firewall-cmd --reload
复制代码

6.3 DHCP服务器安装与配置
  1. sudo dnf install -y dhcp-server
复制代码

编辑配置文件:
  1. sudo vim /etc/dhcp/dhcpd.conf
复制代码

添加以下内容:
  1. option domain-name "example.com";
  2. option domain-name-servers 192.168.1.100;
  3. default-lease-time 600;
  4. max-lease-time 7200;
  5. authoritative;
  6. subnet 192.168.1.0 netmask 255.255.255.0 {
  7.     range 192.168.1.150 192.168.1.200;
  8.     option routers 192.168.1.1;
  9.     option broadcast-address 192.168.1.255;
  10. }
复制代码
  1. sudo systemctl start dhcpd
  2. sudo systemctl enable dhcpd
复制代码
  1. sudo firewall-cmd --permanent --add-service=dhcp
  2. sudo firewall-cmd --reload
复制代码

7. 服务安全配置与优化

7.1 系统安全加固

定期更新系统以获取最新的安全补丁:
  1. sudo dnf update -y
复制代码

安装并配置dnf-automatic:
  1. sudo dnf install -y dnf-automatic
  2. sudo vim /etc/dnf/automatic.conf
复制代码

修改以下配置:
  1. apply_updates = yes
复制代码

启动并启用dnf-automatic服务:
  1. sudo systemctl enable --now dnf-automatic.timer
复制代码

编辑SSH配置文件:
  1. sudo vim /etc/ssh/sshd_config
复制代码

修改以下配置:
  1. PermitRootLogin no
  2. PasswordAuthentication no
  3. Port 2222
复制代码

重启SSH服务:
  1. sudo systemctl restart sshd
复制代码

配置防火墙允许新的SSH端口:
  1. sudo firewall-cmd --permanent --add-port=2222/tcp
  2. sudo firewall-cmd --permanent --remove-service=ssh
  3. sudo firewall-cmd --reload
复制代码

安装fail2ban:
  1. sudo dnf install -y fail2ban
复制代码

创建jail.local配置文件:
  1. sudo vim /etc/fail2ban/jail.local
复制代码

添加以下内容:
  1. [DEFAULT]
  2. bantime = 1h
  3. findtime = 10m
  4. maxretry = 5
  5. [sshd]
  6. enabled = true
  7. port = 2222
复制代码

启动并启用fail2ban服务:
  1. sudo systemctl start fail2ban
  2. sudo systemctl enable fail2ban
复制代码

7.2 Web服务器安全优化

编辑Apache配置文件:
  1. sudo vim /etc/httpd/conf/httpd.conf
复制代码

修改或添加以下配置:
  1. ServerTokens Prod
  2. ServerSignature Off
  3. TraceEnable Off
  4. Header always unset X-Powered-By
复制代码

安装并配置mod_security:
  1. sudo dnf install -y mod_security
  2. sudo systemctl restart httpd
复制代码

编辑Nginx配置文件:
  1. sudo vim /etc/nginx/nginx.conf
复制代码

在http部分添加以下配置:
  1. server_tokens off;
  2. add_header X-Frame-Options "SAMEORIGIN";
  3. add_header X-Content-Type-Options "nosniff";
  4. add_header X-XSS-Protection "1; mode=block";
复制代码

7.3 数据库安全优化

运行mysql_secure_installation脚本:
  1. sudo mysql_secure_installation
复制代码

编辑MariaDB配置文件:
  1. sudo vim /etc/my.cnf.d/mariadb-server.cnf
复制代码

在[mariadb]部分添加以下配置:
  1. skip-networking = 1
  2. bind-address = 127.0.0.1
  3. local-infile = 0
复制代码

重启MariaDB服务:
  1. sudo systemctl restart mariadb
复制代码

编辑pg_hba.conf文件:
  1. sudo vim /var/lib/pgsql/data/pg_hba.conf
复制代码

修改以下行:
  1. local   all             all                                     peer
复制代码

改为:
  1. local   all             all                                     scram-sha-256
复制代码

编辑postgresql.conf文件:
  1. sudo vim /var/lib/pgsql/data/postgresql.conf
复制代码

修改以下行:
  1. listen_addresses = 'localhost'
复制代码

重启PostgreSQL服务:
  1. sudo systemctl restart postgresql
复制代码

8. 常见问题与解决方案

8.1 服务启动失败
  1. sudo systemctl status service-name
复制代码
  1. sudo journalctl -u service-name
复制代码

对于Apache:
  1. sudo apachectl configtest
复制代码

对于Nginx:
  1. sudo nginx -t
复制代码

对于MariaDB:
  1. sudo mysqld --check-config
复制代码

8.2 网络连接问题
  1. ip a
复制代码
  1. ip route
复制代码
  1. nslookup example.com
复制代码
  1. sudo firewall-cmd --list-all
复制代码

8.3 磁盘空间不足
  1. df -h
复制代码
  1. sudo find / -type f -size +100M -exec ls -lh {} \;
复制代码
  1. sudo dnf clean all
复制代码

8.4 性能问题
  1. top
  2. htop
复制代码
  1. sudo iostat -x 1
复制代码
  1. sudo netstat -tuln
  2. sudo ss -tuln
复制代码

结论

本教程详细介绍了在CentOS Stream上安装和配置各种常用服务的过程,包括Web服务器(Apache和Nginx)、数据库服务器(MariaDB和PostgreSQL)、邮件服务器(Postfix和Dovecot)以及其他常用服务(FTP、DNS、DHCP)。此外,还介绍了服务安全配置与优化的方法,以及常见问题的解决方案。

通过本教程,你应该能够从零开始在CentOS Stream上部署和配置各种服务,并确保它们的安全性和稳定性。记住,服务器管理是一个持续学习和改进的过程,保持系统的更新和安全是至关重要的。

希望本教程对你有所帮助!如果你有任何问题或建议,请随时提出。
「七転び八起き(ななころびやおき)」
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则