1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

とにかく手っ取り早くfreeradiusを立ち上げてEAP-TLS認証を試したい場合に読むやつ

1
Last updated at Posted at 2026-03-22

はじめに

ここに記載された設定はとりあえずすぐにfreeradiusでRADIUSサーバを動かしてEAP-TLS認証が出来ることを検証したいぜ!という方向けの手順です。
RADIUSサーバと同一のCAから発行されたクライアント証明書であれば、期限切れでなければ無条件に受け入れる設定です。本番運用向け設定ではないのでご注意下さい。
少なくともEJBCA(Community Edition)で発行した証明書とOpenWrtを組み合わせて認証できることを確認済みです。

Docker Compose

compose.yml
services:
  freeradius:
    image: freeradius/freeradius-server:latest
    container_name: freeradius
    ports:
      - "1812:1812/udp"
      # - "1813:1813/udp" アカウンティングが要らないなら公開不要
    volumes:
      - ./mods-enabled:/etc/freeradius/mods-enabled
      - ./sites-enabled:/etc/freeradius/sites-enabled
      - ./clients.conf:/etc/freeradius/clients.conf
      - ./certs:/etc/freeradius/certs
    command: >
      sh -lc '
      mkdir -p /tmp/radiusd &&
      chown freerad:freerad /tmp/radiusd &&
      chown -R freerad:freerad /etc/freeradius/certs &&
      chmod +x /etc/freeradius/certs &&
      chmod 600 /etc/freeradius/certs/radius.key &&
      chmod 700 /tmp/radiusd &&
      exec freeradius -X
      '

mods-enabled/eap

freeradiusが信頼するEAP-TLS認証についての設定

eap
eap {
  default_eap_type = tls
  timer_expire     = 60
  ignore_unknown_eap_types = no

  tls-config tls-common {
    private_key_file = /etc/freeradius/certs/radius.key
    certificate_file = /etc/freeradius/certs/radius.pem
    ca_file = /etc/freeradius/certs/ca.pem
    random_file = /dev/urandom

    verify {
      tmpdir = /tmp/radiusd
    }

    require_client_cert = yes
  }

  tls {
    tls = tls-common
  }
}

sites-enabled/default

freeradius自体の大まかな設定

default
server default {

  listen {
    type = auth
    ipaddr = *
    port = 1812
  }

  authorize {
    eap
  }

  authenticate {
    eap
  }

  post-auth {
  }
}

clients.conf

RADIUSアクセスを許可するAPなど機器の設定

clients.conf
client openwrt-osaka-ap {
  ipaddr = 192.168.1.2
  secret = ultrasuperstrongsecret!!!
}

certs

  • radius.pem
    • RADIUSサーバの公開証明書
  • radius.key
    • RADIUSサーバの秘密鍵
  • ca.pem
    • CAの公開証明書

エラーで立ち上がらない場合

多分権限の問題です。
コンテナ自体はroot実行ですが、freeradius自体はfreeradユーザーで動くため、鍵ファイルやコンフィグファイル、一部ディレクトリへのアクセスで問題が発生することがあります。
certsフォルダにchmod +xしたり、radius.keyをchown freerad:freeradしたり、chmod 600したりすると解決します。

おわり

今度はOpenWrtと連携して802.1x Dynamic VLANでも試してみようと思います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?