KUSONEKOの見る世界

CentOS 8 構築メモ 1

長らくCentOS 7を使っていましたが、HDDの読めないセクタが増えてきており、先日からは/tmpにアクセスが出来なくなり、yumさえ出来なくなりました。

いっそのこと再インストールしようと思っていたところ、丁度CentOS 8がリリースされるということで、これをインストールすることにしました。

情報が無く、手探りで構築することになるので、時間が大変掛かると思いますが、CentOS8には以下の魅力もあるため頑張ってみます。
  • nftablesが速いらしい(iptablesの置き換え、習得には時間が掛かりそう)
  • 普通にPHP7.2 、HTTP2が使える
この記事では個人的なメモレベルではありますが、記載しておきたいと思います。
インストールしたサーバはこの記事の物です。

量が増えてしまったので分割しました。
>>CentOS 8 構築メモ 2

インストールメディア作成

CentOS 8のISOが、DVDに入りきらないため、USBメモリをインストールメディアにしました。
CentOS-8-x86_64-1905-dvd1.isoをダウンロードして、rufus 3.8で書きました。
特に問題は発生せず。

CentOS 8 インストール

USBブートをさせ、Intall CentOS Linux 8.0.1905を選択。

CENTOS LINUX 8.0.1905 へようこそ。で、日本語を選択。

時刻と日付で、日本を選択。

ソフトウェアの選択で、最小限のインストールを選択。

インストール先で、標準パーティションを選択し、以下のように指定。
マウントポイント 容量
/boot/efi 200MiB
/boot 1024MiB
swap 8GiB
/ 200GiB
/home 2.52TiB(残り)

ネットワークとホスト名で、IPアドレス等を指定。

以上で、インストールを開始。
インストール中、rootのパスワードを設定。
インストールが終わったら、再起動をクリック。

CentOS 8 構築

SELinux無効化

忘れずにやっておく。忘れていたため数時間ハマった。

firewalld停止

とりあえず停止。
systemctl stop firewalld
systemctl disable firewalld
勉強不足のため、設定は今後実施。
nftablesは以下で記載しました。
>>CentOS 8 で nftables を設定してみた

rsyslog

バックアップしておいた、rsyslog.confの内容をマージ。
systemctl restart rsyslog

DHCPサーバ

dnf install dhcp-server
バックアップしておいた、dhcpd.confを転送。
systemctl start dhcpd
systemctl enable dhcpd

strongSwan

dnf install wget tar bzip2 make gcc gmp-devel openssl-devel
wget https://download.strongswan.org/strongswan-5.8.1.tar.bz2
tar -jxvf strongswan-5.8.1.tar.bz2
cd strongswan-5.8.1
./configure --prefix=/usr --sysconfdir=/etc --enable-eap-mschapv2 --enable-eap-peap --enable-eap-radius --enable-eap-tls --enable-eap-ttls --enable-openssl --enable-eap-identity --enable-aesni
make
make install
バックアップしておいた証明書、.confファイルを転送。

ipsec start
自動起動のため、rc.localにipsec startを記載。

chmod +x /etc/rc.d/rc.local
でも、起動時に動いてくれず。要対策。
↑サービス化しました。 .serviceファイルが既にあったため、それを使用。
cp strongswan-5.8.1/init/systemd-starter/strongswan-starter.service /etc/systemd/system
systemctl start strongswan-starter
systemctl enable strongswan-starter
ルーティングの有効化
sysctl net.ipv4.ip_forward=1
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf

私の設定では、NATではなくルーティングしている。 するとサーバがICMP Redirectを送信してくるため、以下を設定する。
sysctl -w net.ipv4.conf.all.send_redirects=0
sysctl -w net.ipv4.conf.enp2s0.send_redirects=0
echo "net.ipv4.conf.all.send_redirects=0" >> /etc/sysctl.conf
echo "net.ipv4.conf.enp2s0.send_redirects=0" >> /etc/sysctl.conf

nginx + PHP PHP-FPM

dnf install nginx
dnf install php php-fpm
vi /etc/nginx/nginx.conf
変更部分のみ記載。
http {
    server {
        server_name  servername;
        root         /var/www/html;

        location ~ \.php$ {
            fastcgi_pass    unix:/run/php-fpm/www.sock;
            fastcgi_index  index.php;
            include        fastcgi_params;
            fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
        }
    }
    ssl_protocols TLSv1.2 TLSv1.3;
    server {
        server_name  servername;
        root         /var/www/html;

        ssl_certificate "サーバ証明書のフルパス";
        ssl_certificate_key "サーバ証明書のキーのフルパス";
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers PROFILE=SYSTEM;
        ssl_prefer_server_ciphers on;

        location ~ \.php$ {
            fastcgi_pass    unix:/run/php-fpm/www.sock;
            fastcgi_index  index.php;
            include        fastcgi_params;
            fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
        }
    }
}

vi /etc/php-fpm.d/www.conf
変更部分のみ記載
user = nginx
group = nginx
listen = /run/php-fpm/www.sock
listen.owner = nginx
listen.group = nginx
systemctl start nginx
systemctl enable nginx
systemctl start php-fpm
systemctl enable php-fpm

MySQL

dnf install mysql-server
dnf install php-mysqlnd
vi /etc/my.cnf.d/mysql-server.cnf
以下を追加。
character-set-server = utf8
systemctl start mysqld
systemctl enable mysqld
mysql_secure_installation
rootのパスワードのみ入力。