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


関連記事

no image

サーバ運用でよく使うスクリプト(netstat)

最近ご無沙汰なのでシェルの書式を忘れてきた…ということで自分用に備忘録。 – netstatでステータスが”ESTABLISHED”のセッションを一覧表示し、1秒更 …

no image

カーネル負荷テストツール(LTP)

カーネル負荷テストツール(LTP) IBM、SGI、OSDLなどが共同で運営しているLinux Test Project(ltp)の提供するツール を使ってサーバへの負荷テストを行う。 ↑ …

no image

[メモ]”snmpd: truncating integer value > 32 bits”[何かな?]

ただいま炎上案件の火消し作業を絶賛手伝い中につき、調べてる時間が無いため、メモ書きしておきます(自分用)。 CentOS5.10のAppサーバーで以下のようなメッセージが/var/log/messag …

YAMAHA RTX1200 VPNアカウント作成手順(PPTP)

前提条件 † すでにVPNサービスが稼働している状態でのアカウント追加の手順。 注意事項としては トンネルバインド数およびIPアドレスプールを一緒に追加する トンネルバインド数、IPアド …

no image

haproxyを試す 5.コマンドライン操作

  先日のステータス出力を検証した流れで、haproxyのコマンドライン操作について試したことを抜粋。 参考:またまたお世話になっております! Ver1.5 マニュアル 9.2 Unix Socket …