夢幻泡影 - 源本舗

趣味の日記

 
 ついに光回線導入!?
2017年12月15日(Fri)
サイト

20171215

現在の家へと引っ越し、かれこれ10年。
遅いADSLに辟易し、何度かNTTへフレッツ光の問い合わせをしてみるものの、いつもダメ。
正直、光回線はあきらめてたのだけれど…
何となく地元の情報サイト見てたら、市内全域で光ファイバーケーブル網が利用可能…とか書いてあるのを発見。
ウチ、フレッツ光使えないんですけどー…とか、ぼやきながら見てみると…
どうやら数年前に市の政策で市内全戸に無料設置された緊急防災放送が光回線使っているらしい。
当然ウチにも設置してあり、大雨洪水警報といった防災情報や追悼サイレンなど各種行政情報を放送してくれている。
実物を確認してみると、なるほど屋外に取り付けられたボックスへ引き込まれているのは確かに光ファイバーだった。
まさか、既にウチにも光回線あったとは…orz


とは言え、実際にインターネットに使うにはプロバイダへの加入が必要。
調べてみたところ、地元のケーブルテレビがこの光回線を利用したインターネット接続も提供しているとのこと。
幸い、現在利用しているYahoo! BBは、ちょうど4年目。
2年ごとの契約満了月のため、解約手数料も不要。
即電話し相談。
最短で設置して貰いました♪


これまでは、Yahoo! BBのルータ内蔵モデムを利用していた為、Amazonで『TP-Link Archer C1200』を新規に購入。
中国のメーカーですが、世界シェア45%超というのは伊達では無く、下手な国内メーカーのものより安定性や耐久性など高評価を得ているもの。
販売価格から考えるとスペックも高く、
設定はもちろん日本語対応でシンプルで簡単、なおかつ細かいところまで対応しており、素人から玄人まで満足できるものです。
3本あるアンテナはWi-Fiのビームフォーミングにも対応。


20171215a


無事に宅内工事も終了し、早速速度チェック。
測定には、Radish Network Speed Testingを使用。
まずは、Yahoo! BB 12M。


20171215c
Yahoo! BB 12M


12Mのプランとしては正直…な数字。
契約直後は8Mくらい出ていたんですが、インターネット利用者の増加などが主な原因でしょうね。
で…これが、どうなったかというと…


20171215d
CATV光回線 (100Mプラン)


正直、同じPCで測定したとは思えない変わりようw
インターネット始めて、うん十年…
まさか郊外の自宅でこれだけの速度が出るとは思っていなかったので、正直感動でした(涙)
試しに、LinuxのISOファイルをダウンロードしてみると、実質4〜7Mbpsといった所でしたが…
これは相手サーバにもよるし、なによりこれだけ速度出てて帯域塞がれないのはありがたい。
ADSLではダウンロードでこういう速度が出た場合、下手をすれば普通のサイトすらタイムアウト起こして見られなくなってしまってたので…w
あと、それ以上に大きいのは上り速度の圧倒的な向上。
自宅サーバも動かしている為、この速度アップは非常にありがたいです。
なお、回線が混む夕方から24時くらいの時間帯はどうしても速度低下が起こりますが…
自分は仕事してることがほとんどなんで、ほぼ関係なし(苦笑)


無線ルータのWi-Fiも簡単に設定でき、ノートPCやスマホからも快適にアクセスできるように。
ADSLの契約解除など、まだすべきことは残っているものの…
年末年始は快適にネット出来そうです♪


>関連リンク
 Amazon - TP-Link WiFi 無線LAN ルーター Archer C1200公式
 Radish Network Speed Testing
 

名前  URL 

 

 
 XHTM1.0よりHTML5へ移行
2017年05月22日(Mon)
サイト

この日記ブログは自宅サーバ上の日記CGI「nicky!」にて稼働しており、XHTML1.0で出力される様にしていましたが…
ツイッターなど最近のブログパーツは、HTML5に対応するものがほとんど。
XHTMLの文法はかなり厳しく、ブログパーツなどの導入時はHTML5で追加されたタグや要素の所為で、ほぼ確実に文法上のエラーが出てしまいます。
ブラウザでの表示は問題無いことが多いものの、意図した様に表示されなかったりする場合も。


元々HTMLは文法にあいまいな点が多く、インターネットが普及してきた頃に主流だったHTML4.01ではブラウザによって見え方が違ったりと不都合も色々ありました。
その為、XHTMLは構造を厳密にしてブラウザでの互換性を高めることなどを目的として登場しました。
オイラもサイト制作を始めた当時、この互換性の高さ目当てでXHTMLをチョイスしたのですが…
実のトコロ…HTMLやXHTMLなどの規格を策定している「W3C」自体、次期規格となるはずだったXHTML2.0の策定を既に打ち切ってます。
結局、厳しい文法など融通の利かない部分が多いXHTMLへの移行はなかなか進まず、おまけにW3Cのゴリ押しへの反発などから、新たな団体「WHATWG」が設立されてHTML5が登場。
そしてHTML5が普及したことにより、XHTMLの不都合点もカバーできた上、その利点も減少。
結局、W3C自体もHTML5に注力しています。
XHTML5というのもあるけれど、XMLの機能拡張性にこだわらないなら、わざわざ選択する必要もなし。
結局、サイトのコーディングを見直す良い機会ということで、HTML5に切り替える事にしました。


まず、ヘッダに記述しているDOCTYPE宣言やhtml要素と文字のエンコーディング部分を変更。
基本的にはこれだけで、ブラウザからはHTML5のドキュメントとして扱われるようになるので、次は文法に沿って記述を直してゆきます。
nicky!の初期設定メニューから、XHTMLと設定していたタグモードをHTMLに戻します。
これで自動出力される、brやimgなどの空要素を閉じたタグはHTMLのものになりますが、ヘッダやフッタなどスキンの部分はそのままの為、「Markup Validation Service」を使用して、文法エラーを確認しながら手動で修正してゆきます。


問題は、CGIにより自動出力される部分。
カレンダーは追加CGI『minili.cgi』により生成されるのだけれど…
tableタグを用いており、これがまたHTML5になって廃止された属性である「align」「cellspacing」「cellpadding」などが多数使用されてたり。
これらは「style」属性でCSSに置き換える様、CGIを書き換えます。


■変更例

valign=\"top\"
 ↓
style=\"vertical-align:top;\"
 
cellpadding=\"0\" cellspacing=\"1\"
 ↓
style=\"padding:0; border-spacing:1;\"

その他、記事にジャンプするために使われていたaタグの「name」属性も廃止されているため、nicky.cgiを書き換えてXHTMLの時と同じspanタグと「id」属性を使うようにしました。


あと、記事中の埋め込み画像など幾つかの修正を加えたりして、Markup Validation Serviceで指摘されたエラーをつぶしてゆきますが…
最後に残ったのは…

Warning:
 Legacy encoding euc-jp used. Documents should use UTF-8.
 警告:古いエンコードのeuc-jpを使ってるね。
    ドキュメントはUTF-8を使わなきゃ駄目だよ。(意訳)


エラーではなく警告のため、必ずしも遵守しなければいけない訳ではないのですが…
これは流石にどうしようもないw
CGIによって出力されるテキストのエンコードを変更するには、Perlモジュール「Jcode.pm」を組み込んで文字コードを変換する、といった手段もあるようですが…
自分のスキルではそこまでの改造は無理。


なんだかんだで、nicky!も導入して13年が経過。
古いツールという事もあって利用者も減りつつある様で、改造しようにも情報が見つからないのが現状ですし…
本家も5年以上バージョンアップが止まっている残念な状況です。
まぁ、最近はブログサービスやSNSが広く普及したこともあり、CGI設置以前に自分でサイト制作する人自体が激減してるのが実情でしょうね。
思い切って、WordPressへ乗り換えるのもいいかもしれないなぁ。


>関連リンク
 DiaryCGI nicky!
 Markup Validation Service

名前  URL 

 

 
 スパムコメント対応
2017年05月05日(Fri)
サイト

日記ブログやってると、うっとうしいのがコメントスパム。
ウチみたいな弱小ブログでも、検索サイトでURLを拾ってくるのか、結構やってきます。
以前は中華系の偽ブランドについて怪しげな日本語で書き込みするものが多かったですが…
こういうのはツールやスクリプトなどによる自動書き込みが多く、名前にURL書いたりするので、書き込み禁止ワードを上手く設定することで回避することが可能。
実際、ほとんどの書き込みはフィルタで回避でき、たまに新たなパターンが出てきても、その商品名などを追加することで簡単に対応できていました。


しかし最近、半月に一回くらいのペースながら、10分間に20ものスパムコメントを連投してくる輩が。
毎回違うIPアドレスで、ご丁寧にブラウザまで別。
ただし、サイトそのもののアクセスログにはIPアドレスが記録されておらず、記事のURLに直接アクセスしている模様。
何らかのツールを使って、拾ってきたURLへプロキシやUser Agentを変えて自動書き込みしているのでしょうね。


現状、CGIをいじり、英語のみ(というか、1バイト文字オンリー)のコメントは書き込みできないようにしているものの…
残念ながらルーチンの都合上、書き込み通知メールは送信されてしまう。
スパムコメントの削除処理は不要なのだが、スマホへメールが届きまくるのは流石にウザい。


今回のスパムは北米のIPが中心で、言語設定も『en-us』。
閲覧して下さるユーザーを狭めることになるので、あまりやりたくは無かったのですが…
思い切って日本語以外のブラウザへアクセス制限をかけることにしました。
設定は至って簡単で『.htaccess』に下記を追記するだけ。


SetEnvIf Accept-Language "^[^(ja)]+$" no_jp
Order allow,deny
Allow from all
Deny from env=no_jp

ちなみにこれまでは、zh(中国語)、ko(韓国語)、ro(ロシア)…という様にスパムの多い国を個別に設定。
一応海外のSNSにも登録してたりするし、英語ならなんとか対応もできるので、フィルタはかけずにおいたのですけれどね…


しかしまぁ、Apacheのエラーログを見ると、定番とも言えるWordpressの『phpMyAdmin』へログインを試みるものなど、一日に数回は不正アクセスがあるもので(^^;
セキュリティ対策には気をつけているつもりですが、気を抜かないようにしたいものです。

名前  URL 

 

 
 VNCの道は険しきかな
2017年02月03日(Fri)
サイト

前回、VNCでのマルチユーザー・ログインを行うには、標準インストールされている『vino』ではダメなことが判明。
そこでSynapticパッケージマネージャで「VNC」を検索し『vnc-server』をインストールします。
今度は、これをベースに挑戦してみました。
なおOSは、Vine Linux 6.3を使用。


インストール後、まずはお約束として「~/.vnc/xstartup」を書き換え。
Nautilus(ファイルマネージャ)などでファイルを開く場合は、隠しファイルを表示する設定を忘れずに。


~/.vnc/xstartup

#!/bin/sh
vncconfig -nowin & #-iconic を -nowin に変更
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER #2行のコメントアウトを外し
exec /etc/X11/xinit/xinitrc #その下をコメントアウトする
#[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
#[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
#xsetroot -solid grey
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &

「vncconfig」を起動しておくことによって、クリップボードの共有ができるようになるのだけれど…
今回は xinetd を使って、vncserver の代わりに xvnc を直接起動します。
そのため、上で書き換えた ~/.vnc/xstartup のオプションは使用されないので注意。
そこで、/etc/X11/xinit/xinitrc.d 内に、vncconfig が起動するようファイルを作ります。


/etc/X11/xinit/xinitrc.d/99-vncconfig.sh

#!/bin/sh
vncconfig -nowin &

/etc/services を書き換え、vncserver用のポートを指定します。
一応マルチログインを考え、5901〜5902を。
/etc/services

vnc-server 5900/tcp # VNC Server
vnc-server 5900/udp # VNC Server
vnc 5901/tcp # VNC Server
vnc 5902/tcp # VNC Server

次は、xinetd用のサービスを制作。


/etc/xinetd.d/vnc

service vnc
{
disable = no #noとすることでサービスが開始
socket_type = stream
wait = no
user = nobody #起動後ログインするので nobody に
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -once -geometry 1024x768 -depth 16 --securitytypes=none
}

サービス名「vnc」は、/etc/servicesに追加したのと同じものを指定。ファイル名は任意。


GDM(GNOME Display Manager)の設定を書き換えて、XDMCP接続ができるようにします。


/etc/X11/gdm/custom.conf

[daemon]
TimedLoginEnable = False
AutomaticLogin = None
AutomaticLoginEnable = False
TimedLoginDelay = 30
TimedLogin = None
 :
[xdmcp] #これを追加することで、XDMCPが有効に
Enable=true

これで一通りの設定ができたので再起動。
xinetd と gdm だけ再起動でいいハズだけれど、面倒なのでOSごとリブート(汗)


OSが起動しログイン画面になったところで、UltraVNC viewerで接続を試みる…が、接続できません。
なんでだ〜!? と、焦りながら試行錯誤すること2時間。
何のことはない、UltraVNC viewerでVNCサーバの指定を「192.168.3.10」としていたのが原因だった。
今回VNCサービス用に作ったポート5901を指定していなかったので、5900の vino で接続しようとしていたっぽい。
5900を引いて「192.168.3.10:1」と指定し、やっと起動!
…と思いきや、GDMログイン画面の起動時にいきなりエラーが…orz


20170203a


『設定サーバに問題があるようです(/usr/libexec/gconf-sanity-check-2がステータス256で終了しました)』とか言われてしまう。
とりあえず無視して続行すると…
フェード効果やマウスカーソルのアニメーションが重たげではあるが、ログイン画面が!
rootでログインすると見慣れたデスクトップが現れました。
ただ、それなりに操作ができるものの…
ウィンドウの一部が欠けたりと、画面描画にあからさまな不具合が。


20170203b


「設定→ハードウェア→モニタ」とすると『RANDR拡張がインストールされていません』と。
その他、Synapticパッケージマネージャをはじめ、起動しないものもたくさん。
vino では、いずれも問題無かった点です。
さらに、しばらく操作しているとハングしたように動かなくなってしまう。


GDMログイン画面起動時のエラーについて調べてみると、これは「/tmp」フォルダが原因で出ることが多いらしい。
パーミッションの設定やパスが正しくなかったりするのが主な理由の様子。
しかし、確認してみてもパーミッションなど問題無し。


完全に煮詰まってしまったものの…
Vine Linux上で、vncserver に GNOME を使用すると、CPUが100%になるなどフリーズの原因となることが判明。
軽量で知られるディスプレイマネージャ『Xfce』を導入してみる。


~/.vnc/xstartup

#!/bin/sh
#vncconfig -iconic &
vncconfig -nowin &
# Uncomment the following two lines for normal desktop:
unset DBUS_SESSION_BUS_ADDRESS #"Could not acquire name on session bus"と出るときの対策
unset SESSION_MANAGER
#exec /etc/X11/xinit/xinitrc #コメントアウト
exec xfce4-session & #Xfce を追記
#[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
#[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
#xsetroot -solid grey
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &

xstartupを書き換え、/etc/xinetd.d/vnc と /etc/X11/gdm/custom.conf も、元に戻します。
その上で、一度 root でログインし、『vncserver』を実行。

# vncserver
New 'atom.localdomain:1 (root)' desktop is atom.localdomain:1
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/atom.localdomain:1.log


20170203c
問題無く、Xfce 起動


ウィンドウの欠けなどもなく、Synapticパッケージマネージャなども起動。
ざっと触ってみた限りでは、GNOMEの時の不具合はない様子。
マルチユーザーでのログインはできませんでしたが、一応VNCでのリモートコントロールは達成。
まぁ、不満点も多いので、折を見て確認していきたいところです。


>関連リンク
 Vine Linux 公式サイト - ユーザ環境の設定 インターネットとネットワーク
 developerWorks - VNC でマルチユーザー・ログインを可能にする
 禿散らかしてごめんなさい

名前  URL 

 

 
 リモートデスクトップって便利だよね
2017年01月25日(Wed)
サイト

先日、サーバ機にLANアダプタを追加しジャンボフレームの設定を行った時…
通常はWebminからデバイスの確認もできるハズなのだが『ネットワーク設定』の項目が見当たらず、直接本体で行うことに。
普通は「ネットワーク」の中にあるはずなのだけど…
他の項目(Bandwidth Monitoring)を見ると原因とおぼしきメッセージが。

The Webmin module ネットワーク設定 is not installed on this system or is not supported by your OS.
The Bandwidth Monitoring module cannot operate without it.
 Webminモジュール ネットワーク設定がこのシステムにインストールされていないか、ご使用のOSでサポートされていません。
 帯域幅監視モジュールは、それなしでは動作できません。


サーバ機にもモニタやキーボードなどもつなげてあるので、操作する分に問題もないのですが…
メインPCとサーバ機を行ったり来たりというのは非常に面倒。
おまけにこの季節は寒いので、なおのこと(笑)
そこでVNCを使って、リモートデスクトップが使えるようにしてみます。


VNCとは、 Virtual Network Computingの略。
ネットワークに繋がった他のコンピュータの画面を遠隔操作する技術です。
操作される側にVNCサーバを構成し、操作する側のVNCクライアント上に画面が表示されるという仕組み。


Vine Linux 6.3のインストール時、標準で『vino』(GNOME用リモートデスクトップシステム)と『vinagre』(GNOMEデスクトップ用VNCクライアント)がインストール済。
設定→インターネットとネットワーク→リモート・デスクトップをクリックし、設定します。


20170125a
Vine Linux上、リモート・デスクトップの設定


あとファイアウォールも設定し、vinoが使う5900ポートを空けておきます。


20170125b
Vine Linux上、セキュリティレベルとファイヤーウォールの設定


続いて、Windows機側の設定。
VNCクライアントは幾つか出ていますが、大抵が英語版。
今回は日本語化工房さんにより日本語化されている『UltraVNC』を使用しました。
公式より『ultravnc xxxx ALL bin zip』(xxxxは任意の数字)のZIPファイルをダウンロード。
設置するフォルダへコピーし、日本語化パッチをあてればOKです。(インストール不要)
VNCサーバと、VNCクライアントのセットになってますが、今回使うのはクライアントのUltraVNC viewerの方。
設定も簡単で、サーバのIPを指定し、任意でオプションを指定するだけ。


20170125c
Windows上、UltraVNC viewerの設定


接続し、最初にリモート・デスクトップで指定したパスワードを入力すれば、Linuxのデスクトップが表示されます。


20170125d


簡単にできた!…と思ったのもつかの間。
この状態ではリモート・デスクトップを許可したユーザーでログインしていなければならず、リモートでのマルチユーザー・ログインはできません。
ログオフすると、実際のモニタでは正常に表示されているものの…
リモート・デスクトップ上はフリーズしたかの様に画面が残ってしまい、操作もできなくなります。
流石に、rootとか管理者ユーザーでログインしっぱなし…というのは、セキュリティ上も避けたいところ。
しかし調べてみると、どうもvinoではマルチユーザー・ログインは不可。
vnc-serverをインストールして構成する必要があるらしい。
…という訳で、試行錯誤は続くのでした…


>関連リンク
 Vine Linux 公式サイト - ユーザ環境の設定 インターネットとネットワーク
 UltraVNC 公式ダウンロード
 日本語化工房 - UltraVNC

名前  URL