dポイントプレゼントキャンペーン実施中!

いつもありがとうございます。

RedHat hosts.allowでのアクセス制御について設定方法を質問させて頂きます。
/etc/hosts.allowに以下のサービスについて制御したいと思っております。

*************************************************************
http ssh icmp smtp ntp pgadmin samba postgresql dns
*************************************************************

以下「hosts.allow」の内容
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
# ssh
sshd: 192.168.1.

# http
httpd: ALL

# dns
domain: ALL

# icmp
icmp: ALL

# ntp
ntpd: ALL

# netbios-ssn
netbios-ssn: ALL

# smtp
smtp: ALL

# postgresql
postgresql: 192.168.1.

# pgadmin
pgadmin: 192.168.1.
--------------------------------------------------------------------
上記にて設定すると、SSHのみ適用されますが他の設定が反映されません。
※hosts.denyは「ALL: ALL」としております。

また、ファイアーウォールを有効にすると、SSHも含め接続できなくなります。
※ファイアーウォールのルールは定義していません。

初心者からの質問で申し訳ありません。
アドバイスの程よろしくお願い致します。

A 回答 (3件)

>/etc/inetd.confというところに追記するということでしょうか。



さすがに、今はinetdは使われていないでしょう。
xinetdも影が薄くなっているみたいですし。

「TCP Wrapperに対応していないものを記述しても適用されない」ってことなんですが……。

>ファイアウォールは現在無効にしておりました。すいません。
>本当は有効にしたいのですが、hosts.*が適用されないと使えないという状態です。

iptablesとTCP Wrapperは…また別次元のハナシなのですが……。

iptablesでOSが受付を許可して、その上でTCP Wrapperで制御します。
ただしTCP Wrapperが効くのは対応している場合だけですが。
http://www.server-world.info/query?os=CentOS_6&p …
sambaも一応反応できる…のかな?

http://ubuntudeiroiro.blog.fc2.com/blog-category …
ubuntuですが、対応できるように書かれていますな…。
CentOS5.8でldd /usr/sbin/smbdでは出てこなかったけど。

ちなみに、ウチのサーバはhosts.allow/hosts.denyともに未設定です。
sshdは制限なし(ただし接続可能なユーザは制限して公開鍵認証&非標準ポート)。
xinetd経由で起動するサービスは…Subversionとtelnetがありますが、
外(WAN)からはアクセスできませんし。
iptablesで閉じてる。LAN内部からのみ有効。ルータでも閉じてるし。
ACCEPT tcp -- 192.168.0.0/16 anywhere state NEW tcp dpt:telnet
ACCEPT tcp -- 127.0.0.0/8   anywhere state NEW tcp dpt:telnet
ACCEPT tcp -- 192.168.0.0/16 anywhere state NEW tcp dpt:swat
ACCEPT udp -- 192.168.0.0/16 anywhere state NEW udp dpt:svn
ACCEPT tcp -- 192.168.0.0/16 anywhere state NEW tcp dpt:svn
………swat起動できるようにしてねぇじゃん(笑)
あんまり無いけど外からSubversion使うときはssh+svnだし。
内部LANは192.168.1.0/24ですけどね…。そのうち変更する予定ですが。
    • good
    • 0

No.1さんも回答していましたが…要は、hosts.allowでアクセス制御しない(できない)ソフトについて、hosts.allowで制御しようとしているんじゃないか、ということです。



http = Apache ? dns = BIND ? netbios-ssn = Samba? ntp = ntpd ?
アプリケーションソフトの名前が分からないので想像ですが、上記の通りであれば
各アプリケーションの設定ファイルにアクセス制御の記述ができます。

postgresqlは触ったことないんで想像ですが、たぶん同様でしょう。pgadminってそもそもサーバアプリでしたっけ?

smtpとicmpは何を意図しているのかよく分かりません…
"man hosts.allow"を実行してもらえれば(たぶん英語で)ヘルプが出ますが、hosts.allowの書式は
daemon_list : client_list [ : shell_command ]
です。
プロトコルの送受信について制御を行いたいのであれば、別途ファイアウォールの設定をする必要があります(iptableとか)
    • good
    • 0
この回答へのお礼

ご返事遅くなりまして申し訳ございません。
教えて頂いた内容でいろいろと検証しなおしました。
想定していた方法では実現できないこともなんとなくですがわかりました。
参考にさせて頂き、たすかりました。ありがとうございました!

お礼日時:2012/07/18 09:46

>上記にて設定すると、SSHのみ適用されますが他の設定が反映されません。



TCP Wrapperでのアクセス制御に対応していない場合は…記述しても無視されるでしょう。
ldd /usr/sbin/sshd
とすると、libwrapがリンクされているのが判るかと。
その為、xinetdとか経由していなくてもTCP Wrapperに対応している。
ということになります。

ということで、実行ファイル(というかデーモン)がTCP Wrapperに対応していなければ無意味です。
# 追加のモジュールで対応している…という場合もあるかも知れませんが……
smtpとかプロトコル名でフィルタ出来ましたっけ??


>また、ファイアーウォールを有効にすると、SSHも含め接続できなくなります。
>※ファイアーウォールのルールは定義していません。

設定していない(許可するように設定していない)から、弾かれるのではないですか?

この回答への補足

ご回答ありがとうございます。
ファイアウォールは現在無効にしておりました。すいません。
本当は有効にしたいのですが、hosts.*が適用されないと使えないという状態です。

>TCP Wrapperでのアクセス制御に対応していない場合は…
>記述しても無視されるでしょう。

/etc/inetd.confというところに追記するということでしょうか。
現在は何も記載されていません。
素人で申し訳ありません。

補足日時:2012/07/09 17:36
    • good
    • 0

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