アフォでも出来る

アフォでも出来るように記録します(IT系)

OCIでLAMP環境の構築(Oracle Linux8)OpenSSLインストール

cd /etc/pki/tls/certs

sudo openssl genrsa -des3 -out server.key 2048

#パスフレーズを2回入力する。

#server.key からパスフレーズ情報を削除する。

sudo openssl rsa -in server.key -out server.key

sudo chmod 400 server.key

#自己証明書作成

sudo openssl req -new -x509 -days 3650 -key server.key -out server.crt

 ※ ホスト名を正しく設定しないと証明書エラーになる

 

 #ブラウザインポート用バイナリDER作成(アドレス/server.der でDL可能)

sudo openssl x509 -in server.crt -out /var/www/html/server.der -outform DER

cd /

#mod_sslインストール

sudo yum -y install mod_ssl

#ssl.conf 編集

sudo vi /etc/httpd/conf.d/ssl.conf

#DocumentRoot "/var/www/html" ←43行目くらい

DocumentRoot "/var/www/html" ←コメント解除(ドキュメントルート)

 

#ServerName www.example.com:443 ←44行目くらい

ServerName xxxxxxxxxx.com:443 ←コメント解除&変更(サーバー名を記入)

 

SSLCertificateFile /etc/pki/tls/certs/localhost.crt ←85行目くらい

SSLCertificateFile /etc/pki/tls/certs/server.crt ←変更(証明書へのパスを指定)

 

SSLCertificateKeyFile /etc/pki/tls/private/localhost.key ←93行目くらい

SSLCertificateKeyFile /etc/pki/tls/certs/server.key ←変更(秘密鍵へのパスを指定)

 

sudo systemctl restart httpd

 

勿論,firewallhttpsの解放が必要

sudo firewall-cmd --permanent --add-service=https

sudo firewall-cmd --reload

 

OCIでLAMP環境の構築(Oracle Linux8)MySQLインストール

MySQL5.6のdmpデータを取り込もうとしたら上手くいかず,upgredeできない等MySQLの挙動がおかしいので,こちらの方法にします。以下は無視で。

 

#リポジトリをインストールします。

#Default のMySQLを無効化。

sudo dnf module disable mysql

#MySQLのインストール

sudo dnf install mysql-community-server

 

#自動起動を有効に。

sudo systemctl start mysqld

sudo systemctl enable mysqld

#ログからパスワードを確認(root@localhost: の後の文字列を記録する)

sudo head -n 5 /var/log/mysqld.log

 

sudo mysql_secure_installation

最初にrootのパスワードを入力,次に新しいパスワードを入力し,以降はすべてYで進めば設定完了。

データベースの作成等は省略します。

OCIでLAMP環境の構築(Oracle Linux8)PHPインストール

PHP7をインストールします。

 

sudo dnf -y install php php-fpm php-mysqlnd php-opcache php-gd php-xml php-mbstring

 

sudo systemctl start php-fpm

sudo systemctl enable php-fpm

 

ApacheをリロードしてPHPを有効にします。

sudo systemctl restart httpd

 

PHPが有効である事を確認します。

sudo vi /var/www/html/info.php

<?php

phpinfo();

?>

 

ブラウザで,アドレス/info.php にて各種PHPの設定が表示される事を確認します。

f:id:unethk:20210609164814p:plain

PHP

phpinfoを部外者に見られると何かとあれなので,ファイル削除をお忘れなく。

OCIでLAMP環境の構築(Oracle Linux8) Apache

Apacheをインストールします。

sudo dnf -y install httpd httpd-tools httpd-devel


sudo systemctl start httpd

sudo systemctl enable httpd

sudo firewall-cmd --permanent --add-service=http

sudo firewall-cmd --reload

 

これで,パブリックIPでApacheの初期画面が表示されれば成功。

f:id:unethk:20210609164024p:plain

Apache

当然ながらOCIのFWの80ポートの開放も必要です。

 

Apache専用ユーザーの作成

sudo useradd -s /sbin/nologin www

passwd www

cd /etc/httpd/conf

sudo vi httpd.conf

 

User Apache

↓ 69行目くらい

User www

 

Group Apache

↓ 70行目くらい

Group www

 

#ServerName www.example.com:80

↓ 98行目くらい

 ServerName www.example.com:80

 

cd /var/www

sudo chown www:www html

sudo chown www:www cgi-bin

sudo systemctl restart httpd

OCIでLAMP環境の構築(Oracle Linux8)

CentOS8のサポート終了が知らされ,慌ただしく代役を調査しています。

OCIでOracleLinux8なら当分大丈夫そうですし,試してみる事にしました。

まずは,環境の作成から。

コンパートメントを作成。

f:id:unethk:20210610213323p:plain

compartment

次にVCN,orclを作成

そして,コンピュートの作成

f:id:unethk:20210609163125p:plain

コンピュート

ImageをOracleLinux8にして,CPUも変更します。無料版の場合は一択ですが。

f:id:unethk:20210609163400p:plain

コンピュート2

SSHキーなどは同じなので省略します。Createでとりあえずコンピュートは作成されました。

f:id:unethk:20210609163646p:plain

コンピュート3

 

 

OCIでサーバー構築(MySQL)

MySQLのインストール

MariaDBの削除

# sudo yum remove mariadb-libs

# rm -rf /var/lib/mysql/

最新版のmySQLをインストール

# sudo yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm

# yum info mysql-community-server

# sudo yum -y install mysql-community-server

# mysqld –version

# sudo systemctl start mysqld.service

自動起動を設定

# sudo systemctl enable mysqld.service

初期パスワードの確認(ログファイル中の赤文字の部分 6行目くらい)

# vi /var/log/mysqld.log

[Note] A temporary password is generated for root@localhostlSample;#B/f6Y;

# sudo mysql_secure_installation

最初に上記パスワードの入力を求められ,新しいPWを入力するが結構セキュリティーポリシーが厳しい。あとは基本的にy(yes)

デフォルトキャラセットをUTF-8にしてパスワードの有効期限を無限に

# vi /etc/my.cnf

最後に以下を追加

character-set-server = utf8

default_password_lifetime = 0

 

※    デフォルトキャラクタセットSJISにする場合

上記を下記にする

character-set-server = cp932

skip-character-set-client-handshake

default_password_lifetime = 0

 

念のため再起動してからデータベースを作成。外部からの接続があるならlocalhost→192.168.10.% etc

# sudo systemctl restart mysqld.service

mysql -u root -p

create database testdb;

create user'test'@'localhost' identified by 'testpw';

grant all privileges on testdb.* to 'test'@'localhost';

FLUSH PRIVILEGES;

exit;

OCIでサーバー構築(FTPサーバー)

VSFTPD インストール

 

秘密鍵作成(パスフレーズは控えておく事)

# cd /etc/pki/tls/certs

# openssl genrsa -des3 -out server.key 2048

# sudo openssl rsa -in server.key -out server.key

# sudo chmod 400 server.key

# sudo openssl req -new -x509 -days 3650 -key server.key -out ftp.crt

以下をのように入力

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [XX]:JP

State or Province Name (full name) :Osaka

Locality Name (eg, city) [Default City]:Osaka

Organization Name (eg, company) [Default Company Ltd]:testtest

Organizational Unit Name (eg, section) :

Common Name (eg, your name or your server's hostname) :test

Email Address :test@test.pgw.jp

 

# sudo su

# cat server.key ftp.crt > ftp.pem

# chmod 400 ftp.*

# exit

# cd

FTPユーザーの作成(ドキュメントルートへの権限を与える)

# sudo adduser testtest

# sudo passwd testtest

# sudo chown -R testtest /var/www/html

 

VSFTPDインストール

# sudo yum -y install vsftpd

# sudo vi /etc/vsftpd/vsftpd.conf

anonymous_enable=YES 12行目くらい

anonymous_enable=NO ←変更(anonymous(匿名)のログインを許可しない。)

 

#xferlog_file=/var/log/xferlog 53行目くらい

xferlog_file=/var/log/xferlog ←コメントを外す

 

#ascii_upload_enable=YES 83行目くらい

ascii_upload_enable=YES ←コメント解除(ASCIIモードでのアップロードを許可)

 

#ascii_download_enable=YES 84行目くらい

ascii_download_enable=YES ←コメント解除(ASCIIモードでのダウンロードを許可)

 

#chroot_local_user=YES 101行目くらい

chroot_local_user=YES ←コメント解除(デフォルトでホームディレクトリより上階層への移動を禁止)

 

#chroot_list_enable=YES 102行目くらい

chroot_list_enable=YES ←コメント解除(ホームディレクトリより上階層への移動を許可するリスト)

 

#chroot_list_file=/etc/vsftpd/chroot_list 104行目くらい

chroot_list_file=/etc/vsftpd/chroot_list ←コメント解除(上記ユーザーの指定ファイル)

 

#ls_recurse_enable=YES 110行目くらい

ls_recurse_enable=YES ←コメント解除(ディレクトリごとの削除を許可する)

 

listen=NO 115行目くらい

listen=YES ←変更(IPv4を許可)

 

listen_ipv6=YES 124行目くらい

listen_ipv6=NO ←変更(IPv6を不許可)

 

↓最終行に下記を記入 pasv_addressはグローバルアドレス

# VSFTPD configuration

pasv_enable=YES

pasv_addr_resolve=YES

pasv_address=XXX.XXX.XXX.XXX

pasv_min_port=4000

pasv_max_port=4029

use_localtime=YES

ssl_enable=YES

rsa_cert_file=/etc/pki/tls/certs/ftp.pem

require_ssl_reuse=NO

force_local_logins_ssl=NO

force_local_data_ssl=NO

force_dot_files=YES

sudo su

echo "vsftpd: ALL" >> /etc/hosts.allow

echo opeman >> /etc/vsftpd/chroot_list

systemctl start vsftpd.service

systemctl enable vsftpd.service

systemctl is-enabled vsftpd.service

exit