harumaki.net

インフラ屋の覚書や、ラーメン食べある記とか。

GNU/Linux network ssh

OpenSSHのMatchディレクティブを利用したアクセスコントロール

投稿日:2012年8月12日

OpenSSH4.4以上で利用できるようになったMatch(条件分岐)ディレクティブを使った
アクセスコントロールを検証。

参考:お世話になっております!
OpenSSH-5.9p1 日本語マニュアルページ (2011/09/10)
http://www.unixuser.org/~euske/doc/openssh/jman/sshd_config.html

きっかけとしては、
原則rootのログインは禁止でOKだけど、特定のリモートホストからのバッチ処理で
root権限が必要になってしまったので、このホストだけはrootでの接続を許可したい
というニーズができた、というのが理由です。

そこでPAM認証の設定で検証しようとしていたら、たまたまMatchディレクティブで
PermitRootLoginのコントロールができるようになっていたので
(更新履歴を調べたら、ずいぶん前でしたね…orz)
CentOS6.*のパッケージに含まれるOpenSSH-5.3系で、手っ取り早く試してみました。

Matchディレクティブでできること(なんとなくユースケース)

  • デフォルトは公開鍵認証だけだけど、ユーザーによってパスワード認証を許可できるOK
  • 特定のホストからはrootログインを受け付ける
  • 踏み台サーバーにはX11転送を許可する

などなど。

条件分岐に使用できるパターン

パターンマッチング用のパラメータ

  • User(ユーザ名)
    • 設定例
      Match User <USERNAME>
  • Group(グループ名)
    • 設定例
      Match User <GROUPNAME>
  • Host(ホスト名)
    • 設定例
      ”Match Host <webserver.domain.local’>’
  • Address(アドレス) ※CIDR表記での指定も可能。
    • 設定例
      Match Address 192.168.0.254/32
      Match Address 192.168.0.0/24
      Match Address 192.168.0.*

パターンマッチングに関する備考

  • パターンの指定には単一のエントリ、またはカンマで区切りでの複数のパターン
    ワイルドカードを使ったパターンマッチングも使用可能。
  • Address指定では、CIDR表記での指定も可能。

Matchディレクティブ内で使用できる設定

sshd_configで使用できるパラメータすべてが使用できるわけではないので、確認すること。

	AllowAgentForwarding
	AllowTcpForwarding
	AuthorizedKeysFile
	AuthorizedPrincipalsFile
	Banner
	ChrootDirectory
	ForceCommand
	GatewayPorts
	GSSAPIAuthentication
	HostbasedAuthentication
	HostbasedUsesNameFromPacketOnly
	KbdInteractiveAuthentication
	KerberosAuthentication
	MaxAuthTries
	MaxSessions
	PasswordAuthentication
	PermitEmptyPasswords
	PermitOpen
	PermitRootLogin
	PermitTunnel
	PubkeyAuthentication
	RhostsRSAAuthentication
	RSAAuthentication
	X11DisplayOffset
	X11Forwarding
	X11UseLocalHost

サンプルケース

やりたいこと

  • LANの内外でアクセス権限を変えたい
  • リモートのバッチ処理サーバーのうち、rootでの処理が必要なジョブを動かすサーバーは
    PermitRootLoginを許可、変わりに認証は公開鍵認証のみとする。

権限割り当てのイメージ

  • LAN外
    PermitRootLogin はもちろんno
    パスワード認証を許可しない
    公開鍵認証のみ
    X11転送を禁止。
  • LAN内
    PermitRootLogin を許可する。
    パスワード認証を許可する
    X11転送を許可。
  • リモートのバッチ処理サーバー
    PermitRootLogin を許可する。
    →バッチ処理が目的。root権限が必要なファイルの取得、アップが必要。
    パスワード認証を許可しない
    公開鍵認証のみ
    X11転送を禁止。

設定ファイルサンプル(sshd_config)

  • sshd_config抜粋
    Port 50022
    Protocol 2
    SyslogFacility AUTHPRIV
    PermitRootLogin no
    PubkeyAuthentication yes
    PasswordAuthentication no
    X11Forwarding no
    
    # LAN内ホストからの接続時のアクセスコントロール
    Match Address 192.168.1.0/24	
            PermitRootLogin yes
            PasswordAuthentication yes
            X11Forwarding yes
    # バッチ処理サーバーへのアクセスコントロール
    Match Address ***.***.***.***/32
            PermitRootLogin yes

上記の設定にてアクセスコントロールの動作を確認。
今回の要件は問題なく完了できそうです。

 

-GNU/Linux, network, ssh

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

YAMAHA RTX1200でIPsec VPN設定(クライアント接続)ドキュメント2.クライアント編

  前回はルーターの設定編だったので、今回はクライアントソフトYMS-VPN7を使用しての接続の手順を記載しました。 IPアドレスは記述例として入力してありますので、参考にされる場合は都度読み替えてく …

no image

浮動小数点の計算(zsh)

たまにしかやらないことはすぐに忘れちゃうので、メモです。 浮動小数点(0.2とか、小数点での計算)はbashではできないため、zshを利用。 以下、バックアップデータの増分を計算するスクリプトを作成。 …

no image

[juniper] SRX(JunOS) ルーティング不具合修正(非対称ルートへの対応)

  SSGシリーズからSRX220にリプレイスを行った際に、VPNを経由したリモートオフィスとのLAN通信がうまくいかない事象が起きたので、トラブルシュート。 ・社内LANにおいてゲートウェイが複数あ …

no image

time(シェルコマンド)

いわゆるtimeコマンド。 コマンドの実行時間を計測する。 nagiosプラグインの動作検証にて、コンパイルしたプラグインとperl版のプラグインの 実行速度の比較によく使うので、メモっとく。 あとp …

no image

[パッケージ管理]porgのインストール

テスト環境にpacoを入れておこうと、久々に本家サイトへアクセスしたら "This project is no longer active."とのこと。あらら・・・ つづけて、&q …