Mapepire のインストール
日本語読みはマパピー、でいいのでしょうか?個人的にはマペピア、マペピーレ、と呼びたい笑
IBM i 側の導入手順はこちら。
Mapepire Server Install/Config
手順は2種類。yumを使う方法、公式サイトにssh接続してダウンロードする方法です。
詳細は上記リンクに記載がありますが、ここではyumのインストール方法だけご紹介します。
yum install mapepire-server
導入すると、ACS yum画面の場合このように表示されます。
mapepire-server というのがそれです。
Mapepire サーバーの開始
上記のリンクにはサーバージョブ、でなくデーモン、と記載していますね。(書いてる人がそっち系の方なんでしょうね(^^)
また、Mapepireサーバーの開始・終了は service-commander が推奨とも書かれており、yumからの導入コマンドも記載されています。
yum install service-commander
手元の環境でも service-commander が導入済みでした。

service-commanderからの開始コマンドはこちら
sc start mapepire
別なMapeireサーバーの開始コマンドも2例記載があります。
Mapepireをyum(rpm)で導入している場合
nohup /QOpenSys/pkgs/bin/mapepire &
Mapepireをyumを使わず導入している場合(公式サイトから個別にダウンロードした場合)
nohup /opt/mapepire/bin/mapepire &
導入ディレクトリーが異なるようです。基本同一コマンドですね。
手元のシステムでの起動例
手元のシステムはyumでMapepireを導入していたようで、上の例の2つ目のコマンドで起動できました。
ここで使っている nohup というコマンドは、
nohup は、SSH接続を切断してもコマンドを実行し続けるためのLinux/Unixコマンドです。サーバー上で長時間かかる処理(バッチ、学習処理、ログ解析など)を実行する際によく使われます。
接続元のターミナル(SIGHUP)が切れてもプロセスが終了しない点が最大の特徴です。
参考:https://qiita.com/zhao-xy/items/1e461adbf65b1d719097(感謝)
というもののようです。IBM i OSコマンドだとSMBJOBコマンドでしょうか。
結果、NETSTATコマンドで見るとポート8076がListenでオープンしていました。

(オプション)Mapepireサーバーが使用するポートの設定
デフォルトでMapepireサーバーの使用するポートは8076です。変更は推奨されません。
必要に応じて、PORT環境変数でポートを操作するか、Service Commanderを使用する場合はサーバー定義のcheck_aliveフィールドのポート番号を変更することで操作可能です。
下のコマンドを実行します。
scedit mapepire
この後ドキュメント上ではTLS設定の説明がありますが、ここでは省略します。
出口点(Exit Point)について
MapepireはJDBCアプリケーションと同じExit pointを使用できます。
参考
SQL and limiting access on your IBM i
一点、JDBCアプリケーションとの相違点は、Mapeprireの設計上、すべてのクライアント接続は127.0.0.1から送信されているように見えます。そのため出口ポイントルールでクライアントIPアドレスでハンドリングができません。IPアドレスベースのルールは追加のロジックを必要とします。ExitプログラムがクライアントのIPアドレスを取得するためには、CLIENT_WRKSTNNAMEの特殊レジスタを検査する必要があります。
クライアントIPによる接続制限
クライアントIPによる接続制限は可能なようです。(上記の127.0.0.1に見える、というのは接続後の通信の事だと思います)
以下のファイルを編集して制限できるようです。
/QOpenSys/etc/mapepire/iprules.conf
将来的には、ルールを複数のファイルに分割できる「ドロップイン」ディレクトリもサポート予定です。上記設定ファイルのフォーマットは以下の通りです
・コメント欄は # で始まります
・ルールは「allow @ deny @ 」の形式で定義されています
・*ワイルドカードはユーザー名やIPアドレスのどこにでも使用できます
・任意の特定の接続に対して、最後のマッチングルールが優先されます
Qxxx で始まるユーザーidの接続を制限
# Allow connections from all hosts
allow *@*
# Deny logins from users starting with the letter Q
deny q*@*
特定のIPアドレスからのアクセスだけ許可
# Deny by default
deny *@*
# Allow only appusr1 and appusr2, and only from 192.168.*.*
allow appusr1@192.168.*
allow appusr2@192.168.*
②クライアント編に続きます。

