|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1. openSUSE系统介绍
openSUSE是一个稳定、安全且易于使用的Linux发行版,由SUSE公司支持的开源社区项目维护。它以其优秀的YaST配置工具、强大的包管理系统(ZYpp)和出色的稳定性而闻名。openSUSE有两个主要版本:Tumbleweed(滚动发布版本)和Leap(定期发布版本)。
openSUSE Tumbleweed提供最新的软件包,适合喜欢使用最新技术的用户;而openSUSE Leap则更加稳定,适合企业和生产环境使用。本指南将适用于这两个版本,但会特别指出可能存在的差异。
2. 基础环境准备
2.1 系统安装
在开始服务安装与配置之前,首先需要安装openSUSE系统。以下是安装步骤的简要概述:
1. 从openSUSE官方网站下载最新的ISO镜像文件。
2. 创建启动介质(如USB启动盘)。
3. 从启动介质启动计算机,选择”Installation”选项。
4. 按照安装向导的提示进行安装,包括语言选择、分区设置、用户创建等。
2.2 系统更新
系统安装完成后,首先需要更新系统到最新状态。打开终端,执行以下命令:
- # 刷新软件仓库
- sudo zypper refresh
- # 更新系统
- sudo zypper update
复制代码
对于Tumbleweed用户,系统更新可能更频繁,建议定期执行上述命令以保持系统最新。
2.3 添加常用软件仓库
openSUSE默认提供了一些基本的软件仓库,但为了获取更多软件,我们可以添加一些额外的仓库:
- # 添加Packman仓库(多媒体软件)
- sudo zypper ar -f -p 90 -n packman http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/Essentials packman
- # 添加社区仓库
- sudo zypper ar -f -p 90 -n openSUSE:Factory http://download.opensuse.org/factory/repo/oss/ factory-oss
- # 刷新仓库
- sudo zypper refresh
复制代码
注意:上述命令适用于Tumbleweed版本,Leap用户需要将URL中的”Tumbleweed”替换为相应的Leap版本号。
2.4 安装常用工具
安装一些基本的系统管理和网络工具:
- # 安装基本工具
- sudo zypper install -t pattern devel_basis
- # 安装网络工具
- sudo zypper install net-tools-deprecated wget curl
- # 安装文本编辑器
- sudo zypper install vim nano
- # 安装系统监控工具
- sudo zypper install htop iotop
复制代码
3. 系统基本配置
3.1 网络配置
openSUSE使用Wicked或NetworkManager来管理网络连接。以下是配置静态IP地址的步骤:
1. 使用YaST工具配置网络:
- # 启动YaST网络配置工具
- sudo yast2 network
复制代码
在YaST界面中,选择网络接口,然后配置IP地址、子网掩码、网关和DNS服务器。
1. 或者,手动编辑网络配置文件:
- # 编辑网络配置文件
- sudo vim /etc/sysconfig/network/ifcfg-eth0
复制代码
在文件中添加或修改以下内容:
- BOOTPROTO='static'
- IPADDR='192.168.1.100/24'
- NETMASK='255.255.255.0'
- GATEWAY='192.168.1.1'
- DNS1='8.8.8.8'
- DNS2='8.8.4.4'
- STARTMODE='auto'
复制代码
1. 重启网络服务:
- sudo systemctl restart network
复制代码
3.2 防火墙配置
openSUSE使用firewalld作为默认防火墙。以下是基本配置命令:
- # 查看防火墙状态
- sudo firewall-cmd --state
- # 启动防火墙
- sudo systemctl start firewalld
- sudo systemctl enable firewalld
- # 开放端口(例如80端口)
- sudo firewall-cmd --permanent --add-port=80/tcp
- sudo firewall-cmd --reload
- # 查看已开放的端口
- sudo firewall-cmd --list-ports
复制代码
3.3 SSH服务配置
SSH是远程管理Linux系统的常用工具。以下是SSH服务的安装和配置步骤:
1. 安装SSH服务:
- sudo zypper install openssh
复制代码
1. 启动并启用SSH服务:
- sudo systemctl start sshd
- sudo systemctl enable sshd
复制代码
1. 配置SSH服务:
编辑SSH配置文件:
- sudo vim /etc/ssh/sshd_config
复制代码
修改以下常用选项:
- # 更改默认端口(可选)
- Port 2222
- # 禁止root登录(推荐)
- PermitRootLogin no
- # 只允许特定用户登录
- AllowUsers username1 username2
- # 使用密钥认证(推荐)
- PubkeyAuthentication yes
- PasswordAuthentication no
复制代码
1. 重启SSH服务:
- sudo systemctl restart sshd
复制代码
1. 如果防火墙已启用,开放SSH端口:
- sudo firewall-cmd --permanent --add-port=2222/tcp
- sudo firewall-cmd --reload
复制代码
3.4 时间同步
保持系统时间准确对于服务器管理非常重要。以下是配置NTP时间同步的步骤:
1. 安装NTP客户端:
1. 配置NTP服务器:
编辑NTP配置文件:
添加或修改以下内容:
- # 使用默认的NTP服务器池
- server 0.opensuse.pool.ntp.org
- server 1.opensuse.pool.ntp.org
- server 2.opensuse.pool.ntp.org
- server 3.opensuse.pool.ntp.org
复制代码
1. 启动并启用NTP服务:
- sudo systemctl start ntpd
- sudo systemctl enable ntpd
复制代码
1. 检查NTP同步状态:
4. 常用服务的安装与配置
4.1 Web服务器(Apache)安装与配置
Apache是最流行的Web服务器软件之一。以下是安装和配置Apache的步骤:
1. 安装Apache:
- sudo zypper install apache2
复制代码
1. 启动并启用Apache服务:
- sudo systemctl start apache2
- sudo systemctl enable apache2
复制代码
1. 配置防火墙,允许HTTP和HTTPS流量:
- sudo firewall-cmd --permanent --add-service=http
- sudo firewall-cmd --permanent --add-service=https
- sudo firewall-cmd --reload
复制代码
1. 创建一个简单的测试网页:
- echo "<html><body><h1>My Test Page</h1><p>This is a test page.</p></body></html>" | sudo tee /srv/www/htdocs/index.html
复制代码
1. 配置虚拟主机(可选):
创建一个新的虚拟主机配置文件:
- sudo vim /etc/apache2/vhosts.d/mysite.conf
复制代码
添加以下内容:
- <VirtualHost *:80>
- ServerAdmin webmaster@mysite.com
- ServerName mysite.com
- DocumentRoot /srv/www/mysite
- ErrorLog /var/log/apache2/mysite-error_log
- CustomLog /var/log/apache2/mysite-access_log combined
- <Directory /srv/www/mysite>
- Options Indexes FollowSymLinks
- AllowOverride All
- Require all granted
- </Directory>
- </VirtualHost>
复制代码
1. 创建网站目录和测试文件:
- sudo mkdir /srv/www/mysite
- echo "<html><body><h1>Welcome to My Site</h1></body></html>" | sudo tee /srv/www/mysite/index.html
- sudo chown -R wwwrun:www /srv/www/mysite
复制代码
1. 重启Apache服务:
- sudo systemctl restart apache2
复制代码
4.2 数据库服务器(MariaDB)安装与配置
MariaDB是MySQL的一个分支,是openSUSE中默认的数据库服务器。以下是安装和配置MariaDB的步骤:
1. 安装MariaDB:
- sudo zypper install mariadb mariadb-client
复制代码
1. 启动并启用MariaDB服务:
- sudo systemctl start mysql
- sudo systemctl enable mysql
复制代码
1. 运行安全安装脚本:
- sudo mysql_secure_installation
复制代码
按照提示设置root密码、删除匿名用户、禁止root远程登录等。
1. 创建数据库和用户:
- # 登录到MariaDB
- mysql -u root -p
- # 创建数据库
- CREATE DATABASE mydb;
- # 创建用户并授予权限
- CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'password';
- GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
- FLUSH PRIVILEGES;
- # 退出MariaDB
- EXIT;
复制代码
1. 配置MariaDB(可选):
编辑MariaDB配置文件:
可以添加或修改以下设置:
- [mysqld]
- # 设置默认字符集
- character-set-server=utf8mb4
- collation-server=utf8mb4_unicode_ci
- # 设置最大连接数
- max_connections=200
- # 设置缓存大小
- innodb_buffer_pool_size=2G
复制代码
1. 重启MariaDB服务:
- sudo systemctl restart mysql
复制代码
4.3 PHP安装与配置
PHP是一种流行的服务器端脚本语言,常用于Web开发。以下是安装和配置PHP的步骤:
1. 安装PHP及常用扩展:
- sudo zypper install php7 php7-mysql php7-gd php7-mbstring php7-opcache php7-xml php7-curl php7-zip php7-intl
复制代码
1. 配置PHP:
编辑PHP配置文件:
- sudo vim /etc/php7/php.ini
复制代码
修改以下常用设置:
- # 设置时区
- date.timezone = Asia/Shanghai
- # 增加内存限制
- memory_limit = 256M
- # 增加上传文件大小限制
- upload_max_filesize = 64M
- post_max_size = 64M
- # 显示错误(开发环境)
- display_errors = On
复制代码
1. 配置Apache与PHP集成:
确保已安装PHP模块:
- sudo zypper install apache2-mod_php7
复制代码
编辑Apache配置文件:
- sudo vim /etc/apache2/conf.d/php7.conf
复制代码
确保文件包含以下内容:
- <FilesMatch \.php$>
- SetHandler application/x-httpd-php
- </FilesMatch>
- <FilesMatch "\.phps$">
- SetHandler application/x-httpd-php-source
- </FilesMatch>
复制代码
1. 创建PHP测试文件:
- echo "<?php phpinfo(); ?>" | sudo tee /srv/www/htdocs/info.php
复制代码
1. 重启Apache服务:
- sudo systemctl restart apache2
复制代码
1. 在浏览器中访问http://your_server_ip/info.php验证PHP是否正常工作。
4.4 FTP服务器(vsftpd)安装与配置
FTP(文件传输协议)是用于在网络上传输文件的标准协议。vsftpd是一款安全、快速且稳定的FTP服务器软件。以下是安装和配置vsftpd的步骤:
1. 安装vsftpd:
- sudo zypper install vsftpd
复制代码
1. 配置vsftpd:
编辑vsftpd配置文件:
- sudo vim /etc/vsftpd.conf
复制代码
修改或添加以下配置:
- # 启用独立模式
- listen=YES
- # 禁止匿名用户登录
- anonymous_enable=NO
- # 允许本地用户登录
- local_enable=YES
- # 允许写入操作
- write_enable=YES
- # 限制用户在其主目录内
- chroot_local_user=YES
- # 启用被动模式
- pasv_enable=YES
- pasv_min_port=40000
- pasv_max_port=50000
复制代码
1. 创建FTP用户并设置主目录:
- # 创建FTP用户
- sudo useradd -m ftpuser
- sudo passwd ftpuser
- # 设置用户主目录权限
- sudo chmod 750 /home/ftpuser
- sudo chown ftpuser:ftpuser /home/ftpuser
复制代码
1. 启动并启用vsftpd服务:
- sudo systemctl start vsftpd
- sudo systemctl enable vsftpd
复制代码
1. 配置防火墙,允许FTP流量:
- # 开放FTP端口
- sudo firewall-cmd --permanent --add-service=ftp
- # 开放被动模式端口范围
- sudo firewall-cmd --permanent --add-port=40000-50000/tcp
- # 重载防火墙配置
- sudo firewall-cmd --reload
复制代码
4.5 DNS服务器(BIND)安装与配置
BIND(Berkeley Internet Name Domain)是最广泛使用的DNS服务器软件。以下是安装和配置BIND的步骤:
1. 安装BIND:
1. 配置BIND:
编辑主配置文件:
添加或修改以下配置:
- options {
- listen-on port 53 { any; };
- directory "/var/lib/named";
- allow-query { any; };
- recursion yes;
- };
- zone "example.com" IN {
- type master;
- file "example.com.zone";
- allow-update { none; };
- };
- zone "1.168.192.in-addr.arpa" IN {
- type master;
- file "example.com.rev";
- allow-update { none; };
- };
复制代码
1. 创建正向解析区域文件:
- sudo vim /var/lib/named/example.com.zone
复制代码
添加以下内容:
- $TTL 86400
- @ IN SOA ns1.example.com. admin.example.com. (
- 2023081501 ; Serial
- 3600 ; Refresh
- 1800 ; Retry
- 604800 ; Expire
- 86400 ; Minimum TTL
- )
- ; Name servers
- @ IN NS ns1.example.com.
- ; A records
- @ IN A 192.168.1.100
- ns1 IN A 192.168.1.100
- www IN A 192.168.1.100
- mail IN A 192.168.1.101
- ; MX record
- @ IN MX 10 mail.example.com.
复制代码
1. 创建反向解析区域文件:
- sudo vim /var/lib/named/example.com.rev
复制代码
添加以下内容:
- $TTL 86400
- @ IN SOA ns1.example.com. admin.example.com. (
- 2023081501 ; Serial
- 3600 ; Refresh
- 1800 ; Retry
- 604800 ; Expire
- 86400 ; Minimum TTL
- )
- ; Name servers
- @ IN NS ns1.example.com.
- ; PTR records
- 100 IN PTR ns1.example.com.
- 100 IN PTR www.example.com.
- 101 IN PTR mail.example.com.
复制代码
1. 设置区域文件权限:
- sudo chown named:named /var/lib/named/example.com.zone
- sudo chown named:named /var/lib/named/example.com.rev
复制代码
1. 启动并启用BIND服务:
- sudo systemctl start named
- sudo systemctl enable named
复制代码
1. 配置防火墙,允许DNS查询:
- sudo firewall-cmd --permanent --add-service=dns
- sudo firewall-cmd --reload
复制代码
1. 测试DNS服务器:
- # 安装DNS测试工具
- sudo zypper install bind-utils
- # 测试正向解析
- nslookup www.example.com localhost
- # 测试反向解析
- nslookup 192.168.1.100 localhost
复制代码
4.6 DHCP服务器安装与配置
DHCP(动态主机配置协议)用于自动分配IP地址和其他网络配置。以下是安装和配置DHCP服务器的步骤:
1. 安装DHCP服务器:
- sudo zypper install dhcp-server
复制代码
1. 配置DHCP服务器:
编辑DHCP配置文件:
添加以下内容:
- option domain-name "example.com";
- option domain-name-servers 192.168.1.100;
- option routers 192.168.1.1;
- option broadcast-address 192.168.1.255;
- default-lease-time 600;
- max-lease-time 7200;
- # 子网配置
- subnet 192.168.1.0 netmask 255.255.255.0 {
- range 192.168.1.150 192.168.1.200;
- }
- # 固定IP分配
- host server1 {
- hardware ethernet 00:0c:29:aa:bb:cc;
- fixed-address 192.168.1.10;
- }
复制代码
1. 配置DHCP服务器监听的网络接口:
编辑网络接口配置文件:
- sudo vim /etc/sysconfig/dhcpd
复制代码
设置DHCPD_INTERFACE参数:
1. 启动并启用DHCP服务:
- sudo systemctl start dhcpd
- sudo systemctl enable dhcpd
复制代码
1. 配置防火墙,允许DHCP流量:
- sudo firewall-cmd --permanent --add-service=dhcp
- sudo firewall-cmd --reload
复制代码
4.7 Mail服务器(Postfix和Dovecot)安装与配置
设置一个完整的邮件服务器通常需要MTA(邮件传输代理)和MDA(邮件分发代理)。Postfix是一个流行的MTA,而Dovecot是一个流行的MDA。以下是安装和配置邮件服务器的步骤:
1. 安装Postfix和Dovecot:
- sudo zypper install postfix dovecot dovecot-imapd dovecot-pop3d
复制代码
1. 配置Postfix:
编辑Postfix主配置文件:
- sudo vim /etc/postfix/main.cf
复制代码
修改或添加以下配置:
- # 设置主机名和域名
- myhostname = mail.example.com
- mydomain = example.com
- myorigin = $mydomain
- # 设置网络接口
- inet_interfaces = all
- inet_protocols = all
- # 设置信任的网络
- mynetworks = 127.0.0.0/8, 192.168.1.0/24
- # 设置邮件存储格式
- home_mailbox = Maildir/
- # 设置别名
- alias_maps = hash:/etc/aliases
- alias_database = hash:/etc/aliases
复制代码
1. 配置Dovecot:
编辑Dovecot主配置文件:
- sudo vim /etc/dovecot/dovecot.conf
复制代码
确保以下配置存在:
- protocols = imap pop3
- listen = *
复制代码
编辑Dovecot邮件配置文件:
- sudo vim /etc/dovecot/conf.d/10-mail.conf
复制代码
修改以下配置:
- mail_location = maildir:~/Maildir
复制代码
编辑Dovecot认证配置文件:
- sudo vim /etc/dovecot/conf.d/10-auth.conf
复制代码
修改以下配置:
- disable_plaintext_auth = no
- auth_mechanisms = plain login
复制代码
1. 创建邮件用户和目录:
- # 创建邮件用户
- sudo useradd -m mailuser
- sudo passwd mailuser
- # 创建邮件目录
- sudo mkdir -p /home/mailuser/Maildir
- sudo chown -R mailuser:mailuser /home/mailuser/Maildir
- sudo chmod -R 700 /home/mailuser/Maildir
复制代码
1. 启动并启用Postfix和Dovecot服务:
- sudo systemctl start postfix
- sudo systemctl enable postfix
- sudo systemctl start dovecot
- sudo systemctl enable dovecot
复制代码
1. 配置防火墙,允许邮件服务流量:
- # 开放SMTP端口
- sudo firewall-cmd --permanent --add-service=smtp
- # 开放SMTPS端口
- sudo firewall-cmd --permanent --add-service=smtps
- # 开放IMAP端口
- sudo firewall-cmd --permanent --add-service=imap
- # 开放IMAPS端口
- sudo firewall-cmd --permanent --add-service=imaps
- # 开放POP3端口
- sudo firewall-cmd --permanent --add-service=pop3
- # 开放POP3S端口
- sudo firewall-cmd --permanent --add-service=pop3s
- # 重载防火墙配置
- sudo firewall-cmd --reload
复制代码
5. 服务管理与维护
5.1 使用systemd管理服务
systemd是openSUSE的默认系统和服务管理器。以下是一些常用的systemd命令:
- # 启动服务
- sudo systemctl start servicename
- # 停止服务
- sudo systemctl stop servicename
- # 重启服务
- sudo systemctl restart servicename
- # 重新加载服务配置
- sudo systemctl reload servicename
- # 启用服务(开机自启)
- sudo systemctl enable servicename
- # 禁用服务
- sudo systemctl disable servicename
- # 查看服务状态
- sudo systemctl status servicename
- # 查看所有已启用的服务
- sudo systemctl list-unit-files | grep enabled
- # 查看服务日志
- sudo journalctl -u servicename
- # 查看服务实时日志
- sudo journalctl -fu servicename
复制代码
5.2 使用YaST管理服务
YaST是openSUSE的图形化系统管理工具,它提供了一个友好的界面来管理系统服务:
1. 启动YaST服务管理器:
1. 在YaST界面中,您可以:查看所有服务的状态启动、停止或重启服务启用或禁用服务配置服务启动顺序
2. 查看所有服务的状态
3. 启动、停止或重启服务
4. 启用或禁用服务
5. 配置服务启动顺序
• 查看所有服务的状态
• 启动、停止或重启服务
• 启用或禁用服务
• 配置服务启动顺序
5.3 监控服务性能
监控服务性能对于维护系统稳定性和及时发现潜在问题非常重要。以下是一些常用的监控工具和方法:
1. 使用top和htop监控系统资源:
- # 安装htop
- sudo zypper install htop
- # 使用htop监控
- htop
复制代码
1. 使用iotop监控磁盘I/O:
- # 安装iotop
- sudo zypper install iotop
- # 使用iotop监控
- sudo iotop
复制代码
1. 使用netstat或ss监控网络连接:
- # 使用netstat
- sudo netstat -tulnp
- # 使用ss(推荐)
- sudo ss -tulnp
复制代码
1. 使用journalctl查看服务日志:
- # 查看特定服务的日志
- sudo journalctl -u servicename
- # 查看最近的日志
- sudo journalctl -n 100
- # 查看特定时间段的日志
- sudo journalctl --since "2023-08-15" --until "2023-08-16"
复制代码
1. 使用logrotate管理日志文件:
logrotate是一个用于管理日志文件的工具,它可以自动压缩、轮换和删除日志文件。配置文件位于/etc/logrotate.conf和/etc/logrotate.d/目录。
例如,为Apache创建一个logrotate配置:
- sudo vim /etc/logrotate.d/apache2
复制代码
添加以下内容:
- /var/log/apache2/*.log {
- weekly
- missingok
- rotate 52
- compress
- delaycompress
- notifempty
- create 640 root adm
- sharedscripts
- postrotate
- /usr/sbin/apache2ctl restart > /dev/null
- endscript
- }
复制代码
5.4 备份与恢复
定期备份系统和服务配置是防止数据丢失的重要措施。以下是一些备份和恢复的方法:
1. 使用rsync备份文件和目录:
- # 安装rsync
- sudo zypper install rsync
- # 备份整个系统(排除某些目录)
- sudo rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /path/to/backup/folder
- # 备份特定目录
- sudo rsync -av /etc /path/to/backup/folder
复制代码
1. 使用tar创建归档备份:
- # 创建完整备份
- sudo tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz --exclude=/proc --exclude=/tmp --exclude=/mnt --exclude=/dev --exclude=/sys /
- # 创建特定目录备份
- sudo tar -cvpzf etc-backup.tar.gz /etc
复制代码
1. 使用BorgBackup创建增量备份:
BorgBackup是一个强大的去重复备份工具。
- # 安装BorgBackup
- sudo zypper install borgbackup
- # 初始化备份仓库
- borg init --encryption=repokey /path/to/repo
- # 创建备份
- borg create --stats --progress /path/to/repo::archive-name /path/to/backup
- # 列出备份
- borg list /path/to/repo
- # 提取备份
- borg extract /path/to/repo::archive-name
复制代码
1. 恢复服务配置:
从备份中恢复服务配置通常涉及以下步骤:
- # 停止服务
- sudo systemctl stop servicename
- # 恢复配置文件
- sudo cp /path/to/backup/servicename.conf /etc/servicename.conf
- # 恢复数据目录(如果适用)
- sudo cp -r /path/to/backup/servicename/data /var/lib/servicename/
- # 恢复权限
- sudo chown -R user:group /var/lib/servicename/
- # 启动服务
- sudo systemctl start servicename
复制代码
6. 安全配置
6.1 系统安全加固
保护Linux服务器安全是非常重要的。以下是一些基本的安全加固措施:
1. 更新系统:
- sudo zypper refresh
- sudo zypper update
复制代码
1. 配置防火墙:
- # 启动并启用防火墙
- sudo systemctl start firewalld
- sudo systemctl enable firewalld
- # 查看默认区域
- sudo firewall-cmd --get-default-zone
- # 设置默认区域为public
- sudo firewall-cmd --set-default-zone=public
- # 查看活动区域
- sudo firewall-cmd --get-active-zones
- # 查看区域规则
- sudo firewall-cmd --list-all
- # 只开放必要的端口
- sudo firewall-cmd --permanent --add-service=ssh
- sudo firewall-cmd --permanent --add-service=http
- sudo firewall-cmd --permanent --add-service=https
- sudo firewall-cmd --reload
复制代码
1. 禁用不必要的服务:
- # 查看已启用的服务
- sudo systemctl list-unit-files | grep enabled
- # 禁用不必要的服务
- sudo systemctl disable servicename
复制代码
1. 配置SSH安全:
编辑SSH配置文件:
- sudo vim /etc/ssh/sshd_config
复制代码
修改以下配置:
- # 禁止root登录
- PermitRootLogin no
- # 更改默认端口
- Port 2222
- # 禁用密码认证,使用密钥认证
- PasswordAuthentication no
- PubkeyAuthentication yes
- # 限制允许登录的用户
- AllowUsers user1 user2
- # 设置登录超时时间
- LoginGraceTime 60
复制代码
重启SSH服务:
- sudo systemctl restart sshd
复制代码
1. 配置自动安全更新:
- # 安装自动更新工具
- sudo zypper install yast2-online-update-configuration
- # 启动YaST在线更新配置
- sudo yast2 online_update_configuration
复制代码
在YaST界面中,配置自动更新的频率和时间。
6.2 服务安全配置
每个服务都有其特定的安全配置需求。以下是一些常见服务的安全配置建议:
1. Apache安全配置:
编辑Apache主配置文件:
- sudo vim /etc/apache2/server-tuning.conf
复制代码
修改以下配置:
- # 隐藏Apache版本信息
- ServerTokens Prod
- ServerSignature Off
- # 禁用目录列表
- Options -Indexes
- # 禁用CGI执行
- Options -ExecCGI
- # 限制HTTP请求方法
- <LimitExcept GET POST HEAD>
- Require all denied
- </LimitExcept>
复制代码
1. MariaDB安全配置:
- # 运行安全安装脚本
- sudo mysql_secure_installation
- # 登录到MariaDB
- mysql -u root -p
- # 删除测试数据库
- DROP DATABASE IF EXISTS test;
- # 删除匿名用户
- DELETE FROM mysql.user WHERE User='';
- # 刷新权限
- FLUSH PRIVILEGES;
- # 退出
- EXIT;
复制代码
1. PHP安全配置:
编辑PHP配置文件:
- sudo vim /etc/php7/php.ini
复制代码
修改以下配置:
- # 禁用危险函数
- disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
- # 隐藏PHP版本
- expose_php = Off
- # 启用安全模式(已弃用,但某些旧版本可能需要)
- ; safe_mode = On
- # 限制文件上传
- file_uploads = On
- upload_tmp_dir = /var/tmp
- upload_max_filesize = 2M
- max_file_uploads = 20
- # 禁用远程文件包含
- allow_url_include = Off
- allow_url_fopen = Off
复制代码
1. FTP安全配置:
编辑vsftpd配置文件:
- sudo vim /etc/vsftpd.conf
复制代码
修改以下配置:
- # 限制用户在其主目录内
- chroot_local_user=YES
- allow_writeable_chroot=YES
- # 启用被动模式
- pasv_enable=YES
- pasv_min_port=40000
- pasv_max_port=50000
- # 限制最大连接数
- max_clients=10
- max_per_ip=5
- # 启用用户列表
- userlist_enable=YES
- userlist_file=/etc/vsftpd.user_list
- userlist_deny=NO
复制代码
创建允许访问FTP的用户列表:
- sudo vim /etc/vsftpd.user_list
复制代码
添加允许访问的用户名,每行一个。
6.3 SSL/TLS证书配置
为服务配置SSL/TLS证书可以加密通信,提高安全性。以下是使用Let’s Encrypt免费证书的步骤:
1. 安装Certbot:
- sudo zypper install certbot
复制代码
1. 为Apache获取并安装证书:
- sudo certbot --apache -d example.com -d www.example.com
复制代码
1. 配置Apache使用SSL:
编辑Apache SSL配置文件:
- sudo vim /etc/apache2/ssl.conf
复制代码
确保以下配置存在:
- <VirtualHost *:443>
- ServerName example.com
- DocumentRoot /srv/www/htdocs
- SSLEngine on
- SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
- SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
- Include /etc/letsencrypt/options-ssl-apache.conf
- </VirtualHost>
复制代码
1. 重启Apache服务:
- sudo systemctl restart apache2
复制代码
1. 配置自动续期证书:
Let’s Encrypt证书有效期为90天,需要定期续期。可以设置cron任务自动续期:
添加以下内容:
- 0 0 * * * /usr/bin/certbot renew --quiet
复制代码
6.4 安全审计和日志分析
定期审计系统安全和分析日志是发现潜在安全问题的重要手段。以下是一些安全审计和日志分析的方法:
1. 使用AIDE进行文件完整性检查:
AIDE(Advanced Intrusion Detection Environment)是一个文件完整性检查工具。
- # 安装AIDE
- sudo zypper install aide
- # 初始化AIDE数据库
- sudo aide --init
- # 将数据库移动到正确位置
- sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
- # 运行检查
- sudo aide --check
- # 创建每日检查的cron任务
- sudo crontab -e
复制代码
添加以下内容:
- 0 3 * * * /usr/sbin/aide --check | mail -s "AIDE report" admin@example.com
复制代码
1. 使用Fail2ban防止暴力破解:
Fail2ban可以监控日志文件并根据预设规则禁止恶意IP。
- # 安装Fail2ban
- sudo zypper install fail2ban
- # 复制配置文件
- sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- # 编辑配置文件
- sudo vim /etc/fail2ban/jail.local
复制代码
修改SSH防护配置:
- [sshd]
- enabled = true
- port = 2222
- filter = sshd
- logpath = /var/log/messages
- maxretry = 3
- bantime = 3600
复制代码
启动并启用Fail2ban:
- sudo systemctl start fail2ban
- sudo systemctl enable fail2ban
复制代码
1. 使用Logwatch分析日志:
Logwatch是一个日志分析和报告工具。
- # 安装Logwatch
- sudo zypper install logwatch
- # 配置Logwatch
- sudo cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/
- # 编辑配置文件
- sudo vim /etc/logwatch/conf/logwatch.conf
复制代码
修改以下配置:
- Output = mail
- Format = html
- MailTo = admin@example.com
- Range = yesterday
- Detail = High
复制代码
创建每日报告的cron任务:
添加以下内容:
- 0 4 * * * /usr/sbin/logwatch
复制代码
7. 故障排除
7.1 常见服务问题及解决方法
在服务运行过程中,可能会遇到各种问题。以下是一些常见问题及其解决方法:
1. 服务无法启动:
- # 查看服务状态
- sudo systemctl status servicename
- # 查看服务日志
- sudo journalctl -u servicename
- # 检查配置文件语法
- sudo apache2ctl configtest # 对于Apache
- sudo mysqld --check-config # 对于MariaDB/MySQL
- sudo named-checkconf # 对于BIND
- sudo postfix check # 对于Postfix
复制代码
1. 端口冲突:
- # 查看端口占用情况
- sudo ss -tulnp
- # 如果发现端口被占用,可以停止占用该端口的服务或更改服务配置使用其他端口
复制代码
1. 权限问题:
- # 检查文件和目录权限
- ls -la /path/to/file
- # 修改文件或目录权限
- sudo chmod 755 /path/to/directory
- sudo chmod 644 /path/to/file
- # 修改文件或目录所有者
- sudo chown user:group /path/to/file
复制代码
1. 磁盘空间不足:
- # 查看磁盘使用情况
- df -h
- # 查看目录大小
- du -sh /path/to/directory
- # 清理日志文件
- sudo journalctl --vacuum-size=100M
- # 清理软件包缓存
- sudo zypper clean
复制代码
1. 网络连接问题:
- # 检查网络接口状态
- ip a
- # 测试网络连通性
- ping 8.8.8.8
- # 跟踪路由
- traceroute 8.8.8.8
- # 检查DNS解析
- nslookup example.com
复制代码
7.2 日志分析方法
日志是故障排除的重要资源。以下是一些日志分析的方法:
1. 系统日志:
- # 查看系统日志
- sudo tail -f /var/log/messages
- # 查看特定服务的日志
- sudo journalctl -u servicename
- # 查看最近的错误
- sudo journalctl -p 3 -xb
复制代码
1. Apache日志:
- # 查看访问日志
- sudo tail -f /var/log/apache2/access_log
- # 查看错误日志
- sudo tail -f /var/log/apache2/error_log
- # 分析最常见的IP地址
- sudo awk '{print $1}' /var/log/apache2/access_log | sort | uniq -c | sort -nr | head
- # 分析最常见的请求
- sudo awk '{print $7}' /var/log/apache2/access_log | sort | uniq -c | sort -nr | head
复制代码
1. MariaDB/MySQL日志:
- # 查看错误日志
- sudo tail -f /var/log/mysql/mysqld.log
- # 启用查询日志(临时)
- SET GLOBAL general_log = 'ON';
- SET GLOBAL log_output = 'TABLE';
- # 查看查询日志
- SELECT * FROM mysql.general_log;
复制代码
1. 邮件日志:
- # 查看邮件日志
- sudo tail -f /var/log/mail
- # 查看邮件队列
- sudo mailq
复制代码
7.3 性能调优
性能调优是确保服务高效运行的重要环节。以下是一些性能调优的方法:
1. 系统性能调优:
- # 查看系统负载
- uptime
- # 查看内存使用情况
- free -h
- # 查看CPU使用情况
- top
- htop
- # 查看磁盘I/O
- iotop
- # 查看网络连接
- ss -tulnp
复制代码
1. Apache性能调优:
编辑Apache配置文件:
- sudo vim /etc/apache2/server-tuning.conf
复制代码
修改以下配置:
- # 设置最大连接数
- MaxRequestWorkers 150
- # 设置每个子进程的最大请求数
- MaxConnectionsPerChild 10000
- # 启用KeepAlive
- KeepAlive On
- MaxKeepAliveRequests 100
- KeepAliveTimeout 5
- # 启用缓存
- LoadModule cache_module /usr/lib64/apache2/mod_cache.so
- LoadModule cache_disk_module /usr/lib64/apache2/mod_cache_disk.so
- <IfModule mod_cache_disk.c>
- CacheRoot /var/cache/apache2/mod_cache_disk
- CacheEnable disk /
- CacheDirLevels 2
- CacheDirLength 1
- </IfModule>
复制代码
1. MariaDB/MySQL性能调优:
编辑MariaDB/MySQL配置文件:
修改以下配置:
- [mysqld]
- # 设置缓冲池大小(通常为系统内存的50-70%)
- innodb_buffer_pool_size = 2G
- # 设置查询缓存
- query_cache_type = 1
- query_cache_size = 128M
- # 设置连接数
- max_connections = 200
- # 设置表缓存
- table_open_cache = 2000
- # 设置线程缓存
- thread_cache_size = 8
- # 设置慢查询日志
- slow_query_log = 1
- slow_query_log_file = /var/log/mysql/slow.log
- long_query_time = 2
复制代码
1. PHP性能调优:
编辑PHP配置文件:
- sudo vim /etc/php7/php.ini
复制代码
修改以下配置:
- # 增加内存限制
- memory_limit = 256M
- # 启用OPcache
- opcache.enable=1
- opcache.memory_consumption=128
- opcache.interned_strings_buffer=8
- opcache.max_accelerated_files=4000
- opcache.revalidate_freq=60
- opcache.fast_shutdown=1
- opcache.enable_cli=1
复制代码
1. 系统内核参数调优:
编辑sysctl配置文件:
- sudo vim /etc/sysctl.conf
复制代码
添加以下配置:
- # 增加文件描述符限制
- fs.file-max = 100000
- # 网络参数调优
- net.core.rmem_max = 16777216
- net.core.wmem_max = 16777216
- net.ipv4.tcp_rmem = 4096 87380 16777216
- net.ipv4.tcp_wmem = 4096 65536 16777216
- net.ipv4.tcp_fin_timeout = 30
- net.ipv4.tcp_keepalive_time = 120
- net.ipv4.ip_local_port_range = 10000 65000
复制代码
应用配置:
总结
本指南详细介绍了在openSUSE系统下安装和配置各种Linux服务的完整过程,从基础环境准备到服务部署,再到服务管理和维护。通过本指南,您应该能够:
1. 准备openSUSE系统环境,包括系统安装、更新和基本配置。
2. 安装和配置常用的Linux服务,如Web服务器、数据库服务器、FTP服务器等。
3. 使用systemd和YaST管理服务,监控服务性能。
4. 实施系统和服务安全措施,包括防火墙配置、SSL/TLS证书配置等。
5. 进行故障排除和性能调优。
希望本指南能够帮助您在openSUSE系统上成功部署和管理各种Linux服务。随着技术的不断发展,建议您持续关注最新的安全更新和最佳实践,以确保您的系统和服务始终保持安全、稳定和高效。 |
|