↑日記で日々積み重ねた情報をトップの「わんこのページ」にまとめています。

わんこ日記 [RDF]

過去の日記

2017-08-18(Fri) [長年日記] この日を編集

[Debian] opensslパッケージ 1.1.0f-4からTLSv1.2のみ

Debian testing(10 buster)で、なんか接続出来ないクライアントが出てきたと思ったら

* Disable TLS 1.0 and 1.1, leaving 1.2 as the only supported SSL/TLS

version. This will likely break things, but the hope is that by

the release of Buster everything will speak at least TLS 1.2. This will be

reconsidered before the Buster release.

[http://metadata.ftp-master.debian.org/changelogs/main/o/openssl/openssl_1.1.0f-4_changelogより引用]

ということで、opensslパッケージは、SSLv3はもちろんTLSv1.1ですら受け付けず、TLSv1.2のみになった。

しかたがないので、うにょうにょしたけど、stunnelは、相手側のstoneがTLSv1なので、

;sslVersion = all

sslVersion = TLSv1

[/etc/stunnel/oyo.cnfより引用]

として、なんとか接続出来るようにした。

[Stone] Windows版 stoneのTLSv1.2対応

そもそも、TLSv1.2対応が出来ない原因はクライアント側のWindowsのstone.

出回っているTCP UDPリピータのstoneのWindows版は、OpenSSL 0.98なので、TLSv1までしか対応できていない。

ソース上では、TLSv1.2の対応が出来ているようで、cygwinでは

$ make TARGET=stone ssl_stone

で、TLSv1.2対応版が出来た。しかし、こいつはWindowsサービスに対応してない。

CVS レポジトリの最新版 stone.c は TLS1.2 に対応しております。

http://ja.osdn.net/cvs/view/stone/stone/stone.c?view=log

VisualC++ の場合は、

nmake win-svc

などと実行すればビルドできます。この場合、regex.h ではなく pcreposix.h

が参照されます。

PCRE は http://www.pcre.org/ からダウンロードできます。

[http://www.gcd.org/blog/2011/06/806/#postcommentより引用]

との事なので、やってみる。

無料のVisual Studio Express2017をダウンロードして来たけど、C++やC#だけじゃなくて、TypeScriptだのPythonだのが有って、フットプリントも軽く5Gとかで、何入れて良いのか良く分からない。

なんとか、clとnmakeは入ったけど、nmakeが始まるとwmcが無いと言われて、mrcと共にどこにあるのか分からず、止まっている


2017-08-17(Thu) [長年日記] この日を編集

[Debian] swapパティーションを変えたらリジュームに時間が…

homeをzfsに移動して、1TBのシステムドライブのHDDが

/dev/sda1 root 32GB

/dev/sda2 swap 4GB

空き

となっていたので、メモリも16GBだしと、/dev/sda2を消してHDDの後ろの方に16GBのswapを作った。

で、リブートしようとしたら「resume fail」とか出てブートできない。

実は、failした後、かなり待つと「resume用のswapドライブはどれ」と聞いてくるので、そこで/dev/sda4と答えれば良いのだけど、待ちきれなくて、何度もリブートしても上手くいかず。

Suport Grub2でブートしてみたり、Ubuntu Live DVDをブートして

# mount /dev/sda1 /mnt

# cd /mnt

# mount -t devtmpfs udev ./dev

# mount -t proc proc ./proc

# mount -t sysfs sysfs ./sys

# chroot .

# update-grub

などしても、うまくブートできず…

結局、かなり待って/dev/sda4と答えてブートして調べてみると、

# RESUME=/dev/sda2

#RESUME='UUID=d9499328-23d5-4e4b-b389-09d8d1896be6'

[/etc/initramfs-tools/conf.d/resumeより引用]

という記載があり、/dev/sda2のままで、initramfsの中でリジュームデータを探しに行っていた。

これを/dev/sda4のUUIDに変えて

# update-initramfs

で、めでたく解決(のはず)


2017-06-04(Sun) [長年日記] この日を編集

ZFSのHDD交換の結果

scan: resilvered 1.01T in 5h16m with 0 errors on Wed May 31 05:59:42 2017

ということで、5時間16分で、RAID-1の再構成が終わった

1130iops, スループットは125.74MBでデータのコピーがされていた模様。

iopsthroughput


2017-05-31(Wed) シーゲート ST3000DM001 3TB HDD壊れる [長年日記] この日を編集

まえからSMARTで警告が出ていたSeagateのST3000DM001(3TB)だけど、

Device: /dev/sdc [SAT], 3560 Currently unreadable (pending) sectors
Device info:
ST3000DM001-9YN166, FW:CC4H, 3.00 TB
 
ついに、いつのまにか接続が切れて、うんとスントもいわなくった。 画像の説明

zfsのmirror poolにしていたのでreplaceする

エラーの状況は、

# zpool status

pool: tank

state: DEGRADED

status: One or more devices could not be used because the label is missing or

invalid. Sufficient replicas exist for the pool to continue

functioning in a degraded state.

action: Replace the device using 'zpool replace'.

see: http://zfsonlinux.org/msg/ZFS-8000-4J

scan: scrub repaired 0 in 5h45m with 0 errors on Mon May 29 19:26:52 2017

config:

NAME STATE READ WRITE CKSUM

tank DEGRADED 0 0 0

mirror-0 DEGRADED 0 0 0

ata-ST3000DM001-part1 UNAVAIL 0 0 0

ata-TOSHIBA_DT01ACA300-part1 ONLINE 0 0 0

errors: No known data errors

てな状態なので、新しいSeagate 4TBのHDDを買ってきて入れ替えた。

# zpool replace tank 96512279046075681 /dev/disk/by-id/ata-ST4000DM000-part1

# zpool status

pool: tank

state: DEGRADED

status: One or more devices is currently being resilvered. The pool will

continue to function, possibly in a degraded state.

action: Wait for the resilver to complete.

scan: resilver in progress since Wed May 31 00:43:01 2017

3.50M scanned out of 1.01T at 256K/s, (scan is slow, no estimated time)

3.50M resilvered, 0.00% done

config:

NAME STATE READ WRITE CKSUM

tank DEGRADED 0 0 0

mirror-0 DEGRADED 0 0 0

replacing-0 UNAVAIL 0 0 0

96512279046075681 UNAVAIL 0 0 0 was /dev/disk/by-id/ata-ST3000DM001-part1

ata-ST4000DM000-part1 ONLINE 0 0 0 (resilvering)

ata-TOSHIBA_DT01ACA300-part1 ONLINE 0 0 0

errors: No known data errors

すこし時間をおいてみてみると

action: Wait for the resilver to complete.

scan: resilver in progress since Wed May 31 00:43:01 2017

37.1G scanned out of 1.01T at 41.6M/s, 6h47m to go

37.1G resilvered, 3.60% done

て事なので、朝までにはRAID-1(mirror)の再構築が終わるかな。


2017-03-05(Sun) LXDEのOpenboxでもWindowsスナップ [長年日記] この日を編集

なんかWindows Aaroの右半分にスナップとか便利につかっていたらLinuxでも使いたくなったので

$ diff -u lxde-rc.xml.org lxde-rc.xml

--- lxde-rc.xml.org 2017-03-05 01:10:49.299382235 +0900

+++ lxde-rc.xml 2017-03-05 01:18:57.028669866 +0900

@@ -264,6 +264,12 @@

<menu>client-menu</menu>

</action>

</keybind>

+ <!-- Take a screenshot of the current window with scrot when

+ Alt+Print are pressed -->

+ <!-- copy from /etc/xdg/openbox/rc.xml -->

+ <keybind key="A-Print">

+ <action name="Execute"><command>scrot -s</command></action>

+ </keybind>

<!-- Keybindings for window switching -->

<keybind key="A-Tab">

<action name="NextWindow"/>

@@ -277,6 +283,29 @@

<desktop>yes</desktop>

</action>

</keybind>

+ <!-- copy from /etc/xdg/openbox/rc.xml -->

+ <!-- Keybindings for window switching with the arrow keys -->

+ <keybind key="W-S-Right">

+ <action name="DirectionalCycleWindows">

+ <direction>right</direction>

+ </action>

+ </keybind>

+ <keybind key="W-S-Left">

+ <action name="DirectionalCycleWindows">

+ <direction>left</direction>

+ </action>

+ </keybind>

+ <keybind key="W-S-Up">

+ <action name="DirectionalCycleWindows">

+ <direction>up</direction>

+ </action>

+ </keybind>

+ <keybind key="W-S-Down">

+ <action name="DirectionalCycleWindows">

+ <direction>down</direction>

+ </action>

+ </keybind>

+

<!-- Keybindings for running applications -->

<keybind key="W-e">

<action name="Execute">

@@ -335,6 +364,38 @@

<command>lxrandr</command>

</action>

</keybind>

+ <!-- copy from https://wiki.archlinuxjp.org/index.php/Openbox

+ Windows Aero Snap

+ -->

+ <keybind key="W-Left">

+ <action name="UnmaximizeFull"/>

+ <action name="MaximizeVert"/>

+ <action name="MoveResizeTo">

+ <width>50%</width>

+ </action>

+ <action name="MoveToEdge"><direction>west</direction></action>

+ </keybind>

+ <keybind key="W-Right">

+ <action name="UnmaximizeFull"/>

+ <action name="MaximizeVert"/>

+ <action name="MoveResizeTo">

+ <width>50%</width>

+ </action>

+ <action name="MoveToEdge"><direction>east</direction></action>

+ </keybind>

+ <keybind key="W-Down">

+ <action name="Unmaximize"/>

+ </keybind>

+ <keybind key="W-Up">

+ <action name="Maximize"/>

+ </keybind>

+ <!-- open teminal -->

+ <keybind key="W-t">

+ <action name="Execute">

+ <command>lxterminal</command>

+ </action>

+ </keybind>

+

</keyboard>

<mouse>

<dragThreshold>8</dragThreshold>

上下のスナップは、再現できなかったので最大化で許してね。


2017-02-26(Sun) Docker 1.13 [長年日記] この日を編集

DebianでもexperimentalだけどDocker 1.13のバッケージが出てきたので早速1.11からupgrade

しかし、コンテナが起動できず。

調査の結果、runcパッケージが、Debian 9 testing(strach) 0.1.1+dfsg1-2と古かったのが原因なのでsid版をインストールしたら動くようになった。よかった。

docker.io:amd64/experimental 1.13.0~ds1-1 uptodate

runc:amd64/sid 1.0.0~rc2+git20161109.131.5137186-2 uptodate


2017-02-13(Mon) [Debian] PlanUMLサーブレット版 [長年日記] この日を編集

GitLabの設定で

PlantUML

[x] Enable PlantUML

PlantUML URL

Allow rendering of PlantUML diagrams in Asciidoc documents using an external PlantUML service.

というのが有って、「PlantUML Server」なるWARが有る事を知る。

Debianには、CLI版はパッケージになっているけど、WAR版は無いようなので、plantuml.warを取ってきて、/var/lib/tomcat8/webapps/ に置いて、tomcat8を再起動して使えるようにした。

なかなか良いじゃん


2016-12-07(Wed) kernel 4.8でDebian 6(wheezy)動かず [長年日記] この日を編集

kernel 4.8に上げたら、Dockerの中のDebian 6(wheezy)が動かない。プロセスを起動しようとするとcoreする。

もしかして、これが原因

ainux (4.8.4-1~exp1) experimental; urgency=medium #aa #a * New upstream release: https://kernelnewbies.org/Linux_4.8 #a * New upstream stable update: #a https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.1 #a https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.2 #a https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.3 #a https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.4 #a #a [ Ben Hutchings ] #a * [amd64] Enable LEGACY_VSYSCALL_NONE instead of LEGACY_VSYSCALL_EMULATE. #a This breaks (e)glibc 2.13 and earlier, and can be reverted using the kernel

parameter: vsyscall=emulate

-- Ben Hutchings Sun, 23 Oct 2016 17:21:13 +0100

vsyscall=emulateと、ブートオプション入れないと、glibc 2.13(つまりwheezy)が動かないの?


2016-11-22(Tue) [長年日記] この日を編集

sendmail MTA立ち上がらず

数日前からsendmailのMTAが立ち上がっていなかった。MSPだけしが動いていない。

ログをみると

Nov 22 16:17:57 mirara sm-mta[16075]: NOQUEUE: SYSERR(root): /etc/mail/sendmail.cf: line 1872: Xopendkim: local socket name /var/run/opendkim/opendkim.sock unsafe: Group writable directory

と、opendkim.sockのあるパーミッションが悪いらしい。

--- opendkim.service.generate.org 2016-10-25 02:58:36.000000000 +0900

+++ opendkim.service.generate 2016-11-22 16:37:29.049703801 +0900

@@ -70,7 +70,7 @@

echo "ExecStartPre=-/bin/sh /lib/$NAME/$NAME.service.generate" >> $SERVICEFILE.new

echo "ExecStartPre=-/bin/mkdir -p $RUNDIR" >> $SERVICEFILE.new

echo "ExecStartPre=-/bin/chown $USER.$GROUP $RUNDIR" >> $SERVICEFILE.new

-echo "ExecStartPre=-/bin/chmod 770 $RUNDIR" >> $SERVICEFILE.new

+echo "ExecStartPre=-/bin/chmod 750 $RUNDIR" >> $SERVICEFILE.new

echo "ExecStart=/usr/sbin/opendkim -p $SOCKET $DAEMON_OPTS -x /etc/$NAME.conf -u $USER -P $PIDFILE" >> $SERVICEFILE.new

echo "Restart=on-failure" >> $SERVICEFILE.new

echo "ExecReload=/bin/kill -USR1 \$MAINPID" >> $SERVICEFILE.new

[/lib/opendkimより引用]

というバッチを当てて、opendkimのRUNDIRにGroup Writeの許可が出ないようにしたらsendmailが、ちゃんと動くようになった。

先日のopendmarcだけでなく、opendkim Debianパッケージお前もか!


2016-11-16(Wed) tdiary 5.0にupgrade [長年日記] この日を編集

Debian stretch (testing) で、tdiaryパッケージのバージョンが上がったので、そのままインストールしたら。

uninitialized constant Bundler (NameError)

で動かない。

スタックトレースをしらべると、使いもしないBundlerを使おうとしているようなので、

--- environment.rb.org 2016-09-29 16:41:23.000000000 +0900

+++ environment.rb 2016-11-16 23:33:38.543235684 +0900

@@ -22,14 +22,14 @@

# see: https://github.com/bundler/bundler/issues/1041

#

# load gems dependented by tdiary

-tdiary_spec = Bundler.definition.specs.find {|spec| spec.name == 'tdiary'}

-if tdiary_spec

- tdiary_spec.dependent_specs.each {|dep_spec|

- begin

- require dep_spec.name

- rescue LoadError => e

- STDERR.puts "failed require '#{dep_spec.name}'"

- STDERR.puts e

- end

- }

-end

+#tdiary_spec = Bundler.definition.specs.find {|spec| spec.name == 'tdiary'}

+#if tdiary_spec

+# tdiary_spec.dependent_specs.each {|dep_spec|

+# begin

+# require dep_spec.name

+# rescue LoadError => e

+# STDERR.puts "failed require '#{dep_spec.name}'"

+# STDERR.puts e

+# end

+# }

+#end

[/usr/share/tdiary/lib/tdiaryより引用]

として、回避した。


Google Web検索 on-o.com内を検索