【GIMP】画像加工その1

Photshopの代わりとして有名な画像フリーソフトのGIMPを利用しました。

  • 画像切り抜き

    1. 「ツールボックス」-「【切り抜き】オブジェクト」を選択
    2. 「値を固定」にチェック、縦横比を選択
    3. テキストボックスに「4:3」を入力
    4. 画像を選択すると、上記設定が有効になった状態で選択されるので、選択後に画像をクリック
    5. 「ツールバー」-「画像」-「画像の拡大・縮小」で「640, 480」に変更
  • 画像の角を丸める

    1. 「ツールバー」-「選択」-「角を丸める」を選択
    2. 「20%」で「OK」ボタン押下
    3. 「ツールバー」-「編集」-「コピー」を選択
    4. 「ツールバー」-「編集」-「クリップボードから生成」-「画像」を選択
    5. PNG形式で保存

【bat】エビデンスの取得効率化(全ケース)

少しでもエビデンスの取得を効率化するために、
下記手順でテストを行うことを想定。
今回は全ケースを一括実行します。

  1. 01_BEFORE_UT.batを実行
  2. テスト実行
  3. 02_AFTER_UT.batを実行

DBはDB2としています。

  • 01_BAFORE_UT.bat

    @ECHO OFF
    REM ケースごとのフォルダは作成済とします。
    REM コマンドプロンプトを立ち上げ、「db2cmd 01_BAFORE_UT.bat」で実行します。
    
    REM *************************************************************
    REM  DB設定(各自の設定に変更してください。)
    REM *************************************************************
    SET SERVER_I=XXXXX
    SET USER_ID=YYYYY
    SET USER_PASS=ZZZZZ
    
    REM *************************************************************
    REM  DB2接続
    REM    -t:SQLファイル内のセミコロンをステートメント終了文字とする。
    REM    -v:コマンドテキストを標準出力にエコーする。
    REM *************************************************************
    db2 -tv connect to %SERVER_ID% user %USER_ID% using %USER_PASS%;
    
    REM *************************************************************
    REM  エビデンスフォルダ設定
    REM    /b:フルパスを表示しない。
    REM    /ad:フォルダー名のみ表示する。
    REM *************************************************************
    DIR /b /ad > file_list.txt
    SETLOCAL ENABLEDELAYEDEXPANSION
    FOR /f %%a IN (file_list.txt) DO (
        SET EVI_DIR=%%a
        SET SQL_OUTPUT=!EVI_DIR!\10_SQL_LOG_Before
        MKDIR !SQL_OUTPUT!
        ECHO !SQL_OUTPUT!
    
        REM *************************************************************
        REM  SQL実行
        REM    -t:SQLファイル内のセミコロンをステートメント終了文字とする。
        REM    -v:コマンドテキストを標準出力にエコーする。
        REM    -f:ファイル名を指定する。SQL文をファイルから読み込む。
        REM *************************************************************
        db2 -tvf select_AAA.sql > %SQL_OUTPUT%\select_AAA.log
    )
    ENDLOCAL
    DEL file_list.txt
    
    REM *************************************************************
    REM  DB2切断
    REM *************************************************************
    db2 connect reset
    
  • 02_AFTER_UT.bat
    ログフォルダの作成とログファイルの取得を追加する。

【APサーバ】Tomcat導入

  • Tomcat専用ユーザ作成

    useradd -s /sbin/nologin tomcat
    

    /sbin/nologinシェルを指定し、通常利用不可とする。

  • Tomcat導入

    バージョンは「apache-tomcat-7.0.50.tar.gz」にしました。
    サーバーに配置しておきます。

    tar xvzf apache-tomcat-7.0.50.tar.gz
    mv apache-tomcat-7.0.50 /usr/local
    cd /usr/local
    chown -R tomcat.tomcat apache-tomcat-7.0.50
    ln -s apache-tomcat-7.0.50 tomcat
    
  • 環境変数の設定

    下記3つのうちのどれかに記載します。

    【共通設定】
    /etc/profile
    「JAVA_HOME」や「CATALINA_HOME」の値を設定する。
    
    【環境変数設定】
    $CATALINA_HOME/bin/setenv.sh
    「JAVA_OPTS」や「CATALINA_OPTS」の値を設定する。
    
    【クラスパス設定】
    $CATALINA_HOME/bin/setclasspath.sh
    追加のjarファイル等を設定する。
    

    今回は共通設定に追加します。
    AWSの場合、JAVA_HOMEは設定済なので、CATALINA_HOMEだけ設定します。

    vi /etc/profile
    
    下記を最終行に追加
    export CATALINA_HOME=/usr/local/tomcat
    

    環境変数を適用しておきます。

    source /etc/profile
    
  • Tomcat起動確認

    AWSコンソール画面から「セキュリティグループ」-「インバウンド」で
    以下を許可しておきます。

    プロトコル:TCP
    ポート:8080
    

    Tomcatをtomcatユーザで起動します。

    sudo -u tomcat /usr/local/tomcat/bin/startup.sh
    

    http://xxx.xxx.xxx.xxx:8080/examples/servlets/

    「Servlet Examples with Code」の画面が出れば成功です。
    併せてrootユーザではなくtomcatユーザで動作していることを確認します。

    ps -ef | grep tomcat
    
    tomcat    プロセスID  親プロセスID プロセッサ使用率 プロセスの起動時刻  制御端末 累積時間 略
    

    startup.shはrootユーザで実行しないこと。
    初回でrootユーザで実行するとログファイルがrootユーザで作成されてしまい、
    tomcat専用ユーザでstartup.shを実行しても権限がないと言われてしまうので、
    そうなった場合、1度ログを削除すれば問題なし。

    sudo -u tomcat /usr/local/tomcat/bin/shutdown.sh
    

【APサーバ】Java導入

  • Java導入確認
    AWSでは初期状態でJavaが導入済の状態になっています。

    java -version
    
    java version "1.7.0_85"
    OpenJDK Runtime Environment (amzn-2.6.1.3.61.amzn1-x86_64 u85-b01)
    OpenJDK 64-Bit Server VM (build 24.85-b03, mixed mode)
    

    JAVA_HOMEも設定済のため、そのまま利用する。
    JAVA_HOMEは下記パスを参照している。

    /usr/lib/jvm/jre
    

【AWS】初期設定

  • 日本語環境に設定

    vi /etc/sysconfig/i18n
    
    下記内容に変更
    LANG=en_US.UTF-8
    ↓
    LANG=ja_JP.UTF-8
    
  • ec2-userのパスワード設定
    ec2-userでteratermからログインする際、秘密鍵がないとログインできないが、
    常時稼働するサーバーとして運用する場合、パスワードも設定しておく方が安全。
    今回のAWSはお試しなので設定せず。
  • rootのパスワード設定
    初期状態ではrootにパスワード設定がないため、
    ec2-userでログインを行ってから下記コマンドでパスワード設定する。

    sudo su -
    passwd
    New password: 任意の文字列
    Retype new password: 任意の文字列
    
  • タイムゾーンの変更
    rootユーザで実行します。

    cp -p /usr/share/zoneinfo/Japan /etc/localtime
    

    上書きするか確認されるので、上書きします。
    dateコマンドを打って日本時間になっていれば問題ありません。

    しかし、上記方法だけでは、「/etc/localtime」はglibcパッケージが更新されると、
    パッケージ更新に含まれるスクリプトによりUTCに戻ってしまいます。
    AWSではcloud_initがインスタンスの起動時にセキュリティの更新を実行するので、
    そのタイミングで設定が初期化されてしまいます。
    そこで以下の設定も行います。

    vi /etc/sysconfig/clock
    
    ZONE="Asia/Tokyo"
    UTC=false
    

【AWS】セキュリティ向上その1

  • ・AWSログインの2段階認証
    上部の「サービス」-「IAM」を選択します。

    「ルートアカウントのMFAをアクティブ化」を行います。
    =2段階認証を行います。
    2段階認証にはiPhoneアプリの「Authy」を利用します。

    「ルートアカウントのMFAをアクティブ化」を選択し、
    「MFAの管理」ボタンを押下します。

    「仮想MFAデバイス」を選択し、「次のステップ」ボタンを押下します。
    説明を読んだら、「次のステップ」ボタンを押下します。

    QRコードを「Authy」で読み取ります。
    読み取ると6桁の数字が出るので、それを認証コード1へ、
    秒数経過でさらに6桁の数字が出るので、それを認証コード2へ。
    「仮想MFAのアクティブ化」ボタンを押下すると関連付けが完了します。

  • グループの作成
    上部の「サービス」-「IAM」を選択します。
    左側の「グループ」を選択します。
    「新しいグループの作成」ボタンを押下します。
    グループ名に任意の名前を入力し、「次のステップ」ボタンを押下します。
    ポリシーとして、「AmazonEC2FullAccess」を選択し、「次のステップ」ボタンを押下します。
    「グループの作成」ボタンを押下します。
  • IAMユーザーの作成
    AWSログインは今後、IAMユーザーと呼ばれる権限の低いユーザーで行えるようにします。
    これにより、iPhoneなどからAWSを起動したりします。

    上部の「サービス」-「IAM」を選択します。
    左側の「ユーザー」を選択します。
    「新規ユーザーの作成」ボタンを押下します。
    ユーザー名を1名分入力し、「作成」ボタンを押下します。

    認証情報を「認証情報のダウンロード」ボタンを押下し、ダウンロードしておきます。
    このファイル内の「Access Key Id」「Secret Access Key」は
    後程、iPhone用のAWS起動アプリで利用します。

  • ユーザーの詳細設定
    ユーザー名をクリックし、「グループにユーザーを追加」ボタンより、
    先ほど作成したグループに追加させます。
    次に下部の「パスワードの管理」ボタンを押下し、パスワードを設定します。

【AWS】EC2のインスタンス作成

AWS(AmazonWebService)が個人でも1年間無料とのことで利用してみました。
AWSのサイトでamazonのログインとパスワードでサインインし、
EC2でインスタンスを作成します。

  • 【手順1:Amazonマシンイメージ(AMI)】
    「Amazon Linux 64bit」を選択します。
    開発言語としては、Python、Ruby、Perl、Java
    リポジトリとしてはDocker
    DBとしてはMySQL、PostgreSQLなどが含まれているようです。

    また、使ったことはないですが、
    ローカルにAmazonコマンドラインインターフェース(AWS CLI)というツールを
    インストールしておくと、
    コマンドライン上から「aws 任意のコマンド」でAWSを操作できるようです。

  • 【手順2:インスタンスタイプの選択】
    無料利用枠の対象である「t2.micro」を選択します。
    「確認と作成」ボタンを押下します。
    手順3~手順6の手順は省略され、デフォルト設定が適用となります。
  • 【手順7:インスタンス作成の確認】
    「作成」ボタンを押下します。
    デフォルトのセキュリティグループはポート全開放されていますと、
    セキュリティ強化の警告が表示されますが、
    インスタンス作成時に手順3~手順6をすっ飛ばすと、
    自動的に新しいセキュリティグループが作成され、
    SSHのポート22のみを許可したセキュリティグループになります。

    常時起動するサーバーにしないため、許可する送信元も初期設定のままとします。

    ダイアログで「新しいキーペアの作成」を選択し、キーペア名を入力します。
    「インスタンスの作成」ボタンを押下します。

ものの5分程度の手順で仮想サーバーが作れるって
正直便利すぎると思いました。
予想請求額の通知を受け取る設定で0円より大きくなったら
通知を受け取るようにしておきます。(念のため)

【VPNサーバ】OpenVPN導入その6

約1年ずっと起動していたRaspberry Piもとうとう再起動しました。
それに伴い、iPhoneからRaspberry PiのOpenVPNを介して、
自宅サーバに接続しようと思ったところ、接続できなかったので設定を見直し。

  • iptablesの設定

    iptables -t filter -A INPUT -i eth0 -p udp -m udp --dport 1194 -j ACCEPT
    iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to 192.168.XXX.XXX
    

    「–to」にはRaspberry Piの通常のIPを指定します。
    再起動すると設定が消えるため、自動設定できるようにするのが良いですが、
    まだ自動化できていません。

設定後、ufw(iptable)の再起動は不要です。
この内容は「【Raspbian】OpenVPN導入その2」の最後の方にも記載がありますが、
見逃しがちなので、再度記載しました。