2019年4月10日水曜日

VPSの初期設定(とりあえずやっておいた方がいい最低限のこと)

現在『ServerMan@VPS』がキャンペーンで
申し込み月と翌月が月額350円から50円引き。
さらにNTTグループのクレカを作ると、毎月500円バックで
つまり実質1年間無料でVPSが使えるとのことで、早速、申し込み。

クレカの方は、問題なく申し込みできたが、VPSの方では
申し込みフォームを進めていくと、最後に以下エラー。
■エラー
お申込みお手続きが完了いたしませんでした。
誠に恐れ入りますが、理由の開示はおこなっておりません

タイミングの問題かと思い、4日間ほど朝、昼、夜と時間帯を変えて
試すもダメ。サポートに問い合わせたところ、申し込みの内容に不備があり
ロックされていた模様で、解除して頂きようやく申し込みが完了。

んで以下、初期設定を実施。

1.インストール済みのRPMパッケージを更新
 # yum -y update

 ■エラー
 Error: systemd conflicts with initscripts-9.49.17-1.el7_0.1.x86_64

 『ServerMan@VPS』では、仮想環境の相性でエラーになるとのこと。
 https://www-wp.dream.jp/search.php/?p=23141

 参考にした記事が、2015年12月25日に書かれたものだったが
 現在も解消されていない模様。

 仕方がないので、以下のシェルでアップデートできるものだけ実施。
 --------------------------------------
 update-package.sh
 --------------------------------------
 #!/bin/sh
 LIST_DIR=/var/tmp/
 yum update | grep Package | cut -f3 -d " " | cut -f1 -d "." | uniq > ${LIST_DIR}package_list.txt

 while read PACKAGE; do
     yum -y update $PACKAGE
 done < ${LIST_DIR}package_list.txt
 --------------------------------------

 ■インストール結果の確認
 # journalctl -l /usr/bin/yum

2.SSHポート変更
 # vi /etc/ssh/sshd_config
 -----------
 #Port 22
 Port XXXXX(10001~65535など)
 -----------
 # systemctl restart sshd

3.ROOTユーザでのログインを抑止
 ■ユーザの作成
 # useradd XXXXX
 ■sudoの設定
 # usermod -aG sudo XXXXX
 ■SSHでの接続確認し、問題なければROOTのログインを抑止
 $ sudo vi /etc/ssh/sshd_config
 -----------
 #PermitRootLogin yes
 PermitRootLogin no
 -----------
 $ sudo systemctl restart sshd

4.ROOTユーザのパスワード変更
 # passwd

5.iptablesの設定(あくまで一例)
  ■ループバックを許可
  # iptables -A INPUT -i lo -j ACCEPT

  ■セッション確率済みのパケットを許可
  # iptables -A INPUT  -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

  ■DNSの戻りパケットを許可
  # iptables -A INPUT -p udp --sport 53 -j ACCEPT

  ■NTPの戻りパケットを許可
  # iptables -A INPUT -p udp --sport 123 -j ACCEPT

  ■攻撃対策
  ・データを持たないパケットの接続を破棄する
  # iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
  ・SYNflood攻撃と思われる接続を破棄する
  # iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
  ・ステルススキャンと思われる接続を破棄する
  # iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP

  ■サービス
  # iptables -A INPUT -p tcp --dport SSH用ポート -j ACCEPT
  # iptables -A INPUT -p tcp --dport 80    -j ACCEPT
  # iptables -A INPUT -p tcp --sport 80    -j ACCEPT
  # iptables -A INPUT -p tcp --dport 443   -j ACCEPT

  ■ルール外のパケットは破棄する
  # iptables -P INPUT DROP
  # iptables -P FORWARD DROP

  ■設定を確認する
  # iptables -nL

  ■間違えていた場合は、番号を確認し削除
  # iptables -L --line-numbers
  # iptables -D INPUT 番号

  ■iptablesの設定を保存する
  # service iptables save

  ■iptablesをリスタートする
  # systemctl restart iptables

  ■一応、設定は以下に保存されている
  cat /etc/sysconfig/iptables

6.その他(手順は割愛)
  ・SSHをパスワードでログインできなくする(鍵認証)
  ・fail2banを導入して不正アクセスを試みるユーザーをブロックする

7.ドメインの取得
 Freenomが無料で簡単に登録できる。
 90日間に最低限25回のアクセスがないと削除される制限あり。

#追記
DTIの『ServerMan@VPS』なかなかの曲者。
メモリが256Mと少ないからか
たまに処理が重くなって、SSHすら受け付けなくなり
DTIの管理ページから再起動操作が必要になる。。

まぁ無料だから文句は言えないな。。

0 件のコメント:

コメントを投稿