Linux hosts.allowでのアクセス制御

このQ&Aのポイント
  • RedHat hosts.allowでのアクセス制御について設定方法を質問させて頂きます。
  • /etc/hosts.allowに以下のサービスについて制御したいと思っております。
  • 上記にて設定すると、SSHのみ適用されますが他の設定が反映されません。初心者からの質問で申し訳ありません。アドバイスの程よろしくお願い致します。
回答を見る
  • ベストアンサー

Linux hosts.allowでのアクセス制御

いつもありがとうございます。 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も含め接続できなくなります。 ※ファイアーウォールのルールは定義していません。 初心者からの質問で申し訳ありません。 アドバイスの程よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.2

>/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=tcp_wrapper sambaも一応反応できる…のかな? http://ubuntudeiroiro.blog.fc2.com/blog-category-12.html 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ですけどね…。そのうち変更する予定ですが。

その他の回答 (2)

  • Toshi0230
  • ベストアンサー率51% (836/1635)
回答No.3

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とか)

way0usechu
質問者

お礼

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

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

>上記にて設定すると、SSHのみ適用されますが他の設定が反映されません。 TCP Wrapperでのアクセス制御に対応していない場合は…記述しても無視されるでしょう。 ldd /usr/sbin/sshd とすると、libwrapがリンクされているのが判るかと。 その為、xinetdとか経由していなくてもTCP Wrapperに対応している。 ということになります。 ということで、実行ファイル(というかデーモン)がTCP Wrapperに対応していなければ無意味です。 # 追加のモジュールで対応している…という場合もあるかも知れませんが…… smtpとかプロトコル名でフィルタ出来ましたっけ?? >また、ファイアーウォールを有効にすると、SSHも含め接続できなくなります。 >※ファイアーウォールのルールは定義していません。 設定していない(許可するように設定していない)から、弾かれるのではないですか?

way0usechu
質問者

補足

ご回答ありがとうございます。 ファイアウォールは現在無効にしておりました。すいません。 本当は有効にしたいのですが、hosts.*が適用されないと使えないという状態です。 >TCP Wrapperでのアクセス制御に対応していない場合は… >記述しても無視されるでしょう。 /etc/inetd.confというところに追記するということでしょうか。 現在は何も記載されていません。 素人で申し訳ありません。

関連するQ&A

  • Linux (hosts.allowとFreenxの関係)

    家から仕事場のlinux machine(Fedora 10)を動かそうとしているのですが、その際SSHの事がよく分らなくなりました。分らない点は、hosts.allowとFreenxの関係で、どちらもセキュリティを保ちながら、サーバーとのコンタクト(SSH)を可能としてくれると理解しております。Freenxの方がセキュリティが高い(秘密鍵を使うため)と聞いたのですが、Freenxを使う場合はhosts.allowとhosts.denyは設定しなくていいんでしょうか。セキュリティの面から見た意見を伺えれば幸いです。

  • ファイアウォールは必要?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 で守ることができないデーモンがあるのでしょうか?

  • hosts.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ファイルは削除しても問題ないでしょうか?削除する際に注意点などありましたらあわせて教えて頂けると幸いです。

  • hosts.allowのIPアドレスの記述ついて

    Red Hat Linux9を使用して勉強しています。 SSHを動かしていて、hosts.deny と hosts.allowを使い IPアドレスの接続制限をかけようと思っています。 hosts.denyはALL:ALLにしてあるのでhosts.allowに 接続を許可するIPを記述するのですが、例えば許可する範囲を 「192.168.1.90~192.168.1.99」とする場合は、どうやって 記述すればいいのでしょうか。 まさか1個ずつカンマで区切って記述するということではないですよね。 宜しくお願いします。

  • xinetd を使う場合の hosts.allow/hosts.deny

    サーバ:CentOS 4.4 xinetd を使ってアクセスコントロールをしようとしています。 /etc/xinetd.d/サービス名 でサービス毎の設定が出来ますが、その中で(only_fromを使って)制御しようとしていますが、その際に /etc/hosts.allow と /etc/hosts.deny はどうなるのでしょうか。これらのファイルを削除して、xinetd の設定ファイルのみでアクセス制御するにしても、xinetd を通さないデーモンが直接 hosts.allow と hosts.deny を参照しようとする場合もありそうで怖そうです。 かといって xinetd と hosts.allow,hosts.deny の両方でアクセス制御するのもわかりにくくなりそうですし。 何かスマートなやり方というものはあるのでしょうか。

  • /etc/hosts.allow にて alex@192.168.1.10 指定

    CENTOS5を使っております。 FIREWALL 有効 SELINUX 有効 server1 リモートホスト server2 SSHサービス稼動中。 ============================================ ここで、制御ファイルにて下記のようにしていますが、 server2側でアクセス拒否されてしまいます。 1. /etc/hosts.allow # hosts.allow This file describes the names of the hosts which are # allowed to use the local INET services, as decided # by the '/usr/sbin/tcpd' server. # ALL:127.0.0.1 sshd: alex@192.168.10.62 2 /etc/hosts.deny # hosts.deny This file describes the names of the hosts which are # *not* allowed to use the local INET services, as decided # by the '/usr/sbin/tcpd' server. # # The portmap line is redundant, but it is left to remind you that # the new secure portmap uses hosts.deny and hosts.allow. In particular # you should know that NFS uses portmap! sshd: ALL [root@server1 ssh]# ssh alex@server2 ssh_exchange_identification: Connection closed by remote host 私の認識では、allow→denyの読み取りで判断されるので許可されると 考えています。 それともUSER@を指定した記述が違うのでしょうか。 deny にて、sshd : ALL EXCEPT alex@192とも指定したがぺけでした。 どなたかご指摘お願いします。 P.S グーグルでもUSER@指定の場合を検索してみました。 http://www.cromwell-intl.com/unix/ssh.html sshd_config にてAllowUsers alexもぺけでした。。。 よろしくご指摘お願いいたします。

  • Ubuntu12.04で外部からアクセスできない

    Ubuntu server 12.04を新規インストールしましたが LAN内からアクセスできるものの 外部からのアクセスができません。 SSHやpingやhttpなど(おそらく)すべてのサービスがつながりません。 ただ Ubuntuを再起動しようとして サービスがいくつか終了している最中の数秒だけは 外部からアクセスできます。 sshでもかろうじてログインできましたので(数秒後に切断されましたが) ですのでおそらく 何かしらのサービスが外部からのアクセスをブロックしているように思うのですが 何が原因かがわからないので教えてください。 とりあえず ufwとhosts.allowあたりではないようです。 ufwは非アクティブですし hosts.allowには ALL:ALLと入れましたがかわりません。 $ sudo ufw status 状態: 非アクティブ hosts.allow ALL:ALL なお標準インストールしてSSHとLAMPを入れたぐらいで 特に設定はいじっていないつもりです。 普段はCentOSを使っており今回発のUbuntuでわからないことだらけなので 教えてもらえるとありがたいです。

  • iptablesを用いてのポート開放。

    iptablesを用いて、SSH、NTP、HTTP、FTP、SMTP、POP3、DNS、PROXYで使用するポートを開放するためのコマンドを教えてください。

  • SSHのアクセス制限が上手くいきません

    一通り試して上手くいかず・・、ぜひ教えてください。 <(_ _)> いろんな所に書いてあるSSHのアクセス制限が、なぜか上手くいきません。 特定の固定IPにのみ接続を許可するため、以下の設定をしています。 ●hosts.deny  sshd : ALL ●hosts.allow ALL : XX.XX.XX.XXX(固定IPアドレス) 設定後、service sshd reloadをしましたが、 外部のダイヤルアップでつないだPCからアッサリアクセスできています。 参考にしたのは以下のページです。 http://memo.blogdns.net/hostsaccess.html OSは、Red Hat Linux release 9です。 何卒アドバイスよろしくお願いいたします。

  • VPS TCP Wrapper

    サーバ初心者で勉強中です はじめてのCentOS5という本を読みながら お名前.comのVPSサーバでSSHサーバの設定中です TCPWrapperの設定なのですが /etc/hosts.allow sshd: 192.168.0. /etc/hosts.deny ALL: ALL と設定するように書いてました でもこれをしてしまうとローカルからでしかアクセスできなくなってしまうと思うんです VPSではTCPWrapperの理想的な設定とか定番の設定みたいなものはあるのでしょうか? ご指導 アドバイスをおねがいします。