Bloody Mary - blog

Bloody Mary 別館

CPAN のパッシブを通す方法

CPAN の PASV 問題

サーバの引越しに伴い、再構築をすることになった。

Perl のモジュールが必要だったため、 CPAN でインストールしようとしたら、 FTP のパッシブモードでモジュールのダウンロードをしようとして NG になっていた。

そういえばファイアウォールの穴を開けていない。というか、全サーバに対して PASV を有効にするのは暴挙と言える。

「自サーバ (Port: 1024 – 65535) から FTP サーバ (Port: 1024 – 65535) への OUT を許可」というカンジになって、 OUT 側のファイアウォール設定が無意味になってしまうからだ。

解決策としては、 CPAN でパッシブモードを使わない設定にするか、ファイアウォールで特定サーバに対して PASV を通す設定にする。

1. ファイアウォールで PASV を使う

お勧めはこっち。

CPAN に設定してある ulist のサーバに対してだけ、全 OUT 許可にした。

ミラーサーバは CPAN Sites から好きなものを選ぶと良いと思う。

1. CPAN の設定確認

# perl -MCPAN -e shell
  1. CPAN の設定確認
  2. cpan> o conf
  3. $CPAN::Config options from '/usr/share/perl5/CPAN/Config.pm':
  4.     ftp_passive        [1]
  5.     urllist            ※ 空白だった

2. CPAN の設定

  1. ftp_passive を 1 にする。
  2. cpan> o conf ftp_passive 1
  3.     ftp_passive        [1]
  4. Please use 'o conf commit' to make the config permanent!
  5.  
  6. urllist を設定する。
  7. cpan> o conf urllist ftp://ftp.nara.wide.ad.jp/pub/CPAN/
  8.  
  9. 設定を保存
  10. cpan> o conf commit

3. iptables の設定

ちなみに、サーバの基本設定は INPUT/OUTPUT/FORWARD を全て DROP して、必要なものだけ許可する派。

  1. # for CPAN
  2. CPAN_PASV_SERVER="ftp.nara.wide.ad.jp"
  3.  
  4. # FTP のところに以下を追加
  5. iptables -A OUTPUT -p tcp -d $CPAN_PASV_SERVER -j ACCEPT

2. CPAN でパッシブモードを使わない

1. CPAN の設定

  1. ftp_passive を 0 にする。
  2. cpan> o conf ftp_passive 0
  3.     ftp_passive        [0]
  4. Please use 'o conf commit' to make the config permanent!
  5.  
  6. 設定を保存
  7. cpan> o conf commit
近況

何というか、久々に CPAN にはまっている。

DateTime::Astro がようやく入ったものの、

  • DateTime::Calendar::Japanese
  • DateTime::Format::Japanese

がどうやっても入らない。

さて、どうしよ。

Updated: 2013/3/18 月曜日 — 23:12:05

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Bloody Mary - blog © 2008 - 2021