ぽれいんのブログ

エンジニアになるために覚えたことを日記に付けます。

リダイレクト

はじめに

インフラエンジニア初学者のぽれいんと申します。

転職する前はプログラミングスクールにて主にHTML、CSSRubyMySQL等について学びました。

※このブログでは自分が後々、見返すことができるようにまとめることを目的としていますが、もし需要があるようでしたら是非ともご覧ください。

<前回の記事>

porain.hatenablog.com

<参考記事>

初心者向け!Linux操作技術~標準入出力とリダイレクト~ | KENスクールブログ

Bashの入出力リダイレクトまとめ - Qiita

 

 

 

 

本日のやりたいこと

本日は、昨日、「シェルスクリプト内にログをリダイレクトさせて」と言われた際に、

「????」となったので、リダイレクト関連をこちらにまとめようと思います。

 

リダイレクト

リダイレクト記号(リダイレクション演算子)を使用することで入出力先を変更することができます。

基本的な書式

コマンド > /etc/file     /etc/fileに上書きして書き込む  
コマンド >> /etc/file     /etc/fileに書き足す
コマンド < /etc/file     コマンドが/etc/fileの内容を受け取る
コマンド 2> /etc/file エラーを/etc/fileに上書きして書き込む
コマンド > /etc/file 2>&1 エラーの出力先を標準出力と同じにする

使用例:シェルが実行されたら、test.logにechoコマンドがリダイレクトされる

# vi /home/user/test.sh
------------------------------------------
#!bin/bash

echo "シェルは実行されました!" >> /home/user/test.log
------------------------------------------

# sh /home/user/test.sh

# cat /home/user/test.log
シェルは実行されました!

やりたかったことはできた!

リダイレクトをするには">"の記号を使う!!

これはもう忘れない!!

またリダイレクト関連でまとめることはこちらに書き込みます!

 

以上!!!!!!!

 

 

AWS ~VPC内でのインスタンス作成~

はじめに

インフラエンジニア初学者のぽれいんと申します。

転職する前はプログラミングスクールにて主にHTML、CSSRubyMySQL等について学びました。

※このブログでは自分が後々、見返すことができるようにまとめることを目的としていますが、もし需要があるようでしたら是非ともご覧ください。

<前回の記事>

porain.hatenablog.com

<参考>

[初心者向け]VPC作成からEC2インスタンス起動までを構成図見ながらやってみる(その1) | DevelopersIO

リージョンとは | クラウド・データセンター用語集/IDCフロンティア

パブリックサブネットとプライベートサブネットの違いとは? | Tech Dive

 

本日のやりたいこと

<構成図>

f:id:porain:20210822150828p:plain

web3層構造

 

リージョンを選択

自分のインスタンスをどこに作るかを考えた際に、まず始めのグループ分けはリージョンです。リージョンとは、地理的に近い「ゾーン」をグループ化したものであり、リージョンごとに完全に独立しています。そのため、違うリージョン内でVPCを作成したり、サブネットを構成することはできません。

VPCを作成

次にVPCを作成します。VPCを使用することで仮想ネットワーク内でAWSリソース同士を通信することができます。仮想ネットワーク内は他のアカウントとは切り離されたプライベートな空間なためプライベートIPアドレスを使用します。

サブネットを作成

続いてVPC内にサブネットを作成します。サブネットにより、アベイラビリティゾーンの区別を行うことができます。これにより、1つのアベイラビリティゾーンが災害で停止してもシステム全体としては止まらないようにできます。

パブリックサブネット

インターネットゲートウェイ繋がっているサブネット領域

プライベートサブネット

インターネットゲートウェイ繋がっていないサブネット領域

インターネットゲートウェイ

プライベートな空間からグローバルな空間に繋がる道のことです。これがないとグローバルIPアドレスが付加できません。

 

 

 

 

clamAVの構築

はじめに

インフラエンジニア初学者のぽれいんと申します。

転職する前はプログラミングスクールにて主にHTML、CSSRubyMySQL等について学びました。

※このブログでは自分が後々、見返すことができるようにまとめることを目的としていますが、もし需要があるようでしたら是非ともご覧ください。

<前回の記事>

porain.hatenablog.com

<参考記事>

Clam AntiVirus を AWS EC2 にインストールする - Qiita

Amazon Linux 2にClamAVをインストールする - Qiita

オープンソースのアンチウイルスソフトウェア、ClamAVをCentOS 7にインストールする - Qiita

ClamAVの設定の巻 - PukiWiki

 

 

 

 

本日のやりたいこと

本日はウイルス攻撃を受けないようにするために対策をしたいということでウイルス対策用の無料ソフトである”clamAV”をインストールして実際に使ってみよー!

と思っております!

 

clamAVについて

clamAVオープンソースアンチウイルスソフトウェア。会員登録等も必要なく、少し設定をいじれば利用することができる。ただ、使用するメモリがかなり大きく、EC2のインスタンスタイプはt2.microではメモリ不足とのエラーが発生するがt2.mediumの使用により、利用可能になった。

 

clamAVのインストール

rootユーザになる

sudo su -

EPELリポジトリを有効にしてリポジトリをインストール

amazon-linux-extras install -y epel
yum install -y clamav clamav-update clamd

コピーを作成しfreshclam.confを編集

cp /etc/freshclam.conf /etc/freshclam.conf.org
vi /etc/freshclam.conf
以下を追記
-----------------------------------------
#UpdateLogFile /var/log/freshclam.log
UpdateLogFile /var/log/freshclam.log
LogFileMaxSize 2M
LogTime yes
LogSyslog yes
LogRotate yes
-----------------------------------------

freshclamを実行(ウイルス定義の更新)

freshclam
以下のような表示が出ればOK
Fri Aug 20 09:23:36 2021 -> ClamAV update process started at Fri Aug 20 09:23:36 2021
Fri Aug 20 09:23:36 2021 -> daily database available for download (remote version: 26268)

コピーを作成しclamdの設定ファイルを編集

cp /etc/clamd.d/scan.conf /etc/clamd.d/scan.conf.org
vi /etc/clamd.d/scan.conf
1.以下のコメントアウト(#)を外す
-----------------------------------------
#LogFile /var/log/clamd.scan

LogFile /var/log/clamd.scan

#LocalSocket /run/clamd.scan/clamd.sock
      ↓
LocalSocket /run/clamd.scan/clamd.sock

#LocalSocketMode 660

LocalSocketMode 660

#ExcludePath ^/proc/
#ExcludePath ^/sys/

ExcludePath ^/proc/
ExcludePath ^/sys/
-----------------------------------------
2.以下にコメントアウト(#)を付ける
-----------------------------------------
User clamscan

#User clamscan
-----------------------------------------

自動起動を有効にしてclamdの起動

systemctl enable clamd@scan
systemctl start clamd@scan

※うまく起動できない場合

ログからエラーを確認
journalctl -u clamd@scan

ウイルススキャンのテスト

テスト用のウイルス(無害なウイルス)をダウンロード

cd /tmp
wget http://www.eicar.org/download/eicar.com
ls eicar.com

手動でウイルススキャンを実施

clamscan --infected --remove --recursive /tmp

eicar.comが削除されていることを確認

ls /tmp/eicar.com

 

 

以上!!!!!!!

 

Linux ソフトウェアインストール

はじめに

インフラエンジニア初学者のぽれいんと申します。

転職する前はプログラミングスクールにて主にHTML、CSSRubyMySQL等について学びました。

※このブログでは自分が後々、見返すことができるようにまとめることを目的としていますが、もし需要があるようでしたら是非ともご覧ください。

<前回の記事>

 

porain.hatenablog.com

↑↑まだ見ていない方はこちらから↑↑

<参考>

yum|yum リポジトリの設定と追加

【 rpm 】コマンド(基礎編)――RPMパッケージをインストールする/アンインストールする:Linux基本コマンドTips(47) - @IT

Linuxにソフトウェアをインストールするには? | クロの思考ノート

[Linux]ファイルの圧縮、解凍方法 - Qiita

【Linuxコマンド】tarでアーカイブを作成・展開する方法 | 侍エンジニアブログ

 

 

 

本日のやりたいこと

本日は、ソフトウェアをインストールする際ってどうしたらいいんだ!?!?とパッと方法が思い浮かばなかったのでインストールの方法をまとめたいと思います!!

 

ソフトウェアインストール

yumリポジトリからインストール

必要なソフトウェアは公式リポジトリにそろっているがリポジトリは世界中にたくさんありそれぞれ配っているパッケージが違うそのため、リポジトリを追加することによってパッケージのバリエーションを増やすことができる。yumコマンドで追加できる。

yum install <パッケージ名>
・オプション
-y 全ての問い合わせに「yes」で応答したものとする

EPELリポジトリを追加する際

amazon-linux-extras install -y epel

上記コマンドを実行することでEPELを有効にすることができる

RPMファイルをダウンロード

リポジトリと違いパッケージマネージャは自動更新されない。

rpmコマンドを使用してインストールを行う。

インストール(追加)
rpm -ivh <rpmファイル>
・オプション
-i パッケージをインストール
-v パッケージを検査
-h 経過を表示
アンインストール(削除)
rpm -e <パッケージ名>
・オプション
-e パッケージをアンインストール(削除)
アップグレード(更新)
・既にインストール済のものをアップグレード
rpm -Fvh <rpmファイル>
・まだインストールしていないものをアップグレード
rpm -Uvh <rpmファイル>
・オプション
-F パッケージをアップグレード
-U 以前のバージョンがインストールされているときのみアップグレード
ステータス(状態)
rpm -qa
・既に存在するかの確認
rpm -qa | grep <確認したいパッケージ名>
・オプション
-q 問い合わせ
-a 一覧表示する

 

バイナリファイルをダウンロード

wgetコマンドでファイルのダウンロードを行う。ファイルの末尾にtar.gzがあるのでtarコマンドで解凍する。

wget https://xxxxxxx.xxx/latest.tar.gz
tar -xzvf latest.tar.gz
・オプション
-x アーカイブを展開
-z gzipの圧縮処理を行う
-v 圧縮・展開時に詳細を表示
-f アーカイブファイルを指定

 

以上!!!!!!

 

 

シェルスクリプトの基礎の基礎の基礎

はじめに

インフラエンジニア初学者のぽれいんと申します。

転職する前はプログラミングスクールにて主にHTML、CSSRubyMySQL等について学びました。

※このブログでは自分が後々、見返すことができるようにまとめることを目的としていますが、もし需要があるようでしたら是非ともご覧ください。

<前回の記事>

porain.hatenablog.com

↑↑まだ見ていない方はこちらから↑↑

 <参考>

シェルスクリプトの基礎知識まとめ - Qiita

 

 

 

シェルの基礎知識

変数

変数は値を入れる箱。この変数には任意の名前をつけることができる。

# NO=suuji

変数に対しては代入という操作をすることでその値を変更できる。

※=の端にスペースを入れない(変数ではなく文字列として表示される)

# echo $NO
suuji

変数に格納されている「値」を参照する場合は”$変数名”と指定する。

この”$”(ダラー)が変数と認識させる魔法のマーク

変数名について

変数名には後でどのような変数名にしたかわからなくならないように、その内容がわかるような名前をつけると分かりやすい。

環境変数

変数にはシェル変数と環境変数の2種類がある。

シェル変数 → 実行したシェル内でのみ有効

環境変数  → シェルから呼び出したプロセスにも有効

通常はシェル変数として保存されるため環境変数として設定するためにはexportコマンドを実行する。

# export HENSU

環境変数printenvコマンドで確認できる

# printenv

 

 

 

 

zabbixの構築

はじめに

インフラエンジニア初学者のぽれいんと申します。

転職する前はプログラミングスクールにて主にHTML、CSSRubyMySQL等について学びました。

※このブログでは自分が後々、見返すことができるようにまとめることを目的としていますが、もし需要があるようでしたら是非ともご覧ください。

<前回の記事>

porain.hatenablog.com

↑↑まだ見ていない方はこちらから↑↑

<参考>

Mr. Park 痕跡: Amazon Linux2 Zabbix 5.0 インストール

Amazon Linux2で、Zabbix5.0を構築してみた - Qiita

 

 

 

 

本日のやりたいこと

今回はオープンソフトウェアであるzabbixをつかってシステムの監視を行う環境の構築を行いたいと思います。

使用する環境

zabbix5.0インストールの手順書

タイムゾーンの修正

timedatectl set-timezone Asia/Tokyo

Zabbix5.0のリポジトリをインストール

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

yumのキャッシュクリア

yum clean all

Zabbixをインストールする上で必要なパッケージをインストール

rpm -Uvh http://mirror.centos.org/altarch/7/extras/aarch64/Packages/centos-release-scl-rh-2-3.el7.centos.noarch.rpm

rpm -Uvh http://mirror.centos.org/centos/7/extras/x86_64/Packages/centos-release-scl-2-3.el7.centos.noarch.rpm

Zabbix5.0をインストール

yum install -y zabbix-server-mysql zabbix-agent
yum install -y mariadb mariadb-server

zabbix.repo 手動修正

vi /etc/yum.repos.d/zabbix.repo

#下記を編集
------------------ここから-----------------------
[zabbix-fronted]

enable=1

------------------ここまで----------------------

 MariaDBを起動

mysql -u root -p

mysql_sequre_installationにて設定したパスワードを入力。

 Webインターフェースをインストール

yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl

 ユーザ・データベース等の作成

・zabbixというDBを作成
MariaDB [(none)]>
create database zabbix character set utf8 collate utf8_bin;
・DB[zabbix]にアクセスするユーザzabbixを作成(by'DBパスワード')
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
ここでのパスワードを後に使用。
MariaDB [(none)]> quit;

データベースにZabbix用のデータを流し込む

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
実行すると以下が表示される
Enter password:
ここでのパスワードは[DBパスワード]
よって、   zabbix と入力しEnter。

 

amazon linux2の時刻を修正

timedatectl set-timezone Asia/Tokyo

Zabbix側のタイムゾーンを変更

vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

#下記を末尾に追記
---------------------------------------------
php_value[date.timezone] = Asia/Tokyo
---------------------------------------------

データベースの接続情報を記載

cd /etc/zabbix/
vi zabbix_server.conf

#下記を編集
---------------------------------------------
DBPassword=zabbix
---------------------------------------------

起動、自動起動有効

systemctl start zabbix-server
systemctl start zabbix-agent
systemctl start rh-php72-php-fpm
systemctl start httpd
systemctl enable zabbix-server
systemctl enable zabbix-agent
systemctl enable mariadb
systemctl enable httpd
systemctl enable rh-php72-php-fpm

 ブラウザよりアクセス

<URL>

http://[パブリックDNS]/zabbix

でアクセスし、以下画面が出れば成功!!

 

f:id:porain:20210816193813p:plain

zabbixインストール完了画面

 

 <補足>

・zabbix完了画面が出なくて 404Not Found と表示される場合。

参考:

ZABBIXのインストールメモ - 何でも屋さんの備忘録

以下を試してみてください。自分は解消されました!!

1.パーミッション変更
chmod 777 /etc/zabbix

2.Apacheの再起動
systemctl restart httpd

 以上

通信の暗号化

はじめに

インフラエンジニア初学者のぽれいんと申します。

転職する前はプログラミングスクールにて主にHTML、CSSRubyMySQL等について学びました。

※このブログでは自分が後々、見返すことができるようにまとめることを目的としていますが、もし需要があるようでしたら是非ともご覧ください。

<前回の記事>

porain.hatenablog.com

<参考>

ApacheでSSL(TLS)を有効化する方法 - Qiita

httpsとは?httpとの違いとSSL暗号化通信の仕組み

 

通信の暗号化

今まではhttpプロトコルを使って通信を行っていました。この「http」通信は通常の平文で通信を行っているため、プライバシーも何もない通信となっています。http通信において個人情報を入力するのは流出につながるため絶対に行ってはいけません。そこでhttp通信を暗号化する「https」という通信を基本的にweb上では見かけると思います。「https」通信はSSL/TLSプロトコルを利用した暗号化通信が行われています。

使用環境

暗号化の手順

今回のブログではhttp通信をhttps化する手順を備忘録として残します。

 

 

rootユーザになる

sudo su -

SSLTLS)化を有効にするためのモジュールをインストール

yum install openssl
yum install mod_ssl

作業用フォルダに移動

cd /etc/pki/tls/certs/

秘密鍵の作成

openssl genrsa > server.key

...Generating RSA private key, 2048 bit long modulus....+++
と表示されれば成功

公開鍵の作成

openssl req -new -key server.key > server.csr

Country Name (2 letter code) [XX]: JP
国名を入力
State or Province Name (full name) []:Tokyo
都道府県名を入力
Locality Name (eg, city) [Default City]:Tama
↑市区町村名を入力
Organization Name (eg, company) [Default Company Ltd]:XXX
↑組織名(会社名)を入力
Organizational Unit Name (eg, section) []:Sales
↑部署名を入力
Common Name (eg, your name or your server's hostname) []:11.1.1.1
IPアドレスを入力
Email Address []:popopo@email.com
↑メールアドレスを入力
A challenge password []:
An optional company name []:
↑今回はオレオレ証明書なので何も入力せずEnter

サーバ証明書の作成

openssl x509 -req -signkey server.key < server.csr > server.crt

↑を実行して先ほど入力した情報が出てくればOK!

秘密鍵のコピー

cp -a server.key ../private/

ssl.confの修正

cp /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.org

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

-----------------------------------------------
1.サーバ名の変更

2.証明書のパス
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
           ↓↓
SSLCertificateFile /etc/pki/tls/certs/server.crt
3.秘密鍵のパス
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
↓↓
SSLCertificateKeyFile /etc/pki/tls/private/server.key

Apache再起動

systemctl restart httpd

以上の作業でhttpsプロトコルが使用できるようになっております。

 

<URL>

https://[パブリックDNS]

 

上記のURLでアクセスすると、接続がプライベートではありません。⚠セキュリティ保護なしという画面が出てくると思います。これは、証明書が自分で発行したオレオレ証明書だからです。しっかりとした機関が発行したものでしたら他のwebサイト同様にアクセスできます。証明書の発行機関は簡単に確認することができます。

URLの鍵マークをクリックし、証明書をクリックすることで

・発行先

・発行者

・有効期間 等

が確認できるので是非確認してみてください~~!!

 

以上