KITA Eng.

北海道でサーバー技術者として歩み出したひとが綴るblog。

iLogScannerで攻撃兆候を検出

IPAから公開されている、ウェブサイトの攻撃兆候検出ツール iLogScannerを使って、NGINXのアクセスログを元にした攻撃兆候検出をサーバー上で行うようにしました。 環境 Ubuntu 18.04 Server NGINX iLogScanner 準備 1. IPAのページからオフライン版iLogScan…

PyCon JP 2019でポスター発表しました——「Djangoで業務改善 〜子どもの福祉・教育に関わるNPOでの挑戦〜」

PyCon JP 2019でポスター発表しました。 諸般の都合によりがっつりポスターではなく、スライド資料をA3で8枚印刷したものを掲示しました。 (Slideshareで、掲示したスライド+αのものを公開しています) Djangoで業務改善 〜子どもの福祉・教育に関わるNPOで…

BIND9 ゾーンファイルの編集の罠

BIND9にて、ゾーン情報の編集を以下の流れでやった場合に、変更後の情報が反映されない事象が発生しました。 現在のゾーンファイル(zone.example.com)を別名にコピー(zone.example.com_copy)して、内容を編集(シリアル値はもちろんあげておく) 1.の作…

SSHの接続元IP制限(国単位)をhosts.allow, hosts.denyで

まとめ iptablesにIPアドレスを大量に登録するのは、いろいろ大変なので、動的に制御できたら嬉しい Debian/Ubuntuだと、/etc/hosts.allow 、/etc/hosts.deny でaclexec というオプション1を使用してプログラムの終了コードでアクセス制御ができる GeoIPデー…

Cloud Garageの「接続許可(詳細設定)」でサーバーを守る

特定非営利活動法人Kacotamの内部用ポータルシステムの開発・運用等を担当させてもらっています(2017年5月からシステム稼働)。 このシステムのインフラ部分として、2017年9月からCloud Garage Dev Assist Program (DAP)での支援を受けています。 2017年7月…

Windows10で「OSError: raw write() returned invalid length...」的なエラーが出たら

site-packages以下にsitecustomize.pyの以下ファイルを作って置いてあげる。 import win_unicode_console win_unicode_console.enable() このファイルは、最初に読み込んでくれるらしい。 https://docs.python.jp/3/library/site.html win_unicode_console自…

Conoha VPSでipv6利用時に気を付けたいPostfixの設定

ConohaのVPSは、ipv6が標準で、1個+16個ついてきて楽し気です。 が、思わずはまることもあります。 はまったこと Postfixでipv6を有効にしていると、Gmailなんかにはipv6でつなぎに行くのですが、 その時に以下のようなエラーが記録されて送信できないこと…

Chromeで旧シマンテック/ジオトラスト社のSSL証明書が信頼されたものでなくなる日に向けて...

昨年から、なんだかゴタゴタしていたやつ。 長めの期間で証明書を取得していると、再発行の該当になっているパターンがある。 信頼されなくなっちゃうパターン ref: https://security.googleblog.com/2017/09/chromes-plan-to-distrust-symantec.html 対象1…

WindowsでGitエディタにVS Codeを指定するときのオプション

[core] editor = 'C:\\Program Files\\Microsoft VS Code\\Code.exe' -w -n -w, --wwait : VS Codeが閉じられるまで待つ -n, --new-window: 新しいウィンドウで開く -nも入れてあげないと、既に開いているVS Codeの画面で開かれてしまって、その画面を閉じる…

Django Class-based views でCSVダウンロードページの実装ではまったこと

公式ドキュメント Outputting CSV with Django | Django documentation | Django とか、GoDjangoの記事 Download CSV files via CSVResponseMixin - GoDjango とかあるからさくっと行けるだろうと思ったら、意外な落とし穴があった。 ダウンロードされるCSV…

IDCFクラウドのオブジェクトストレージをdjango-storagesから使ってみた。

最近はオブジェクトストレージをうまく使って、静的ファイルを配信するのが大きな潮流な模様。 静的ファイルのサイズが増え続けたり、ミニマムスタートでサービス立てたり、アプリケーションサーバー側をステートレスで必要に応じてスケーリングしたり... オ…

IDCFクラウドに300円サーバーを作ってみた。

クラウドサーバーがあっちこっちにあって、どこがいいのだか全く謎ですが、ワンコイン(500円)という最小価格の安さでプッシュしている感の強いIDCFクラウドが目にとまりました。 とりあえず仮想マシン作成のテンプレートを眺めていたら、Ubuntu16.04がなく…

PostfixAdmin的なものを作ってみた。

1台のメールサーバーで複数ドメイン運用したり、システムアカウントと連動せずにメールアカウント運用したいとかのときに、便利なPostfixAdmin( Postfix Admin - Web based administration interface)さん。 わたくしもお世話になっておりましたが、MySQLやP…

0. Raspberry Pi3 の初期セットアップ

Raspbery Pi3のセットアップの記事を探すとさくっと出てくるのはディスプレイを繋いで、マウスとキーボード繋いで式だったりしますが... 「HDMIの繋がるディスプレイなんてないよ!」 でも大丈夫!僕らにはSSHがあるじゃないか。 「有線LANとか繋ぐのだるく…

Raspberry Pi3 で子どもたちと「遊ぶ」までの道のり(とりあえず自分で遊んでみる編)

前々から気になっていたRaspberry Piですが、なんだかんだとウダウダしていて、なかなかポチッとなしてなかったのですが、実験やらプログラミングやら電子工作やらして子どもらと遊ぶことになったので、ついに購入。 子どもらとどうやって遊ぶかも含めて、ま…

Apache 2.4 + MariaDB 5.5 でmod_dbd を使ったDigest認証の設定をしてみた。

使いどころがあるのか謎だけど、Apacheの認証系でもDB連携あるぞというのをたまたまみかけたので、やってみた。 環境 CentOS 7.2 Apache 2.4 (CentOS 7標準) MariaDB5.5 (CentOS 7標準) 必要なパッケージのインストール DBドライバーのインストール。今回…

アルファベット文字列をフォネティックコードで表記するPythonモジュールをつくったよ:a2pcej

アカウントの追加業務とかで、パスワードをこちらで適当に生成してお知らせるときに、パスワード文字列のよみがなをつけて渡すということが、しばしばあるわけです。 たとえば、こんなやつ。 ユーザー名: hogehoge パスワード: WPzm60zh (ダブリュー(大…

Windowsのhostsファイルに記述できるエイリアス数の罠

ローカルの開発環境やら、別サーバーに環境を移すときやらに、お世話になるhostsファイル。 Windows 7以降だと、C:\WINDOWS\system32\drivers\etc\hostsを管理者モードで実行したメモ帳で編集してあげれば良いのですが、ちょっとした罠がありました。 127.0.…

Windowsでchecksumを調べる---FCIVを利用してみた

「ファイル チェックサム整合性検証 (FCIV) ユーティリティ」を使ってみました。 特に深い理由はありません。GIMPさんをインストールするときに徐に、ダウンロードファイルのMD5チェックサムでも一応確認しようかとふと思い立っただけです。 FCIVですが、 FC…

Windows10の環境変数を設定する画面が親切になっていた。

Windowsを使っていてほとんど触る機会はないけど、ちょっとマニアックな何かをインストールしてみたりするときとかに、必要になる環境変数の操作。変にいじってしまったら大事件が起きるんじゃないか感が強いわりに、UIが結構使いにくくて、間違わないかいじ…

続・SSHクライアントといえば?

こんな記事を書いてから早半年以上が経過していました。 kitaeng.hateblo.jp Windows 10だとなんだかPoderosaがうまく動いてくれなかったり、Ubuntuのターミナルでも自動でコマンドログを取る方法もググったら意外とたくさん出てきて、何とかなったので、す…

Cronの自動処理を多重起動させないための方法を調べたら...。

photo by mag3737 Cronで定期的に実行さている処理が、システム負荷だったり処理する量の変化によって、実行間隔よりも長くかかってしまうと、多重起動するという小事件が発生するのです。 多重起動しても大して影響のないようなものならいいんですけ、多重…

whoisの情報から必要なところだけを抜き出してくれるようにしてみた。

何かとwhoisでipアドレスを引いて情報を確認することが多いのですが、フォーマットのバラバラ具合にまいります。たいてい使うのは、当該IPを含むネットワークアドレスと国コードぐらい。これだけ出てくれればいいんす。なんてことを思って、早数カ月。別件で…

SoftEther VPN Serverのsystemd用*.serviceファイルを書いた

Ubuntu 16.04 LTSのリリースが目前に迫りつつある今日この頃(ちょいと気が早いか?)。何かにつけてそろそろsystemdと仲良くしないといけないようなので、initスクリプトではなくて、systemd用の*.serviceファイルについてごにょごにょし始めました。 第一弾…

SoftErther VPN Serverで使うSSL証明書をLet's Encryptで取得して設定するとこまで自動化してみた。

Let's Encryptの活用方法シリーズ!?第二弾です。今回は、SoftErther VPN Serverの証明書をLet's Encryptで取得して設定するところまでを自動でできるようにしてみました。 ↓第一弾↓ kitaeng.hateblo.jp 内容的には、第一弾の自動で更新のスクリプトにSoftErt…

UbuntuでPostgreSQLのストリーミングレプリケーションをするときの微妙にはまる!?落とし穴

PostgreSQL 9.5でストリーミングレプリケーションの構築を試してみました。いわゆるDBのマスター&スレーブ構成ってやつでしょうか。 これ→25.2. ログシッピングスタンバイサーバ その作業の中で、普通ははまらないであろう落とし穴に落ちたので記録しておき…

グローバルIPアドレス国別割り当てのデータを生成するスクリプトが書き上がるまでの道のりは険しかった…(解決編)

kitaeng.hateblo.jp RIRsが提供してくれている、RIR statistics exchange formatになっているIPアドレスの割り当て状況のデータを加工するスクリプトを書きました。思考、試行過程をちょっと備忘録的に記録しておきますの第二弾です。 RIR statistics exchan…

グローバルIPアドレス国別割り当てのデータを生成するスクリプトが書き上がるまでの道のりは険しかった…(原因編)

kitaeng.hateblo.jp RIRsが提供してくれている、RIR statistics exchange formatになっているIPアドレスの割り当て状況のデータを加工するスクリプトを書きました。思考、試行過程をちょっと備忘録的に記録しておきます。 RIR statistics exchange formatに…

グローバルIPアドレス国別割り当てのデータを生成するスクリプトを書いた

サーバーの保守をやっていると、接続元IPアドレスで国外からのアクセスかどうかを調べることが多々あります。1、2件調べるだけならwhoisコマンド使って確認すればいいんですけど、whoisの結果って表示書式がバラバラでかなり見にくいですよね。 それに、アク…

Let's EncryptのSSL証明書を自動更新して、結果をメール通知するスクリプトを書いてみた(WEBROOT、NGINX用)

2015/12/03にパブリックベータ版になったLet's Encrypt。以下のように掲げられているような理念だそうですね。 Let's Encrypt は、認証局(CA)として「SSL/TLSサーバ証明書」を無料で発行するとともに、証明書の発行・インストール・更新のプロセスを自動化…