AWSアドバンスドコンサルティングパートナーの一員として活動する株式会社スタイルズが、AWS導入、移行、開発、セキュリティ、運用保守など、すべてのご相談に乗らせていただきます。 AWSを導入したいが何から始めたらいいかわからない 既存のベンダーが新技術に弱く、良い提案がもらえない クラウドの導入にセキュリティの不安がある AWSをとりあえず導入したが、さらに活用していきたい 社内にAWSの知見を持っている人がいない AWSならではのシステム開発を詳しく知りたい
「プロトコル解説は雲をつかむような話で実感実感がわかない」 「細かい説明もいいけど、全体との関係全体との関係がよく見えないんだよね?」 「エッセンスは一体どこ?詳細はいいからミソだけ教えて」 えっ、こんな経験がありますか? であるならば、このドリルがお手伝いします。「手ごわさライオン級のTCP/IPを、押さえて、しかって、なだめて、猫にしちゃう」。筆者は一言でいえばそんな野心を抱いています。 あるいは、解説書を読むためのガイドブックといってもいいかもしれません。「まず分かりやすさを最大限に、でも正確さも最大限に」と欲張ってみました。 TCP/IPの入門書はちょっとという方はもちろん、そうでない方もお付き合いください。 道具としてのtelnet これは、ここでもう難しいというあなたへのTCP/IPアレルギー処方せんです 「いつも最初でくじけます」。 はい、そういう人は少なくないはず。多くのプ
どうも先日(2016年9月現在)からさくらインターネット様や技術評論社様でDDoS被害が相次いでいますね。 「DDoS対策しとけ」なんてよく言われていますが、セキュリティにステータス振ってない場合は「DDoSってF5連打じゃないの?」みたいな人も結構いるんじゃないでしょうか。あとはiptablesをとりあえず入れておけば大丈夫なんじゃないの?とか。 Web系の開発者にとってのセキュリティ対策は「フレームワークをちゃんとアップデートする」に尽きるので、フレームワークの脆弱性に依存しないDDoSって意外と知らない事が多いと思います。 知っているようで意外と知らないDDoSの世界、ちょっとまとめてみました。 TL;DR スケールできる設計でDDoSに備えよう nginxは置いとけ、キャッシュは甘く見るな SYN cookiesは入れとこう 最後はカネの力でセキュリティを手に入れろ Akamaiセ
ソケットプログラミング 1. 定義 ソケット: Socket。TCP/IP アプリケーションを作成するための抽象化されたインターフェース。 2. ソケットの使用例 インターネット電話やインターネット放送を含むすべての TCP/IP アプリケーション。 3. ソケット関数 まずは sockaddr_in 構造体に適切なパラメータ設定を行い、以下のソケット関数を実行する。
サーバ管理者の多くは、自分の運用するサーバに対して、第一にサービスが停止しないこと、そして第二に不正侵入されないことを願うだろう。特にここ数年は、不正侵入の事例が多く報告されていることから、いま一度サーバのセキュリティを見直し(再点検し)たいと思っている読者も中にはいると思う。 そうした場合、OSのリプレースから行い、セキュリティを考慮した設定を行うのが望ましい。しかし実際は、顧客などにサービスを提供したり基幹サーバとして24時間フル稼働している以上、そうやすやすと止めるわけにはいかないのが現実だ。もちろんサーバの冗長化を行っていればその問題はクリアされるが、ほとんどの場合、予算などの関係ですべてのサーバがそのような構成を取ることはできないだろう。 本連載では、現行動作しているUNIXサーバを対象に、稼働サービスの停止を最小限に抑えつつ、セキュリティを向上・維持するための一連の設定やツール
FreeBSDのTCPスタックに含まれる脆弱性に関する情報が公開されました。 現在サポートされている全てのFreeBSDバージョンに影響があるようです。 The FreeBSD Project Security Advisory: TCP reassembly vulnerability TCPセグメントの並び替えを行うコードに不具合があり、カーネルをクラッシュさせることによるDoS攻撃が可能とあります。 また、非常に難易度が高いとしつつも、今回の脆弱性を突くための工夫を凝らしたTCPセグメントを駆使することで、カーネルが保持するメモリを、接続されたソケット経由で取得できてしまう可能性もあるとのことでした。 FreeBSDのセキュリティアドバイザリでは、カーネルがメモリに保持するものの例として「ログイン認証情報など」とあります。 FreeBSDは家庭用PCや各種サーバで利用するだけではなく
最近,OSのネットワークスタックに興味があって,Linuxカーネルのネットワークスタック実装の変遷について調べてみた. 変更内容の粒度は割りと適当. TCPとかFireWallとかNIC周りは興味があるのでだいたい書いてる. Wireless系は興味ないので全部削ってる. ネットワークスタック周りだけでもかなり量が多かったので,とりあえず2.6.0から2.6.20までをまとめた. Linux 2.6.x 2.6.5 (2004/04/04) http://kernelnewbies.org/Linux_2_6_5 Netpoll infrastructure Netpollが導入された. Netpollは,I/Oシステムとネットワークシステムが完全には利用できないみたいな不安定な環境でカーネルがパケットを送受信できる仕組みのこと.受信したパケットがnetpoll宛かどうかをTCP/IPのヘ
TIME_WAIT 状態の TCP コネクションが多数残る netstat コマンドで TCP コネクションの状態を確認していると、"TIME_WAIT" という状態のコネクションがたくさん確認される場合があります。 "TIME_WAIT" 状態というのは TCP コネクションにおいて、こちら側から通信をした場合に "FIN_WAIT_1" (FIN ACK 受信) から、"FIN_WAIT_2" (ACK 受信) または "CLOSING" (FIN 受信, ACK 送信)を経て、コネクションを閉じられる状態となったことを示すもののようです。 そしてこの "TIME_WAIT" から、実際にそのコネクションが閉じられて "CLOSED" となるまでの間に待ち時間があり、これによって、短時間に通信が集中すると、その分だけ通信終了間際の "TIME_WAIT" 状態のコネクションが多数、ne
ステートフルパケットフィルタを使ったサービスの公開:習うより慣れろ! iptablesテンプレート集(1)(1/6 ページ) 初心者にとって、iptablesは設定が最も困難な機能の1つである。そこで、学習の第1歩としてテンプレートを自分の環境に合わせて修正することから始めよう。(編集部) インターネットに接続したLinuxサーバにパケットフィルタを適用するのはもはや常識です。社内のセキュリティ規定にも、「Linuxサーバではiptablesを適切に設定すること」などと明記されていることも珍しくありません。ネットワークに対する知識の有無にかかわらず、Linuxでサーバを立てる際にはiptablesの設定は避けて通れません。 しかしiptablesなどのパケットフィルタツールを理解するには、ネットワークについての深い知識、しかもパケットレベルのミクロな知識が必要になります。本連載では、そのよ
connect(2) のエラー TCP において connect(2) 呼出し時に発生する可能性のあるエラーは以下の通りです。 タイムアウト RST 受信 EHOSTUNREACH また ENETUNREACH シグナル受信 その他 まず、connect(2) 時の正常な流れをしっかり覚えておいてください。 (connect(2) を呼んで) SYN を送る SYN+ACK が返ってくる (ここで connect(2) から戻る) ACK を送る タイムアウト もし仮に、SYN を送ったものの、相手側から SYN+ACK が返ってこない場合は、 (ローカルの TCP スタックが) しつこく SYN を再送します。何度 SYN を送っても SYN+ACK が返ってこない場合はあきらめてタイムアウトします。 「SYN+ACK が返ってこない」というのは、例えば以下のようなケースが考えられます。
Full-featured local proxy tool Save all captured packets (i.e., requests and responses) and show them in the history tab Filter/Search packets in the history tab (e.g. requests==/api/v1/users to show only requests whose path contains /api/v1/users ) Modify the contents of intercepted packets before forwarding them to the destination Resend (or replay) captured packets with or without manually modi
プログラマが実務で出会うのは、問題が整理されたキレイな仕事ばかりじゃない。プロダクトに本質的じゃない部分でもプログラムを書く必要に迫られる。いわゆる開発方法論では抽象化されてしまう、今ここにいるソフトウェア開発者の悩みだ。 今日は、私が仕事で書いたOCamlのコードを晒して、如何にOCamlがプログラマの仕事の道具として優れているかを主張したい。泥臭く、関数的でない、エレガントさのかけらもない、生活臭のあるコードだ。勤務先はOCamlをメイン言語として使っている。研究所とかではなく普通に受託開発を生業としている会社だ。OCamlは理論一辺倒で、マニア向けで、現実のソフトウェア開発には使えない、という誤解が万が一あるかもしれないが、全くそんなことはない。 (Haskellもそうだけど、それはまたの機会に) いかにOCamlが優れているかについての概論めいた話は、OCamlを数十人体制で10年
インターネットやイーサネットなど、TCP/IPによるネットワーク通信では、IPアドレスに次いで「ポート番号」という重要な要素があります。IPアドレスはコンピューターを特定するためのものですが、ポート番号はサービスを特定するための番号です。* 通常、サーバーでは複数のサービス(プログラム)が動いており、それはポート番号が分けてあります。ポート番号により、同じIPアドレスのコンピューターで違ったサービスを同時に利用できるようになります。 IPアドレスが住所なら、ポート番号は窓口の名前といったところでしょうか。 例えば、サーバーが「192.168.0.1」というIPアドレスで FTP、WWW、telnet の各サービスを提供していたとします。WWWを利用(ホームページを閲覧)する場合は、ポート80にhttpプロトコルで接続します。なぜなら、ウェブの利用はポート80と決まっているからで、ク
Analytics cookies are off for visitors from the UK or EEA unless they click Accept or submit a form on nginx.com. They’re on by default for everybody else. Follow the instructions here to deactivate analytics cookies. This deactivation will work even if you later click Accept or submit a form. Check this box so we and our advertising and social media partners can use cookies on nginx.com to better
技術書に対して、馴染みのなさや苦手意識を感じている人は多いのではないかと思う。 僕もそうだった。ITの事はITを駆使して、本を使わずにお金もかけずに勉強すれば良いと思っていた。 しかし、振り返ってみると結局は本を使って勉強する時間が多かった。 情報の質がインターネットと変わらなかったとしても、体系的に集約された情報や一覧性の高さに書籍の価値があることに気がつき始めたからだ。 もちろん、気になった技術やど忘れした事を手早く調べるためにはネットが有効だ。 だが、初心者が体系的に学びたい場合は、本を使うとトータル的に時間が短縮できるのではないかと思う。 というわけで、2年ほどネットワークを勉強してきた僕が今まで読んでオススメだと思った本を紹介していこうと思う。 まだ初心者の域を脱していないかもしれない自分のことは一旦棚に置いておき、なるべくわかりやすいラインナップを心がけた。 ネットワーク知識の
Haskellコミュニティでは、ネットワーク関連を担当。 4児の父であり、家庭では子供たちと、ジョギング、サッカー、スキー、釣り、クワガタ採集をして過ごす。 前回の説明では、「Initial パケット」や「Version Negotiation パケット」といった用語を未定義で使いました。今回は、こういった「パケット」や「フレーム」が、どのような構造を持っているかについて説明します。 古典的なパケット IP、UDP、およびTCPでデータをやり取りする基本単位は、すべて「ヘッダ+ペイロード」という構造を持っています。このヘッダ+ペイロードという単位は、それぞれ以下のように呼ぶのが慣習です。 IP – パケット UDP – データグラム TCP – セグメント すべてパケットと呼んでも間違いではありません。UDPの場合、IPペイロードが「UDPデータグラム(UDPヘッダ+UDPペイロード)」に
LINEの技術的負債を解消している話 ─ HTTP/2へのプロトコル変更やデータ同期の最適化での改善 サービス開始から10年近くがたったLINEでは、次の10年のため技術的な負債を解消・改善する取り組みをプロジェクトで行っています。 通信プロトコルをSPDYからHTTP/2に移行 抽象化レイヤーを設置してプロトコル移行のリスクを低減 Long PollingをPushへと切り替えて通信量を最適化 アプリの利用状況に応じて最適なデータ同期の方法を アーキテクチャの改善でアプリの信頼性や拡張性が向上 長い歴史を持つアプリには「技術的負債をどのように解消するか」という課題が常につきまといます。2011年にサービスを開始したコミュニケーションアプリ「LINE」においても同様で、多機能化や、開発・運用の長期化に伴い、いくつもの負債が発生していました。 この課題を解決するため、LINE株式会社では「『
使い道あるかわからないけれど、/dev/tcp/{hostname}/{port} で TCP 通信できる。(※ただし bash に限る?) #!/bin/bash # 使い方 # $ ./http_client.sh host path # http://host/path に GET 投げる exec 3<> /dev/tcp/$1/80 echo -e "GET $2 HTTP/1.0\n\n" >&3 cat <&3 $ ./http_client.sh qiita.com / HTTP/1.1 200 OK Server: nginx/1.0.9 Date: Wed, 22 Feb 2012 01:19:59 GMT Content-Type: text/html Content-Length: 151 Last-Modified: Tue, 01 Nov 2011 15:07:
はじめに アクセス数がすごい環境は大抵高負荷環境でもあるので対策としてApacheの設定やサーバ構成のセオリーをすぐ見つけられて実際試しても目に見えて良くなります。 アクセス数の多さで起こる問題は実際に負荷をかけてみないと表面化しません。 問題が分かったら設定やパラメータを調整して現状がましになるようにするだけです。 ですが限りあるリソースの中でTCPセッションを十分にコントロールしようとするとすぐ手詰まりです。 WEBサーバがしているやりとりの基礎が足りていないそんな気がしていたのでTCPに目を向けてみました。 行き着いた結果は 待ち受け側とリクエスト側ではボトルネックが違う リクエスト時はTCPのエフェメラルポートが上限 待ち受け時はTCPよりもファイルディスクリプタが上限 になりやすい という良く見かける設定を見直すということになりましたが、どうやってそうなっているのかが今回の成果だ
なんかスラドにあげられてしまったので、備忘録てきにちょっとまとめますかね。 きっかけは先月帰国したときに sonots がDeNAをはじめとして、Web企業では広く TCP_TIMEWAIT_LEN を変更してカーネルをリコンパイルして使っているという話を聞いたというもの。以下の様な議論を twitterで行い Togetter: Linuxカーネルの「TCP_TIMEWAIT_LEN」変更は無意味?: http://togetter.com/li/871768 以下のように、スラドに転載されてしまったわけだ。 スラド: Linuxカーネルの「TCP_TIMEWAIT_LEN」変更は無意味?: http://linux.srad.jp/story/15/09/09/0648258/ いつものように、スラド民は元のスレッドなんかまるで読んでいないので、結論だけ書く。 tcp_tw_inter
サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは本日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。
アクティブFTPとパッシブFTP [サーバの実験室 基礎] 作成 : 2002/10/12 "サーバの実験室"の検索 FTPには、データ転送に使用するポートと接続方法の違いによって、アクティブFTPとパッシブFTPに分類することができる。 アクティブFTP 昔からある方法で、WindowsのFTPコマンドなどがこれにあたる。 FTPの制御(コマンドとレスポンス)に21番ポートを使用し、FTPのデータ転送(lsコマンドの結果、ファイルのアップロード・ダウンロード)に20番ポートを使用する。
こんにちは。NASAのプロジェクトで月面勤務のジャバオペレータのジャバ(仮名)といいます。今日は、ついにやってきた宇宙大航海時代のためのコンテンツ・デリバリー・ネットワーク (CDN)の選び方を、原理を含めて説明していきます。 CDNと宇宙大航海時代 CDNは、リソースを配布する際に、宇宙で地理的に分散して配置されたエッジと呼ばれるサーバーにリソースをキャッシュすることで、ユーザのそばのエッジからコンテンツを配信できるようになり、ユーザの待ち時間が短くなるシステムです。宇宙大航海時代より前では、地球の大陸やいくつかの島にサーバを配置していたにすぎなかったようです。地球は比較的小さい惑星ですので、往復遅延時間(RTT)は一番遠いところでも500 msを越えないくらいです。この状況では、CDNが存在しない場合でも、確かにちょっと待たされるものの、リソースが使えないといった状況にはなりませんでし
TCP各バージョンの輻輳制御の比較 工学部第二部 情報通信工学科 4年 宮川 湧太郎 目次 1.はじめに 1.1 TCPの歴史 1.2 広帯域ネットワークの問題点 2.TCPの種類 2.1 TCPの輻輳制御 2.2 TCP Tahoe 2.3 TCP Reno 2.4 TCP New Reno 2.5 TCP Vegas 2.6 CTCP 3.実験計画 3.1 NS2 3.2 実験シナリオ 3.3 実験プログラム 4.実験結果 4.1 TCP Tahoe 4.2 TCP Reno 4.3 TCP New Reno 4.4 TCP Vegas 5.まとめ 6.参考文献 1. はじめに 近年のインターネットを含むコンピュータネットワークでは、高速、広帯域な回線を必要とするコンテンツの普及などによって、ネットワーク帯域の公平かつ効率的な利用が求められるようになってきた。その中で主に用いられてい
TCPソケット サーバータイプとクライアントタイプの両方のアプリケーションを作らないといけないなら、サーバータイプから作るべきだろう。 (クライアントタイプだけ先に作っても動かせないから。まぁサーバータイプだけ動かしても、待ってるだけであまり意味無いけど(苦笑)) でも仕組みはクライアントタイプの方が簡単。 TCPを使う場合は、通信の最初にコネクションの確立を行う必要がある。 サーバーでlisten・accept、クライアントでconnectが成功すればコネクションが確立したことになる。 どのポート番号を使うかについては、サーバー側はアプリケーションの作成者が決める必要がある。[/2007-06-16] クライアント側のポート番号は、ソケットライブラリがそのマシンで使っていない番号を自動的に割り振ってくれるので、気にしなくてよい。 IANAの基準では、1~1023は「よく知られたポート(w
今回は「NETBIOS名」と「ホスト名」について解説します。「NETBIOS名」と「ホスト名」が混ざってしまいよく理解できていない人はかなり多いです。いざという時のトラブルシュートで差が出ますのでしっかり理解しましょう。 Windowsネットワークの歴史 NETBEUIの時代 「NETBOIS名」のことをよく理解するためにはWindowsネットワークの歴史を知らなくてはいけません。 まず、今のTCP/IP全盛の時代からすると信じられないかもしれませんが、初めてWindowsにネットワーク機能が標準搭載されたWindows95では規定のプロトコルはTCP/IPでは無くてNETBEUIというものでした。そしてNETBEUIはNETBIOSというAPIを利用しています。 NETBEUIはTCP/IPとは全く異なる考え方のプロトコルです。IPアドレスなんてありません。ルーティングもしません。名前だ
Recent posts: 22 Jul 2024 » No More Blue Fridays 24 Mar 2024 » Linux Crisis Tools 17 Mar 2024 » The Return of the Frame Pointers 10 Mar 2024 » eBPF Documentary 28 Apr 2023 » eBPF Observability Tools Are Not Security Tools 01 Mar 2023 » USENIX SREcon APAC 2022: Computing Performance: What's on the Horizon 17 Feb 2023 » USENIX SREcon APAC 2023: CFP 02 May 2022 » Brendan@Intel.com 15 Apr 2022 » Netfl
概要 ↓ memcachedのtcp_backlogのデフォルト値は1024で、stats settingsにも1024と表示されているのですが、 stats settings ... STAT tcp_backlog 1024 ... END↓ net.core.somaxconnがデフォルト値のままだと128に切り詰められてしまい、 # cat /proc/sys/net/core/somaxconn 128負荷が高いサーバーでは接続要求を取りこぼしてしまうことがあるそうです。 このnet.core.somaxconn、MemcacheやMySQLなど、高負荷時に多くの接続要求を受け付けるサーバーではチューニングが必要なカーネルパラメータのようです。いったいどういう値なのか、調べてみました。 net.core.somaxconnとは TCPソケットはlisten()関数の第二引数 ba
“Real” Javascript Sockets! - ThinkPHP /dev/blog I could not find a single way to have real sockets in Javascript. Google told me that there probably is no solution except embeding a java applet or an active-x component! So I thought why not using a little .swf file as a bridge from javascript to the socket functions of flash! JavaScriptのみではソケット通信は出来ませんが、Flashの機能をJavaScriptから使ってソケット通信を行おうという試み。 Aja
3. 自己紹介 - まぁまぁ MySQL でご飯食べてます - 一時期は Resource Monitoring や KVS にも 力入れてました - ネットワーク的には素人です - Linuxとハードウェアは嗜む程度 - disk I/O にはむかしから興味あります - その他 slideshare はこちら - http://www.slideshare.net/takanorisejima/ 4. 本日のお題 - kernel 新しくしたりすると、TCP的に意識したほ うが良い変化が見つかるので - 今日は、Webアプリケーションサーバの観点か ら、 connect(2) する際に気になる TIME_WAIT について、書いてみようかと思います - 有識者からのマサカリを、強く歓迎いたします 5. 最初に参考資料 - この二つの記事を読んでいただけば、それで概 ね良いと思うんですが
TL;DR AWSのマネージドサービスを活用して低インタラクション型のハニーポット環境を作った コストも月々約$15で運用可能 コマンド3回ぐらいで誰でもデプロイできるようになっているので興味があれば使ってみてくれよな 背景 AWSに置く低インタラクション型ハニーポット(synに対してsynackだけ返して後は送られてくる通信を監視するやつ)、今ならシャキッとスパッと実装できるんだろうなあああと過去のクソ実装を思い出して悶絶してる— Masayoshi MIZUTANI (@m_mizutani) 2019年2月1日 という感じで昔クラウド上で運用していたハニーポットのことをふと思い出したのですが、仕事で多少AWSのサービスを理解した今だったらもうちょっとまともに実装できそうだよなぁ、実装するならインスタンスで完結するんじゃなくてクラウドのマネージドサービスちゃんと使って消耗しない作りにし
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く