(L)アクセス制御
これまで、不要なサービスを停止してできるだけセキュリティを高めていますが、アクセス制御を設定して、更にセキュリティを高めましょう。
※あくまでサーバー管理の習得ですので、完璧な防御ではありません。このブログの、全ての設定において、起こりうるいかなる被害や損害には責任は持ちませんので了承いただける方のみ試してみてください。
クラッカー(悪意のある侵入者)の攻撃は、サーバーのポートをしらみつぶしに調べて、セキュリティホールがあればそこから侵入を試みます。
現在開いているポートは netstat -at で確認できます。
netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:ssh *:* LISTEN
上記は、サーバーが ssh のみを受け付けていることがわかります。(これは不要なサービスを停止しているからです。)
<xinetdによる制御>
例えば、 telnet を設定してみましょう。
xinetd ベースのアクセス制御を設定するには、/etc/xinetd.d/サービス名のファイルを開きます。
telnet の場合は、vi /etc/xinetd.d/telnet を開きます。
# default: on
# description: The telnet server serves telnet sessions; it uses \
# unencrypted username/password pairs for authentication.
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = yes
}
disable = no
接続の許可
only_from = 192.168.1.0/24
192.168.1.0 から 192.168.1.255 からのアクセスを許可(192.168.1.0/24以外の外部や他のネットワークからの侵入禁止)
no_access = 192.168.1.1
192.168.1.1 からのアクセスを拒否
(only_from と no_access はセットではありません)
<tcpwqapperによる制御>
下記の2つのファイルを編集します。
/etc/hosts.deny で全てのアクセスを禁止し
/etc/hosts.allow で許可するホストだけを登録します。
の2つのファイルを編集します。
/etc/hosts.deny
all:all
/etc/hosts.allow
sshd: 192.168.1.
上の例では、sshへの接続をローカルアドレスから許可しています。