タグ: FreeBSD
pkg_versionがアップデートのお知らせを毎日送って来るようにしているのですが、以下のportsのアップデートをしてしまいました。
cclient-2004g_1,1 < needs updating (port has 2006j,1) imap-uw-2004g_1,1 < needs updating (port has 2006j_2,1)
そうすると今まで使えていたimapもipop3dも機能しなくなっちゃいました。多分、認証関係の設定が変わったんだと思います。pop3は apopでcram-md5認証、imapもcram-md5認証なのですがそのままインストールしても駄目みたい。色々調べてみたのですがいまいち良く 分からんので、当座復活させるために本家のftpサイトから古いimap-uw 2004gを落としてきて手動でインストールし直しました。こちらのバージョンは、
# make bsf
でできたpop2d,pop3dとimapdを/usr/local/libexecにコピーして問題なく復活しました。
ログ(/var/log/messages)を見てみると、
Sep 19 14:35:32 ns inetd[9493]: warning: /etc/hosts.allow, line 38: can't verify hostname: getaddrinfo(aaa-bbb-ccc-ddd-nsw-static.tpgi.com.au, AF_INET) failed Sep 19 14:35:52 ns inetd[9493]: refused connection from aaa.bbb.ccc.ddd, service i pop3d (tcp)
とpopが拒否されてます。
/etc/hosts.allowのline38は”PARANOID”です。
# Protect against simple DNS spoofing attacks by checking that the # forward and reverse records for the remote host match. If a mismatch # occurs, access is denied, and any positive ident response within # 20 seconds is logged. No protection is afforded against DNS poisoning, # IP spoofing or more complicated attacks. Hosts with no reverse DNS # pass this rule. ALL : PARANOID : RFC931 20 : deny
どうやら、自宅のADSLのIPアドレスが逆引きできなくなっているのが原因のようです。
“ALL : PARANOID : RFC931 20 : deny”の設定をコメントアウトしてとりあえず解決。
前回の続き。
友人がこのブログが止まっていると教えてくれました。
/etc/hosts.allowでmysqlへのアクセス制限をしたつもりだったけど、また中国方面からしつこくアクセスが始まって何故かmysqlが反応しなくなったようです。どうもこの辺の挙動がよく分からんです。
そこで、どうせMySQLは自サーバー上でしか使わないのでネットワーク越しに反応をしないように起動オプションに下記を追加しました。
--skip-networking
これで3306ポートは外部に露出しなくなります。
本当は、ipfwとか使ってパケットをフィルターしていまえばいいんだけど、下手に設定を間違えると外部からアクセス不能になってしまうのでまだ やってないんです。 以前にNATをリモートで設定しようとしたらインストール直後のデフォルトルールがdeny allでいきなりアクセス不能になってしまった痛い経験がトラウマになってます。
sshで一定時間以内のアクセス失敗回数が設定限度を越えるとアクセスを拒否するという方法について以前に書いたことがありますが、これのftpd版が欲しいなぁと思っていたらいい方法がありました。
http://home.jp.freebsd.org/cgi-bin/showmail/FreeBSD-users-jp/88562
inetd 経由にすれば似たようなものは実現できます。
たとえば、SSH なら、ssh stream tcp nowait/0/3/2 root …..
なんて記述をしておきます。
この 0/3/2 って記述ですが。
: : :
1 2 31 最大子プロセス数(0は無制限)
2 同一IPからの1分以内の最大接続数
3 同一IPからの最大子プロセス数となります。
上記の設定の場合は inetd から生成される ssh のプロセス数は無制限で、同一IPからの一分以内のコネクションリクエスト数は3回まで、さらに同一IPから接続が確立して生成された ssh プロセス数は2つまで。ということになります。
1分以内に接続に3回失敗すると、そのIPからのコネクションリクエストはrefuseされます。が、1分経過するとまた許可されます。
http://home.jp.freebsd.org/cgi-bin/showmail/FreeBSD-users-jp/89166
refuseしている間の接続要求もカウントしつづけるようなので、連続して認証が試みられている間は、refuse期間が延長されつづけます。
通常(?)のアタックは連続して認証を試みますので、1度refuseされるとアタックが終るまでrefuseされたままになるようです。
私の環境では、時間を置いて繰り返し同じアドレスからアタックされることは稀ですから、拒否リストに登録する他の方法とほぼ同様の効果が得られています。
ftpdはinetd.conf経由で起動するのでこの通りに設定したらOKでした。sshdもinetd.confに設定してもいいのですが、とりあえずmaxloginsで対策できているのでそのまま現状維持です。