BLOGTIMES
«Prev || ... 474 · 475 · 476 · 477 · 478 · 479 · 480 · 481 · 482 ·... | | Next»
2017/01/29

EdgeRouter X が届いた

networking  ebay  edgeos 
Ubiquiti Networks Edgerouter ER-X(日本国内)

注文していた EdgeRouter X が届きました。

eBay 経由で海外から個人輸入したものと、Amazon.co.jp 経由のものをそれぞれ買ってみたのですが、海外から届いたものはアダプタの変換コネクタが添付されており、Amazon.co.jp 経由のものには PSE マーク付きの AC アダプタがついていました。海外版のアダプタにはもちろん PSE マークはついていません。

ちなみに Amazon.co.jp 経由のものに添付されていたアダプタですが、よく見ると秋月電子通商の文字が。型番の AD-K120P100 で検索してみると、1個 ¥580の以下の製品のようです。

仕様としては、出力 DC 12V 1Aセンタープラス外径 5.5 mm内径2.1 mmのようなので、もし海外から輸入をして、適当なアダプタが欲しければこのスペックを満たすものを買えば良さそうです。


    at 15:30 |
    2017/01/28

    firewalld + ipset で IP ブラックリスト(+ホワイトリストも)設定

    centos7  firewalld  tutorial 

    サーバに IP 制限をかけたいと思ったのですが、CentOS 7.x からはアクセス制御が iptables ではなく firewalld に変更されています。 iptables は依然として firewalld の下で動いているので、やろうと思えば iptables で IP 制限をすることもできますが、制限する IP のリストが大きくなった場合、iptables はあまり効率が良くないのと、管理も煩雑化してしまうため、今回は ipset を用いて IP 制限を行うことにしました。

    IP sets

    IP sets are a framework inside the Linux kernel, which can be administered by the ipset utility. Depending on the type, an IP set may store IP addresses, networks, (TCP/UDP) port numbers, MAC addresses, interface names or combinations of them in a way, which ensures lightning speed when matching an entry against a set.

    インストールは yum で

    インストールは yum で一撃です。
    もしfail2ban をインストールしている場合には、既にインストールされているはずです。

    yum install -y ipset

    まずは設定ファイルを作る

    設定方法は「firewalld + ipset でアクセス制限 | server-memo.net」を参考にさせていただきました。
    今回はアクセス制限用のリストを作るので BLACKLIST という名前にしています。

    まずは設定を保存するための /etc/ipset というディレクトリを作成して、ユーティリティ用のスクリプトを作ります。

    # 設定用のディレクトリを作成 mkdir -p /etc/ipset # ユーティリティ (add.sh restore.sh save.sh) を生成 cd /etc/ipset cat << 'EOS' >add.sh #!/bin/bash SCRIPT_DIR=`dirname $0` cd $SCRIPT_DIR IPSET=/sbin/ipset CONF=BLACKLIST TS="`date --iso-8601=seconds`" if [ -n "$1" ] ; then $IPSET add $CONF $1 else echo "Usage: $0 n.n.n.n/n" fi EOS cat << 'EOS' > restore.sh #!/bin/bash SCRIPT_DIR=`dirname $0` cd $SCRIPT_DIR IPSET=/sbin/ipset CONF=BLACKLIST CONF2=WHITELIST $IPSET destroy $CONF >/dev/null 2>&1 $IPSET restore < $CONF $IPSET destroy $CONF2 >/dev/null 2>&1 $IPSET restore < $CONF2 EOS cat << 'EOS' >save.sh #!/bin/bash SCRIPT_DIR=`dirname $0` cd $SCRIPT_DIR IPSET=/sbin/ipset CONF=BLACKLIST CONF2=WHITELIST $IPSET save $CONF > $CONF $IPSET save $CONF2 > $CONF2 EOS chmod 755 *.sh

    次に ipset を使ってセットを作成し、作成したセットに IP アドレスを追加します。

    # セット作成 ipset create BLACKLIST hash:net counters timeout 0 ipset create WHITELIST hash:net counters timeout 0 # 許可アドレスの追加(以下のコマンドを必要なだけ) ipset add WHITELIST 10.0.0.0/8 # 制限アドレスの追加(以下のコマンドを必要なだけ) ./add.sh 192.168.100.0/24 ./add.sh 192.168.101.1/32 # 保存のテスト(WHITELIST, BLACKLISTというファイルができるかどうか確認します) ./save.sh

    最後に firewalld と連携したら完了です。

    firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -m set ! --match-set WHITELIST src -m set --match-set BLACKLIST src -j DROP firewall-cmd --reload

    ※上記だと全ての通信を DROP してしまうので、特定のポートの通信のみを縛るには multiport を使って以下のように書くことができます。

    firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -m multiport -p tcp --dports 22,80,443 -m set ! --match-set WHITELIST src -m set --match-set BLACKLIST src -j DROP firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -m multiport -p udp --dports 22,80,443 -m set ! --match-set WHITELIST src -m set --match-set BLACKLIST src -j DROP firewall-cmd --reload

    ipset の内容は再起動したりすると消えてしまうので、以下のように firewalld のサービスの定義を変更して起動時と終了時に設定のリストアや保存を自動的に行うようにしておきます。

    cp -a /usr/lib/systemd/system/firewalld.service /etc/systemd/system cd /etc/systemd/system patch <<'EOF' --- firewalld.service.org 2017-01-18 08:28:33.000000000 +0900 +++ firewalld.service 2017-01-28 21:45:36.985884227 +0900 @@ -10,6 +10,8 @@ [Service] EnvironmentFile=-/etc/sysconfig/firewalld +ExecStartPre=/etc/ipset/restore.sh +ExecStopPost=/etc/ipset/save.sh ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS ExecReload=/bin/kill -HUP $MAINPID # supress to log debug and error output also to /var/log/messages EOF systemctl daemon-reload

    定義の内容や稼働状況は以下のコマンドで確認できます。

    ipset list BLACKLIST

    意外とシンプルに実現できました。

    [firewalld + ipset で IP ブラックリスト(+ホワイトリストも)設定 の続きを読む]

      at 21:49 |
      2017/01/28

      確定申告の準備完了!

      etax 

      毎年、期限が迫ってきてからでないと重い腰が上がらないので、今年は早めに確定申告の準備をすることにしました。
      仕事がら仕方ないのですが、インプットしなければいけない情報が多いのでなかなか大変でした。

      • 源泉徴収票:4枚
      • ふるさと納税:6件
      • 特定公益増進法人への寄付:2件
      • 株式等の譲渡所得等(申告分離課税)

      そこそこ還付があるのかなと思っていましたが、ことしは納税額がそこそこ大きくてびっくり。
      このあたりは独身だからしょうがないんですけどね。。。。。。


        at 19:33 |
        2017/01/27

        HTTP Strict Transport Security (HSTS) プリロード に対応させてみた

        firefox  chrome  msie  httpd  ssl 
        HTTP Strict Transport Security (HSTS) Preload - HTTP Strict Transport Security (HSTS)  プリロード に対応させてみた

        サーバ移行を機にサイトを原則として HTTPS 運用することにして、HTTP Strict Transport Security (HSTS)をさらに一歩推し進めてプリロードに対応させてみました。

        HSTS プリロードは、 HSTS 有効化している場合でも、最初の1度のアクセスは暗号化のない状態 ( HTTP ) で行われるという脆弱性を無くすために、ブラウザ側で HSTS に対応したドメインの一覧を持っておく(プリロード)ことで、最初の1度目のアクセスから HTTPS が使われるようになるという仕組みです。

        プリロードの申請はドメイン単位(サブドメインは不可)なので、Apache HTTPd の場合にはドメインの全てのウェブサーバの設定に以下のような設定を追加しておきます。includeSubDomains を指定するとサブドメインの全てに HSTS が効きますHTTP でしかアクセスができないサイトがあると接続エラーになってしまうので、そのようなサイトがないかどうかを良く確認してから設定を変更する必要があることに注意が必要です

        Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

        あとは HSTS Preload List への登録フォームを使って登録するだけです。
        もしウェブサーバに設定の不備があれば、このフォームにドメイン名を入れた時点でエラーが出るので、修正してから登録作業を繰り返します。


          at 22:14 |
          2017/01/27

          さよなら旧サーバ

          vps  sakura  migration 
          Uptime は 2017 日! - さよなら旧サーバ

          月末で専用サーバの契約が切れてしまうので、残っていたWeb サーバを新サーバに移行しました。
          これで旧サーバが担っていた全機能が VPS に移行されたことになります。

          旧サーバの uptime を調べてみたらなんと 2017 日(≒5.526027年)でした。
          前回は 1468 日だったので、近年は安定稼働をしてくれていました。


            at 18:44 |
            2017/01/26

            Gmail、2/13 から .js の添付を禁止

            gmail  javascript 

            来る2月13日から Gmail で .js の添付が禁止されるようなのでメモ。
            今後は .exe や .bat のように zip 圧縮したり、Google Drive などを使ってくださいということのようです。

            G Suite Update Alerts: Gmail will block .js file attachments starting February 13, 2017

            Gmail currently restricts certain file attachments (e.g. .exe, .msc, and .bat) for security reasons, and starting on February 13, 2017, we will not allow .js file attachments as well. Similar to other restricted file attachments, you will not be able to attach a .js file and an in-product warning will appear, explaining the reason why.

            この英文のリリースを読んでいて気づいたのですが、リリース日のカレンダー(Release Calendar – G Suite)なんていうものが用意されてるんですね。


              at 23:55 |

              FE Echoes VALENTIA COMPLETE は予約販売に

              fireemblem  nintendo 

              任天堂の新商品(特に限定版)の発売毎に繰り返されてきたストアのアクセス障害ですが、ファイアーエムブレム Echoes もうひとりの英雄王 VALENTIA COMPLETEについては予約販売されることになったようです。

              マイニンテンドーストアのアクセス障害に関するお詫びと『ファイアーエムブレム Echoes もうひとりの英雄王 VALENTIA COMPLETE』の販売方法変更および予約開始日延期のお知らせ|サポート情報|Nintendo

              この事態を受けまして、数量限定商品としてご案内しておりました『ファイアーエムブレム Echoes もうひとりの英雄王 VALENTIA COMPLETE』は、受付期間中にご予約をいただいたすべてのお客様に販売することといたします。

              覚醒のスペシャルパックの騒動のときに途中で販売方法を変更すると景表法に触れる可能性が高いという見解がありましたが、今回はまだ販売前だったので予約販売に切り替えても問題がないという判断なのかもしれません。限定商品は転売という問題もあるので、今回の任天堂の対応は素直に良かったと言えるのではないでしょうか。


                at 22:27 |
                2017/01/25

                Firefox 51 にアップデート

                firefox 
                Firefox 51 - Firefox 51 にアップデート

                Firefox 51 がリリースされていたのでアップデート。
                Firefox について」で確認したときに 32 ビット版と 64 ビット版の区別が一目でつくようになりました。


                  at 23:01 |

                  sh でファイルを日付毎に振り分ける

                  sh 

                  たくさんのファイルを変更日のフォルダ( YYYYMMDD) を作ってそこに振り分けるためのスクリプトを作ってみました。
                  date コマンド*1-r オプションを使っているのがポイントです。

                  furiwake.sh

                  #!/bin/bash cd /path/to/dir find /path/to/dir -maxdepth 1 -name 'hoge_*' | while read f ; do d=`date -r "$f" '+%Y%m%d'` if [ ! -d $d ] ; then mkdir "$d" fi mv "$f" "$d" done

                  at 12:55 |
                  2017/01/24

                  MySQL の定期バックアップを取る sh スクリプト

                  mysql  systemmanagemant  sh 

                  オペミス等が怖いので MySQL のバックアップは日時で取るようにしています。
                  バックアップも単に取り続けるとディスク容量を圧迫してしまうので、最大10個に制御されるようなスクリプトを書いてみました。

                  mysqlbackup.sh

                  #!/bin/bash SCRIPT_DIR=`dirname $0` cd $SCRIPT_DIR yyyymmdd=`date +%Y%m%d` SNAPCOUNT=10 mysqldump -u root --opt --add-drop-database -A | xz -T 0 > mysqldump_$yyyymmdd.sql.xz find . -name 'mysqldump_*' -type f | sort -r | tail -n +$SNAPCOUNT | xargs --no-run-if-empty rm -f

                  このスクリプトをサーバに仕込んで cron などで定期的に呼出すようにしてやれば気軽にバックアップが取れます。
                  root のパスワードはスクリプト中に書かずに ~/.my.cnf に書いておくと便利です。

                  ~/.my.cnf

                  [client] password="ここにパスワードを書く"

                    at 19:12 |
                    «Prev || ... 474 · 475 · 476 · 477 · 478 · 479 · 480 · 481 · 482 ·... | | Next»