hide's memo
16 2月, 2022

Fiddler

1.HTTPのキャプチャ

起動していればそのままキャプチャを始める。POSTパラメータを見るには、画面右ペインの「Inspectors」 タブをクリックし、「Raw」を押す。

 

2.リクエストの改ざん

  • 「Rules」→「Automatic Breakpoints」→「Before Requests」を選択
  • 画面操作を行い(そこでブレークする)、「Inspectors」「Raw」に表示されるパラメータを適当に変更する。
  • 画面右ペインの真ん中あたりにある、緑色の「Run to Completion」を押して先に進める。

 

 

3.クライアント証明書を使う

3.1.クライアント証明書を cer 形式で準備。PFXしかない場合、以下で変換

openssl pkcs12 -in 元ファイル.pfx -clcerts -nokeys -out 出力ファイル.cer

上記でできたファイル、頭に不要な情報があるので、”—–BEGIN CERTIFICATE —–” よりも前の行を消す

 

3.2. 以下のフォルダ配下に指定の名前で置く

C:\Users\ユーザ\Documents\Fillder2\ClientCertificate.cer

上記で、クライアント証明書が必要な状況になると、Fiddlerが上記ファイルを投げるようだ。

16 2月, 2022

Elasticsearch

プラグインの確認

curl -H "Content-type: application/json" -XGET 'http://xxxx:yyy/_nodes/plugins?pretty'

インデックスされた件数確認

curl -XGET -u ユーザ名:パスワード -H "Content-type: application/json" 'https://サーバ:port/aaaa/bbbb/_count?pretty'

 

インデックスされたデータを10件取り出す

curl -XGET -u ユーザ名:パスワード -H "Content-type: application/json" 'https://サーバ:port/aaaa/bbbb/_search?&pretty&size=10'
16 2月, 2022

シェル(引数で与えられた年月日の範囲±1日の範囲の文字列を得る)

[English]

引数で与えられた年月日の範囲±1日の範囲を取得し、それをループで回すシェル。

#!/bin/sh
START=$1
END=$2


START_1DAY_BEFORE=`date '+%Y%m%d' -d "1 days ago ${START}"`
END_1DAY_AFTER=`date '+%Y%m%d' -d "-1 days ago ${END}"`


echo $START_1DAY_BEFORE

for j in {0..10000}; do
    TARGET_YYYYMMDD=`date '+%Y%m%d' -d "-$j days ago ${START_1DAY_BEFORE}"`
    echo ${TARGET_YYYYMMDD}

    if [ ${TARGET_YYYYMMDD} -gt ${END_1DAY_AFTER} ]; then
       break
    fi
done
13 2月, 2022

サーバー証明書

[English]

 

1.自己証明証明書を作成するシェル

!/bin/sh

CN=******.co.jp
PASSWORD=abcdefgxyz
IP=127.0.0.1

echo subjectAltName = DNS:$CN, IP:$IP > subjectname.txt

SJ="/C=JP/ST=Tokyo/L=Minato-ku/O=****/OU=****/CN=$CN"

openssl genrsa -des3 -passout pass:${PASSWORD} -out ${CN}.key 2048

openssl rsa -passin pass:${PASSWORD} -in ${CN}.key -out ${CN}.key

openssl req -new -sha256 -key ${CN}.key -out ${CN}.csr -subj "$SJ"

#openssl req -noout -text -in ${CN}.csr

#openssl req -x509 -in ${CN}.csr -key ${CN}.key -out ${CN}.crt -days 3650
openssl x509 -days 3650 -req -extfile subjectname.txt -signkey  ${CN}.key < $CN.csr > $CN.crt

#CHANGE CSR to PFX
openssl pkcs12 -export -in ${CN}.crt -inkey ${CN}.key -out ${CN}.pfx -passout pass:${PASSWORD}

 

 

13 2月, 2022

VirtualBox

VirtualBoxでゲストOSと外部を通信させる。

 

1.構成の概要

  • NICを2枚使用する
  • NICの1枚目は外に出ていく通信にしよう(Default Gateway)
  • NICの2枚目は外部から入ってくる通信に使用。VirtualBoxのホストオンリーアダプタを使用。

 

2.VirtualBoxの設定

(1)下図のようにVIrtualBoxの設定でHostOnlyAdapterを有効にする。

 

 

(2)VirtualBoxのゲストOSの設定はNICを2個設定

(2.1)1つはNAT

(2.2)1つはホストオンリーアダプタ

 

(3)ゲストOSの設定

(3.1)CentOS7以前

 

 

(3.2)CentOS7以降

(3.2.1)nmtui起動

(3.2.2)Edit a connection を選択

(3.2.3)Ethernet二以下の2つがあることを確認(文字化けしている場合がある。その場合修正する)

enp0s3 ………

enp0s8 ……… ホストオンリーアダプタのほう

(3.2.4)enp0s8を選択

Profie name: enp0s8

  Ddevice : enp0s8 (00:00:00:00:00:00) (この形になってない場合修正する。NICのIDは都度。)
  DHCPだとうまくいかないことがあるので以下も修正
  IPv4 CONFIGUATION <Manual>
    Address 192.168.56.101/24
 こっちがデフォーゲートウェイにならないように、チェックする。

(3.2.5)enp0s3を選ぶ

  Profie name: enp0s3
 Ddevice : enp0s3 (00:00:00:00:00:00) (この形になってない場合修正する。NICのIDは都度。)
 IPv4 CONFIGUATION <Automaticl>
    こっちはたぶん Automatic でOK。

(3.2.6)以下のような設定になっていればOK

[root@localhost ~]# /sbin/ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
       inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
       => これがNAT。外に出ていくほう。

enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
       inet 192.168.56.101  netmask 255.255.255.0  broadcast 192.168.56.255
       => これがホストオンリーアダプタに対応。外から入ってくるほう。

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
       inet 127.0.0.1  netmask 255.0.0.0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
       inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255

 
		
13 2月, 2022

NTLM認証を行うコード(Java)

[English]

JavaでNTML認証を行うサンプル

// HttpClientのバージョンは 4.3.3
String userName = "test";
String password = "test";
HttpClientBuilder builder = HttpClientBuilder.create();
CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY, new NTCredentials(userName + ":" + password));
builder.setDefaultCredentialsProvider(credentialsProvider);
 
HttpClient httpClient = builder.build();
HttpGet httpGet = new HttpGet("http://hogehoge");
 
try {
    HttpResponse response = httpClient.execute(httpGet);
    response.getEntity().writeTo(System.out);
} catch (ClientProtocolException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

 


 
		
13 2月, 2022

sendmail

[English]

1.sendmaiの転送

sendmail.cf (sendmail.mcも同じ)のSMART_HOSTは、”[“の有無で動きが変わる。

[例]sendmailを、常に mailserver.hoge.comに転送したいと思ったときは、以下のように”[“をつけて記述する。

DS[mailserver.hoge.com]

もし、”[“をつけない場合、sendmailはMXレコードを検索して転送先を振り分けるので必ずmailserver.hoge.comに転送するとは限らない。

 

2. sendmailで特定ドメイン以外のメール転送を止める

(1)aliasを追加

#echo 'trash: /dev/null' >> /etc/aliases
#newaliases

(2)mailertable修正

#vi /etc/mail/mailertable
hoge.jp.com	smtp:[リレー先メールサーバ]
.	local:trash
(ここで、[]を付けているのは、MXレコードを引くのを避けるため)

(3)mailertableをDB変換

#makemap hash /etc/mail/mailertable < /etc/mail/mailertable

(4)sendmail再起動

#/etc/rc.d/init.d/sendmail restart

 

3. DNSが引けない環境で、sendmailで別のSMTPに転送

/etc/mail/service.switchファイルを作成し以下のように記述

hosts  files

13 2月, 2022

Windowsでwhich

[English]

以下のようなBATを which.bat としてパスが通った場所に保存して使用する。

@echo off
for %%I in (%1 %1.com %1.exe %1.bat %1.cmd %1.vbs %1.js %1.wsf) do if exist %%~$path:I echo %%~$path:I
13 2月, 2022

BATファイルで日付をファイル名に使用

[English]

以下のようにバッチでファイル名に、YYYYMMDD-hhmiss を付与する。

Set DD=%date:~0,4%%date:~5,2%%date:~8,2%
set time2=%time: =0% 
Set TT=%time2:~0,2%%time2:~3,2%%time2:~6,2%
move logerr.log logerr_%DD%_%TT%.log
move logstd.log logstd_%DD%_%TT%.log
13 2月, 2022

Windowsでポート転送

[English]

netsh を使って下図のようにポート転送を設定。

 

1.コマンドプロンプトで以下を実行

netsh interface portproxy add v4tov4 listenport=待ち受けポート listenaddr=自分のIP(127.0.0.1じゃないほう) connectport=転送先ポート connectaddress=転送先のIP

2. 上記定義の削除

netsh interface portproxy delete v4tov4 listenport=待ち受けポート listenaddr=自分のIP(127.0.0.1じゃないほう)