2020年2月7日金曜日

X-Forwarded-Forとウェブサイトのよく分からない関係。

adobeが環境変数を読んでいる事件以来、環境変数を出しっ放しにしていたのだけれども、(目立つところで)「マイクロソフトコミュニティ」と「note」に接続できなくなった。
具体的には、マイクロソフトコミュニティhttps://answers.microsoft.com/ja-jpにアクセスすると、「申し訳ございません 現在このページは利用できません」と出る。
また、noteは、https://note.mu(今はhttps://note.comか)にアクセスすると、「申し訳ありません、ただ今障害が発生しております。復旧作業中ですのでしばらくお待ち下さい。
このページが繰り返し表示される場合は問い合わせフォームまでご連絡下さい。
」と出る。
この問題は、自分がプロキシ環境下に居る際のみ発生する現象なので、間違いなくプロキシが何らかの影響を及ぼしている筈である。
正直、noteは全く困らないのだけれども、マイクロソフトコミュニティは困る。
noteはたまにquiita代わりに使っている人が居る位だが、マイクロソフトはガチ目である。
で、探ってみたところ、どうもX-Forwarded-Forを漏らしていると、両サイト共に、上記のような意図しない画面になることが分かった。
不思議な話である。
別にX-Forwarded-Forが漏れていたところで、プロキシ経由でアクセスしているんだよということが分かるだけで、何の影響も無いはずだからである。
大体漏れているX-Forwarded-Forの内容もunknownである。
むしろプロキシが兎に角嫌いなのかと思ったのだけれども、HTTP_VIAは漏れている(しかもばっちりsquidの名前とバージョンまで出ている)ので、そういうわけでは無いらしい。
何にしろ、X-Forwarded-Forが元凶なので、取り敢えず漏れないようにする。
squid.confに

request_header_access X-Forwarded-For deny all

を追記。

adobeのアクセスに関係が無いことを確認して終了。

2020年2月6日木曜日

SSL通信は透過するけれども、http通信は透過しないという不思議状況に悩まされる FATAL: mimeLoadIcon: cannot parse internal URL:

CENTOS8で、透過SSLプロキシを建てようとしたはいいものの、諸々はまって、最後に原因が分からないけれども
何とかなったという、誰か真面目に説明して欲しい位の何かにはまったので書いておく。

はまりポイント1

nftablesの意味が分からなかった。
8からnftablesに変わるから覚えなきゃ、で始めたのだけれども、
iptablesのノリで出来る物だと思っていたら、何か御作法が全然違う。iptablesをnftablesの設定に変換できるので、
変換してみたのだけれども、同じ文法で書いてみても適用時にエラーが出る。
なので、3日間位がっつり調べたり試したりしたが、nftablesは未だ早いという結論に至った。
nftablesは書籍は勿論、ウェブページでも扱っているところが少なすぎて、何をどうすればこうなるが全く頭に入らなかった。
結局nftablesを覚えなくても、iptablesがそのまま使える(内部的にはnftablesに変わっている)ので、iptablesで進めることにした。

はまりポイント2

firewalldを無効にしなかった
どうせ中身はnftablesなのだから、と思っていたら、思いっきり相互干渉してしまっていた。
全く用を為さないわけでは無く、部分的に効いたりするからタチが悪い。
しかもエラーメッセージはないので、原因解明に1日潰した。
firewalldだけ潰して再起動をかける。(似たあるあるで、selinuxの無効有効を忘れるとか)。

はまりポイント3

squidのhttp_portを2つ入れなければならなかった。
これが謎の大元。何回やっても、https(SSL)は通っているが、httpが兎に角通らなかった。
squid.confの設定で、http_portを指定するところがあるのだけれども、
http_port 3128 intercept
のように、intercept(透過指定)すると、
squid自体は立ち上がっているように見えるが、実際はエラーで起動しておらず、
systemctl status squid
でエラーを見ると、
FATAL: mimeLoadIcon: cannot parse internal URL:~というエラーがでて、ずっと悩んでいた。
これの答えは、
https://tutorialmore.com/questions-290758.htm
のように、
http_port 3127
http_port 3128 intercept
と、2つ指定しなければならないと言うことだった。
・・・これ、何故指定しなければならないのか、指定したらどういう風に通信処理されるのかさっぱり分からないんだよね・・・。
iptablesでは、3127ポートに関しては一切触れていないので、内部処理なんだろうけど・・・。
※3127とか3128とかのポートは任意なので一応注釈。
squid3だと、ポートを2つ指定したことが無かったので、新しい御作法なんだろうけれども・・・。

切り分け別個の話として、intercept指定しなければ、ブラウザにプロキシを噛ませる必要があるので、
もし噛ませなかったら


    不正なURL

指定されたURLに正しくない部分があります。

考えられる問題:

    ("http://"または同類の)アクセス・プロトコルが抜けているか不正です。

    ホスト名がありません。

    不正な二重のエスケープがURLパスに含まれています。

    ホスト名に不正な文字が含まれています: アンダースコア(下線)は使えません。

というエラーがsquidから出る。
英語だとinvalid urlか。

2020年2月3日月曜日

パスワードスプレー攻撃元国外アドレス※随時追記

表題のまんま。
具体的には、「短期間に複数のipアドレスレンジから、様々なID/PASSでログインを試行」されたipレンジ。
 同一IPなら逆に可愛い物だが、アドレスレンジになると、一律でドーンをやることに対して非常に気が引ける。
随時追加していく予定。

92.63.192.0/20 #ロシア
222.184.0.0/13 #中国
122.51.0.0/16 #CHINA

2020年1月28日火曜日

NTTのONU(HGW)には(当たり前だが)バックドアが付いている

ある日、遠方の拠点で電話番号を変更する工事を行うことになった。日付だけは知っていたのだけれども気にしていなかったのだけれども、何故か電話がかかってきた。
ONU(HGW)をリスタートさせたいらしい。
ONUはNTTからのレンタル品で、userアカウントで設定が出来る。
別に外向きのサーバをそこで建てているわけでは無かったので、やってください、で電話を切ったのだけれども、また電話がかかってきた。
ONUの中に入らなければならないので、「user」に対するパスワードを教えて欲しいらしい。
僕は、そもそもの確認なのだけれども、「user」アカウントがあることは承知しているが、adminもしくはroot(権限)は承知していない。御社の方で管理しているのだろうから、それで設定すれば良いのではないか、と言うと、そんな(権限)アカウントは存在しない、と宣った。兎に角userのパスワードを知りたいらしい(因みにデフォルトだとuser。IDとパスワードが同じガバガバ仕様)。
残念ながら他人に教えるようなパスワードを設定している訳では無いので、ここは「忘れた」と答えると、遠隔で入れるから入っても良いかと聞かれた。
遠隔で入れる・・・?
不思議なことである。遠隔で入れるならば、そもそもuserのパスワード等要らないのではないか。更に、遠隔で入れるのであれば、それこそ件の管理アカウントなのではなかろうか。
取り敢えず好きにしてくれ、と電話を切ると、またかかってきて、今度は「IPアドレスが変更になっているから入れなかった。工事は中止するわ」とのこと。
ポンコツにも程があると思ったが、NTT的には、そこでプライバシーとの境目を付けたのだろう。
もしNTTからの干渉を避けたいのであれば、ポイントは、
  • パスワードは必ず変更しておくこと(ただ、対NTTという話だと、これはあまり意味が無いとも言えそう) 
  • LAN側ネットワークアドレスを変更しておく
 の2点である。
更にやるなら、市販のルータも噛ませておけばいいだろう(二重NAPTにする)。
https://srad.jp/story/18/09/04/0554208/
借り物だから外からアクセスできても仕方が無いかと思うけれども、 気持ちが悪いと言えばその通り。
大体パスワード教えろとか、ねえ。

2020年1月10日金曜日

Centos8をインストール出来無い(Ryzen apu オンボードグラフィックには注意が必要)

泣きたい。
テスト環境にcentos8をインストールしようとしたが、トラブルばかりだった。

先ず環境は、オンボードグラボを使ったRyzen5 2400g。
メモリは16GB、SSD250GBと、まあ普通の構成である。

つまづいた点1
  画面が真っ黒になったままフリーズする
インストーラを起動させた瞬間、ブラックアウトしてフリーズ。うんともすんとも言わなくなる。じゃあレスキューの方にしてみるかと思って選択しても、ダメ。
仕方がないので、system setupを選んでみると、UEFIが起動する。何それ...。

じゃあブートを変えてみようと、 UEFI画面からブートディスクを選択(UEFIが付いていない方)を選択すると、見た目昔のインストーラ画面が。
 じゃあこの画面からインストールできるかと言われると、そうでもない。結局ブラックアウトしてフリーズである。それならばと、最後の選択部分のtroubleshootingを覗いてみると、ベーシックグラフィックスモードでインストール、という選択があるではないか。
何故UEFIの方にはないんだろう、という素朴な疑問もあったが、

Troubleshooting>Install CentOS Linux 8.0.1905 in basic graphics mode 

でインストールにこぎつけた。
ただ、インストールが終わっただけで、結局何の解決にもなっていなかった(この時点でグラフィック関係やばそうだなという気はしだしていた)。

つまづいた点2
 エラーが出て起動しない
折角インストールできたのに、起動しないのである。
知らんCPUだな!というエラーメッセージはいつものことなのだが、なにそのGPU、拒否るわ、と言われて撃沈するとは思っていなかった。

[drm:amdgpu_init [amdgpu]] *ERROR* VGACON disables amdgpu kernel modesetting

amdgpuと言っているので、オンボードGPUに問題があるということなのだろう。

僕は潔くnvidiaのgeforce 710(安くてファンレスなのでサーバ用途に都合がいい。手持ちで1枚もっておくと、いろいろはかどる。)を挿してやったが、今度は

 ACPI BIOS Error (bug): Could not resolve [\_SB.PC10.GPP0.VGA.LCD~
ACPI BIOS Error (bug): Could not resolve [\_SB.PC10.GP17..VGA.LCD~

とか。まあ結局ドライバなし地獄。
それはそうではある。インストール時には挿さっていなかったのだから、ドライバも入っているはずがない。

どうせインストールだけなので、いっそ諦め、グラボを挿した状態でインストールを開始すると、今までのエラーが嘘だったかのようにすんなり(UEFI起動で)インストールでき、またすんなり起動した。
 なんやねんAMD。

因みに、古い環境であるA10-7890(FM2+環境)へは全く問題なくインストールできたので、2020年1月現在で、ryzen2000シリーズ〜のオンボードGPUへの対応はされていないと考えたほうが良さそうである(ついでにCPUも知らんと言われてはいるので、あまりお薦めはしないが、まあ問題ないだろう)。
グラボが必要ならば、わざわざAPU等買わないのである(グラフィックボードという故障の可能性がある箇所を増やしたくない)。

そういえば、昔は「枯れた環境じゃないとサーバを作らない」のが普通だったけれども、最近は結構飛びついている気がする。
かれた環境が手に入りにくくなった(すぐに終売する)のもあるけれども、やはり情報の巡りが速くなったのではないかなあとも思う。

にしてもryzen2400gにgeforce710って...無駄アンド無駄...
linuxにも、内蔵と後付のグラボを振り分ける設定はあるのか知らん。
windows10なら、システム>グラフィックの設定>グラフィックスのパフォーマンスの基本設定
で振り分け/固定が可能なのだけれども。

2019年12月17日火曜日

Centos8でmegaraid上のディスクにOSインストールしようとすると失敗する

何時も通り(?)にOSをインストールするだけのはずだった。

いつも僕はシステムもmegaraidで区切った領域にインストールしている。単純に、システムも同一のraid環境に置いておきたいだけなのだけれども、今回はインストールさえさせてくれなかった。
区切った領域にインストールしようとすると、invalid superblock magic number とか言い出して、パーティションを区切るのみでインストールが止まる。
おかげでCentos7を祭ダウンロードして入れるハメになった。まだインストールしていないが、これはゆゆしき事態だなあ。
新しいからバグなのか、それとも
http://nakanoshuichi.blogspot.com/2019/10/centos8-lsi-megaraid.html
のように、

CentOS8の標準カーネルでサポート外になった

のか。一応現行のもの(9361-8i)なんだけどなあ。。。

2019年12月4日水曜日

Megaraid 9721-8iで、リチウムイオン電池が妊娠してRAIDカードを破壊してしまった(RAIDアレイが破損。それを復旧した話)

事実は小説より奇なり。
ある日、「ファイルサーバに繋がらない」と苦情を言われた。
いつもなら、sambaが何かの拍子にへそを曲げただけで、再起動すれば何事もなかったように立ち上がっていたのだけれども、今回は様子が違う。
立ち上げたら、bios画面で、VD(ヴァァーチャルドライブのこと。)が無いぞ、と言ってくる。
ディスク自体も認識していないらしく、ケーブルや電源を確認しろと書いてある。
勿論HDDは問題なく、 電源は尚のこと。
そこで、ケースを開けてみて、絶望した。
RAIDカードが「曲がっている」。

Megaraid 9271は、cache volt(この時期はバッテリーバックアップ、BBUと言っていた)用のリチウムイオン電池を、RAIDカード自体にねじ止めするスタイルだった。
https://www.picclickimg.com/d/l400/pict/192658565134_/LSI-MegaRAID-9271-8i-PCI-E-30-8-Port-6Gbps-SAS.jpg
の黒いのがリチウムイオン電池。
で、これが妊娠して巨大化し、そのままRAIDカードをひん曲げてしまっていたのだ。
電池を外して再起動すると、電池がない旨も表示されるが、そこじゃない。
何にしろ、普通に立ち上げるだけでは一切のディスクが無いことになっているのである。
一応どうもカード自体は生きており、ヒートシンクを付けなおして冷却をガンガンすればなんとかなりそうである。ただ、物理破損だけで無く、raidアレイが完全に死んでいる。これが痛い。

完全にお手上げかと思ったが、粘りに粘ってググった結果、
https://www.ask-corp.jp/faq/index.php?action=artikel&cat=53&id=118&artlang=ja
まだ手はあるらしい、が、Foreign Configurationの扱いがわからない。
https://nas-rescue.com/blog/index.php?QBlog-20160208-1
ということは、コントローラ川さえなんとかなれば、ワンチャンあるということである。
で、さらに調べて

https://yug-oc.jp/serv_blog/archives/245

まじもう愛してる。上記通りにしたわけじゃないけど、光明をもたらしてくれた。

手順的には、webbiosで、
  1. UnconfiguredBadとなっているHDDをUnconfiguredGoodにする。
  2. Scan devicesをクリックして、Foreign Configurationを読み込む
  3. Want to import?で、All configurationsのところの選択ボタンを押下して、コンフィグを選択
  4. previewボタンを押下して内容を確認、よければimportする(clearは何があっても押してはならない)
  5. exitで再起動。再起動時に別のコンフィグ読めるけどどうする?的なことを言われるが、無視する
と繋がった。
兎に角、消さなければraidを構成していたHDDに情報は残っているので、なんとかなる可能性が高いということである。
また、importボタンを押したにもかかわらず、failed importと言いやがったが、実はimportされていた、ということも書いておきたい。
バグらしい。やれやれである。

諦めない心は大事だなあ。