2019年5月21日火曜日

ARINからIPリストのダウンロードができない場合がある

以前作成したIPアドレス国確認という機能は、日々IPアドレス情報をICANN配下の管理組織(RIR)のサイトからダウンロードし、IPアドレスリストを生成しています。このIPアドレスリスト生成が2日連続で失敗していたので、原因を調べてみました。

結論から言うと、北米を管理しているARIN (American Registry for Internet Numbers) からのIPアドレスリストダウンロードに、時々失敗しているようです。なんか、認証を求められることがあります。
ftp://ftp.arin.net/pub/stats/arin/delegated-arin-extended-latest

でも、上手くいくときは上手くいくんですよね。謎です。
まあ向こう側の設定の問題だと思うので、しばらく様子見としたいと思います。

【2019/6/2追記】
なんか最近は上手くダウンロードできています。何でですかね?
今回は対向側が原因っぽいので、これで解決としておきたいと思います。

2019年5月6日月曜日

PHPでroot権限でコマンドを実行させる

nmapを実行して結果を表示するページを作成中です。nmapはお馴染みのコマンドですが、実はroot権限でないと動作しません。
PHPで開発するとapaheユーザ権限でコマンドを実行するため、そのままだと実行できないわけです。

ということで、sudoを利用します。
visudoを利用してsudoの設定を編集します。

以下を追加。
apache ALL=(root) NOPASSWD: ALL
参考にさせて頂きました。
Apache ユーザに別のユーザとして処理を実行させる 明滅するプログラマの思索

期待通り、sudoを利用してroot権限でコマンドが実行できます。
でも、何でもかんでも実行できるのも怖いなーということで、やはりnmapだけ実行できるように修正します。
apache ALL=(root) NOPASSWD:/usr/bin/nmap
参考にさせて頂きました。
PHPにて、root権限でコマンド実行 みズとおかズ

取り敢えず、これで大丈夫でそうです。