提出用の印刷サーバーのハッキング。その時は何ですか?さて、私はホームオートメーションをたくさん持っています、そして私はそれが大好きです!しかし、友人や家族に見せるたびに、2つの回答のいずれかを取得する傾向があります。 1つ目は、それが単なる仕掛けであり、彼らはそのようなものを決して望んでいないということです。 2つ目は、それは素晴らしいことですが、彼らが似たようなものをセットアップするには複雑すぎるということです。
したがって、これは、誰でも使用できる、実際には誰でも作ることができる非常に簡単なホームオートメーションデバイスでの私の試みです。私は実際に、これらを大量に製造すること(よく似たもの)を製造し、1年に約1テンナーとしてロット全体を販売することを真剣に考えています。 (これが誰にとっても興味があるかどうか教えてください)。とにかく、これは大衆のための安価なホームオートメーションの私の試みです、私はあなたがそれを好きになることを願っています…
デザイン – そうです、だから私は安く、信頼性が高く、簡単に手に入れるものが必要です。また、簡単なスイッチによってトリガーできるもの、およびそのスイッチは次のいずれかである可能性があります。
ソケット、ライト、またはその他のアプライアンスに接続し、それを使用してMontorを使用します。
ソーラーパネルまたはLDRに取り付けて、光レベルを監視します。
プローブのペアを接続して、水(植物、雨、漏れなど)を検出します。
セキュリティのためにPIRまたはREEDスイッチに接続し、
防火のために煙警報器に接続し、
圧力マットなどに接続します…。
ほとんどの人は、ノイズ、熱、エネルギーの消費のために、1日中PCやサーバーを実行したくありません。簡単な小さな1つのボードコンピューターは、それぞれ50ドル(Xport、Arduino、Picotuxなど)から購入できるようになりましたが、これでさえ私が望むものにはやり過ぎのようです…
管理されたスイッチ、ルーター、ファイアウォール、イーサネットポートとある種のWebインターフェイスを備えたあらゆるものが私が望んでいたものでしたが、安くなければなりませんでした…それから私は印刷サーバーのアイデアを思いつきました…印刷サーバーは理想的であり、それらは非常に少ない電気を使用し、常にオンになっているために開発され、pingに応答することができ、まだ組み込みのウェブサーバーも持っています。私は少しグーグルでグーグルをして、eBayでテナーと同じくらい少しずつ見ました。ああ、彼らも小さい!このプロジェクトには3つのアイデアがありました。
1つ目は、着信イーサネットケーブルテレビの送信ペアを破損または短縮することができることでした。確かにこれらのショートまたは破損により、デバイスはpingまたはHTTP要求のいずれかに応答できません。
うまくいくと思いますが、それは少し野barなように思えたので、もっとうまくやれると確信しています。
2つ目は、デバイスへのパワーを破ることでした
これは、デバイスにしか電力を供給していないため、省エネの視点からの可能性がありました。もちろん、電源が切れたときは、ウェブサイトやPingリクエストへの応答が表示されません。私はこのアイデアがとても気に入っていました。私を先送りにしたのは、電源が切れたときに、デバイスがオフになっているか、別の理由でネットワークから切り離されているかを知ることが不可能だったということだけでした。また、デバイスがオフの間に設定(ネットワークなど)を維持する期間は不確かでした。
私が本当に望んでいたのは、ユニットから反応を得て、それがある状態または別の状態のいずれかであることを確認する方法でした。それが私の3番目のアイデアが登場するところです。
3番目のアイデアは、プリンターが実際に添付されている印刷サーバーをだましていることでした。
そして、プリンターがオンラインまたはオフラインであるように見えるようにするためにそれを持っています。
私は少し研究を行いましたが、コネクタのピン13がこの目的に使用されているようです。ピンを高く持ち(つまり、5ボルトを適用します)、サーバーはプリンターがon_lineであると考え、ピンを低くし(つまり電圧を削除します)、サーバーはプリンターがOFF_LINEであると考えます。
私がしなければならないのは、5ボルトを適用して取り外すことだけで、5つのボルトをどこかに見つけてスイッチを通してルーティングできます。スイッチを閉じて、プリンターがon_lineであるように見え、スイッチを開き、プリンターがOff_lineに表示されます。私が言うように、このステータスはWebインターフェイスに反映されているため、簡単なスクリプトはこのページを投票してプリンターのステータスを解析し、この情報を使用して有用なものに使用できるはずです。
構造 – 上記のように、私はオンラインで約25ポンドで購入したedimax PS-1206p Parallel Print Serverを使用しました。実際には22 Quidのようでしたが、郵便と梱包の隆起は少し上がりました。それらはとても安いので、私はこれらのほんの一握りを購入することになりました。 Edimaxのことを聞いたことがないので、製品は良いことも悪いこともありますが、HTTPリクエストに応答する限り、私は気にしません。彼らが現れたとき、私は嬉しく驚いていました、彼らはきれいに箱入りで、内容も大丈夫に見えました:
確かなことの1つは、このデバイスがプリンターの背面に接続されることはありません。私はすぐにそれをはるかに面白いものに切り刻みました。詳細はこちら:edimax PS-1206p
わかりました、それで、これらのいずれかから蓋をしましょう…。私にとっては特に楽しいです、それはとても間違っているようです!!底にフィリップスのヘッドネジがいくつかあり、これらが取り外されると、ケースは引き離されますが、2つの半分が互いにクリップをクリップするにつれて、側面を少し絞る必要があります。
私はこのユニットの内部に驚きました、それは非常によくまとめられました。主はすべてのビットが何のためにあるのかを知っているだけです。そこにはプロセッサ、記憶、少しのI/Oなどがわからない他のものがあると思います。
これで、プリントサーバーに大きな36pin Centronicsソケットを保持し、一致するプラグをつかんで接続するだけですが、これらは非常にかさばっており、特に2つの2つに接続する必要があることを考えると、少し上にあるようです。これらの36ピン。私はソケットを切ることを選びました…いいえ、私はxでそれをしませんでした、それは現時点では少し荒いように見えます:しかし:
次に、ボードから個々のピンを脱着し、少量の金属板を作り、欠落しているソケットから左の穴を遮断しました。私はその中にいくつかの穴を開けて、ネジ端子のペアを接続しました。 2部のエポキシといくつかのHeatshrinkとあなたはこれを持っています…
かなりきちんとしたえ?!それが機能するプロトタイプであり、少し運が良ければ、これらの2つのネジ端子を橋渡しするとon_lineステータスが返され、それらを開いたままにしておくとoff_lineが得られます。テストする時が来ました。注:上の写真は、ピン35と36への接続を示しています。これは間違っています。その後のテストでは、実際にピン13と19が必要であることが示されました。
私は消費電力を測定することを選びましたが、私が見つけたものに驚きましたが、それは6ワットしか使用していませんが、それはまったくありませんか? (kWhあたり10pで、実行するのに年間約5クイムかかります)
上で言ったように、私はHTTPリクエストでサーバーを投票し、プリンターのステータスを収集しますが、それがpingをpingすることでそこにあるかどうかを確認したい場合は、pingを使用して次のようなものを使用できます。
日にち
n = 1
while [$ n -lt 1000]
行う
ping -n 1 server_ip
エコー$ n
n = n+1とします
終わり
日にち
このデバイスは、52秒で簡単に1000ピンを送信(および受信)できることを示しています。したがって、それをpingすることは実行可能なオプションであり、かなり迅速な対応を与える必要があります。もちろん、Pingを使用するだけの場合は、電源接続またはネットワーク接続を破ってユニットをオフにする必要があります(プリンターのステータスの影響はありません)。 Pingsはインターネットではうまく機能しません。多くの人とルーターは境界でICMPリクエストを無効にしますが、このデバイスの利点は、可用性を確認するためにポーリングできるWebインターフェイスもあることです。これはインターネット経由で簡単に実行できます。また、短いスクリプトでは、1秒あたり約1秒のリクエストを使用できることがわかります。
#!/usr/bin/bash
user = username
パスワード=パスワード
url = server_url
wget –quiet –http-user = $ user –http-password = $ password \
–Proxy = $ Proxy $ url
grep off_line printer.htm> /dev /null
[“$?” ==「0」]
その後、「オフライン」をエコー
それ以外の場合は「オンライン」エコー
fi
RM Printer.htm
プリンターステータスに基づいて値を返します。予想されるように、船内のWebサーバーはかなり遅いことに注意してくださいが、1秒以内に反応が得られるため、5〜10秒ごとに投票することは耐えられると思います。 Echoコマンドをメールまたは追加のWGETコマンドに置き換えると、メールまたはURLを取得できます(Twitterを使用してSMSなどを使用してください。)
わかりました、Twitterステータスを更新する方法の例を以下に示します。
wget –keep-session-cookies –http-user = username \
–http-password = password –post-data = message \
(ユーザー名、パスワード、メッセージを置き換えてください。
またはさらに良いことに、何かが起こったときにツイートを送る方法は次のとおりです。
wget –keep-session-cookies –http-user = user \
–http-password = password –post-data = message \
注意してください、あなたはかなりクールなメッセージをurlエンコードする必要がありますよね? Twitter APIの詳細については、こちらをご覧ください。 – Twitter API
ネットからこれを見るには、印刷サーバーにNATを使用する必要があります。Ciscoルーターを実行しているので、次のことが機能しました。
IP NAT内部ソースStatic TCP拡張可能
(ポート番号を50,000秒の高さに保管すると、スキャンして調査する人が少なくなります)。 Linksysルーターがある場合、ガイドラインは異なりますが、このようなことはそれを行うべきです。
上記のどちらも持っていないなら、あなたはあなた自身にいます…頑張ってください!
ソフトウェア – わかりました、上記の例をいくつか挙げました。以下は、これらの1つを監視する作業バッシュシェルスクリプトで、Twitterは状態が変更されたときにSMSを使用します。それは非常に簡単な例ですが、あなたを始めさせるべきです。
#!/bin/bash
##Webパラメーターを取得します
user =“ admin”
パスワード=” 1234″
url =” http://ip_address/printer.htm”
## Twitterパラメーター
t_user = user
t_passwd =パスワード
##その他のパラメーター
status =” closht”
本当です
行う
old_status = $ status
wget –quiet –http-user = $ user –http-passwd = $ password $ url
grep off_line printer.htm> /dev /null
[“$?” ==「0」]
次にstatus =” open”
else status =” closht”
fi
RM Printer.htm
if [$ status!= $ old_status]
その後、wget –quiet –http-user = $ t_user \
–http-passwd = $ t_passwd –keep-session-cookies \
–post-data =” user = twitter_username&text = message” \
fi
睡眠1
終わり
または、傑出したFreeNatsのような監視ソフトウェアを使用して、何かが起こったときに警告することもできます。
結論 – まあ、私がやったことを喜んでいることを願っています、あなたはそれがホームオートメーションであることを認めなければなりません
安価で、とても簡単です。 乾杯 – ダン
便利なリンク
CPAN – すべてのものがperl
Perl – もっと多くのことがperl
WGET – WGETアプリケーション
edimax – 印刷サーバーのプロバイダーその他 /その他
Twitter – SMSを備えたソーシャルネットワーキングサイト
この短い記事は、yourmissus.comのDan McGrathの親切な同意によってオリジナルから再現されました
もっと欲しい? – Facebookで私たちのようにTwitterでフォローするか、RSSフィードを購読してください。 これらのニュース記事を電子メールで、毎日直接受信トレイに配信することもできます
これを共有:
フェイスブック
ツイッター
Reddit
LinkedIn
Pinterest
Eメール
もっと
whatsapp
印刷
Skype
タンブラー
電報
ポケット