iku8log

Webエンジニア、SEO、Web解析等々しております。タダのメモ。

phpstorm mac 便利なよく使う機能まとめ

これはただのメモになります。環境によっては動きません。

ショートカット

ファイル名検索

command+shift+O

直近に開いていたファイル一覧

command+shift+E

なんでも検索

shift shift

シフトキーを2回押すと開きます。 クラスやファイル名、アクション名など検索できます。

ブックマークする

command+F3

ブックマーク一覧

command+shift+F3

戻る、進む

一つ前に見ていたファイル(または場所)に戻る

command+[

上の逆(進む)

command+]

行の移動

移動させたい行にカーソルを持っていき(複数行選択でも移動可能)以下を実行

下移動

command+shift+↓

上移動

command+shift+↑

keepalivedとかvrrpとかvipとか

ただの備忘録なのであしからず。

keepalivedというロードバランサなしくみがLinuxにはある。

その中でVRRPという仕組みが使われている。

VRRPはmaster、backupという2つのサーバがある。ルータの場合もある。というか普通はそうらしい。

masterが基本的には利用され、masterが死んだときbackupが初めて利用される。 masterが死んだかどうかの確認をbackup側が定期的にチェックする。で死んでたら、自分で「俺がmasterだ」と昇格する。

IPからmacアドレスを取得しフレームを流すが、backupが昇格した段階で、俺のmacアドレスはコレだとarpする。 この時のarpは「Gratuitous ARP 」っていうらしい。 しかしコレは通信相手のためにやっているのではなく、L2スイッチのためにしているっぽい(良くわからない)

実際にはarpもするが、macアドレス時代masterのものをbackupが引き継ぐのでaprが全ての機器に届かなくても、キャッシュされていても問題ない。

ちょっと補足。

masterとbackupは同じIP(VIP)、同じmacアドレス(仮想MACアドレス)。

fail2banについてssh周りだけ調べてみた。

fail2banはsshとかの不正アクセスを検知して、自動的に攻撃元IPを遮断してくれるもの。

僕は、さくらVPSのcentos7を使用していますがデフォルトで入っているっぽいですね。

ない場合はyumとかで入れちゃいましょう。

ですが、デーモン見るとfail2ban動いていませんでした。 初期のままでは動作していない?っぽいので、

sudo systemctl start fail2ban

して、起動させました。

設定ファイル

動作確認をと思って、設定ファイルを以下のように編集しました。

/etc/fail2ban/jail.conf

bantime  = 60 # どのくらいの時間banするか
findtime  = 10 # どのくらいの期間中に失敗したらbanするか
maxretry = 1   # どのくらい失敗したらbanするか

bantimeはその名の通り、1度banしてどのくらいの間banし続けるかという設定。 今回は60。秒単位なので1分間はbanします。

findtimeとmaxretryですが、これはどのくらいの期間中に何回ssh接続が失敗したらbanするという設定。 例えば、findtimeが60でmaxretryが10なら、 1分間の間に10回失敗したら、banするよって感じ。

今回はmaxretryを1に設定しているので、一回でも失敗したら問答無用でbanされます。これならfindtimeを設定する意味はないですが。

初期は以下の様になってましたよ。

bantime  = 600
findtime  = 600
maxretry = 10

10分間の間で10回失敗したら、10分間banするって感じですね。割と厳しめ。

ban出来なかった

sshの接続ユーザを存在しないものにしてテストしてみましたが、banされませんでした。

コマンドでban状況を見るとたしかにバンされている。

sudo fail2ban-client status sshd
|- Filter
|  |- Currently failed: 0
|  |- Total failed: 1
|  `- Journal matches:  _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned: 1
   |- Total banned: 1
   `- Banned IP list:   xxx.xxx.xxx.xxx #IPはヒミツ。

なぜ??と思ったら、実はちゃんとbanされていました。ssh。そう22番ポートがね。 僕はsshのポートを変えているのですり抜けれてました。

/etc/fail2ban/jail.conf

[sshd]
port    = 22222

こんな感じでサービス毎にポートが指定できます。

再起動もお忘れなく。

sudo systemctl restart fail2ban

※firewalldと連携して遮断してるっぽいので、firewalldも起動していないと、ban出来ませんでした。

余談

fail2banはメールとかも送れるっぽいので、結構良いですよ。

暇な時にいじってみよう。

JWTの備忘録

JWTを調べたので個人備忘録として残します。

JWTの読み方はジョットらしい。

tokenを使った認証方式

session,cookieとは異なり、サーバ上にセッション情報を保持しない(ステートレス)

クライアント(ブラウザのcookieやlocalstrage)に保存して、サーバアクセス時に HTTPヘッダに付けリクエストする。

JWTはハッシュ化されたシグニチャが付加されており、改ざんすることも不可能。 JWT内に任意の情報をもたせることも可能。

JWTはヘッダー、ペイロードシグニチャで「.」区切りの3部構成。

利用場面

SPAとかスマホアプリとかかな。 一度ログイン認証などで、JWTをサーバ側で発行し、クラアイアンとに返す。 それ移行、クライアントはJWTをHTTPヘッダに付け、API通信を行う。

JWTは言わば入館証みたいなものなので、盗聴され使われると危ない。 通信のSSL化は必須でしょう。

世界中のありとあらゆる場所に名前をつけた「what3words」が凄い

https://upload.wikimedia.org/wikipedia/commons/8/8e/What3words.png

今日もちらほらとネットニュースを流し見していると、めちゃくちゃ新しいサービスを発見。

 

その名も「what3words」

map.what3words.com

 

このサービスを簡単に説明すると、

 

世界中のありとあらゆる場所を3単語で定義したもの。です。

 

つまり「今ボクがいるこの場所」も、「あなたが今いる場所」も名前がもうついちゃっているということです。

名前がついてる場所は四方3メートル。

3メートルすぎると、また新しい名前の場所となるらしい。

例えば

「new.hello.world」みたいな感じ。

 

例えば↓は富士山の頂上の穴で「parkway.deforms.sifts」という名前になってます。

f:id:iku8:20180701212318p:image

薄っすらと格子状の線が見えると思います。これら3メートル四方で、全てに名前がついています。

ついに、地球は区分化されたか。

 

この画期的なサービスに数多くの起業が投資しているみたいですね。

主に自動車業界が注目しているようです。確かに自動運転などの技術は、このサービスを利用すると、熱くなりそう。

 

でも、3メートル四方なので、自動車で使うなら1メートルくらいにしないと怖いかも。 

 

このサービス地球まるごと線を引いて名前をつけているので、海の上でも↓のように名前が定義されています。おそろしや。

 

f:id:iku8:20180701212304p:image 

 

個人的に便利だなーと思ったのは、お店を探す時。

Google Mapと連携しているようで、「鳥貴族」とか調べられます。

f:id:iku8:20180701212300p:image

行きたい「鳥貴族」の場所の名前を3単語で表してくれるので、

あとはそこを目指して歩くだけ。

 

意外とGoogle Mapとか、iPhoneのマップは「とんちんかん」な方向を指しているので、追加にくい。

what3wordsだったら、場所を検索して、そこへのコンパスを表示してくれます。

f:id:iku8:20180701212253j:image

 

 まあ、店なら他のアプリにコンパスで行けるやつ、とかあるかもしれませんが。

 

このサービスが威力を発揮するのは、やっぱり自分の位置情報ですかね。

Google Mapでも位置情報送信できますが、あまり性格じゃない。

 

これらな、ドンピシャな場所が分かります。

割と今後お世話になるサービスかもしれません。

 

アプリもあります。

久々に面白いサービス発見した。