firewall を設定する - aktnk/til GitHub Wiki

実現したいこと

  • サーバではないRaspberry Pi 5をサーバとして使うため、firewallを設定する

前提条件

対応手順

  1. ufwをインストールする

    $ sudo apt install ufw
    $ sudo systemctl status ufw
    $ sudo systemctl status ufw
    ufw.service - Uncomplicated firewall
      Loaded: loaded (/lib/systemd/system/ufw.service; enabled; preset: enabled)
      Active: inactive (dead)
        Docs: man:ufw(8)
    $
    
  2. ufwを設定する

    1. デフォルトは全て不許可とする
      $ sudo ufw default deny
      Default incoming policy changed to 'deny'
      $
      
    2. 許可するサービスを導入する
      • ssh を許可
        $ sudo ufw allow ssh
        Rules updated
        Rules updated (v6)
        $
        
      • httpを許可
        $ sudo ufw allow http
        Rules updated
        Rules updated (v6)
        $
        
      • dnsを許可
        $ sudo ufw allow dns
        Rules updated
        Rules updated (v6)
        $
        
  3. ufwサービスを有効化

    $ sudo ufw enable
    Firewall is active and enabled on system startup
    $ sudo systemctl status ufw
     ufw.service - Uncomplicated firewall
      Loaded: loaded (/lib/systemd/system/ufw.service; enabled; preset: enabled)
      Active: inactive (dead)
        Docs: man:ufw(8)
    $ sudo systemctl restart ufw
    $ sudo systemctl status ufw
     ufw.service - Uncomplicated firewall
        Loaded: loaded (/lib/systemd/system/ufw.service; enabled; preset: enabled)
        Active: active (exited) since Mon 2025-02-24 22:39:52 JST; 1s ago
          Docs: man:ufw(8)
       Process: 27445 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status=0/>
      Main PID: 27445 (code=exited, status=0/SUCCESS)
           CPU: 6ms
     
     2月 24 22:39:52 raspi5 systemd[1]: Starting ufw.service - Uncomplicated firewall.>
     2月 24 22:39:52 raspi5 ufw-init[27449]: Firewall already started, use 'force-relo>
     2月 24 22:39:52 raspi5 systemd[1]: Finished ufw.service - Uncomplicated firewall.
     $