当前位置: 首页 > news >正文

从CentOS 8桌面到防火墙:手把手带你复现Linux课本里的12个关键操作

从CentOS 8桌面到防火墙:12个Linux核心操作实战指南

1. 桌面环境个性化设置

对于Linux新手来说,熟悉桌面环境是入门的第一步。CentOS 8默认使用GNOME桌面环境,提供了直观的用户界面。让我们从两个最常用的桌面操作开始:

1.1 修改桌面背景与系统时间

更改桌面背景

  1. 在桌面空白处右键点击
  2. 选择"更改背景"选项
  3. 在弹出的窗口中选择喜欢的壁纸
  4. 或者点击"+"按钮添加自定义图片

调整系统时间

# 查看当前系统时间 timedatectl # 设置系统时间(需要root权限) sudo timedatectl set-time "2023-08-15 14:30:00" # 启用网络时间同步 sudo timedatectl set-ntp true

提示:如果时间设置后仍不正确,可能需要检查时区设置,使用timedatectl list-timezones查看可用时区,然后使用sudo timedatectl set-timezone Asia/Shanghai设置。

1.2 安装中文输入法

对于中文用户,安装输入法是必不可少的步骤:

# 安装ibus拼音输入法 sudo dnf install ibus-libpinyin -y # 启用ibus输入法框架 ibus-setup # 重启系统后,在设置中添加中文输入法

常见问题排查:

  • 如果输入法不显示,尝试重启ibus服务:ibus restart
  • 确保在"区域和语言"设置中已添加中文输入源

2. 文件权限管理实战

2.1 理解Linux文件权限

Linux文件权限由10个字符表示,例如:

-rwxr-xr-x 1 user group 4096 Aug 15 14:30 example.sh

分解说明:

  • 第1位:文件类型(-普通文件,d目录,l链接等)
  • 2-4位:所有者权限
  • 5-7位:所属组权限
  • 8-10位:其他用户权限

2.2 chmod与chown实战

修改文件权限

# 数字方式设置权限(r=4,w=2,x=1) chmod 755 example.sh # rwxr-xr-x # 符号方式添加执行权限 chmod +x example.sh # 递归修改目录下所有文件权限 chmod -R 644 /path/to/directory

修改文件所有者

# 修改文件所有者 sudo chown newuser:newgroup filename # 仅修改用户 sudo chown newuser filename # 仅修改组 sudo chgrp newgroup filename # 或 sudo chown :newgroup filename

权限修改示例场景:

  1. 使脚本可执行:chmod +x script.sh
  2. 限制配置文件仅所有者可读写:chmod 600 config.conf
  3. 共享目录给特定组:chown :developers /shared && chmod 770 /shared

3. 进程管理与定时任务

3.1 进程监控与管理

常用进程命令:

# 查看系统进程 ps aux # 动态查看进程 top # 或更现代的替代品 htop # 按名称查找进程 pgrep -l nginx # 终止进程 kill 1234 # 通过PID pkill nginx # 通过名称

进程状态说明:

  • R:运行中
  • S:休眠中
  • D:不可中断的休眠
  • Z:僵尸进程
  • T:停止或被追踪

3.2 crontab定时任务配置

基本语法

* * * * * command_to_execute ┬ ┬ ┬ ┬ ┬ │ │ │ │ │ │ │ │ │ └── 星期几 (0 - 6) (0是星期日) │ │ │ └──── 月份 (1 - 12) │ │ └────── 日 (1 - 31) │ └──────── 小时 (0 - 23) └────────── 分钟 (0 - 59)

实际案例

# 编辑当前用户的crontab crontab -e # 每天凌晨3点备份 0 3 * * * /home/user/backup.sh # 每5分钟检查一次服务 */5 * * * * /usr/bin/systemctl check-service # 每周一9点发送报告 0 9 * * 1 /usr/bin/send-report

注意:crontab中的命令最好使用绝对路径,因为cron的执行环境PATH可能与用户shell不同。

日志查看

# 查看cron日志(需要root) tail -f /var/log/cron

4. 网络配置与防火墙

4.1 网络接口配置

临时设置IP

sudo ip addr add 192.168.1.100/24 dev eth0 sudo ip link set eth0 up

永久配置(CentOS 8使用nmcli):

# 查看网络连接 nmcli connection show # 修改连接配置 nmcli connection modify eth0 ipv4.addresses 192.168.1.100/24 nmcli connection modify eth0 ipv4.gateway 192.168.1.1 nmcli connection modify eth0 ipv4.dns "8.8.8.8 8.8.4.4" nmcli connection modify eth0 ipv4.method manual nmcli connection up eth0

4.2 iptables防火墙实战

基本规则管理

# 查看当前规则 sudo iptables -L -n -v # 清空所有规则 sudo iptables -F # 保存规则(CentOS) sudo service iptables save

端口控制案例

# 允许SSH访问(端口22) sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许特定IP访问MySQL(3306) sudo iptables -A INPUT -p tcp -s 192.168.1.50 --dport 3306 -j ACCEPT # 阻止其他所有3306访问 sudo iptables -A INPUT -p tcp --dport 3306 -j DROP # 允许已建立的连接 sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 默认拒绝所有输入 sudo iptables -P INPUT DROP

自定义链示例

# 创建自定义链 sudo iptables -N WEB_TRAFFIC # 添加规则到自定义链 sudo iptables -A WEB_TRAFFIC -p tcp --dport 80 -j ACCEPT sudo iptables -A WEB_TRAFFIC -p tcp --dport 443 -j ACCEPT # 将自定义链应用到INPUT链 sudo iptables -A INPUT -j WEB_TRAFFIC

5. 日志管理与分析

5.1 系统日志查看

常用日志文件

  • /var/log/messages:通用系统消息
  • /var/log/secure:安全相关日志
  • /var/log/cron:定时任务日志
  • /var/log/maillog:邮件服务日志
  • /var/log/httpd/:Apache日志目录

日志查看命令

# 实时查看新日志 tail -f /var/log/messages # 按时间筛选日志 journalctl --since "2023-08-15 00:00:00" --until "2023-08-16 00:00:00" # 按服务筛选 journalctl -u nginx.service

5.2 logrotate配置

示例配置(/etc/logrotate.d/nginx):

/var/log/nginx/*.log { daily missingok rotate 14 compress delaycompress notifempty create 0640 www-data adm sharedscripts postrotate /usr/bin/systemctl reload nginx > /dev/null endscript }

关键参数说明:

  • daily:每天轮转
  • rotate 14:保留14个旧日志
  • compress:使用gzip压缩旧日志
  • create:设置新日志文件的权限和所有者
  • postrotate:轮转后执行的命令

6. 备份与恢复策略

6.1 使用tar进行备份

# 创建完整备份 sudo tar -czvf /backup/full-backup-$(date +%F).tar.gz --exclude=/backup --exclude=/proc --exclude=/tmp --exclude=/mnt --exclude=/dev --exclude=/sys / # 增量备份(需要先创建snapshot文件) sudo tar -g /backup/snapshot -czvf /backup/incr-backup-$(date +%F).tar.gz /home

6.2 rsync远程同步

# 本地同步 rsync -avz --delete /source/directory/ /destination/directory/ # 远程同步 rsync -avz -e ssh /local/path/ user@remote:/remote/path/ # 定时同步脚本示例 #!/bin/bash LOG="/var/log/rsync.log" echo "Starting sync at $(date)" >> $LOG rsync -avz --delete /data/ backup-server:/backups/ >> $LOG 2>&1 echo "Sync completed at $(date)" >> $LOG

7. 软件包管理

7.1 DNF基础操作

# 更新所有软件包 sudo dnf update # 搜索软件包 sudo dnf search nginx # 安装软件 sudo dnf install nginx # 移除软件 sudo dnf remove nginx # 查看软件信息 sudo dnf info nginx

7.2 添加第三方仓库

# 添加EPEL仓库 sudo dnf install epel-release # 添加Remi仓库(PHP相关) sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm # 启用特定仓库 sudo dnf config-manager --set-enabled remi-php74

8. 用户与组管理

8.1 用户账户操作

# 创建新用户 sudo useradd -m -s /bin/bash newuser # 设置密码 sudo passwd newuser # 修改用户属性 sudo usermod -aG wheel newuser # 添加到wheel组(管理员) sudo usermod -L newuser # 锁定账户 sudo usermod -U newuser # 解锁账户 # 删除用户 sudo userdel -r newuser # -r同时删除家目录

8.2 组管理

# 创建新组 sudo groupadd developers # 将用户添加到组 sudo usermod -aG developers user1 sudo usermod -aG developers user2 # 设置目录的组权限 sudo chown :developers /project sudo chmod 2775 /project # 设置SGID位,新文件继承组

9. 磁盘管理与LVM

9.1 磁盘分区与挂载

# 查看磁盘信息 lsblk fdisk -l # 创建新分区 sudo fdisk /dev/sdb # 交互式分区工具 # 格式化分区 sudo mkfs.ext4 /dev/sdb1 # 创建挂载点并挂载 sudo mkdir /data sudo mount /dev/sdb1 /data # 自动挂载(/etc/fstab) /dev/sdb1 /data ext4 defaults 0 2

9.2 LVM基础操作

# 创建物理卷 sudo pvcreate /dev/sdb1 # 创建卷组 sudo vgcreate vg_data /dev/sdb1 # 创建逻辑卷 sudo lvcreate -L 20G -n lv_www vg_data # 扩展逻辑卷 sudo lvextend -L +5G /dev/vg_data/lv_www sudo resize2fs /dev/vg_data/lv_www # 扩展文件系统

10. 性能监控与优化

10.1 系统监控工具

# 实时系统监控 top htop glances # 内存使用情况 free -h # 磁盘使用情况 df -h du -sh /path # IO监控 iostat -x 1 iotop

10.2 服务优化

nginx示例配置优化

worker_processes auto; # 自动设置worker数量 worker_connections 1024; # 每个worker的连接数 keepalive_timeout 65; gzip on; # 启用压缩 # 调整系统限制 sudo echo "fs.file-max = 65535" >> /etc/sysctl.conf sudo sysctl -p

11. Shell脚本实战

11.1 基础脚本示例

系统信息收集脚本

#!/bin/bash # 系统信息收集脚本 echo "===== System Information =====" echo "Hostname: $(hostname)" echo "Kernel: $(uname -r)" echo "Uptime: $(uptime | awk '{print $3,$4}' | sed 's/,//')" echo "CPU: $(grep 'model name' /proc/cpuinfo | head -1 | cut -d: -f2 | sed 's/^ *//')" echo "Memory: $(free -h | grep Mem | awk '{print $4"/"$2}') free" echo "Disk: $(df -h / | tail -1 | awk '{print $4}') free on /"

11.2 实用脚本集合

日志分析脚本

#!/bin/bash # 分析nginx访问日志 LOG_FILE="/var/log/nginx/access.log" echo "Top 10 IP addresses:" awk '{print $1}' $LOG_FILE | sort | uniq -c | sort -nr | head -10 echo -e "\nTop 10 requested URLs:" awk '{print $7}' $LOG_FILE | sort | uniq -c | sort -nr | head -10 echo -e "\nResponse status codes:" awk '{print $9}' $LOG_FILE | sort | uniq -c | sort -nr

12. 安全加固措施

12.1 SSH安全配置

/etc/ssh/sshd_config建议修改

Port 2222 # 修改默认端口 PermitRootLogin no # 禁止root直接登录 PasswordAuthentication no # 禁用密码认证,使用密钥 MaxAuthTries 3 # 最大尝试次数 ClientAliveInterval 300 # 客户端活动检查 ClientAliveCountMax 2 AllowUsers user1 user2 # 只允许特定用户

应用修改

sudo systemctl restart sshd

12.2 防火墙增强

# 防止DDoS攻击 sudo iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT # 阻止端口扫描 sudo iptables -N ANTISCAN sudo iptables -A ANTISCAN -m recent --name ATTACK --set -j DROP sudo iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT sudo iptables -A INPUT -p tcp --syn -j ANTISCAN # 保存规则 sudo service iptables save
http://www.jsqmd.com/news/602840/

相关文章:

  • 基于单片机的电池检测系统(有完整资料)
  • 利用快马AI三分钟生成telnet客户端原型,快速验证网络通信逻辑
  • 3PEAK思瑞浦 TPW4052-TR TSSOP16 模拟开关/多路复用器
  • 2026年海南氟系统中央空调厂家推荐:氟系统中央空调/嵌入式中央空调/小型中央空调/风冷中央空调/智能中央空调/别墅家用中央空调/商用中央空调/多联机中央空调/家用中央空调专业供应商 - 品牌推荐官
  • 个人开发者福音:手把手教你用V免签二开版源码,5分钟搞定个人网站收款(附易支付接口配置)
  • 如何突破Windows网络性能测试瓶颈?Windows网络性能测试工具的全面应用指南
  • 从医疗设备到工业PLC:深入聊聊‘浮地设计’为什么是隔离安全的最后防线(附Y电容、光耦选型指南)
  • Qwen3字幕对齐效果展示:多语言视频字幕同步精度对比
  • Phi-4-mini-reasoning部署指南:多模型共存时GPU显存隔离与服务端口分配
  • LVGL图像转换工具:离线高效处理方案
  • 5步打造极速Windows系统:Win11Debloat全方位优化指南
  • 免费开源字体 Source Sans 3:现代UI设计的完整实用指南
  • 苏州豪城悦洁家政服务经营部:姑苏区靠谱的防水补漏哪家专业 - LYL仔仔
  • BNC实战指南:从NTRIP数据流接入到高精度PPP解算全流程解析
  • Win11Debloat系统优化工具使用指南
  • [具身智能-262]:全连接网络网络的组成与定义
  • 说说长春、吉林等地实力强的挤塑板材料厂家,哪家专业靠谱? - mypinpai
  • 「权威评测」2026年国内粉体气力输送系统厂家实力推荐,谁才是靠谱之选? - 深度智识库
  • STM32F103双I2S通道实现音频同步收发:配置与优化指南
  • Cursor AI破解免费VIP 2025:终极完整教程与深度指南
  • 三步掌握GHelper:解决华硕笔记本性能控制难题的轻量方案
  • 探索MacOS窗口管理新境界:3步掌握Easy Move+Resize高效操作
  • 2026年辽源好用的外墙挤塑板厂家排名,怎么选择? - 工业品牌热点
  • Linux 调度算法概览
  • 如何用4步解锁浏览器超能力?Greasy Fork用户脚本全攻略
  • 电脑里已有旧版Office?Mocreak一键升级/共存安装避坑全记录(附卸载残留清理技巧)
  • 聊聊2026年辽源好用的挤塑板材料厂家,哪家性价比高 - 工业设备
  • BilibiliDown:多场景B站视频资源管理的全平台解决方案
  • 新手福音:用快马平台AI生成你的第一个待办事项应用
  • 2026四川最新个人IP打造服务企业推荐!成都优质品牌/公司权威榜单发布 - 十大品牌榜