SLES 15 SP4 企业级部署:静态IP、防火墙与sudo用户授权3步配置
在企业生产环境中部署SUSE Linux Enterprise Server(SLES)15 SP4时,系统安装完成后的初始化配置是确保服务器安全稳定运行的关键环节。本文将聚焦三个核心配置任务:静态IP地址设置、防火墙规则配置以及sudo用户权限管理,为DevOps工程师和系统管理员提供一套可复用的标准化流程。
1. 网络配置:静态IP与DNS设置
企业级服务器必须使用静态IP地址以确保服务可达性。SLES 15 SP4提供两种主流配置工具:
1.1 YaST图形化配置(推荐用于桌面环境)
sudo yast2 network在YaST界面中:
- 选择"有线连接"选项卡
- 点击"编辑"按钮进入详细配置
- 切换至"静态地址"模式并填写:
- IP地址(如192.168.1.100)
- 子网掩码(255.255.255.0)
- 默认网关(192.168.1.1)
- 在"主机名/DNS"选项卡配置:
- 主DNS服务器(8.8.8.8)
- 备用DNS服务器(8.8.4.4)
- 搜索域名(example.com)
提示:配置完成后需点击"确定"保存,YaST会自动重启网络服务使配置生效。
1.2 nmtui命令行配置(适用于无图形界面环境)
sudo nmtui操作流程:
- 选择"Edit a connection"
- 选择要配置的网卡(通常为eth0或ens192)
- 将IPv4配置改为"Manual"
- 填写IP地址、网关和DNS信息
- 按Tab键选择"OK"保存
验证配置是否生效:
ip addr show eth0 ping -c 4 google.com关键配置文件位置:
/etc/sysconfig/network/ifcfg-eth0/etc/resolv.conf
2. 防火墙配置:基础服务放行
SLES 15 SP4默认使用firewalld作为防火墙解决方案。以下是企业环境推荐的最小化安全配置:
2.1 放行基础服务端口
sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload2.2 验证防火墙规则
sudo firewall-cmd --list-all预期输出应包含:
services: ssh http https ports: protocols: masquerade: no2.3 高级安全配置(可选)
对于需要更严格安全策略的环境:
# 限制SSH访问源IP sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept' # 设置默认区域为dmz sudo firewall-cmd --set-default-zone=dmz防火墙状态管理命令:
- 启动:
sudo systemctl start firewalld - 开机自启:
sudo systemctl enable firewalld - 状态检查:
sudo firewall-cmd --state
3. 用户权限管理:sudo配置最佳实践
直接使用root账户存在严重安全风险,应遵循最小权限原则配置sudo访问。
3.1 创建管理用户
sudo useradd -m -G wheel adminuser sudo passwd adminuser3.2 配置sudo权限
编辑sudoers文件:
sudo visudo推荐配置:
# 取消wheel组的注释 %wheel ALL=(ALL) ALL # 添加特定命令权限(更安全) adminuser ALL=(ALL) /usr/bin/zypper, /usr/bin/systemctl3.3 安全增强措施
# 设置密码策略 sudo chage -M 90 -m 7 -W 14 adminuser # 禁用root SSH登录 sudo sed -i 's/^PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config sudo systemctl restart sshd用户权限验证方法:
sudo -l -U adminuser4. 配置持久化与故障排查
4.1 网络配置备份与恢复
# 备份配置 sudo tar -czf /backup/network_config_$(date +%F).tar.gz /etc/sysconfig/network/ # 恢复配置 sudo tar -xzf /backup/network_config_2023-08-20.tar.gz -C /4.2 常见问题排查
网络连接故障:
journalctl -u NetworkManager --no-pager -n 50 ip route show防火墙规则冲突:
sudo firewall-cmd --check-config sudo iptables -L -n -vsudo权限问题:
sudo tail -n 20 /var/log/auth.log getent group wheel5. 自动化配置方案
对于需要批量部署的场景,可考虑以下自动化方案:
5.1 使用Ansible Playbook
--- - hosts: servers become: yes tasks: - name: Configure static IP template: src: ifcfg-eth0.j2 dest: /etc/sysconfig/network/ifcfg-eth0 notify: restart network - name: Configure firewall firewalld: service: "{{ item }}" permanent: yes state: enabled loop: - ssh - http - https - name: Create admin user user: name: adminuser groups: wheel password: "{{ 'password' | password_hash('sha512') }}" - name: Secure SSH config lineinfile: path: /etc/ssh/sshd_config regexp: "^{{ item.regexp }}" line: "{{ item.line }}" loop: - { regexp: 'PermitRootLogin', line: 'PermitRootLogin no' } - { regexp: 'PasswordAuthentication', line: 'PasswordAuthentication no' } notify: restart sshd5.2 使用SaltStack状态文件
network_config: file.managed: - name: /etc/sysconfig/network/ifcfg-eth0 - source: salt://network/files/ifcfg-eth0 - template: jinja firewall_rules: firewalld.present: - name: public - services: - ssh - http - https user_setup: user.present: - name: adminuser - groups: - wheel - password: '$6$rounds=656000$salt$hashedpassword'实际部署中,建议结合企业现有的配置管理工具制定标准化部署流程,确保所有服务器配置一致且符合安全规范。对于关键业务系统,应在变更窗口进行操作,并做好完整的回滚预案。