しがないインフラエンジニアLOG

インフラエンジニアとしての諸々

AWSコマンド(S3)編メモ

今回したこと

S3をAWSコマンドで捜査した際の基本メモ

なぜやろうとおもったか

毎回AWSの公式リファレンスを見ているのだが備忘録がてらに記載する。

前提

・EC2での捜査。 ・S3へのアクセス権があること。

1. ファイルチェック

aws s3 ls s3://[バケット名]/

2.アップロード

aws s3 cp [ファイル名] s3://[バケット名]/

3. 同期

aws s3 sync --region ap-northeast-1 s3://[同期元バケット名] s3://[同期先バケット名]

4. 切り戻し

aws s3 sync --region ap-northeast-1 s3://[同期先バケット名] s3://[同期元バケット名]

5. ダウンロード

aws s3 cp s3://[バケット名]/[ファイル名] [ファイル名]

最後に

基本の基本だけど自動化に組み込んでしまえばあまり使うことはないのですが、 影響範囲が大きい(間違えてバケットを削除する可能性など)使用する際は改めて確認が必要です。

chkrootkitの導入と実行のメモ

今回したこと

chkrootkitのインストールと実行

なぜやろうとおもったか

rootkitの検出によるセキュリティの担保。

前提

・AmazonLinux ・Epel登録済み

1. chkrootkitのインストール

# yum install chkrootkit

2. chkrootkitの実行

# chkrootkit -l
# chkrootkit 
# chkrootkit | grep INFECTED

最後に

chkrootkitとによって、侵入者が仕込んだrootkitが検出できる可能性が高くなります。 よく使用されるrootkit検出ツールとしてrootkithunterとならんで使用されるchkrootkitを使用してセキュリティの担保を確保しましょう。

AWS AuroraのSlowクエリー出力のパラメーターメモ

今回したこと

AWS AuroraのSlowクエリー出力のパラメーターメモ

なぜやろうとおもったか

SQLの実行時間が遅いクエリおよびindexされていないカラムへのSQLアクセス調査。

前提

AWS Aurora ・デフォルトパラメーターグループ以外を設定済みであること。 *デフォルトパラメーターグループは設定変更不可であるため。

1. indexされていないSQLのログ出力

・log_queries_not_using_indexes 0 ⇒ 1 にする。

2. SlowクエリーのSQLのログ出力

・slow_query_log 0 ⇒1 にする。

3. SlowクエリーのSQLのログ出力を0.5秒以上かかっているクエリーに設定

・long_query_time 空 ⇒ 0.5

最後に

Auroraはデフォルトでテーブル()にSlowクエリーが登録されてテーブルにSlowログがたまっていきます。 標準でログローテーション用のストアドがあるのでこちらを使用してテーブルの肥大化を避けましょう。 標準のストアド:CALL mysql.rds_rotate_slow_log

RootKit Hunterの導入と実行

今回したこと

RootKit Hunterのインストールと実行のメモ

なぜやろうとおもったか

rootkitの検出によるセキュリティの担保。

前提

・AmazonLinux ・Epel登録済み

1. RootkitHunberのインストール

# yum install rkhunter

2.rootkithunterのセキュリティデータベースアップデート

# rkhunter --update 

3.rootkithunterの実行

# diff /etc/rkhunter.conf.rpmsave /etc/rkhunter.conf.org 
< #SCRIPTWHITELIST=/usr/bin/GET
> SCRIPTWHITELIST=/usr/bin/GET
# rkhunter --check --no-mail-on-warning
# rkhunter --check --skip-keypress --report-warnings-only --no-mail-on-warning

最後に

rkhunterによって、侵入者が仕込んだrootkitが検出できる可能性が高くなります。 よく使用されるrootkit検出ツールとしてrootkithunterを使用してセキュリティの担保を確保しましょう。

Serposcopeインストールメモ

今回したこと

Serposcopeインストールメモ

なぜやろうとおもったか

仕事の関係でSerpoScopeをインストールする機会があったのでメモ。

前提

AWS/EC2

1. Java8インストール/切り替え

# yum install java-1.8.0-openjdk-devel 
# alternatives --config java
# java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)

2.serposcopeインストール手順

# mkdir /var/project/serposcope
# cd /var/project/serposcope
# wget https://serposcope.serphacker.com/download/2.6.0/serposcope-2.6.0.jar
# /usr/bin/java -jar /var/project/serposcope/serposcope-2.6.0.jar

3. デーモン化対応

# yum install supervisor
# chkconfig --list | grep supervisord
# chkconfig supervisord on
# vi /etc/supervisord.conf
* 末尾に追加。
    [program:serposcope]
    directory=/root/serposcope/
    command=/usr/bin/java -jar /var/project/serposcope/serposcope-2.6.0.jar
    numprocs=1
    autostart=true
    autorestart=true
    user=root
    redirect_stderr=true
    stdout_logfile=/var/log/supervisor/serposcope.log
# service  supervisord restart
# supervisorctl status *こちらにて確認可能

最後に

検索順位チェックツール「Serposcope」のインストールメモでした。

KIBANAインストールメモ

今回したこと

KIBANAインストールメモ

なぜやろうとおもったか

ElasticSearchに突っ込んだデータを参照するため。

前提

・ElasticSearchのリポジトリが登録済みであること。

1. インストール

# yum install kibana.x86_64

2.起動設定

# chkconfig --add kibana

3. 起動

# service kibana start

最後に

メモすることのほどでもないがElasticSearchの記事を書いたついでにメモとして記載。

ElasticSearch導入メモ(CentOS6.9)

今回したこと

ElasticSearch導入についての手順

なぜやろうとおもったか

自宅環境にログ収集用のElasticSearchを構築した際にはまってのでメモ。

前提

・ CentOS6.9(minimalインストール) ・iptable/selinux disable

1. 事前準備

# yum update
# yum install java-1.8.0-openjdk.x86_64
# vi ~/.bashrc
exports JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk.x86-64
# alternatives --config java
* jre-1.8.0-openjdkを選択

# vi /etc/security/limits.conf
elasticsearch    hard    nproc           4096
elasticsearch    soft    nproc           4096
elasticsearch    -       nofile          65536
# reboot

2. ElasticSearchインストール

# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
# vi /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
# yum list | grep elastic
# yum install elasticsearch

3. 起動設定

# chkconfig --add elasticsearch
# chkconfig elasticsearch on

4. パラメーターチューニング

# cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.org
# cp /etc/elasticsearch/jvm.options /etc/elasticsearch/jvm.options.org
# cp /etc/sysconfig/elasticsearch /etc/sysconfig/elasticsearch.org

# vi /etc/elasticsearch/elasticsearch.yml
(ipのバインド)
< network.host: 0.0.0.0
< bootstrap.system_call_filter: false
---
> #network.host: 192.168.0.1

*eth1でクラスターと接続している場合は
< network.bind_host: 0.0.0.0
< network.publish_host: _eth1:ipv4_
< bootstrap.system_call_filter: false
---
> #network.host: 192.168.0.1

(クラスターのホストdiscovery)
< discovery.zen.ping.unicast.hosts: ["192.168.56.101", "192.168.56.102", "192.168.56.103", "192.168.56.104", "192.168.56.105"]
---
> #discovery.zen.ping.unicast.hosts: ["host1", "host2"]

bootstrap.system_call_filter: false

# vi /etc/elasticsearch/jvm.options
-Xms1g
-Xmx1g

# vi /etc/elasticsearch/jvm.options
< ES_JAVA_OPTS="-XX:-AssumeMP"
---
> #ES_JAVA_OPTS=

5. 起動

# service elasticsearch start

最後に

AWS環境では特にパラメーターの変更は必要なく立ち上がったが、 CentOSの場合、「ES_JAVA_OPTS="-XX:-AssumeMP"」を記載しないとJAVAのエラーが出力され起動しなかったのではまった。 LinuxディストリビューターによってJavaの設定が違うことが原因とGithubのissueにあったのでメモとして記載する。