【無料配信♪】Renta !全タテコミ作品第1話

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

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も含め接続できなくなります。
※ファイアーウォールのルールは定義していません。

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

このQ&Aに関連する最新のQ&A

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に関連する人気のQ&A

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

このQ&Aと関連する良く見られている質問

Qファイアウォールは必要?hosts.allow と hosts.deny だけではダメ?

ネットで調べたところ、次のことが分かりました。

●TCP Wrappers (/etc/hosts.{allow,deny} で設定)は inetd または xinetdで制御されていないプロセスへのアクセスをブロックできない。

●とはいえ、sshd, sendmail は inetd/xinetdで制御されていないものの、/etc/hosts.{allow,deny}を自ら読みに行って、ここで許可されてないアクセスは拒否することができる。

sshd や sendmail も hosts.allow と hosts.deny で守ることができるとすると、Firewall(iptables)は、なぜ必要なのでしょうか?hosts.allow と hosts.deny で守ることができないデーモンがあるのでしょうか?

Aベストアンサー

#2です。
>勘違いしていたらすみません。
>そもそも、IPレベル(hosts.*が防御)を突破できないとアプリケーションレベル(iptablesが防御?)に到達できないと思うのですが、どうでしょうか?

勘違いです。
iptablesは、カーネルの持つIP通信機能の設定を変更して、IP通信のレベルでガードします。
/etc/hosts.{allow,deny} というのは、アプリケーションが、通信相手のIPアドレスを取得して、hosts.*ファイルを読んで、通信していいかどうかを判断するものです。判断はすべて、xinetdやsendmail,sshdといったアプリケーション(カーネルではないという意味)で行っています。

iptablesの設定で蹴った場合は、アプリケーションにパケットが届きません。

Q/etc/hosts.allowの設定が反映されません

こんにちわ。
freeBSD 5.4-Rを導入してみたばかりです。
telnetからの接続を禁止したいので/etc/hosts.allowに
telnetd : ALL : deny
と記述したのに、なぜかtelnetでログインできてしまいます。
なにがおかしいのかアドバイスいただけませんでしょうか?
よろしくお願いいたします。

Aベストアンサー

tcpdchkやtcpdmatchで設定を検証してみては。

参考URL:http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=tcpdmatch&dir=jpman-5.2.0%2Fman&sect=0

QLinuxのAccessログはどこにあるんでしょうか?

お世話になります。

現在、WindowsとLinuxをイントラネットでつないでて、Sambaを利用してWIndowsからLinuxにアクセスしようとしています。
Windowsからサーバの存在が確認できるところまではいくのですが、それをクリックしてみると、"\\<サーバ名>にアクセスできません。 ~"と表示されてしまいます。
このとき、Linuxのアクセスログを確認したいのですが、/var/logのどのファイルを見ても更新日付が古いので、別の場所にあるのでは?と
思っているのですが、ご存知のかたいないでしょうか?

Aベストアンサー

設定によるので間違ってるかもしれませんが、パッケージでインストールしたsambaなら /var/log/samba/ に入ってませんか?

Qhosts.allowとhosts.denyについて

centos5を利用しています。
/var/log/btmpファイルが200M、/var/log/secureファイルも20Mにもなっていました。
恥ずかしながら初めて中身をチェックしたのですが、SSHログインの失敗履歴のようでした。
このような場合の対処法をお聞きしたいのですが、

1. hosts.allowとhosts.denyを設定すればこの手のアタックは防げるのでしょうか?

2. hosts.allowとhosts.denyを設定後、/etc/rc.d/init.d/sshd restart でSSHを再起動したのですが、これで反映されたのでしょうか?

3. btmpファイルは削除しても問題ないでしょうか?削除する際に注意点などありましたらあわせて教えて頂けると幸いです。

Aベストアンサー

> 1. hosts.allowとhosts.denyを設定すればこの手のアタックは防げるのでしょうか?

必要なドメインorIPアドレスに限定してSSHを接続させるようにすれば防げるでしょう
そもそも外部からSSHでの接続が必要ないならルータ/Firewallで22/TCPをふさいでしまえばさらに静かになります

> 2. hosts.allowとhosts.denyを設定後、/etc/rc.d/init.d/sshd restart でSSHを再起動したのですが、これで反映されたのでしょうか?

sshdのrestartの必要はありません
設定後(書き込み後)即反映されます

> 3. btmpファイルは削除しても問題ないでしょうか?削除する際に注意点などありましたらあわせて教えて頂けると幸いです。

cat /dev/null > /var/log/btmp しましょう


人気Q&Aランキング