• ベストアンサー
  • 困ってます

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

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数3757
  • ありがとう数1

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

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

>/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)

  • 回答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とか)

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

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

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

共感・感謝の気持ちを伝えよう!

質問者からの補足

ご回答ありがとうございます。 ファイアウォールは現在無効にしておりました。すいません。 本当は有効にしたいのですが、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の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個ずつカンマで区切って記述するということではないですよね。 宜しくお願いします。

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

  • /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ってxinetdを通して起動されるんでしょうか?

    hosts.allowに、 vsftpd:***.***. :allow とすることで、外部からのftpサーバへの接続を アクセス制限することは出来たのですが、 今度は、sshdが外部からアクセスできなく なってしまいました。 hosts.denyは、勿論、ALL:ALLです。 しかし、sshは、xinetdを通さないで起動していると ばかり思っていましたので、host.denyとは関係なく 接続できるとおもっておりましたが、違うのでしょうか? RedHat8をインストールした後は、何も特に変更していない のですが・・・デフォルトでsshもTCPWrapperとかいう ものの影響を受けるのでしょうか? chkconfig --list で調べた時は、 xinetdをベースとしたプログラムにはsshは無かったのですが・・・? 何卒、ご存知の方、ご指導の程願います。

  • VPS TCP Wrapper

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

  • Linux上のpostgreSQLデータをWindowsでみたい

    サーバA(OS:Linux Fedora Core 4、データベース:PostgreSQL 8.0 で運用しているシステムがあり、毎日そのデータを下記のdumpコマンドで PostgreSQLの全データをバックアップしています pg_dumpall > postgres.out  サーバAを触るのは怖いので、別のマシンB(Windows-Xp)に postgresql-8.2.6をインストールしました。 このバージョンは、postgresqlとともに、pgAdmin3というGUIの管理 ツールもついていると聞きここに、サーバAからバックアップされている postgres.outをrestoreして pgAdmin3でデータベース・テーブル等をみようとしています (postgres.out)を使ってのリストアの仕方は (1)(postgres.out)をpostgresqlの/binディレクトリの中に入れる (2)psqlのメニューから次のコマンドを打つ psql -d manmg -f postgres.out   (3)pgAdmin3を立ち上げるとサーバAのDBは追加されているようなのですが  テーブルは(0)となって見えません マシンBの方のPostgreSQLについてはインストールしたままでサーバA のpostgresqlの設定等は何もしていません 何か設定する所はあるのでしょうか 上記手順でlinuxから吐出されたバックアップデータをWindowマシンに リストアする方法は間違っていないのでしょうか よろしくお願いします。

  • ネットワークサービスについて

    ’・hhtp(d) ・name(d)(DNS) ・ssh(d) ・dhcp(d) ・smtp(sendmail) ・pop(d) ・ntp(d) ・ftp(d) 以上のネットワークサービスについて調べよ’という課題が出されたんですが、インターネット上で調べたところ、これについて情報が出てこなくて困っています。上について情報やURLありましたら教えてください。宜しくお願いします。