sshピンポンダッシュ対策

投稿日: Leave a comment

日々やってくるCharlie Rootからのセキュリティレポートを見ていると、コネクションを張ってすぐ切るようなログがたくさん出ていて、sshguardでブロックできていないようなので、pfで対策してみた。

Feb 10 14:13:46 xxxx sshd[91606]: fatal: Read from socket failed: Connection reset by peer [preauth]
Feb 10 14:13:46 xxxx sshd[91608]: fatal: Read from socket failed: Connection reset by peer [preauth]
Feb 10 14:13:47 xxxx sshd[91610]: fatal: Read from socket failed: Connection reset by peer [preauth]
Feb 10 14:14:01 xxxx sshd[91612]: fatal: Read from socket failed: Connection reset by peer [preauth]
Feb 10 14:14:08 xxxx sshd[91614]: fatal: Read from socket failed: Connection reset by peer [preauth]
Feb 10 14:14:11 xxxx sshd[91616]: fatal: Read from socket failed: Connection reset by peer [preauth]
Feb 10 14:15:00 xxxx sshd[91618]: fatal: Read from socket failed: Connection reset by peer [preauth]
Feb 10 14:16:22 xxxx sshd[91622]: fatal: Read from socket failed: Connection reset by peer [preauth]
Feb 10 14:16:38 xxxx sshd[91624]: fatal: Read from socket failed: Connection reset by peer [preauth]
Feb 10 14:16:51 xxxx sshd[91626]: fatal: Read from socket failed: Connection reset by peer [preauth]
Feb 10 14:16:52 xxxx sshd[91628]: fatal: Read from socket failed: Connection reset by peer [preauth]
Feb 10 14:17:05 xxxx sshd[91630]: fatal: Read from socket failed: Connection reset by peer [preauth]
Feb 10 14:17:09 xxxx sshd[91632]: fatal: Read from socket failed: Connection reset by peer [preauth]

/etc/pf.conf に以下の行を追加。外部のIPv4アドレスからは60秒に5回までしかアクセス許可しない設定。

table <bruteforce> persist
block in quick on $ext_if from <bruteforce> to any label "ssh bruteforce"
pass in quick on $ext_if inet proto tcp from !<white4_ext> to any port 22 flags S/SA keep state \
    (max-src-conn 15, max-src-conn-rate 5/60, overload <bruteforce> flush global)

これでしばらく様子を見てみる。

伝わるデザイン

投稿日: Leave a comment

伝わるデザイン|研究発表のユニバーサルデザイン http://tsutawarudesign.web.fc2.com/index.html

このサイト、とても参考になって良いですね。

最近は「Yu Gothic UI」や「Segoe UI」ばかり使っていて、このページのオススメ書体にも共感できるところが多いです。

ちなみに、Windows7で使える游ゴシック/游明朝はここからダウンロードできます。

ただし、以下の表示があり、Office2013/2010が入っていないと使えないかも。
(Win7/Office2010以外の環境が手元にないのでわからない)

Supported Operating System
Windows 7, Windows 8
Office 2013/2010, Windows 8/7

ネットワークコンピュータの一覧

投稿日: Leave a comment

自宅のPCをWindows10 version 1511 (november update) を入れてからか定かではないけど、エクスプローラからネットワークコンピュータの一覧が見えなくなっていた。(今頃気づいた)

おそらく、SMBのバージョンがらみだろうと思っていろいろやってみた。

sambaバージョンを上げる

初めに、ローカルマスターブラウザになっている (なってしまっている) sambaのバージョンを最新の4.3に上げ、SMB3.11に対応させてみたがダメ。

以下、FreeBSD 10.2R 上で実行。

# pkg remove samba41
# pkg install samba43

/usr/local/etc/smb4.conf の globalセクションに以下の1行を追記して、Windows10の使うSMB3.11に対応させたが状況変わらず。

client max protocol = SMB3

SMBバージョン制限

Microsoftのサポートページにある SMB2, SMB3を無効にする方法を試してみたら効果あり。ネットワークコンピュータの一覧が表示されるようになった。

以下のコマンドを管理者権限付きのコマンドプロンプトで実行して再起動。

To disable SMBv2 and SMBv3 on the SMB client, run the following commands:
> sc.exe config lanmanworkstation depend= bowser/mrxsmb10/nsi 
> sc.exe config mrxsmb20 start= disabled

SMBのバージョンが上がってコンピュータの一覧をリストアップする仕組みが変わったようだ。ネットで検索しても似たようなのがパラパラ見つかる。

幸い、一覧に出なくても、\\コンピュータ名 を指定すればアクセスできるので実害はないが気持ちが悪い。そのうちなおると信じて、元に戻した。

To enable SMBv2 and SMBv3 on the SMB client, run the following commands:
> sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi 
> sc.exe config mrxsmb20 start= auto

断捨離2016

投稿日: Leave a comment

20160109_1234

連休中、ふと片付けを初め、今までおいていたパソコンのパーツや古い携帯電話を捨てることにした。

  • Intel PRO/100 S Desktop Adapter
  • Intel PRO/1000 MT Desktop Adapter
  • Intel PRO/1000 MT Dual Port Server Adapter
  • 3com 3C905C-TX-M
  • Adaptec AHA2940U2
  • docomo P900i
  • docomo P901i
  • docomo P903i
  • J-P51

パソコンのパーツはどれもPCI (非PCI-express) なのでさせるマシンがない。Dual portのやつは以前、サーバーを立てようと思って入手したが、発熱がひどくて結局使わずじまい。

携帯電話も905iを1台残して他は廃棄。

これ以外にも、オーディオケーブルとかUSB2.0でないUSBケーブルとか、もう使わないだろうというものばかり。

ただ、写真の中段にある、3C905B-TX と 3C590 は捨てる決心がつかずおいておくことにした。

wevdavにファイルを書き込めるようにした

投稿日: Leave a comment

長いこと、Apache2.4で構築していたWebDavにファイルを書き込めずにいたので、いい加減調べて書き込めるようにした。

httpd.conf (からIncludeしている設定ファイル) で、なぜか method を限定していたのがダメだったぽい。

 <RequireAll>
    Require method GET POST OPTIONS PROPFIND
     Require user xxxx
 </RequireAll>

これを

 Require user xxxx

にしたら書き込めるようになった。当たり前か。最初良く分からず、なんかの設定をコピペしたのがよくなかったか。

今度は、書き込んだファイルのパーミッションが 644 になって、sambaから触れないので、umaskを002にして、パーミッションが 664 (フォルダの場合は775) になるようにした。

root@rose:/usr/local/etc/apache24 # cat envvars.d/umask002.env 
#!/bin/sh

umask 002

root@rose:/usr/local/etc/apache24 #

httpdを実行するときに読み込まれる環境変数を設定するファイルにumask 002を実行するスクリプトを置いたら、WebDavから転送したファイルのパーミッションがちゃんと664になった。

PPPoE + DS-Lite with RTX810

投稿日: Leave a comment

1年ほど前にIPv4の接続をPPPoEからPPPoE+DS-Liteに変更した
ところが、設定が甘いせいか、何かのタイミングでRT810がDataAbortで再起動していて、直し方がわからずPPPoE Onlyに戻していた。

なんか悔しいのと、PPPoEのIPv4接続が遅くなってきた気がするので、約1年ぶりに設定を復活させてみた。

いろいろいじっていて、再起動するタイミングがわかってきた。
おそらく以下の条件で再起動する模様。

  • PPPoEとDS-LiteとL2TP/IPsecを同時に接続
  • L2TP/IPsecでつながった端末(今回はAndroidスマートフォン)からLAN内外のホストに接続しようとする。

でも、L2TP/IPsecのリモート端末からLAN内の端末にPINGをうっても再起動しないから、IPパケットを出すだけではなくTCPで接続しようとしたときになんか起きてるっぽいが、詳しくはよくわからない。

で、いろいろいじってみたところ、L2TP/IPsecのリモート端末に割り当てるIPアドレスのルーティングをDS-LiteからPPPoEの方に変更したらリセットしなくなった。

設定としては、リセットしたときは以下の500004~500008は入れておらず、これらを追加したところリセットしなくなった。(192.168.100.240-244がL2TP/IPsecのリモートホストに割り当てるアドレス)

[修正] pp1に向けるのはNATで外向きにサービスしているアドレスとL2TP/IPsecのアドレスだけでいいはずなので、フィルターを修正(赤字)。

ip route default gateway pp 1 filter 500001 500002 500003 500004 500005 500006 500007 500008 gateway tunnel 1
ip filter 500001 pass 192.168.100.1 * * * *
ip filter 500002 pass 192.168.100.2 * * * *
ip filter 500003 pass 192.168.1.0/24 * * * *
ip filter 500003 pass 192.168.100.240 * * * *
ip filter 500004 pass 192.168.100.241 * * * *
ip filter 500005 pass 192.168.100.242 * * * *
ip filter 500006 pass 192.168.100.243 * * * *
ip filter 500007 pass 192.168.100.244 * * * *

L2TPのトンネルはPPPoEの方から入ってくるのだが、L2TPのパケットをDS-Liteに回してはいけないってことなのだろうか。ちょっとよくわからないが、調子よく動いているので、今度こそこのまま様子を見ることにする。

[追記 2015/10/24]
まだ、L2TP/IPsec でVPN接続するとRTX810が再起動してしまう。即落ちじゃないから気づかなかったけどまだ設定が足りないのか。この際だからもう少し調べてみるか。

とりあえず、OOKLAでスピードテストしてみた。確かに速くなってる。

PPPoE (ISP: Internet Initiative Japan)
20151014_pppoe

DS-Lite (ISP: Internet Multifeed)
20151014_dslite

ちなみに、IPv6のスピードテストではこんな感じなのでもう少しスピードが出てほしい気もするが、おそらく途中の経路でスピードが落ちてるんだろうと思う。
speedtest6_20151114

最後に、DS-Lite周りの主な設定を貼っておく (抜粋)

# DS-Liteのトンネル設定
# secure filterの200000番台は既存のPPPoEで使われているフィルタの流用
# 主にLAN内で使っているもの以外のプライベートアドレスとファイル共有関連を阻止
tunnel select 1
 tunnel encapsulation ipip
 tunnel endpoint address 2404:8e00::feed:101
 ip tunnel mtu 1500
 ip tunnel secure filter in 200000 200001 200010 200011 200012 200020 200021 200022 200023 200024 200025
 ip tunnel secure filter out 200000 200001 200010 200011 200012 200020 200021 200022 200023 200024 200025 200026 200027 200099 dynamic 200098 200099
 ip tunnel tcp mss limit auto
 tunnel enable 1

# PPPoE側に通すフィルタパケットを指定
# 500001~500008に合致したらPPPoE、それ以外はDS-Liteへ
ip routing on
ip route default gateway pp 1 filter 500001 500002 500003 500004 500005 500006 500007 gateway tunnel 1
ip filter 500001 pass 192.168.100.1 * * * *
ip filter 500002 pass 192.168.100.2 * * * *
ip filter 500003 pass 192.168.100.240 * * * *
ip filter 500004 pass 192.168.100.241 * * * *
ip filter 500005 pass 192.168.100.242 * * * *
ip filter 500006 pass 192.168.100.243 * * * *
ip filter 500007 pass 192.168.100.244 * * * *

Windows10 ライセンス認証できず

投稿日: Leave a comment

自宅PCをWindows10にアップグレードして調子に乗って実家PCもアップグレードしたらなぜかライセンス認証できず.ストアにアクセスできないし,Windows Updateもできない.

なんだかよくわからないが,どれも要因は同じっぽいのでちゃんとエラーメッセージの出たストアから探ってみた.

エラーコードは 0x80072EE7 .サーバーがダウンしていますと表示される.このエラーコードを調べてみたらこんなページを見つけた.

Windows 10 – 0x80072EE7 – the server stumbled

2段落目までは効果なしと書いてあるので,効果のあったとされる3段落目を実行してみた.

(1) まずここから Windows Repair All in Oneをダウンロード

(2)  Windows Repair All in One起動
→ [Repairs] のタブ
→ [Repairs] ボタンを押す
→ [Unselect All] でチェックを外して,17番目の [Repair Windows Updates] にチェック
→ [Start Repairs] を押す

少し待つと終了して再起動を促してくるので再起動.再起動したらすでにライセンス認証できていた.
Windows Updateも動いてそう.良かった.

NetBSD/evbarmでRTCを使えるようにする

投稿日: Leave a comment

NetBSD-current/evbarm の RPI のカーネル設定を見ていたら,こんなのを見つけた.

# 'DS3231 Raspberry Pi RTC Board Real Time Clock Module for Arduino'
# sold by linksprite.com
dsrtc* at iic1 addr 0x68 flags 3231

まさに同じRTCを使っているので,7-stableの方に書いてカーネルを作り直してみたら,問題なく使えた.

bcmspi0 at obio0 intr 54: SPI
spi0 at bcmspi0: SPI bus
bsciic0 at obio0 intr 53: BSC0
iic0 at bsciic0: I2C bus
bsciic1 at obio0 intr 53: BSC1
iic1 at bsciic1: I2C bus
dsrtc0 at iic1 addr 0x68: DS3231 Real-time Clock
bcmgpio0 at obio0: GPIO [0...31]
gpio0 at bcmgpio0: 32 pins
bcmgpio1 at obio0: GPIO [32...53]
gpio1 at bcmgpio1: 22 pins

ただ,”年” の扱いが1970年(POSIX_BASE_YEAR)からの差分になっていて,Linuxと違うみたいなので,注意が必要.