Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What is going on with this article?
@ryuji_i3

CentOS7 の初期設定をしてみよう

More than 1 year has passed since last update.

はじめに

先日、ServersMan@VPSを新規で契約しました!
契約手順を記載してみたので、ServersMan@VPSに興味のある方は是非読んでみてください。
さくらのクラウドからServersMan@VPSに乗り換えてみる

今回は、CentOS7の初期設定をしていきたいと思います。

環境

ServersMan@VPS
CentOS7

パッケージのアップデート

パッケージを全て最新にします。

# yum update -y

日本語対応

初期設定値はデフォルトの言語(英語)になっています。

# echo $LANG
C
# date
Mon May 14 20:47:28 JST 2018

設定ファイルを変更します。 
vimで設定ファイルを編集し、sourceで反映させます。

# vim ~/.bash_profile
# source ~/.bash_profile

編集内容は、最終行に2行追加するだけです。

.bash_profile
LANG=ja_JP.UTF-8
export LANG

再度確認すると、日本語になっていることが分かります。

# echo $LANG
ja_JP.UTF-8
# date
2018年  5月 14日 月曜日 20:56:07 JST

ユーザ作成

ユーザ名をryujiとして作成し、sudo権限を追加します。

# useradd ryuji
# passwd ryuji
# usermod -G wheel ryuji

作成したユーザに切り替えて、sudoコマンドを実行してみます。

# su - ryuji
$ sudo visudo

sudoで失敗した場合は、rootユーザでvisudoを実行し、
以下の設定がコメントアウトされていたら、外してみてください。

visudo
#%wheel  ALL=(ALL)       ALL
%wheel  ALL=(ALL)       ALL

公開鍵認証

パスワード認証ではセキュリティが弱いため、公開鍵認証でログイン出来るようにしていきます。

サーバ側

# su - ryuji
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh

接続元PC側(Macを使用しています)
ssh-keygenコマンドを実行すると、名前などを設定できますが
デフォルトとで問題ない為、全てEnterキーを押します。
scpコマンドでサーバに公開鍵を、authorized_keysという名前に変更して登録します。

$ ssh-keygen -t rsa -v
$ chmod 600 .ssh/id_rsa.pub
$ scp -P 【ポート番号】~/.ssh/id_rsa.pub ryuji@【IPアドレス】:~/.ssh/authorized_keys

公開鍵認証でログイン出来るように設定します。
念のため、ファイルをコピーしてから編集し、serviceで反映させます。
root権限で行います。

# mkdir -m 777 /home/ryuji/backup
# cp -ip /etc/ssh/sshd_config /home/ryuji/backup
# vim /etc/ssh/sshd_config
# service sshd restart
/etc/ssh/sshd_config
#PubkeyAuthentication yes
PubkeyAuthentication yes

ログイン出来れば完了です。

ssh ryuji@IPアドレス

SSH設定

ここまでの設定によって、一般ユーザで公開鍵認証が可能になっているため
不要なログイン方法を禁止し、セキュリティを強化していきます。
※設定反映後、新規のターミナルでログインができる事を確認出来るまでは、開いているターミナルを閉じないでください。
ログインができなくなる可能性があります。

# vim /etc/ssh/sshd_config
# service sshd restart

root権限でログイン禁止 

/etc/ssh/sshd_config
#PermitRootLogin yes
PermitRootLogin no

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

/etc/ssh/sshd_config
#PasswordAuthentication yes
PasswordAuthentication no

SSHのポート番号を変更

ServersMan@VPSでは、SSHのポート番号がデフォルト(22番)ではなかったので、変更は不要でした。
変更したい場合は、次のように任意のポート番号に書き換えましょう。

# vim /etc/ssh/sshd_config
# service sshd restart
/etc/ssh/sshd_config
#Port 22
Port 【任意のポート番号】

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

CentOS7では、iptables の代わりに firewalldを使用するのが一般的です。
なのですが・・・

ServersMan@VPSでは、iptablesがインストールされており、
自動起動の設定までされていたので、iptablesで設定します。
設定内容は、ドットインストールで紹介されていたのもを使用しています。

# cp -ip /etc/sysconfig/iptables /home/ryuji/backup/
# vim /etc/sysconfig/iptables
# service iptables restart
/etc/sysconfig/iptables
*filter 
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:SERVICES - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 4 -j ACCEPT
-A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp -m state --state NEW -j SERVICES
-A INPUT -p udp --sport 53 -j ACCEPT
-A INPUT -p udp --sport 123 --dport 123 -j ACCEPT
-A SERVICES -p tcp --dport 【変更したSSHポート番号】 -j ACCEPT
-A SERVICES -p tcp --dport 80 -j ACCEPT
-A SERVICES -p tcp --dport 443 -j ACCEPT
-A SERVICES -p tcp --dport 9200 -j ACCEPT
-A SERVICES -p tcp --dport 5601 -j ACCEPT
COMMIT

ざっくり説明すると
サーバ内から外への通信は全て許可
外からサーバ内への通信は全て拒否し、httpやSSHなどの通信は個別に許可しています。
iptables -Lで設定内容を確認できます。

ヒストリサイズの変更(任意、個人的におすすめ)

hisoryコマンドをよく使うので、履歴を記憶できる上限を増やしておきます。

# cp -ip /etc/profile /home/ryuji/backup
# vim /etc/profile
# source /etc/profile
/etc/profile
#HISTSIZE=1000
HISTSIZE=10000

SELinux無効化(任意)

SELinuxを利用すると細かいアクセス制御が可能になるそうです。
ただし、SELinuxが原因でうまく動作しないことが多いため、無効化していることが多いです。

設定を確認したところ、ServersMan@VPSでは、
初期設定で無効(Disabled)になっていたので、変更は不要でした。

# getenforce
Disabled

次回

LAMP環境を、Ansibleを使用してインストールしてみたいと思います!
Ansible を初めて使ってLAMP環境を作成してみる

1
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ryuji_i3
日々勉強中です。 資格取得とは別に、興味がある技術を積極的に試していきたい!

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
1
Help us understand the problem. What is going on with this article?