2019年6月16日日曜日

docker-composeの導入メモ

k8sをv1.14.3に入れ直したので、改めてdocker-composeの導入を行う。


1)git経由でダウンロードを行う。
git clone https://github.com/docker/compose.git


2)以下、ビルドを行う。(完了まで1時間位かかったかも))
cd compose/
cp -i Dockerfile Dockerfile.armhf
sed -i -e 's/^FROM debian\:/FROM armhf\/debian:/' Dockerfile.armhf
sed -i -e 's/x86_64/armel/g' Dockerfile.armhf
docker build -t docker-compose:armhf -f Dockerfile.armhf .


3)dockerを実行する。
docker run --rm --entrypoint="script/build/linux-entrypoint" -v $(pwd)/dist:/code/dist -v $(pwd)/.git:/code/.git "docker-compose:armhf"

[error内容] 
docker: Error response from daemon: pull access denied for docker-compose, repository does not exist or may require 'docker login'.


◻️トラブルシューティング
1)別の方法で実施を行うと、以下のエラーが出る。

docker build -t docker-compose:armhf -f Dockerfile.armhf .
===========================================================
Step 34/39 : FROM armhf/debian:${RUNTIME_DEBIAN_VERSION} AS runtime-debian
manifest for armhf/debian:stretch-20190326-slim not found
==============================================================================

2)中身を確認してみる。

vi Dockerfile
============================================================================
ARG DOCKER_VERSION=18.09.5
ARG PYTHON_VERSION=3.7.3
ARG BUILD_ALPINE_VERSION=3.9
ARG BUILD_DEBIAN_VERSION=slim-stretch
ARG RUNTIME_ALPINE_VERSION=3.9.3
ARG RUNTIME_DEBIAN_VERSION=stretch-20190326-slim  <-こいつが無いっぽい!?
                        .
                        .
                       省略 
                        .
                        .
===========================================================================


[まとめ]
上記のことから、取得できる物が存在しないのか。。。様子をみて調査を継続する。


[追記 06/19]

◻️以下の方法に導入方法を変更
上記で記載した方法で、成功しなくなった要因は、raspberry piのOSのバグなのかも。。。


curl -sSL https://git.io/fjGM3 | sh -s -- -c -b 1.24.0


◻️導入は、成功した模様。
root@rasp-master:~# docker-compose version
================================================
docker-compose version 1.24.0, build d9fa815
docker-py version: 3.7.2
CPython version: 3.6.8

OpenSSL version: OpenSSL 1.1.0j  20 Nov 2018
================================================



2019年6月8日土曜日

Internal error for NextCloud

再作成を行い、指定したnextcludのurlに移動するとInternal errorが発生してしまった。
以下、対処方法を記載する。

root@rasp-master:~# curl http://192.168.13.4:32222
=============================================================================================
Internal Server Error

The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.

More details can be found in the server log.
==============================================================================================


1)volume pathの削除
nextcloudで指定したVolumeのディレクトリを削除する。

例)rm -r /home/pi/nc-pv


2)NexstCloudの再作成を行う


3)config.phpの修正を行う。

例) /home/pi/nc-pv/config/config.php
============================================================================================
<?php
$CONFIG = array (
  'htaccess.RewriteBase' => '/',
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'apps_paths' =>
  array (
    0 =>
    array (
      'path' => '/var/www/html/apps',
      'url' => '/apps',
      'writable' => false,
    ),
    1 =>
    array (
      'path' => '/var/www/html/custom_apps',
      'url' => '/custom_apps',
      'writable' => true,
    ),
  ),
  'passwordsalt' => '4qq/+kps2ytFW4ITOq4hTKzDq+UYT0',
  'secret' => '7aVXPVXzxwMz43cGTQt8hPXIBJZrGq8vboXBHTg70EnFFvYB',
  'trusted_domains' =>
  array (
    0 => 'localhost',
    1 => '192.168.13.4',  <---NextCloudのnode IPを記載する。
  ),
  'datadirectory' => '/var/www/html/data',
  'dbtype' => 'mysql',
  'version' => '16.0.1.1',
  'overwrite.cli.url' => 'http://localhost',
  'dbname' => 'nextcloud',
  'dbhost' => 'db',
  'dbport' => '',
  'dbtableprefix' => '',
  'dbuser' => 'nextcloud',
  'dbpassword' => '**********',
);
===============================================================================================


結論:
過去に作成したconfigファイルが維持された状態で
NextCloudを再作成すると、Internal errorが発生するようだ。

2019年6月5日水曜日

namespaceの切り替え方法について


◻️全体のnamespaceを確認してみる。
root@rasp-master:~/fluentd-kubernetes# kubectl get namespace 
=================================
NAME            STATUS    AGE
default         Active    53d
ingress-nginx   Active    26d
kube-logging    Active    21d
kube-public     Active    53d
kube-system     Active    53d

monitoring      Active    28m
================================


◻️指定したnamespaceに切り替えを行ってみる。
root@rasp-master:~/fluentd-kubernetes# kubectl config set-context $(kubectl config current-context) --namespace=monitoring



◻️切り替えが出来たので、podの確認を行う

root@rasp-master:~/fluentd-kubernetes# kubectl get pod
===================================================================================
NAME                                  READY     STATUS             RESTARTS   AGE
alertmanager-56f6fdd9f6-fchpb         0/1       CrashLoopBackOff   9          29m
grafana-core-679bfdcd6-wjqf7          0/1       CrashLoopBackOff   9          29m
kube-state-metrics-694fdcf55f-mb9dp   0/1       CrashLoopBackOff   9          29m
node-directory-size-metrics-2frvf     0/2       CrashLoopBackOff   18         29m
node-directory-size-metrics-pl88l     0/2       CrashLoopBackOff   18         29m
prometheus-core-5cf65c7b68-g4zm8      0/1       CrashLoopBackOff   9          29m
prometheus-node-exporter-h92nq        0/1       CrashLoopBackOff   9          29m
prometheus-node-exporter-sqnlx        0/1       CrashLoopBackOff   9          29m
====================================================================================





2019年6月1日土曜日

PS4の外部通信拒否について

別セグメントに分けたPS4のネットワーク通信が出来なくなったので
転送ログを確認すると、暗黙Denyに引っかかっているようだ。




上記のことから以下の設定を行ってみる。


◻️以下のlocal-in-deny-xxxをdisableにする
FGT60D (setting) # set local-in-deny-unicast disable
FGT60D (setting) # set local-in-deny-broadcast disable


◻️設定が反映されているか確認する。
FGT60D (setting) # get
=======================================================
resolve-ip          : disable 
resolve-port        : enable 
log-user-in-upper   : disable 
fwpolicy-implicit-log: enable 
fwpolicy6-implicit-log: disable 
log-invalid-packet  : disable 
local-in-allow      : enable 
local-in-deny-unicast: disable 
local-in-deny-broadcast: disable 
local-out           : enable 
daemon-log          : disable 
neighbor-event      : disable 
brief-traffic-format: disable 
user-anonymize      : disable 
expolicy-implicit-log: disable 
log-policy-comment  : disable 
log-policy-name     : disable 

custom-log-fields   :
======================================================


設定後、インターネット通信ができるようになったようだ。
もう少し様子を見てみる。

2019年5月23日木曜日

raspberry pi for helm(Kubernetes)

◻️以下のコマンドでarm版のHelmのインストールを行う

HELM_VERSION=v2.14.0 ; HELM_INSTALL_DIR=/usr/local/bin/ ; wget https://kubernetes-helm.storage.googleapis.com/helm-${HELM_VERSION}-linux-arm.tar.gz -O - | tar --strip=1 -C ${HELM_INSTALL_DIR} --no-same-owner --no-same-permissions -xzvf - linux-arm/helm ; chmod +x ${HELM_INSTALL_DIR}/helm


◻️取りあえず、導入は出来ているようだ。


root@rasp-master:~/linux-arm# helm version
======================================================================================
Client: &version.Version{SemVer:"v2.14.0", GitCommit:"05811b84a3f93603dd6c2fcfe57944dfa7ab7fd0", GitTreeState:"clean"}
Error: could not find tiller


2019年5月21日火曜日

メモ:OSS検証したいリスト

Sonarqube:ソースコード品質チェック
Artifactory:リポジトリ管理ツール
Gitlab:Github

2019年5月14日火曜日

チューニング for nginx



以下、パラメータのメモ

パラメーター
内容
default
net.core.rmem_max = 
TCPUDPの受信バッファのデフォルトサイズと最大サイズ。
124928
net.core.wmem_max = 
TCPUDPの送信バッファのデフォルトサイズと最大サイズ。
124928
net.nf_conntrack_max = 
ESTABLISHEDのリストの最大数(OS側の管理数)
可変
net.ipv4.conf.default.accept_source_route = 
ソースルートが指定されたパケットを拒否。本来は経路のテストを行う目的であるのでoffにする
1
net.ipv4.tcp_rmem = 
データ受信バッファ サイズ
可変
net.ipv4.tcp_timestamps = 
NAT環境下で、複数ホストがクライアントのときに、WAN側のサーバに接続が切られる対策
1
net.ipv4.tcp_fin_timeout = 
FINのタイムアウト時間
60
net.ipv4.tcp_syn_retries = 
tcpSYNを送信するリトライ回数。
この回数SYNを送ってもダメなら諦める
5
net.ipv4.tcp_synack_retries = 
接続を受付側としてオープンするとき、 カーネルは SYN ACK を詰め込んで送り、先に受けとった SYN を確認する。
5
net.ipv4.tcp_syncookies = 
SYN flood攻撃対策
1
net.ipv4.ip_local_port_range = 
TCP/IPの送信時に使用するポートの範囲
可能なら 1024-65535が良いが、iptablesAWSだとNetworkACLとかで
同様に必要に応じて開放しておかないとパケットが途中で止まってハマるから注意。
$ cat /proc/sys/net/ipv4/ip_local_port_rangeで確認できる
32768 61000
net.ipv4.tcp_tw_reuse = 
自分からの接続を使い回す。tcp_tw_recycleは相手からの接続を使い回す。
0
net.ipv4.tcp_tw_recycle = 
相手からの接続を使い回す。
0
net.ipv4.tcp_rfc1337 = 
RFC1337に準拠させる。TIME_WAIT状態のときにRSTを受信した場合、TIME_WAIT期間の終了を待たずにそのソケットをクローズする
0
net.ipv4.tcp_fin_timeout = 
タイムアウトはできる限り短いほうがいい
60
net.ipv4.tcp_max_tw_buckets = 
システムが同時に保持するtime-waitソケットの最大数。
DoS攻撃を防げるため、低くするのはやめたほうが良い。
動的
net.ipv4.tcp_orphan_retries = 
こちらからクローズしたTCPコネクションを終了する前の再送回数。
webサーバだとリソースを消費する可能性があるため、低くしたほうが良い
0
net.ipv4.tcp_keepalive_probes = 
TCP keepalive プローブを送る数。この数に達すると、 その接続が壊れたとみなす。
9
net.ipv4.tcp_slow_start_after_idle = 
keepaliveしててもしばらく通信がなかったらcongestion window sizeresetする。
keepaliveを利用しており、かつ輻輳が少ない環境ではoffが良い。
1
net.core.netdev_max_backlog = 
パケット受信時にキューに繋ぐことができるパケットの最大数
1000
net.ipv4.tcp_max_syn_backlog = 
ソケット当たりのSYNを受け付けてACKを受け取っていない状態のコネクションの保持可能数。
この値を超えたものに関してはOSSYNパケットを拒否することになる。
溢れたパケットはnetstatで確認できる。
ただし、この値はnet.core.somaxconnより大きかった場合、net.core.somaxconnの値を優先する。
1024
net.ipv4.conf.eth180.arp_ignore = 
ぶら下がってるAPサーバ群にarpに応答させない(MACアドレスを覚えさせない)
IPmacアドレスが関係ずけられると、送りたい機器に通信できなくなる。
0
net.ipv4.conf.eth180.arp_announce = 
ぶら下がってるAPサーバ群にarpに応答させない(MACアドレスを覚えさせない)
IPmacアドレスが関係ずけられると、送りたい機器に通信できなくなる。
0
net.core.somaxconn = 
一度に受け入れられるTCPセッションのキューの数。
TCPのセッション数をbacklogで管理し、それを超えたものはキューに格納される。
このキューの数をここで設定する
128
vm.swappiness = 
実メモリがある状態でスワップを使用しない
0
vm.overcommit_memory = 
実メモリ以上にプロセスにメモリを割り当てない
0
vm.overcommit_ratio = 
OOM killerで勝手にkillするくらいだったら、メモリ不足を検出してエラー処理をさせる。
vm.overcommit_memory = 2のときに設定する
50
kernel.shmmax = メモリのByte
共有メモリの最大サイズ。サーバーの搭載メモリ(1GB)に合わせて変更するので
動的?
kernel.shmall = 
システム全体の共有メモリ・ページの最大数
68719476736
kernel.msgmnb = 
1つのメッセージキューに保持できるメッセージの最大値
65536
kernel.msgmax = 
メッセージキューIDの最大値
65536
kernel.sysrq = 
SysRqとは、サーバでキーボード操作ができなくなったとき、カーネルが昨日してれば特定のキー(Alt + PrintScreen)で割り込める。使わないので0
0
kernel.core_uses_pid = 
コアダンプ時、".PID"をコアファイル名に追加しない
0

ハッキングツール一覧(ホワイトハッカー編)

  1. ポート・ネットワークスキャン系 Nmap :標準。ポート・サービス検出・OS推定まで。 # 単純なポートスキャン nmap 192.168.1.10 # 開いているポートとサービスを詳細にスキャン nmap -sV -O 192.168.1.10 # 複数ホストをスキャ...