็†ฑ้–€ๅˆ†้กž
 ่ผ‰ๅ…ฅไธญ…
็›ฎ้Œ„

๐Ÿง Linux ๅฎ‰่ฃๅˆฐไธŠ็ทšๅฏฆๆˆฐ่—ๅœ–:ๅพž่ฃธๆฉŸๅˆฐๅฎ‰ๅ…จไธŠ็ทš็š„ไธ€ๆ—ฅๆต็จ‹

    ๅฆ‚ๆžœไฝ ไปŠๅคฉๆ‹ฟๅˆฐไธ€ๅฐๅ…จๆ–ฐ็š„ๅฏฆ้ซ”ไธปๆฉŸ(ๆˆ– VM),ๅธŒๆœ›ๅœจ「ไธ€ๅคฉไน‹ๅ…ง」ๆŠŠๅฎƒๅพž ่ฃธๆฉŸ ๅปบๅˆฐๅฏๅฐๅค–ๆไพ› Web ๆœๅ‹™,่€Œไธ”้‚„่ฆๅ…ผ้กง ๅฎ‰ๅ…จๆ€ง、ๅ‚™ไปฝ、็ถญ้‹ๆ–นไพฟ,้€™็ฏ‡ๅฐฑๆ˜ฏๅฎŒๆ•ด่—ๅœ–。

    ๆ–‡็ซ ๆœƒ็”จ「ไธ€ๆ—ฅไธŠ็ทšๆต็จ‹」็š„่ง’ๅบฆ,ๆŠŠไฝ ๅธธ่ฆ‹ๆœƒๅšๅˆฐ็š„ไบ‹ๆƒ…ไธฒๆˆไธ€ๆข็ทš: ๅพž็™ผ่กŒ็‰ˆ้ธๆ“‡、็ฃ็ขŸ่ฆๅŠƒ、็ถฒ่ทฏ่ˆ‡ SSH ๅŸบ็ทšๅฎ‰ๅ…จ、ๅธณ่™Ÿ่ˆ‡ๆฌŠ้™、systemd ็ฎก็†、 ้˜ฒ็ซ็‰†่ˆ‡ Fail2Ban,ๅˆฐๆœ€ๅพŒไธŠ็ทšๅ‰็š„ checklist。 ไฝ ๅฏไปฅๆŠŠ้€™็ฏ‡็•ถๆˆ:ๆฏๅฐ Linux ๆ–ฐไธปๆฉŸไธŠ็ทšๅ‰็š„ SOP


    ไธ€、ไธŠ็ทšๅ‰่ฆๅŠƒ:ไธ่ฆ้‚„ๆฒ’่ฃๅฐฑ่ธฉ้›ท

    1. ๅ…ˆ้‡ๆธ…้€™ๅฐๆฉŸๅ™จ่ฆๅšไป€้บผ

    • ็”จ้€”:Web ๆœๅ‹™?API?่ณ‡ๆ–™ๅบซ?CI/CD?ๆช”ๆกˆไผบๆœๅ™จ?
    • ้ ๆœŸ่ฒ ่ผ‰:ๅŒๆ™‚้€ฃ็ทšๆ•ธ、 QPS、ๆ˜ฏๅฆๆœ‰ๅคง้‡ I/O(LOG、DB)。
    • ๅญ˜ๅ–ไพ†ๆบ:ๅชๆœ‰ๅ…ง็ถฒ?่ฆๅฐๅค–?ๆ˜ฏๅฆ้œ€ VPN?
    • ๅฃฝๅ‘ฝ่ˆ‡ๆ“ดๅ……:็ŸญๆœŸ PoC ้‚„ๆ˜ฏ้•ทๆœŸๆญฃๅผ็’ฐๅขƒ?ๆ˜ฏๅฆ่ฆๆ”ฏๆดๆ“ดๅ……็ฃ็ขŸ / ๅŠ ็ฏ€้ปž?

    ้€™ไบ›ๆฑบๅฎšๆœƒๅฝฑ้Ÿฟไฝ ๅพŒ้ข่ฆไธ่ฆ็”จ RAID / ZFS、่ฆไธ่ฆ็”จ Proxy、่ฆไธ่ฆๅš HA。

    2. ็™ผ่กŒ็‰ˆ่ˆ‡ๅฎ‰่ฃๆ–นๅผ้ธๆ“‡

    ๅธธ่ฆ‹ไผบๆœๅ™จ็™ผ่กŒ็‰ˆ:

    • Debian / Ubuntu Server:ๅฅ—ไปถๆ–ฐ、ๆ–‡ไปถๅคš,้ฉๅˆ Web / DevOps ๅ ดๆ™ฏ。
    • Rocky / Alma / RHEL ็ณปๅˆ—:ไผๆฅญ็’ฐๅขƒๅธธ็”จ,็ฉฉๅฎš、็”Ÿๅ‘ฝๅ‘จๆœŸ้•ท。
    • openSUSE / SLES:ๆœ‰ Yast ็ฎก็†ๅทฅๅ…ท,ๅๅ‘ๆŸไบ›ไผๆฅญๅฐŽๅ…ฅ。

    ๅฎ‰่ฃๆ–นๅผ:

    • ๅฏฆ้ซ”ๆฉŸ:็”จ USB / IPMI Virtual Media ้–‹ๆฉŸๅฎ‰่ฃ。
    • ่™›ๆ“ฌๆฉŸ:ๅœจ Proxmox / VMware / Hyper-V ๅปบ็ซ‹ VM,ๆŽ›่ผ‰ ISO ๅฎ‰่ฃ。
    • Cloud:ๅคšๆ•ธ้›ฒๅนณๅฐ็›ดๆŽฅๆไพ› image,็œ็•ฅๅฎ‰่ฃๆญฅ้ฉŸ,ไฝ†ๅฎ‰ๅ…จๅŸบ็ทšไป่ฆ่‡ชๅทฑๅš。

    3. ็ฃ็ขŸ่ˆ‡ๆช”ๆกˆ็ณป็ตฑ่ฆๅŠƒ

    ๅปบ่ญฐๅ…ˆๆƒณๅฅฝ:

    • ็ณป็ตฑๅ€ / ่ณ‡ๆ–™ๅ€ๅˆ†้–‹:/ ่ˆ‡ /data、/var/lib ไน‹้กžๅˆ†้–‹,้ฟๅ…ๆŸๅ€‹็›ฎ้Œ„็ˆ†ๆปฟๆ‹–ๅžฎๆ•ดๆฉŸ。
    • LVM ๆˆ– ZFS:ไน‹ๅพŒ่ฆ่ชฟๆ•ดๅฎน้‡、ๅš snapshot,้€™ๅ…ฉๅ€‹ๅพˆๅฅฝ็”จ。
    • RAID:้‡่ฆๆœๅ‹™่‡ณๅฐ‘่€ƒๆ…ฎ RAID1/RAID10,ไปฅ็กฌ้ซ” RAID ๆŽงๅˆถๅกๆˆ– ZFS/MD RAID ๅฏฆ็พ。
    # ไพ‹:ไฝฟ็”จ lsblk ๆŸฅ็œ‹ๅˆ†ๅ‰ฒ็ตๆžœ
    lsblk -f
    
    # ไพ‹:ๆŸฅ็œ‹็›ฎๅ‰ๆช”ๆกˆ็ณป็ตฑไฝฟ็”จ้‡
    df -h
      

    ไบŒ、ๅฎ‰่ฃไฝœๆฅญ็ณป็ตฑ่ˆ‡ๅŸบๆœฌ็’ฐๅขƒ่จญๅฎš

    1. ๅฎ‰่ฃ้Ž็จ‹ไธญ็š„ๅปบ่ญฐ้ธ้ …

    • Minimal / Server ๅฎ‰่ฃ:ไธ้œ€่ฆ GUI,ๆธ›ๅฐ‘ๆ”ปๆ“Š้ข。
    • ๅ•Ÿ็”จ SSH Server:ๅฎ‰่ฃๆ™‚ๅ‹พ้ธ openssh-server ๆˆ–้กžไผผ้ธ้ …。
    • ๅˆ†ๅ‰ฒ / ๆช”ๆกˆ็ณป็ตฑ:ๆ นๆ“šๅ‰ไธ€็ฏ€่ฆๅŠƒไฝฟ็”จ LVM / ZFS / ext4 / xfs。

    2. ๅฎ‰่ฃๅฎŒ็ฌฌไธ€ไปถไบ‹:ๆ›ดๆ–ฐ่ˆ‡ๅทฅๅ…ท

    # Debian / Ubuntu
    sudo apt update && sudo apt -y upgrade
    sudo apt install -y vim htop curl wget git net-tools
    
    # RHEL / Rocky / Alma
    sudo dnf update -y
    sudo dnf install -y vim htop curl wget git net-tools
      

    3. ่จญๅฎšไธปๆฉŸๅ็จฑ、ๆ™‚ๅ€่ˆ‡ NTP

    # ่จญๅฎšไธปๆฉŸๅ็จฑ
    sudo hostnamectl set-hostname web01-prod
    
    # ๆŸฅ็œ‹็›ฎๅ‰่จญๅฎš
    hostnamectl
    
    # ่จญๅฎšๆ™‚ๅ€(ไพ‹:ๅฐๅŒ—)
    sudo timedatectl set-timezone Asia/Taipei
    
    # ๅ•Ÿ็”จ NTP ๅŒๆญฅ
    sudo timedatectl set-ntp true
    timedatectl status
      

    ็ตฑไธ€ๆ™‚ๅ€่ˆ‡ๆ™‚้–“,ๅฐๆ—ฅๅพŒ็œ‹ log、ๆŽ’ๆŸฅๅ•้กŒ้žๅธธ้‡่ฆ。


    ไธ‰、็ถฒ่ทฏ่ˆ‡ SSH ๅŸบ็ทšๅฎ‰ๅ…จ

    1. ่จญๅฎš้œๆ…‹ IP、Gateway ่ˆ‡ DNS

    ไปฅ Ubuntu 20.04+ Netplan ็‚บไพ‹:

    sudo vim /etc/netplan/01-netcfg.yaml
    
    network:
      version: 2
      renderer: networkd
      ethernets:
        eno1:
          dhcp4: no
          addresses:
            - 192.168.10.50/24
          gateway4: 192.168.10.1
          nameservers:
            addresses: [8.8.8.8, 1.1.1.1]
    
    # ๅฅ—็”จ่จญๅฎš
    sudo netplan apply
      

    2. SSH ๅฎ‰ๅ…จ่จญๅฎš:้—œ้–‰ root ๅฏ†็ขผ็™ปๅ…ฅ、ๅ•Ÿ็”จ้‡‘้‘ฐ

    1. ๅ…ˆๅปบ็ซ‹ไธ€่ˆฌ็ฎก็†ๅธณ่™Ÿ(ไธ‹ไธ€็ฏ€ๆœƒ่ฉณ็ดฐไป‹็ดน)。
    2. ๅœจ่‡ชๅทฑ้›ป่…ฆ็”ข็”Ÿ้‡‘้‘ฐ:ssh-keygen -t ed25519
    3. ไธŠๅ‚ณ้‡‘้‘ฐๅˆฐไผบๆœๅ™จ:ssh-copy-id user@server
    # ็ทจ่ผฏ SSH ่จญๅฎšๆช”
    sudo vim /etc/ssh/sshd_config
    
    # ๅปบ่ญฐ่‡ณๅฐ‘่ชฟๆ•ดไปฅไธ‹ๅนพ้ …
    PermitRootLogin no
    PasswordAuthentication no
    PubkeyAuthentication yes
    X11Forwarding no
    AllowUsers youradminuser
    
    # ๅฅ—็”จ่จญๅฎš
    sudo systemctl reload sshd
      

    ๅœจ ็ขบ่ช้‡‘้‘ฐ็™ปๅ…ฅๆฒ’ๆœ‰ๅ•้กŒไน‹ๅ‰,ๅ…ˆไธ่ฆ้—œ้–‰ PasswordAuthentication,้ฟๅ…้Ž–ๅœจ้–€ๅค–。


    ๅ››、ๅธณ่™Ÿ、็พค็ต„่ˆ‡ๆฌŠ้™ / ACL ็ฎก็†

    1. ๅปบ็ซ‹็ฎก็†ๅธณ่™Ÿ่ˆ‡ sudo ๆฌŠ้™

    # ๅปบ็ซ‹ๅธณ่™Ÿไธฆๅปบ็ซ‹ๅฎถ็›ฎ้Œ„
    sudo useradd -m -s /bin/bash admin
    
    # ่จญๅฎšๅฏ†็ขผ(ไน‹ๅพŒๅฏ้—œ้–‰ๅฏ†็ขผ็™ปๅ…ฅ,ๅชไฟ็•™้‡‘้‘ฐ)
    sudo passwd admin
    
    # ๅŠ ๅ…ฅ sudo ็พค็ต„(Ubuntu)
    sudo usermod -aG sudo admin
    
    # RHEL / Rocky ๅฏ่ƒฝๆ˜ฏ wheel ็พค็ต„
    sudo usermod -aG wheel admin
      

    2. ๅŸบๆœฌๆช”ๆกˆๆฌŠ้™

    # ๆŸฅ็œ‹ๆช”ๆกˆๆฌŠ้™
    ls -l
    
    # ไฟฎๆ”นๆ“ๆœ‰่€…
    sudo chown user:group filename
    
    # ไฟฎๆ”นๆฌŠ้™
    sudo chmod 640 filename
    sudo chmod 750 directory
      

    3. ACL ้€ฒ้šŽๆฌŠ้™ๆŽงๅˆถ

    # ่จญๅฎš้กๅค–ไฝฟ็”จ่€…็š„ ACL ๆฌŠ้™
    sudo setfacl -m u:devuser:rwx /srv/app
    
    # ๆŸฅ็œ‹ ACL
    getfacl /srv/app
      

    ACL ๅพˆ้ฉๅˆ「็›ฎ้Œ„ไธป่ฆ็”ฑๆŸ็พค็ต„็ฎก็†,ไฝ†ๅˆ่ฆ็ตฆ็‰นๅฎšๅธณ่™Ÿ้กๅค–่ฎ€ๅฏซ」็š„ๆƒ…ๅขƒ。


    ไบ”、systemd:ๆœๅ‹™่ˆ‡ๆŽ’็จ‹็š„ๆ ธๅฟƒ

    1. ๅธธ็”จ systemctl ๆŒ‡ไปค

    # ๆŸฅ็œ‹ๆœๅ‹™็‹€ๆ…‹
    sudo systemctl status nginx
    
    # ๅ•Ÿๅ‹• / ๅœๆญข / ้‡ๆ–ฐๅ•Ÿๅ‹•
    sudo systemctl start nginx
    sudo systemctl stop nginx
    sudo systemctl restart nginx
    
    # ่จญๅฎš้–‹ๆฉŸ่‡ชๅ‹•ๅ•Ÿๅ‹• / ๅ–ๆถˆ
    sudo systemctl enable nginx
    sudo systemctl disable nginx
    
    # ๆŸฅ็œ‹็ณป็ตฑ้–‹ๆฉŸ่€—ๆ™‚
    systemd-analyze blame
      

    2. ๅปบ็ซ‹่‡ช่จ‚ๆœๅ‹™ๅ–ฎๅ…ƒๆช”(ไปฅ็ฐกๅ–ฎ Web App ็‚บไพ‹)

    sudo vim /etc/systemd/system/myapp.service
    
    [Unit]
    Description=My Example Web Application
    After=network.target
    
    [Service]
    User=www-data
    Group=www-data
    WorkingDirectory=/srv/myapp
    ExecStart=/usr/bin/python3 app.py
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    
    # ๅฅ—็”จไธฆๅ•Ÿ็”จ
    sudo systemctl daemon-reload
    sudo systemctl enable --now myapp.service
      

    3. ไฝฟ็”จ systemd timer ๅ–ไปฃ crontab

    # ๅปบ็ซ‹ๅ‚™ไปฝ่…ณๆœฌ service
    sudo vim /etc/systemd/system/backup.service
    
    [Unit]
    Description=Daily backup job
    
    [Service]
    Type=oneshot
    ExecStart=/usr/local/sbin/daily-backup.sh
    
    # timer ่จญๅฎš
    sudo vim /etc/systemd/system/backup.timer
    
    [Unit]
    Description=Run backup.service daily at 02:00
    
    [Timer]
    OnCalendar=*-*-* 02:00:00
    Persistent=true
    
    [Install]
    WantedBy=timers.target
    
    # ๅ•Ÿ็”จ
    sudo systemctl daemon-reload
    sudo systemctl enable --now backup.timer
      

    ไฝฟ็”จ timer ๅฅฝ่™•ๆ˜ฏ:ๆœ‰ log、ๅฏไปฅ็”จ systemctl status ็œ‹ๅŸท่กŒ็ด€้Œ„,็ถญ้‹ๆ›ดไธ€่‡ด。


    ๅ…ญ、ๆ—ฅ่ชŒ็ฎก็†:journalctl ่ˆ‡ logrotate

    1. journalctl ๅฟซ้€ŸๆŸฅ็œ‹็ณป็ตฑ log

    # ๆœ€่ฟ‘ๅ•Ÿๅ‹•็ด€้Œ„
    journalctl -b
    
    # ่ฟฝ่นคๆŸๆœๅ‹™ log
    journalctl -u nginx -f
    
    # ้™ๅฎšๆ™‚้–“็ฏ„ๅœ
    journalctl --since "2025-11-15 00:00" --until "2025-11-15 23:59"
      

    2. logrotate ๆŽงๅˆถ log ๆˆ้•ท

    # Nginx ้ ่จญๆœƒๆœ‰ logrotate ่จญๅฎš
    cat /etc/logrotate.d/nginx
    
    /var/log/nginx/*.log {
        daily
        missingok
        rotate 14
        compress
        delaycompress
        notifempty
        create 0640 www-data adm
        sharedscripts
        postrotate
            [ -s /run/nginx.pid ] && kill -USR1 `cat /run/nginx.pid`
        endscript
    }
      

    ๅฐ่‡ช่จ‚ๆ‡‰็”จ็จ‹ๅผ,ไนŸๅฏไปฅๅฏซไธ€ๅ€‹ logrotate ๆช”ๆกˆ,้ฟๅ… log ๆŠŠ็ฃ็ขŸๅƒๆปฟ。


    ไธƒ、้˜ฒ็ซ็‰†่ˆ‡ๅ…ฅไพต้˜ฒ่ญท(iptables / nftables / Fail2Ban)

    1. ้ธๆ“‡้˜ฒ็ซ็‰†ๅ‰็ซฏๅทฅๅ…ท

    • ufw(Ubuntu ๅธธ่ฆ‹):็ฐกๅ–ฎๅฅฝ่จ˜。
    • firewalld(RHEL ็ณปๅˆ—):zone ่ง€ๅฟต,ๆ•ดๅˆๆ€งไฝณ。
    • ็›ดๆŽฅ็”จ iptables / nftables:่ผƒๅฝˆๆ€ง,ไฝ†่ฆๅ‰‡่ฆ่‡ชๅทฑ็ฎก็†。
    # ufw ไพ‹ๅญ:ๅช้–‹ 22、80、443
    sudo ufw default deny incoming
    sudo ufw default allow outgoing
    sudo ufw allow 22/tcp
    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp
    sudo ufw enable
      

    2. Fail2Ban ้˜ฒๆšดๅŠ›็ ด่งฃ

    # ๅฎ‰่ฃ
    sudo apt install -y fail2ban
    
    # ๅปบ็ซ‹ local ่จญๅฎš
    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    sudo vim /etc/fail2ban/jail.local
    
    [sshd]
    enabled  = true
    port     = ssh
    filter   = sshd
    logpath  = /var/log/auth.log
    maxretry = 5
    findtime = 600
    bantime  = 3600
    
    # ๅ•Ÿ็”จ
    sudo systemctl enable --now fail2ban
    fail2ban-client status sshd
      

    Fail2Ban ๅฏไปฅ้‡ๅฐ Nginx、Postfix ็ญ‰ๆœๅ‹™ๅปบ็ซ‹ๅ…ถไป– jail,ๆ•ด้ซ”ๅฎ‰ๅ…จๆ€งๆœƒๆๅ‡ๅพˆๅคš。


    ๅ…ซ、ๅฐๅค–ๆœๅ‹™ไธŠ็ทš:ไปฅ Nginx ๅๅ‘ไปฃ็† + HTTPS ็‚บไพ‹

    1. ๅฎ‰่ฃ Nginx

    # Debian / Ubuntu
    sudo apt install -y nginx
    
    # RHEL / Rocky / Alma
    sudo dnf install -y nginx
    sudo systemctl enable --now nginx
      

    2. ๅปบ็ซ‹่™›ๆ“ฌไธปๆฉŸ่ˆ‡ๅๅ‘ไปฃ็†

    sudo vim /etc/nginx/sites-available/myapp.conf
    
    server {
        listen 80;
        server_name example.com;
    
        access_log /var/log/nginx/myapp_access.log;
        error_log  /var/log/nginx/myapp_error.log;
    
        location / {
            proxy_pass http://127.0.0.1:5000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
    
    # ๅ•Ÿ็”จ็ซ™ๅฐ(Debian / Ubuntu)
    sudo ln -s /etc/nginx/sites-available/myapp.conf /etc/nginx/sites-enabled/
    sudo nginx -t
    sudo systemctl reload nginx
      

    3. ไฝฟ็”จ Let's Encrypt ๅ–ๅพ—ๅ…่ฒปๆ†‘่ญ‰

    # ๅฎ‰่ฃ certbot ่ˆ‡ Nginx ๅค–ๆŽ›(ไพ็™ผ่กŒ็‰ˆ่ชฟๆ•ด)
    sudo apt install -y certbot python3-certbot-nginx
    
    # ่‡ชๅ‹•็”ณ่ซ‹่ˆ‡่จญๅฎš
    sudo certbot --nginx -d example.com
    
    # ๆชขๆŸฅๆŽ’็จ‹
    systemctl status certbot.timer
      

    ๅฎŒๆˆๅพŒ,ไฝ ็š„ๆœๅ‹™ๅฐฑๅทฒ็ถ“้€้Ž HTTPS ๅฐๅค–,ๆญ้…ๅ‰้ข้˜ฒ็ซ็‰†่ˆ‡ Fail2Ban,ๅฎ‰ๅ…จๆ€งๅทฒ็ถ“ๆœ‰ๅŸบๆœฌ้ซ˜ๅบฆ。


    ไน、Proxy ่ˆ‡็ณป็ตฑๆ›ดๆ–ฐ็ญ–็•ฅ(้ธ้…)

    ๅœจๆŸไบ›ไผๆฅญ็’ฐๅขƒ,ๅค–็ถฒๅฟ…้ ˆ้€้Ž Proxy(ๅฆ‚ Squid)ๆ‰่ƒฝๆ›ดๆ–ฐๅฅ—ไปถๆˆ–ๅฐๅค–้€ฃ็ทš。

    • ๅœจ Proxy Server ไธŠ้™ๅˆถๅฏ็”จ็›ฎ็š„ๅœฐ,ๅชๅ…่จฑ็ณป็ตฑๆ›ดๆ–ฐ็š„ๅฎ˜ๆ–น็ซ™้ปž。
    • ๅœจๆ‡‰็”จไผบๆœๅ™จไธŠ่จญๅฎš HTTP_PROXY/HTTPS_PROXY ็’ฐๅขƒ่ฎŠๆ•ธๆˆ– apt/dnf proxy ่จญๅฎš。
    • ๆญ้… log ๅˆ†ๆžๅทฅๅ…ท(ๅฆ‚ GoAccess)่ง€ๅฏŸๆต้‡。

    ๅฆ‚ๆžœไฝ ๆœ‰่‡ชๅทฑๆžถ่จญ็š„ Proxy ๆ•™ๅญธๆ–‡,ๅฏไปฅๅœจ้€™่ฃกๅšๅ…ง้ƒจ้€ฃ็ต,ๅฝขๆˆ「ๅฎ‰ๅ…จไธŠ็ทšๅฎŒๆ•ด่ทฏๅพ‘」。


    ๅ、ๅ‚™ไปฝ่ˆ‡้‚„ๅŽŸๆผ”็ทด:ๆฒ’ๆœ‰ๅ‚™ไปฝๅฐฑ็ญ‰ๆ–ผๆฒ’ไธŠ็ทš

    1. ่ฆๅ‚™ไปฝไป€้บผ?

    • ็ณป็ตฑ่จญๅฎš:/etc、systemd service、Nginx config、Fail2Ban、้˜ฒ็ซ็‰†่ฆๅ‰‡。
    • ๆ‡‰็”จ็จ‹ๅผ่ˆ‡่ณ‡ๆ–™:/srv、/var/www、่ณ‡ๆ–™ๅบซ。
    • ๅธณ่™Ÿ่ˆ‡ๆฌŠ้™:/home、ACL ่จญๅฎš。

    2. ็ฐกๅ–ฎๆช”ๆกˆๅ‚™ไปฝ(rsync ็ฏ„ไพ‹)

    # ๅ‚™ไปฝ /etc ๅˆฐๅ‚™ๆดไธปๆฉŸ
    rsync -avz /etc backup@backup-server:/backup/web01/etc/
    
    # ๅ‚™ไปฝ web ็›ฎ้Œ„
    rsync -avz /var/www/ backup@backup-server:/backup/web01/www/
      

    3. Snapshot / ๆ˜ ๅƒๆช”ๅ‚™ไปฝ

    • ๅฆ‚ๆžœๅœจ Proxmox ไธŠ,ๅฏไปฅ็”จ ๅฟซ็…ง + ๅ‚™ไปฝ ็š„ๆ–นๅผไฟ่ญทๆ•ดๅฐ VM。
    • ไฝฟ็”จ ZFS ๆ™‚,่€ƒๆ…ฎ zfs snapshot + zfs send/receive ๅš้€ฒ้šŽๅ‚™ๆด。

    4. ไธ€ๅฎš่ฆๅš้‚„ๅŽŸๆผ”็ทด

    ๅ‚™ไปฝๆฒ’ๆœ‰็ถ“้Ž้‚„ๅŽŸๆธฌ่ฉฆ,ๅช่ƒฝ็ฎ—ๆ˜ฏ「ๅฎ‰ๆ…ฐ่‡ชๅทฑ」。่‡ณๅฐ‘ๆบ–ๅ‚™:

    • ๅœจๆธฌ่ฉฆ็’ฐๅขƒ็”จๅ‚™ไปฝ่ณ‡ๆ–™้‡ๆ–ฐๅ•Ÿๅ‹•ไธ€ๅฅ—ๆœๅ‹™。
    • ่จ˜้Œ„ๅฎŒๆ•ดๆญฅ้ฉŸ,ๅฏซๆˆ SOP ๆˆ– Runbook。

    ๅไธ€、ๆญฃๅผไธŠ็ทšๅ‰็š„ 20 ้ …ๆชขๆŸฅๆธ…ๅ–ฎ

    1. ไธปๆฉŸๅ็จฑ่ˆ‡ๆ™‚ๅ€ๅทฒๆญฃ็ขบ่จญๅฎš,timedatectl ้กฏ็คบ NTP ๆญฃๅธธ。
    2. ็ณป็ตฑๅทฒๅฎŒๆ•ดๆ›ดๆ–ฐ(็„ก้‡ๅคงๅฎ‰ๅ…จๆ›ดๆ–ฐๆœช่ฃ)。
    3. ๅธณ่™Ÿ / ็พค็ต„่ฆๅŠƒๅฎŒๆˆ,ๆฒ’ๆœ‰ไธๅฟ…่ฆ็š„้ ่จญๅธณ่™Ÿ。
    4. ๅทฒ้—œ้–‰ root ็›ดๆŽฅ SSH ็™ปๅ…ฅ。
    5. ็ฎก็†่€…ๅธณ่™Ÿๅ‡ไฝฟ็”จ SSH ้‡‘้‘ฐ็™ปๅ…ฅ。
    6. SSH ่จญๅฎšไธญ้—œ้–‰ๆœชไฝฟ็”จๅŠŸ่ƒฝ(X11Forwarding、ๅฏ†็ขผ็™ปๅ…ฅ็ญ‰)。
    7. ้˜ฒ็ซ็‰†ๅทฒๅ•Ÿ็”จ,ๅƒ…้–‹ๅฟ…่ฆ Port(22、80、443…)。
    8. Fail2Ban ๆˆ–้กžไผผๆฉŸๅˆถๅทฒๅ•Ÿ็”จไธฆ็ขบ่ชๆœƒๅฐ้Ž–ๆธฌ่ฉฆ IP。
    9. Nginx / Web Server config ๅทฒ้€š้Ž nginx -t ๆˆ–็ญ‰ๆ•ˆๆชขๆŸฅ。
    10. HTTPS ๆ†‘่ญ‰ๆœ‰ๆ•ˆ,็€่ฆฝๅ™จ็„กๅฎ‰ๅ…จ่ญฆๅ‘Š。
    11. ็ณป็ตฑๆœๅ‹™็š†็”ฑ systemd ็ฎก็†,ๆœ‰่จญๅฎš Restart ็ญ–็•ฅ。
    12. ๆ‰€ๆœ‰่‡ช่จ‚ service / timer ๅทฒ enable ไธฆๅœจ้‡้–‹ๆฉŸๅพŒๆธฌ่ฉฆๆญฃๅธธ。
    13. logrotate ๅทฒ้‡ๅฐๅคง้‡ log ็š„ๆœๅ‹™่จญๅฅฝ่ผชๆ›ฟ。
    14. ็ฃ็ขŸไฝฟ็”จ้‡ๅœจๅฎ‰ๅ…จ็ฏ„ๅœๅ…ง(df -h),ๆฒ’ๆœ‰ๅ–ฎไธ€ๅˆ†ๅ‰ฒๅ ็”จ่ถ…้Ž 80%。
    15. ้‡่ฆ่จญๅฎšๆช”่ˆ‡่ณ‡ๆ–™ๅทฒๅ‚™ไปฝๅˆฐ「ๅฆไธ€ๅฐๆฉŸๅ™จ」ๆˆ–้ ็ซฏๅญ˜ๆ”พ。
    16. ๅ‚™ไปฝ่…ณๆœฌ่‡ณๅฐ‘ๆˆๅŠŸๅŸท่กŒไธ€ๆฌก,ไธฆๆ‰‹ๅ‹•้ฉ—่ญ‰ๅ‚™ไปฝๅ…งๅฎน。
    17. ๅทฒ็”จๅฃ“ๅŠ›ๆธฌ่ฉฆ / ่ฒ ่ผ‰ๆธฌ่ฉฆๅทฅๅ…ท็ฐกๅ–ฎๆ‰“้Ž(ๅฆ‚ ab、wrk),่ง€ๅฏŸ CPU / RAM / I/O ่กŒ็‚บ。
    18. ็›ฃๆŽง / ๅ‘Š่ญฆๅทฒๆŽ›ไธŠ(Zabbix、Prometheus、็ฐกๆ˜“ shell ๆชขๆŸฅไนŸๅฅฝ)。
    19. ๆœ‰่จ˜้Œ„ๆ–‡ไปถ:ๅŒ…ๅซ IP、ๅธณ่™Ÿ、Port、ๆœๅ‹™็‰ˆๆœฌ、ๅ‚™ไปฝไฝ็ฝฎ。
    20. ๆœ‰้ ๅ‚™ๅ›žๆปพๆ–นๆกˆ:ๅŒ…ๅซ่ˆŠ็‰ˆ VM / ๆ˜ ๅƒๆช”、ๆšซๅœไธŠ็ทš็š„ SOP。

    ๅไบŒ、ๅปถไผธ้–ฑ่ฎ€่ˆ‡้€ฒ้šŽๆ–นๅ‘

    ๅฎŒๆˆ้€™็ฏ‡่—ๅœ–ไธญ็š„ๆญฅ้ฉŸ,ไฝ ๅทฒ็ถ“ๅ…ทๅ‚™ไธ€ๅฐ「ๅฏไบคไปฃ」็š„ Linux ไผบๆœๅ™จ。ๆŽฅไธ‹ไพ†ๅฏไปฅๆทฑๅ…ฅ:

    • ่™›ๆ“ฌๅŒ–่ˆ‡ๅข้›†:ไฝฟ็”จ Proxmox / KVM ๆ‰“้€ ๅคš็ฏ€้ปžๆžถๆง‹่ˆ‡ HA。
    • ่‡ชๅ‹•ๅŒ–่ˆ‡ IaC:ๅฐŽๅ…ฅ Ansible / Terraform,ๆŠŠ้€™็ฏ‡็š„ๆญฅ้ฉŸ่ฎŠๆˆ็จ‹ๅผ็ขผ。
    • ้€ฒ้šŽๅฎ‰ๅ…จ:SELinux / AppArmor、็ซฏ้ปž้˜ฒ่ญท、WAF、Zero Trust ๆฆ‚ๅฟต。
    • ่ง€ๆธฌๆ€ง:Prometheus + Grafana、ELK / OpenSearch ๅปบ็ซ‹ log ่ˆ‡ metric ๅนณๅฐ。

    ๅฆ‚ๆžœไฝ ๆบ–ๅ‚™่ฎ“้€™ๅฅ—ๆต็จ‹่ฎŠๆˆๅœ˜้šŠๆจ™ๆบ–,ๅฏไปฅๆŠŠๆœฌๆ–‡ๆ”นๅฏซๆˆๅ…ฌๅธๅ…ง้ƒจ็š„ 「Linux ๆ–ฐไธปๆฉŸไธŠ็ทš SOP」,ๅ†ๆญ้…่‡ชๅ‹•ๅŒ–ๅทฅๅ…ท,่ฎ“ๆฏไธ€ๅฐๆ–ฐไผบๆœๅ™จ้ƒฝ่ƒฝๅœจไธ€ๅคฉๅ…ง ็ฉฉๅฎš、ๅฎ‰ๅ…จๅœฐไธŠ็ทš

    ๐Ÿ”— ๅˆ†ไบซ้€™็ฏ‡ LINE Facebook X

    ๆฒ’ๆœ‰็•™่จ€:

    ๅผต่ฒผ็•™่จ€

    ๅญ—็ดš