moshimore Knowledge

アプリ開発・紹介とメモ書き、日々の日記。

さくらインターネットVPSの初期設定について

f:id:moshimore:20180710165922j:plain
初期設定の内容をメモ書きしておく。

手順

システムのアップデート

[root@www ~]# yum update

コンソールの日本語化

[root@www ~]# cd /etc/sysconfig/
[root@www sysconfig]# cp i18n i18n.backup
[root@www sysconfig]# vi i18n

1行目

LANG="C" → LANG="ja_JP.UTF-8"

ホスト名の変更

[root@www ~]# cd /etc/sysconfig/
[root@www sysconfig]# cp network network.backup
[root@www sysconfig]# vi network

2行目

HOSTNAME=localhost.localdomain → HOSTNAME=XXXXX.XXXXX

SSH のポート変更

[root@www ~]# cd /etc/ssh
[root@www ssh]# cp sshd_config sshd_config.backup
[root@www ssh]# vi sshd_config

13行目

#Port 22 → Port XXXXX

SSH のポート変更の適用

[root@www ~]$ service sshd restart

ファイアウォールの設定

[root@www ~]# cd /etc/sysconfig/
[root@www sysconfig]# vi iptables

以下を書き込む(最終行に改行は不要)

*filter
:INPUT   ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT  ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]

-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# SSH
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport XXXXX -j ACCEPT

# HTTP
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

# SMTP/SMTPS
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 465 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 587 -j ACCEPT

# POP3
# -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT
# -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 995 -j ACCEPT

# IMAP
# -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 143 -j ACCEPT
# -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 993 -j ACCEPT

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

COMMIT

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

[root@www sysconfig]# service iptables restart
iptables: ファイアウォールルールを適用中: [ OK ]
[root@www sysconfig]# service iptables restart
iptables: チェインをポリシー ACCEPT へ設定中filter [ OK ]
iptables: ファイアウォールルールを消去中: [ OK ]
iptables: モジュールを取り外し中: [ OK ]
iptables: ファイアウォールルールを適用中: [ OK ]

IPv6 を無効化

[root@www~]# cd /etc/modprobe.d/
[root@www modprobe.d]# vi disable-ipv6.conf

以下を書き込む

options ipv6 disable=1

IPv6 関連のサービスの自動起動をしないように設定

[root@www ~]# /etc/init.d/ip6tables stop
[root@www ~]# chkconfig ip6tables off
[root@www ~]# chkconfig ip6tables --list
ip6tables 0:off 1:off 2:off 3:off 4:off 5:off 6:off

IPv6 の無効化により Postfix がエラーを出力するため、Postfix の IPv6 も無効にする

warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocol
warning: inet_protocols: configuring for IPv4 support only

[root@www ~]# cd /etc/postfix/
[root@www postfix]# cp main.cf main.cf.back
[root@www postfix]# vi main.cf

119行目

inet_protocols = all → inet_protocols = ipv4

Postfix の IPv6 無効化設定の適用

[root@www ~]# /etc/init.d/postfix restart
Shutting down postfix: [ OK ]
Starting postfix: [ OK ]

Apache のインストール

[root@www ~]# yum install httpd

Apache の 設定

[root@www ~]# cd /etc/httpd/conf
[root@www conf]# cp httpd.conf  httpd.conf.backup
[root@www conf]# vi httpd.conf

44行目

ServerTokens OS → ServerTokens Prod

262行目

ServerAdmin root@localhost → ServerAdmin XXXXX@XXXXX.XXXXX

331行目

    Options Indexes FollowSymLinks →     Options -Indexes FollowSymLinks

338行目

    AllowOverride None →     AllowOverride All

536行目

ServerSignature On → ServerSignature Off

Apache の設定の適用

[root@www ~]# service httpd start
httpd を起動中:                                            [  OK  ]
[root@www ~]# chkconfig httpd on
[root@www ~]# chkconfig --list httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

MySQL のインストール

[root@www ~]# yum install mysql-server

MySQL の設定

[root@www ~]# cd /etc/
[root@www etc]# cp my.cnf my.cnf.backup
[root@www etc]# vi my.cnf

以下を追記

# character-set
default-character-set=utf8
skip-character-set-client-handshake
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqldump]
default-character-set=utf8

MySQL の設定の適用

[root@www ~]# service mysqld start
MySQL データベースを初期化中:  Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h XXXXX.XXXXX password 'new-password'

Alternatively you can run:
/usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /usr/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/bin/mysqlbug script!

                                                           [  OK  ]
mysqld を起動中:                                           [  OK  ]
[root@www ~]# chkconfig mysqld on
[root@www ~]# chkconfig --list mysqld
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off

MySQL のパスワード設定

[root@www ~]# mysqladmin -u root password 'XXXXX'

不要なデータベースとユーザーの削除

[root@www ~]# mysql -u root -p
mysql> drop database test;
mysql> use mysql;
mysql> select user, host , password from user;
mysql> start transaction;
mysql> delete from user where password = '';
mysql> select user, host , password from user;
commit;

PHP のインストール

[root@www ~]# yum install php php-mbstring php-mysql php-pear php-mcrypt
[root@www ~]# pear install -a Mail Mail_mimeDecode
[root@www ~]# cd /etc/
[root@www etc]# cp php.ini php.ini.backup

946行目

;date.timezone = → date.timezone = Asia/Tokyo
[root@www ~]# service httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

ユーザーの作成

[root@www ~]# useradd XXXXX
[root@www ~]# passwd XXXXX

SSH 接続用の鍵を作成
TeraTerm を起動
「新しい接続」ダイアログで「キャンセル」ボタンを押下
メニューから「設定」→「SSH鍵生成…」を選択
パスフレーズを入力し、「公開鍵の保存」と「秘密鍵の保存」ボタンを押下
鍵ファイルをローカルに保存
公開鍵は id_rsa.pub
秘密鍵は id_rsa とする

サーバーの SSH 設定を変更
公開鍵認証でログインしたいユーザーでログインする
公開鍵ファイルとなる id_rsa.pub を送信する
TeraTerm では、ログイン状態でウィンドウにファイルをドロップすれば、ユーザーの HOME に保存される
送信の際は、SCP ボタンを押下

[XXXXX@www ~]$ mkdir .ssh
[XXXXX@www ~]$ mv id_rsa.pub .ssh/authorized_keys
[XXXXX@www ~]$ chmod 600 .ssh/authorized_keys
[XXXXX@www ~]$ chmod 700 .ssh/

SSH で root ログインとパスワードでログインを無効化する

[root@www ~]# cd /etc/ssh
[root@www ssh]# vi sshd_config

42行目

#PermitRootLogin  yes → PermitRootLogin  no

64行目

#PasswordAuthentication yes → PasswordAuthentication no

SSH 変更の適用

[root@www ssh]# service sshd restart
sshd を停止中:                                             [  OK  ]
sshd を起動中:                                             [  OK  ]

sudo を使用するユーザーを wheel グループに追加する

[root@www ~]# usermod -G wheel XXXXX
[root@www ~]# visudo

105行目

# %wheel        ALL=(ALL)       ALL → %wheel        ALL=(ALL)       ALL

コマンドのパスを通す

[XXXXX@www ~]$ vi .bash_profile

以下を追記する

PATH=$PATH:/sbin
PATH=$PATH:/usr/sbin
PATH=$PATH:/usr/local/sbin

反映する

[XXXXX@www ~]$ source ~/.bash_profile

メールボックスを用意する

[root@www ~]# mkdir -p /etc/skel/Maildir/{new,cur,tmp}
[root@www ~]# chmod -R 700 /etc/skel/Maildir/

[XXXXX@www ~]$ mkdir Maildir
[XXXXX@www ~]$ chmod 700 Maildir

Postfix の設定

[root@www ~]# cd /etc/postfix/
[root@www postfix]# vi main.cf

以下に変更

myhostname = XXXXX.XXXXX
mydomain = XXXXX.XXXXX
myorigin = $mydomain
home_mailbox = Maildir/
smtpd_banner = $myhostname ESMTP unknown
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
local_recipient_maps =
luser_relay = XXXXX

以下を追記

message_size_limit = 1024000

Postfix の設定の反映

[root@www ~]# service postfix restart
postfix を停止中:                                          [  OK  ]
postfix を起動中:                                          [  OK  ]

メール受信時に PHP のプログラムを実行

[root@www ~]# vi /etc/aliases
XXXXX: cc "| /usr/bin/php -f /AAAAA/AAAAA.php"
YYYYY: cc "| /usr/bin/php /BBBBB/app/Console/cake.php CCCCC"
[root@www conf]# newaliases

以上、さくらインターネットVPSの初期設定についてでした。