環境と準備
環境について
今回の実際に構築した環境です。
OS:Cent OS 6.2
キーボードが日本語でない場合
# vi /etc/vconsole.conf
#KEYMAP="eu"
KEYMAP="jp106"
# shutdown -r now ← 再起動
表示を日本語に
# vi /etc/sysconfig/i18n
#LANG="en_US.UTF-8"
LANG="ja_JP.UTF-8"
# shutdown -r now ← 再起動
iptablesの初期化
# iptables -F ← 設定をクリア
-------- 外からの入力・フォワード信号をドロップ、内からの出力信号、自分からのすべての信号を許可する
# iptables -P INPUT DROP
# iptables -P FORWARD DROP
# iptables -P OUTPUT ACCEPT
# iptables -A INPUT -i lo -j ACCEPT
-------- セッションを確立した後の通信を許可
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# service iptables save ← 設定の保存
# /etc/init.d/iptables restart ← iptablesの再起動
おまけ
# iptables -L ← 設定の確認(出力)
# iptables -I INPUT -s xxx.xxx.xxx.xxx -j DROP ← 特定のIPアドレスからの接続を全面拒否
実際に運用してみるとわかりますが、サーバー公開からしばらくすると攻撃がすさまじいです。
ロボットによる接続の試みや迷惑メール、ログが溜まります。
SSH接続
-
ssh接続を可能にする
# yum install -y openssh-server ← sshがインストールされていない場合のみ
-
ファイアーウォール(iptables)の設定
-------- 外からの各サービスへの接続を許可する
# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# service iptables save ← 設定の保存
# /etc/init.d/iptables restart ← iptablesの再起動
-
ssh接続を制限する
-------- ファイルを編集し、ssh接続を全面禁止
# vi /etc/hosts.deny
sshd:ALL
-------- ファイルを編集し、ssh接続を一部だけ許可
# vi /etc/hosts.allow
sshd:127.0.0.1
sshd:XXX.XXX.XXX. ← ネットワークを許可する場合、左のようにネットワーク部分のみ記述する
-------- sshdの再起動
# /etc/init.d/sshd restart
ipv6を無効にする
現在ほとんど使用していないため。
余計な処理となり負担になったり、変なログが大量に残ったりするため、今のところ無効を推奨します。
-------- ファイルに追記する
# vi /etc/sysconfig/network
NETWORKING_IPV6=no
-------- 新規ファイルを作成し追記する
# vi /etc/modprobe.d/ipv6.conf ← ファイル名は何でもよく、同ディレクトリ内であればOK
options ipv6 disable=1
-------- OSの再起動
# reboot