目次
使用中のグローバルIPアドレスの確認
インターネットに繋いだサーバーを管理しているのであれば、「誰が」「どこから」アクセスするのかルールを決める必要があります。
ここで言う「誰が」というのはシステムにログインできるユーザーID。
sshd_configにAllowUsersを追記
/etc/ssh/sshd_configにAllowUsers を追記してsshdを再起動。
AllowUsers USER_ID
「どこから」というのは接続元となる使用中のグローバルIPアドレスのことです。
sshログインしてIPアドレスを確認する方法
who
whoコマンドを使えば、以下の④ように接続元IPアドレスが表示されます。
① ② ③ ④
USER_ID pts/0 2022-12-19 17:23 (xxx.xxx.xxx.xxx)
その他の項目についても記します。
- 現在システムにログインしているユーザーID
- デバイスファイル名
- ログインした時刻
- 接続元のグローバルIPアドレス
Webサービスにアクセスして確認する方法
「確認くん」一度はアクセスしたことある方も多いと思います。
ブラウザで「確認くん」を検索しアクセスすれば「あなたのIPアドレス(IPv4)」に接続元IPアドレスが表示されます。
TCP Wrapperの設定
TCP Wrapperはサービス毎にリモートホストからのアクセスの可否を制御できるLinux向けのセキュリティソフトウェアです。
設定ファイルはhosts.allowとhosts.denyの2つ。
/etc/hosts.allow | 許可するIPやホスト名を記述 |
/etc/hosts.deny | 一般的には全て拒否する設定 |
RHEL8やCentOS8ではTCP Wrapperが廃止され、Firewalldでアクセス制御する仕様に変更されました。
ここでは、TCP Wrapperが使えるDebianやUbuntuを例に解説します。
hosts.allowの設定例
# /etc/hosts.allow: list of hosts that are allowed to access the system.
# See the manual pages hosts_access(5) and hosts_options(5).
#
# Example: ALL: LOCAL @some_netgroup
# ALL: .foobar.edu EXCEPT terminalserver.foobar.edu
#
# If you're going to protect the portmapper use the name "rpcbind" for the
# daemon name. See rpcbind(8) and rpc.mountd(8) for further information.
#
sshd: xxx.xxx.xxx.xxx # MyIPAddress
11行目にプロセス名(sshd)と調べたグローバルIPアドレスを記述。
hosts.denyの設定例
ALL: ALL
一般的にhosts.denyでは上のように記述して全ての通信を拒否します。
TCP Wrapperの設定参照順
- /etc/hosts.allow
- /etc/hosts.deny
最初に/etc/hosts.allowが参照されクライアントがリストに存在すれば接続許可。
なければ/etc/hosts.denyの内容が評価されます。
hosts.allowの中身が利用中のグローバルIPアドレスと異なる場合、アクセスできなくなるのでご注意ください。
動的にグローバルIPアドレスが変わる場合
固定IPアドレスを契約していなければ、IPアドレスはいつかは変わります。
動的IPアドレスの場合は「ネットマスク形式」か「.au-net.ne.jp」のようにクライアントフィールド範囲を広げて設定する事ができます。
ネットマスク形式
sshd: 106.128.0.0/255.192.0.0 # au
ドメイン形式
sshd: .au-net.ne.jp # au
この設定は、au-net.ne.jpに属する全てのホストからsshアクセスを許可するという意味。
コメント