CentOS-7-x86_64-Minimal-1511.iso をインストール
途中で root のパスワード設定と管理者ユーザ(madoka)を作成
以後、
-
# は Linux(サーバ : server.com)での root の作業
-
% は Mac(ローカル)での madoka の作業
-
$ は Linux(サーバ : server.com)での madoka の作業
とする。
Linux を最新の状態に
% ssh madoka@server
$ sudo yum -y update
user の skel の作成
% ssh madoka@server
$ sudo mkdir /etc/skel/.ssh
$ sudo chmod 700 /etc/skel/.ssh
$ sudo touch /etc/skel/.ssh/authorized_keys
$ sudo chmod 600 /etc/skel/.ssh/authorized_keys
管理者ユーザ(madoka)の設定
パスコードでログインするための準備
% scp ~/.ssh/id_rsa.pub madoka@server:~/
% ssh madoka@server
$ cat id_rsa.pub >> .ssh/authorized_keys
$ rm id_rsa.pub
madoka のシェルを変更(各自の環境(好み)に合わせて適宜修正)
% scp ~/.tcshrc madoka@server:~/
% ssh madoka@server
$ chsh
新しいシェル [/bin/bash]: /bin/tcsh
パスワード:
シェルを変更しました。
各種設定
SELinux 関係のソフトのインストール
% ssh madoka@server
$ sudo yum -y install policycoreutils-gui
$ sudo yum -y install policycoreutils-restorecond
$ sudo yum -y install star
$ sudo yum -y install selinux-policy-minimum
$ sudo yum -y install selinux-policy-mls
$ sudo yum -y install iptstate
$ sudo yum -y install firewalld
$ sudo yum -y install setools
star はセキュリティコンテキストも保存できる(tar はできない)
$ star -H=exustar -xattr -cvz -f /tmp/log.tar gz var/log/maillog*
cp では --preserve=context オプションをつける
$ cp --preserve=context /etc/passowrd .
ssh の設定
- ポートの確認
$ sudo semanage port -l | grep ssh
- ssh で 22 番ポート以外を使う場合
$ sudo semanage port -a -t ssh_port_t -p tcp 9022
- ポートを削除する場合
$ sudo semanage port -d -t ssh_port_t -p tcp 9022
- ssh での認証の修正
$ sudo vi /etc/ssh/sshd_config
PermitRootLogin no # root でのログインは不可
PasswordAuthentication no # password による認証は不可
時刻同期(初期段階でインストール済み)
ntpd は obsolete
- インストールする場合
$ sudo yum -y install chrony
- 手動で起動する場合
$ sudo systemctl start chronyd
- 自動設定
$ sudo systemctl enable chronyd
$ systemctl list-unit-files -t service | grep chronyd
- 動作確認
$ sudo chronyc sources
各種コマンドのインストール
$ sudo yum -y install screen wget git emacs
$ sudo yum -y groupinstall "Development Tools"
$ sudo yum install -y openssl-devel readline-devel zlib-devel mysql-devel
open-vm-tools のインストール(server.com を VMWare で運用している場合)
VMwareTools は非推奨になった
$ sudo yum -y install open-vm-tools
$ sudo reboot
- 動作確認
$ ps -ef | grep vmtools
$ systemctl status vmtoolsd.service
madoka ユーザの git の設定
$ git config --global user.name "Kaname Madoka"
$ git config --global user.email "madoka@mitakihara.com"
$ git config --global core.editor "emacs"
$ git config --global color.ui auto
$ git config --global core.excludesfile ~/.gitignore_global
- 改行コードを変換するための設定
コミット時の CRLF から LF への変換はさせたいけれどもそれ以外の自動変換が不要な場合 input
$ git config --global core.autocrlf input
$ emacs ~/.gitignore_global
.zip
.DS_Store
Thumbs.db
/nbproject/
Nginx のインストール
epel リポジトリのインストールと設定
$ sudo yum -y install epel-release
$ sudo vi /etc/yum.repos.d/epel.repo
[epel]部分の「enabled=1」を「enabled=0」に変更
Nginx パッケージのインストール
$ sudo yum -y install --enablerepo=epel nginx
サービス登録
- サービスの確認
$ systemctl list-unit-files -t service | grep nginx
nginx.service disabled
- 自動起動のための設定
$ sudo systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
$ systemctl list-unit-files -t service | grep nginx
nginx.service enabled
サービス起動
$ sudo systemctl start nginx
$ systemctl -l status nginx
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since 月 2016-05-16 19:21:17 JST; 31s ago
Process: 1741 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 1739 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 1737 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 1744 (nginx)
CGroup: /system.slice/nginx.service
├─1744 nginx: master process /usr/sbin/ngin
└─1745 nginx: worker proces
5月 16 19:21:17 server.com systemd[1]: Starting The nginx HTTP and reverse proxy server...
5月 16 19:21:17 server.com nginx[1739]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
5月 16 19:21:17 server.com nginx[1739]: nginx: configuration file /etc/nginx/nginx.conf test is successful
5月 16 19:21:17 server.com systemd[1]: Failed to read PID from file /run/nginx.pid: Invalid argument
5月 16 19:21:17 server.com systemd[1]: Started The nginx HTTP and reverse proxy server.
- 動作確認
$ ps -ef | grep nginx
root 1744 1 0 19:21 ? 00:00:00 nginx: master process /usr/sbin/nginx
nginx 1745 1744 0 19:21 ? 00:00:00 nginx: worker process
firewall の設定
$ sudo firewall-cmd --get-default-zone
public
$ sudo firewall-cmd --list-services --zone=public
dhcpv6-client ssh
$ sudo firewall-cmd --add-service http --zone=public --permanent
success
$ sudo firewall-cmd --add-service https --zone=public --permanent
success
$ sudo firewall-cmd --reload
success
$ sudo firewall-cmd --list-services --zone=public
dhcpv6-client http ssh
動作チェック
$ wget -O - -q http://localhost
% wget -O - -q http://server.com
nginx のインストール状況を確認
$ sudo semanage fcontext -l | grep nginx
/etc/nginx(/.*)? all files system_u:object_r:httpd_config_t:s0
/var/run/nginx.* all files system_u:object_r:httpd_var_run_t:s0
/var/lib/nginx(/.*)? all files system_u:object_r:httpd_var_lib_t:s0
/var/log/nginx(/.*)? all files system_u:object_r:httpd_log_t:s0
/var/opt/rh/rh-nginx18/log(/.*)? all files system_u:object_r:httpd_log_t:s0
/etc/opt/rh/rh-nginx18/nginx(/.*)? all files system_u:object_r:httpd_config_t:s0
/usr/lib/systemd/system/nginx.* regular file system_u:object_r:httpd_unit_file_t:s0
/var/opt/rh/rh-nginx18/lib/nginx(/.*)? all files system_u:object_r:httpd_var_lib_t:s0
/var/opt/rh/rh-nginx18/run/nginx(/.*)? all files system_u:object_r:httpd_var_run_t:s0
/usr/sbin/nginx regular file system_u:object_r:httpd_exec_t:s0
$ cd /etc/nginx
$ ls -lZ
drwxr-xr-x. root root system_u:object_r:httpd_config_t:s0 conf.d
-rw-r--r--. root root system_u:object_r:httpd_config_t:s0 fastcgi_params
-rw-r--r--. root root system_u:object_r:httpd_config_t:s0 koi-utf
-rw-r--r--. root root system_u:object_r:httpd_config_t:s0 koi-win
-rw-r--r--. root root system_u:object_r:httpd_config_t:s0 mime.types
-rw-r--r--. root root system_u:object_r:httpd_config_t:s0 nginx.conf
-rw-r--r--. root root system_u:object_r:httpd_config_t:s0 scgi_params
-rw-r--r--. root root system_u:object_r:httpd_config_t:s0 uwsgi_params
-rw-r--r--. root root system_u:object_r:httpd_config_t:s0 win-utf
nginx.conf を修正
バーチャルホストの設定は /etc/nginx/conf.d/*.conf に個別に格納する。
使わない場合は拡張子を *.stop などに変更する。
/etc/nginx/nginx.conf
File Edit Options Buffers Tools Conf Help
# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
}
設定ファイルの構文チェック
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
nginx の起動の確認
$ sudo systemctl restart nginx
$ systemctl status nginx
動作チェック
$ wget -O - -q http://localhost
% wget -O - -q http://server.com
MariaDB のインストールと設定
パッケージのインストール
$ sudo yum -y install mariadb-server mariadb
設定ファイルの修正
/etc/my.cnf
[mysqld]
max_allowed_packet = 128M
これを設定しないと、1M くらいのファイルのやり取りで、MySQL がエラーを出してはまる orz
/etc/my.cnf.d/server.cnf
[mysqld]
character-set-server = utf8
/etc/my.cnf.d/mysql-clients.cnf
[mysql]
default-character-set = utf8
show-warnings
起動の確認
$ sudo systemctl start mariadb.service
$ systemctl status mariadb
自動起動の設定
$ sudo systemctl enable mariadb.service
$ systemctl list-unit-files -t service | grep mariadb
mariadb.service enabled
mysql_secure_installation の実行
$ sudo mysql_secure_installation
...
Enter current password for root (enter for none): [enter]
...
Set root password? [Y/n] [Y]
New password:
Re-enter new password:
...
Remove anonymous users? [Y/n] [Y]
...
Disallow root login remotely? [Y/n] [Y]
...
Remove test database and access to it? [Y/n] [Y]
...
Reload privilege tables now? [Y/n] [Y]