14歳の自分に衝撃の事実を告げてください

自宅でサーバを構築中です。

以下のサイトを参考に構築しています。
http://centossrv.com/iptables.shtml

作成したiptables.shを起動すさせようとすると、
「iptables: Memory allocation problem.」のメッセージが繰り返し表示されます。

ユーザ定義チェイン作成の部分でデバッグをすると、cidr.txtにある77のレコードを取得した後に
メッセージが出力されていました。

メッセージの内容からすると、使用しているメモリに原因があるような気がするのですが、
メモリの増設で対応するのが望ましいのでしょうか。
それとも、ほかの原因があるのでしょうか。

ちなみに、使用しているサーバのメモリは2Gとなっていますが、サーバ起動中は0.5Gに満たないくらいの消費です。

A 回答 (3件)

>ちなみにカゴヤのVPSタイプAを使用しています。



カゴヤがどうかは調べていませんが…前回キーワードで検索したときには
VPSでルールがたいして登録できない。
という制限があるところもあったような……。
    • good
    • 0

http://fedorasrv.com/bbshtml/webpatio/3158.shtml
http://centossrv.com/bbshtml/webpatio/2565.shtml
なんていうハナシも。
拒否リストに入れている国が多いとかじゃないですかね。
全体を拒否して、受け入れる国(日本ですかの)をACCEPTする。
拒否したパケットについてのログ出力は抑える。
などで対応するのがよろしいかと。

膨大なルールを作るのもカーネルの負荷が増えるだけでしょうしねぇ…。
# 1パケットにつき10000ものルールをチェックする。とか自分なら「うへぁ…」ですわ。
もうちょい緩いルールで運用できるように考えますね。

sshなら公開鍵認証にしておいて、とりあえず接続要求は受け入れる。
# カーネルじゃなくてサービス側で制御する。
# sshの接続拒否ログが膨大になる。ってのならそもそも使うポートを別のモノに変更し利用者に周知すればいい。
ftpやtelnetみたいなものはそもそも外からの接続を拒否する。
httpはいろんなトコからの接続がある(当然攻撃は受けるモノと前提にする)として、使用するWebサービス側にフィルタ機能などがないか検討する。
smtpはとりあえず接続受け入れる。第三者中継しないように宛先によっては認証を必須にする。
それぞれのログに拒否のログが残ってしまうのは容認する。
などなど…。
    • good
    • 1
この回答へのお礼

参考にしているサイトをもとにiptable、CentOSについて学習していきます。アドバイスありがとうございます!

お礼日時:2014/01/26 21:04

iptablesのコマンドがメモリ確保しようとしたときに失敗した…と思われます。


が……普通にやってそうそうメモリ確保に失敗はしないと思われますが……。

エラーが出た後、iptables --listとかしてみるとどの程度のルールが設定済みなんでしょうか?

さっき拾ってきたcidr.txt.gzだと…84246行ありますねぇ。
国ごとでフィルタとかしようと思うと結構な数のルールを作成することになりそうですが。
# 私のトコでは外部公開しているポートなんてたかが知れているので国ごとのフィルタなんてしていませんけどね。
# 中韓にアタック受けるようなポート開けていませんし。

>ちなみに、使用しているサーバのメモリは2Gとなっていますが、サーバ起動中は0.5Gに満たないくらいの消費です。

十分…かと思われます。
カーネル側のルールチェーン用のメモリが尽きた…なんてことはないと思いますが、どうなっているのやら……。
    • good
    • 0
この回答へのお礼

cidr.txtから取得するレコードを1件にしたところ動作するのを確認しました。
メモリ不足のようです。
今のところ国ごとのフィルタリングはしないようにして動作させています。
ちなみにカゴヤのVPSタイプAを使用しています。

お礼日時:2014/01/26 21:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!