クウネルマナブ

個人的なメモです(笑) 最近は、もっぱら趣味。WEBシステムを作るべくpython,HTML,PHPあたりの勉強を中心にしています!

VPSの設定突入!

キリのないDjangoでの開発を一旦やめて、

本番サーバの契約を行いました。

 

サーバの設定を行なっておりますが、

納得のいかない状況だと再インストールを繰り返しているので、

お約束作業のメモです。

 

サーバ仕様

GMO VPS 1Gプラン

CentOS7.3 

  

再インストール前にSSHキー認証を設定していた場合

# ssh-keygen -R (IP-addres)

 

SSHでログイン

root@(IP-Address)

 

yumのアップデート

# yum update

 

日本語化

# yum -y install ibus-kkc vlgothic-*

# localectl set-locale LANG=ja_JP.UTF-8
# source /etc/locale.conf
# echo $LANG

 

「ja_JP.UTF-8」と出ればOK

 

 

(参考サイト)

www.server-world.info

 

本来は最初にSSH関連を行いますが、よくハマるポイントを先に行います。

なぜって・・・ダメな時はOSの再インストールするからですよw

 

Python3.6のインストール

こいつが意外と厄介

デフォルトでpython2.7系列が入ってますが、

python3系をエイリアス化すると、yumが全く使えなくなります。

少々不便でも、python3と打つようにしておきます。

こいつを先に持ってきたのも、よくしくじって訳のわからんことになり再インストールすることになるからですw

日本語化より先にやってもいいような気がしますが、見慣れた文字で流れる画面を見たいので・・・。

 

# yum install https://centos7.iuscommunity.org/ius-release.rpm

 

# vi /etc/yum.repos.d/ius.repo
enabled=1 → enabled=0

 

# sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/ius.repo

 

# yum --enablerepo=ius install python36u python36u-libs python36u-devel python36u-pip

# cd /bin
# ln -s python3.6 python3
# ln -s pyvenv-3.6 pyvenv

# ln -s pip3.6 pip

 

 

# python -V

Python 2.7.5

# python3 -V

Python 3.6.2

 

 

とりあえずOKなので、通常のセキュリティ関連の作業に戻ります。

 

<参考サイト>

shikouno.hatenablog.com

 

SSHの設定

  • 作業用ユーザの作成
  • 鍵認証の設定

 

作業用ユーザの作成

# useradd (設定したいユーザ名)

# passwd (上で設定したユーザ名)

 

 

root権限を与える

# usermod -G wheel (上で設定したユーザ名)

 

# visudo

/wheel で検索

 

%wheel  ALL=(ALL)       ALL

 

コメントアウトというが、#が付いていた試しがない。

 

別画面でターミナルを開き、上記で設定したuserにてログインできるか確認

 

ssh (user)@(IP-address)

 

 

鍵認証の設定

VPS側にて公開キーの保管場所を作る

$ mkdir ~/.ssh

$ chmod 700 ~/.ssh

 

PC側でキーペアを生成

新しいターミナルを開き、キーペアの生成

$ ssh-keygen -t rsa -v

色々聞かれるが全てエンター

$ chmod 600 ~/.ssh/id_rsa.pub

 

VPSに転送

$ scp ~/.ssh/id_rsa.pub (user)@(IP-address):~/.ssh/authorized_keys

 

パスワードを聞かれるので、先ほど作ったユーザーのパスワードを入力

 

VPSに戻り、

$ ls -la .ssh

 

authorized_keysが入っていることを確認

 

 

SSHの設定(セキュリティの向上)

  • ポート番号の変更
  • パスワードログインの禁止
  • rootログインの禁止

ポート番号の変更

 VPS側にて、先ほどのユーザーにrootの権限を与える

 

$ sudo -s

 

パスワードを求められたら先ほど設定したパスワードを入力

設定を変更するので、変更するファイルのバックアップを取る。

 

$ cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org

$ vim /etc/ssh/sshd_config

 

ポート番号の変更

#Port 22 → Port (変更したいポート番号)

1024 ~ 65535 まで任意の値を設定できる

 

パスワードログインの禁止

PasswordAuthentication yes

PasswordAuthentication no

 

rootログインの禁止

#PermitRootLogin yes

PermitRootLogin no

 

終わったら変更を保存

 

sshを再起動

# sudo systemctl restart sshd

 

別のタブより、

$ ssh -p (Port) (user)@(IP-address)

 

でログインできればOK

設定前のログインもチェック

$ ssh (user)@(IP-address)

$ ssh root@(IP-address)

どちらもできなければOK

 

 

ファイアーウォールの設定

設定ファイルのバックアップ

sudo cp /etc/firewalld/zones/public.xml /etc/firewalld/zones/public.xml.org

 

設定の変更

sudo vi /etc/firewalld/zones/public.xml

 

<追加>

 

  <port protocol="tcp" port="(Port Number)"/>

  <service name="http"/>
  <service name="mysql"/> 

</zone>

 

 

再起動

sudo systemctl start firewalld
sudo systemctl enable firewalld


確認

sudo firewall-cmd --list-all

↑にて先ほど設定したポートが追加されていればOK

 

 

 

とりあえずそんな感じ。

 

WEBサーバ→Nginx

メールサーバ

MySQL

 

あたりを設定してDjangoの設定をして見ますか。。。