読者です 読者をやめる 読者になる 読者になる

PythonのVersionをpyenvで切り替える (Mac)

Macには最初からpythonが入っている。

# python --version
Python 2.7.10

Pythonでは、バージョン2.x系と3.x系に互換性がないので、切り替えて使いたい。

・Homebrew(パッケージマネージャー)
・pyenv(python管理ツール)      をインストール

・virtualenv(python環境管理ツール) をインストール
・pyenvでPython3          をインストール

・pip(pythonパッケージ管理システム)をインストール

 

■Homebrewのインストール 
# /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 

■pyenvをインストール
pyenvは、複数バージョンのPython環境を管理したり切り替えるためのツール

pyenvインストール
# brew install pyenv

■virtualenvをインストール

virtualenvは、独立したPython環境を指定した時のみ使えるようにする

# brew install pyenv-virtualenv


pyenvのバージョン確認
# pyenv -v

pyenbにパスを通す

zshを使用しているので、~/.zshrcに追記

pyenv_ROOT=~/.pyenv

export p¥PATH=$PATH:PYENV_ROOT/bin

eval "$(pyenv init -)"

eval "$(pyenv virtualenv-init -)"

 

# source ~/.zshe *設定ファイルを再読込

 

pyenvでインストールできるPythonの確認
# pyenv install -l

pyenvでPython3をインストール
# pyenv install バージョン (2.7.12 or 3.6.1)
# pyenv rehash

pyenvでインストールされているバージョンを確認
# pyenv versions

デフォルトで使用するバージョンを指定
# pyenv global 3.6.1

 

**pyenvは、ディレクトリによりバージョンを変更できる**

カレントディレクトリでバージョンを設定する時はlocalコマンド

loaclコマンドでバージョンを設定すると、python-versionでバージョンが指定される

■ローカルのバージョンを指定

# pyenv local 2.7.12

■ローカルのバージョン設定を削除

pyenv local --unset 

 

■pipをインストール

# easy_install pip

CentOS7 初期設定

■一般ユーザの作成

# useradd USERNAME  ##ユーザの作成

# passwd USERNAME  ##パスワードの設定

*ユーザの削除

# userdel -r USERNAME ##ユーザの削除

 

■rootになれるユーザを管理者のみにする

# usermod -G wheel USERNAME

# vi /etc/pam.d/su

auth    required    pam_wheel.xo.user_uid  ##コメント解除

 

■ネットワークを有効にする

# nmcli device  ##Deviceの一覧表示

# nmcli device show DEVICENAME  ##Deviceの状態を確認

# nmcli connection  ##Ethernetの接続一覧

# nmcli connection up DEVICENAME  ##インターフェイスを有効

# nmcli connection down DEVICENAME  ##インターフェイスを無効

# vi /etc/sysconfig/network-scripts/ifcfg-enp3s0

ONBOOT = yes  ##'yes'へ変更

 

yumの初期設定

# yum -y update  ##インストール済みのパッケージを一括でupdate

#yum -y install yum-cron  ##yum-cronインストール

 

#vi /etc/yum/yum-cron.conf  ##yum-cronの設定

# Whether updates should be applied when they are available. Note

# that download_dpdates must also be yes for the uodate to be applied

applu_updates = yes  ##'yes'でdownload&updateを自動で行う

 

# systemctl start yum-cron  ##パッケージ自動更新起動

# systemctl enable yum-cron ##パッケージ自動更新自動起動設定

# yum -y groupinstall base "Development tools"  #Base、開発ツールパッケージ群インストール

 

SELinuxの無効化

# getenforce  ##SELinuxの状態確認

Enforcing  ##SELinux有効

# Setenforce 0  ##SELinux無効化

#getenforce  ##SELinuxの状態確認

Permissive  ##SELinux無効

 

# vi /etc/sysconfig/selinux

SELINUX=enforcing

 ↓

SELINUX=disabled  ##システム起動時にSELinuxを無効化

 

ファイアウォール停止

# systemctl stop firewalld  ##ファイアウォール停止

#systemctl disable firewalld  ##ファイアウォール自動起動解除

 

nkfコマンドインストール *日本語処理に必要なnkfコマンドをインストール

# wget "http://sourceforge.jp/frs/redir.php?m=jaist&f=%2Fnkf%2F59912%2Fnkf-***.tar.gz" -0 nkf-***.tar.gz

https://ja.osdn.net/projects/nkf/releases/ から最新のパッケージをインストール


# tar zxvf nkf-***.tar.gz   ##nkf展開
# cd nkf-***/  ##展開先ディレクトリへ移動
# make && make install  ##nkfインストール
# cd
# rm -rf nkf-***  ##展開先ディレクトリを削除
# rm -f nkf-***  ##ダウンロードしたnkfを削除
# ln -s /usr/local/bin/nkf /usr/bin/nkf ##/usr/local/bin/nkfから/usr/bin/nkfへリンクをはる

■システムの停止/再起動
# halt ##システムを停止
# reboot #システムを再起動

広告を非表示にする

CentOS6 初期設定

【CentOS6 初期設定】

■一般ユーザの作成

# useradd userx   ##一般ユーザUSERNAMEの作成

# passwd USERNAME   ##USERNAMEのパスワードを設定

PASSWORD入力   ##passwd

 

■rootになれるユーザを管理者のみにする

# usermod -G wheel USERNAME ##管理者ユーザをwheelグループに追加

 

■sudoの許可

# visudo

Allows people in group wheel to run all command

%wheel ALL=(ALL) ALL ##ここのコメントを外す

 

# vi /etc/pam.d/su

auth   required   pam_wheel.so use_uid   ##コメント解除

 

■OS起動時IPアドレスを取得する

# vi /etc/sysconig/network-screpts/ifcfg-eth0

ONBOOT=no

 ↓

ONBOOT=yes

 

SELinuxの無効化

# getenforce Enforcing   ##SELinuc有効

# setenforce 0   ##SELinux無効化

# getenforce   ##SELinux状態確認

Permissive   ##SELinux無効

 

# vi /etc/sysconfig/selinux   ##SELinux設定ファイル編集

SELINUX=enforcing

   ↓

SELINUX=disabled   ##システム起動時にSELinuxを無効化

 

ファイアウォール停止

*ルータでブロックするためファイアウォールが不要な場合は停止する

# /etc/rc.d/init.d/iptables stop   ##ファイアウォール停止

# chkconfig iptables off   ##ファイアウォール自動起動解除

 

nkfコマンドインストール

*日本語処理に必要なnkfコマンドをインストール

# yum install nkf

広告を非表示にする

CentOS6にWordPressをインストール

WordPressインストール

■必要なパッケージをインストールApache/MySQL/PHP/wget)

Apacheの起動と動作確認

PHPの設定

PHPの動作確認

MySQLの起動と動作確認

WordPress用のデータベースとユーザ作成

WordPressのインストール

 

■必要なパッケージをインストールApache/MySQL/PHP/wget)

# yum install httpd mysql-server php php-mysql wget

 

---------------------------------------------------------------

Apache初期設定では外部からサーバのHTTPポート(80番)にアクセスできない。 /etc/sysconfig/iptablesを編集し、HTTPポートを開放

**今回は、ファイアウォール自動起動解除しているので不要**

# cp -p /etc/sysconfig/iptables /etc/sysconfig/iptables.org  ##BackUp

# vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT   ##80番ポートを追加

 

ファイアウォールの設定を反映

# /etc/nit.d/iptables restart

 

*ファイアウォールが不要な場合iptablesを停止

# /etc/rc.d/init.d/iptables stop  ##ファイアウォール停止

# chkconfig iptables off   ##ファイアウォール自動起動解除

----------------------------------------------------------------

 

Apacheの起動と動作確認 Apacheを起

# /etc/init.d/httpd start   ##Apacheの起動

# chkconfig httpd on   ##Apache自動起動設定

 

PHPの設定 *タイムゾーンの設定/DocumentRootの設定

PHPの設定ファイル(/etc/php.ini)を編集

#cp -p /etc/php.init /etc/php.init.org   ##BackUp

# vi /etc/php.init

; Defines the default timezone used by the date functions

; http://www.php.net/manual/en/datetime.configration.php#ini.date.timezone

date.timezone = "Asia/Tokyo"   ##"Asia/Tokyo"追加

 

Apacheをrestartして、php.iniの設定を反映

# /etc/init.d/httpd restart

 

PHPの動作確認 phpinfo.phpファイルを作成、編集

# touch /var/www/html/phpinfo.php

# vi /var/www/html/phpinfo.php

# cat /var/www/html/phpinf.php

<?php

phpinfo();

?>

ブラウザでアクセスし、PHPの情報が確認出来ればOK

 

MySQLの起動と動作確認

MySQLを起動

# /etc/init.d/mysqld start   ##MySQLの起動

# chkconfig mysqld on   ##MySQL自動起動設定

 

[MySQLが起動しているか確認する方法]

1.psコマンドでMySQLのプロセスが動いているかを確認

# ps axf | grep [m]ysqld

*grepコマンドのパターンで利用している[m]ysqldの[]角括弧は、grep自信を除外するために利用

 

2.mysqladminコマンドでMySQLpingで生存確認

# mysqladmin -u root ping mysqld is alive   ##aliveになればOK

 

[MySQLのパスワードを設定]

1.MySQLにログインしてパスワードを設定

# mysql -u root

mysql> update mysql.user set password=password('root用のパスワード') where user = 'root';

mysql> flush privileges;   ##設定を反映

mysql> exit;

 

2.mysqladminコマンドを使ってパスワードを設定

~/.bash_historyに平文でパスワードが記載されてしまうので推奨されない

#  mysqladmn -u root password 'root用のパスワード'

 

設定したパスワードでログインできるか確認

# mysql -u root -p

Enter PAssword:

 

WordPress用のデータベースとユーザ作成

MySQLWordPress用のデータベース(WP_DB)とユーザ(wp:passwd)を作成

# mysql -u root -p

Enter password:

mysql> create database WP_DB;

mysql> grant all privileges on wp.* to wp@localhost identified by 'wp用のパスワード';

 

Apacheの設定

#cp -p /etc/httpd/conf /httpd.conf.org

DocumntRoot "/var/www/wordpress"   ##DocumentRootをWordPressのディレクトリに変更

<Directory "/var/www/wordpress">   ##Documentrootと同じディレクトリに変更

AllowOverride All   ##.htaccessによるディレクティブの上書きを許可

 

Apacheの設定を反映

# /etc/init.d/httpd restart

 

WordPressのインストール WordPressのダウンロードと解凍  

wgetでダウンロード  JA.WordPress URL: https://ja.wordpress.org/releases/

# wget http://ja.wordpress.org/wordpress-***-ja.tar.gz

 

ファイルを解凍

# tar zxvf wordpress-***-ja.tar.gz # cp -r wordpress /var/www/ # chown -R apache.apache /var/www/wordpress

CentOS7にDockerをインストール

【インストール時及び、最低限のコマンドと動作確認】

 

■Dockerのインストールと起動
Dockerのインストール
$ yum install -y docker

Dockerサービスの起動
$ systemctl start docker

Dockerサービスの有効化
$ systemctl enable docker

■Dockerイメージのインストール
DockerレジストリからDockerイメージをダウンロード
$ Docker pull [イメージ名]:[タグ名]

*Docker Hub Registory  https://hub.docker.com/
pullコマンドではデフォルトで↑を見にいく。
タグ名は通常 latest が設定されている。
最新版を使用したい場合は、latestを使用

CentOS 7 のイメージをインストール
$ sudo docker pull centos:latest

ダウンロードしたDockerイメージの一覧を確認
$ docker images

■Dockerコンテナを作成・実行
[コマンド]   docker run
[オプション] -d バックグラウンドで実行する。
        デフォルトではフォアグランドで実行するため、
        Webサーバやアプリケーションサーバなど常時実行するコンテナーで指定
             -i コンテナーの標準入力を開く /bin/bashなどでコンテナーを操作する際に指定
             -t tty(端末デバイス)を確保  /bin/bashなどでコンテナーを操作する際に指定
             -p <ホストのポート番号>:<コンテナーのポート番号> Dockerサーバのホストとポートマッピングを構成

□sudo docker run -it --name centos7_doc centos /bin/bash
Apacheをインストール $ yum install httpd

■[Ctrl+d]でシェルを抜けると、dockerコンテナも終了
 [Ctrl+p]+[Ctrl+q]でコンテナを終了することなくログアウト

Dockerコンテナの一覧を取得
$ docker ps [-a] *-a停止中のコンテナも表示される

Dockerコンテナの起動
$ docker start [コンテナ名]

Dockerコンテナへの接続
$ docker attach [コンテナ名]

Dockerコンテナを削除
$ docker rm [コンテナ名]|[コンテナID]

Dockerコンテナの履歴を削除
*定期的にクリーンアップしなければ、履歴が残り続けディスクを圧迫する
$ sudo docker rm $(sudo docker ps -a -q)

■Dockerイメージを作成
Dockerイメージを確認
$ docker images

Dockerイメージを作成
$ docker commit [コンテナ名]|[コンテナID][ユーザ名/][イメージ名]

Dockerイメージを削除
$ docker rmi [イメージ名]|[イメージID]

<Dockerfileを使ってイメージを作る> *推奨
Dockerfile の書き方は公式サイトのリファレンスを参照
https://docs.docker.com/reference/builder/

 

□まとめ

仮想化とコンテナの違いが、なんとなくイメージ出来た。

最低限のコマンドは理解さえしておけば、GUI管理のツールがたくさん有るらしい。

まずは、Dockerfileを作れるようになるのが次の目標。

Volatility概要

メモリフォレンジックによるマルウェア感染痕跡の調査
https://sect.iij.ad.jp/d/2011/12/194028.html

メモリフォレンジック
揮発性のデータを解析する技術
対象のシステムのメモリ領域を全て一度ダンプし、それに対して独自の実装で解析を行う。
汚染されている可能性のある対象システムのAPIに頼らず、また、解放された領域もチェックするので、
改ざんなどにより、意図的に隠蔽されている情報、終了したプロセスなど、既に解放された
メモリ領域に存在する情報を含めて取得できる。

インシデントレスポンスにおいて重要な情報
 ・どこと通信していたか
 ・どんなプログラムやスレッドが動いていたか
 ・どのようなデータがメモリ上にマッピングされていたか

昨今のマルウェアはタイムスタンプの改ざんを行う機能を持っているものが多いため、
ファイルシステム以外からの抽出できる時間情報の活用が重要。
例)メモリフォレンジックを活用して作成できる揮発性情報のタイムライン
  timeliner(Volatility Frameworkのプラグイン)は、プロセスやスレッド、
  ソケット通信やイベントログの生成情報を時系列でチェックできる
例)特定のプロセスにおいてインジェクトされたコード領域を検出
  mailfindプラグイン(Bolatility Framework)、VadDumpモジュール(EnCase EnScript)
  特定のプロセスアドレス空間のみをダンプ氏、ファイルをスキャンすることで、
  クイックにコードインジェクションの有無や、マルウェアの種類まで判定することもできる場合がある。
例)SpyEyeの設定情報、搾取した情報の抽出
  VadSearchモジュール(EnCase EnScript)
  SpyEyeの実行パスやインストールパス、config.biのファイル名など重要な情報を
  メモリから確認できる
  C1データを参照する際、その先頭にあるシグネチャ「!EYE」を検索
  VadSearchモジュールを使ってこのシグネチャをキーワードとして検索すると、下の図のように
  特定のプロセスアドレス空間においてマッチしたキーワードの周辺を参照できる。

広告を非表示にする

仮想環境にKali Linuxをインストール 〜2017.04.20追記〜

■OSⅩで仮想環境構築する

メジャーな有料アプリ(VMware Fusion, Parallels Desktop, VirtualBox etc.)を入れる前に、無料で仮想環境を体験できるVeertuをインストールしてみた。

このアプリは、すんなり入るので詳細割愛...

■Kali Linuxについて補足

-Debianの派生のLinuxディストリビューション
-セキュリティ診断用ツール(デジタルフォレンジックペネトレーションテスト(侵入テスト)用など)が標準で用意されている
-利用の仕方により不正アクセス行為と判断される可能性ががある

-基本的に、root権限で作業を行う。
-サービス停止やデータの破損が起こる場合もあるので事前にバックアップを行う

Veertuが持つコンソールで日本語キーボードを使うと|が入力できないので、sshでローカルサーバにアクセス。

■インストール
$sudo apt-get install openssh-server
■起動
$update-rc.d ssh enable
■IP確認
$ ifconfig
ssh接続
$ ssh -p 22 xxxxxx@192.168.xx.xx

ディレクトリ名を英語に変更

$LANG=C xdg-user-dirs-update --force

 

〜2017.04.20追記〜

■OSⅩで仮想環境構築する~2~

Oracle VM VirtualBoxインストール

Downloads – Oracle VM VirtualBox

 

■主な設定

-メモリーサイズ:2048

-仮想ハードドライブを作成する

-ハードドライブのタイプ:VDI

-物理ハードドライブにあるストレージ:可変

-ファイルの場所とサイズ:32GB