- 更新日: 2013年5月30日
- CentOS & Linux
TCP Wrapper による SSH 接続のアクセス制御、 /etc/hosts.deny, /etc/hosts.allow の設定 〜 CentOS6
SSH 接続のセキュリティを高めるために、指定したクライアントのみからサーバーに SSH 接続できるようにします。具体的には TCP Wrapper による制御を利用して、今回の場合はローカルネットワーク内のマシンからのみ SSH 接続可能にします。TCP Wrapper によるアクセス制御を設定するために編集するファイルは、 /etc/hosts.allow, /etc/hosts.deny です。
このエントリーは、CentOS 6.4 インストール~設定手順の目次 の一部です。
/etc/hosts.deny, /etc/hosts.allow の設定
1 2 3 4 5 6 7 8 |
# vi /etc/hosts.deny ALL: ALL # vi /etc/hosts.allow ALL: 192.168. ALL: 127.0.0.1 |
これで、TCP Wrapper が制御の対象とする全てのサービスに対するアクセスを一旦拒否し、 192.168.x.x および 127.0.0.1 (ホスト機自身)のIPアドレスからのみサービスへの接続を許可という設定になります。ALL じゃなく sshd に限定する場合は、
1 2 3 4 |
# vi /etc/hosts.allow sshd: 192.168. |
また、VPS利用時などで自宅や職場で固定IPを使える場合は、
1 2 3 4 |
# vi /etc/hosts.allow sshd: 固定IPアドレス |
とすれば、格段にセキュリティ向上できると思います。
TCP Wrapper の対象となるサービスを確認してみる
TCP Wrapper について少し。TCP Wrapper は全てのサービスを対象にアクセス制御を行うわけではありません。元々は、inetd(スーパーサーバー)により起動されるサービスを対象にアクセス制御を行なっていました。が、現在は、sshd など ネットワークサービスのためのデーモンの多くにも適用されます。
TCP Wrapper によるアクセス制御が適用されるかどうかは、サービスのデーモンが TCP Wrapper のライブラリ libwrap を含んでいるかどうかで確かめられます。/etc/hosts.allow や /etc/hosts.deny はこの libwrap ライブラリを利用するプログラムが共通して利用するアクセス制御用のファイルとなります。
xinetd で起動されるサービスをチェック。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# chkconfi --list abrt-ccpp 0:off 1:off 2:off 3:on 4:off 5:on 6:off acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off ... xinetd ベースのサービス: chargen-dgram: off chargen-stream: off daytime-dgram: off daytime-stream: off discard-dgram: off discard-stream: off echo-dgram: off echo-stream: off rsync: off tcpmux-server: off telnet: on telnet.org: off time-dgram: off time-stream: off |
xinetd はそれ自体に TCP Wrapper の機能を含んでいるそうです。xinetd 単体で inetd + TCP Wrapper の働きを持つ。
xinetd ベースではないサービスを確認してみます。
1 2 3 4 5 6 7 |
# ldd /usr/sbin/httpd | grep wrap # ldd /usr/sbin/sshd | grep wrap libwrap.so.0 => /lib/libwrap.so.0 (0x0029a000) # ldd /usr/sbin/sendmail | grep wrap libwrap.so.0 => /lib/libwrap.so.0 (0x00a36000) |
以上のように lld と grep コマンドで libwrap ライブラリに依存するかどうかを調べられ、 sshd, sendmail は TCP Wrapper の対象、 httpd は対象ではないということが確認できます。httpd までアクセス制御対象だと困ったことになりますね。
また、 TCP Wrapper によりアクセス制御を行なっているサービスへアクセスがあった場合は、デフォルトでは /var/log/secure にログが出力されます。
- CentOS & Linux の関連記事
- Job for nginx.service failedのNginxエラー
- upstream sent too big header while reading response header from upstream(Nginx/Rails)
- Can’t get information about user clamav(clamdエラー)
- STDERR: Exception in thread “main” java.lang.InternalErrorエラー
- Linuxサーバー容量を確認するコマンドdf,duをマスターする!
- rmでファイル削除後にdf -hで容量が減らない時の対処(Linux)
- Apacheをローカルネットワークのみに公開にする
- logwatchからのメールが来ないと思ったら…
- Linuxサーバの負荷や使用率を調査するコマンドと手順
- Bashの脆弱性もう一件CVE-2014-7169に対するパッチ適用
Leave Your Message!