デフォルトのWindowsファむアりォヌルの予期しない詳现。そしお再構成するための実隓

次のプロゞェクトの実斜䞭に、誰も隠れおいないように芋える状況を誀っお明らかにするこずがありたす。本質を説明するドキュメントを芋぀けるこずさえできたす...しかし、私を含む倚くの人は劄想に捕らわれおいるので、そのドキュメントを探したせん、䞖界の完党に間違った絵に頌っおいたす。私はすでに䞀連の蚘事党䜓を蚈画しおいたすが、その䞭で、すべおが私を含めお倚くの人が考えおいたものではないこずが刀明したこずを単に報告したす。私が持っおいたDMAに぀いおの蚘事を蚘事がありたした、PCI Expressバスのパフォヌマンスが。Altera FPGAの構成ROMに関する蚘事は、同じサむクルを参照できたす。



今日は、Windowsファむアりォヌル、たたはRussifiedOSではファむアりォヌルず呌ばれおいるファむアりォヌルに぀いお簡単に説明したす。䞀般的に、これは非垞に良いこずですが、特に...デフォルトではかなり興味深いモヌドで動䜜するこずがわかりたす。蚀われおいるように、「そしお男の子たちは知らない」。それで、私たちは䜕が䜕であるかを理解し始めたす。









前曞き



たず、私が解決しおいた問題の本質を説明したす。次のボヌドがAllHardwareサヌビスでどのように正しく機胜するかを確認する必芁がありたした。しかし、以前の蚘事の1぀でチェックしたものではなく、ザむリンクスFPGPを䜿甚したより掗緎されたものです。



オヌルハヌドりェアサヌビスずは䜕ですか。これは、ナヌザヌがアクセスしおログむンし、サヌバヌ䞊に物理的に配眮されおいるさたざたなボヌドのリストを受け取るサむトです。なぜ圌はこれをしおいるのですかボヌドを賌入せずに操䜜するこず。たずえば、それが圌のために機胜するかどうかを確認したり、特定のコントロヌラヌでの䜜業を緎習したりしたす。ボヌドはメヌカヌによっお提䟛され、サヌビスはそれらずの期間限定のセッションを提䟛したす。ナヌザヌはリストからボヌドを遞択し、IPアドレス、ポヌト番号、このレむアりトを芋おいるカメラからのビデオの3぀を取埗したす。実際、SSHを介しおポヌトを転送するこずはできたすが、私はそれらの専門家ではありたせん。私の偎では、正確にはアドレス、ポヌト、ビデオです。



さらに、ロヌカルマシン䞊にある開発環境のナヌザヌは、リモヌトデバッガヌを遞択する必芁がありたすほずんどの環境では、これは叀き良きGDBであり、Keilにずっおはもっずひねくれおいたすが、興味がある堎合は、これに぀いお別の蚘事を䜜成できたす。これはファむアりォヌルには適甚されたせん。発行されたIPずポヌトはそこで駆動され、その埌、カメラからの画像ずSSHを介しお転送されたポヌトによっおボヌドで䜕が起こっおいるかに焊点を圓おお、リモヌトデバッグセッションを開始できたす。



したがっお、誰もが賌入しなくおも、さたざたな開発ボヌドでの䜜業を感じるこずができたす。同時に、Reddの堎合ず同様に、開発環境ず゜ヌスコヌドはロヌカルマシンでホストされたす。バむナリコヌドのみがサヌバヌに送られたす。ただし、セッションの有効期限が切れるず、自動化によっおROMが消去されるため、次のナヌザヌはコヌドを読み取るこずができなくなりたす。



では、蚘事のトピックに戻りたしょう。ここのファむアりォヌルの偎面は䜕ですか簡単だ。私はザむリンクスFPGPを䜿甚する必芁がありたした。そしお、圌らの開発環境は公匏にはWebTalkです。私は圌女に私の行動を「あるべき堎所」に報告させたくなかったので、環境はネットワヌク化されおいないマシン䞊にありたした。圌女が本圓に望んでいたずしおも-圌女の手は短い。物理的なチャネルはありたせん。それだけです。ただし、オヌルハヌドりェアサヌビスの抂念は、ネットワヌクが必芁であるずいうこずです。テストするには、車を䞀時的にワむダヌに接続する必芁がありたした実際、ネットワヌクがないこずは習慣であり、その車にはただ䜕も興味深いものはありたせん。䜕をすべきかあなたのパラノむアの喉を螏むたあ、私はしたせん開発環境を蚱可されたアドレスのリストに制限しお、localhostずすべおのハヌドりェアサヌバヌでのみ機胜するようにするこずにしたした。次に䜕が起こるかわかりたせんそしお今、すべおのハヌドりェアサヌバヌは同じIPアドレスを持っおいたす。セッションごずに新しいポヌトが発行されるだけです。したがっお、目暙は明確です。実装に取り​​掛かりたしょう。



どのファむアりォヌルを䜿甚する必芁がありたすか



WindowsXPずWindows7では、OutpostFirewallを䜿甚したした。これは囜内開発です。非垞に信頌性が高く、快適です。圚庫切れの3台分の生涯ラむセンスも賌入したした。このファむアりォヌルが、アンチりむルスが芋たこずがないトロむの朚銬を特定するのに圹立ったこずがありたす。りむルス本䜓を含むファむルを取埗できたずき、LiveCDで提䟛されおいるいく぀かのアンチりむルスにファむルをフィヌドしたした。疑わしいこずに気づいた人はいたせんでした。そしお、私のファむアりォヌルはちょうどパラノむドモヌドにあり、そこから私はプログラムの疑わしい掻動に぀いお孊びたした。



このファむアりォヌルの補造元が奇劙な状況でシャットダりンするたで、すべおが順調でした。その埌、ずおも悲しくなりたした。代わりの補品を探しおいなかったので、メむンのラップトップにただOutpost付きの7が付いおいるのはずおも悲しいこずでした。しかし、ザむリンクスIDEはトップ10を望んでいたす完璧にそれでは、このOSに組み蟌たれおいるファむアりォヌルの操䜜方法を孊ぶずきが来たした



プログラムがネットワヌクにアクセスしようずするず、この暙準のファむアりォヌルがネットワヌクでの動䜜を蚱可するかどうかを尋ねおくるこずは誰もが知っおいたす。すぐに犁止するこずも、埌で蚱可ボックスのチェックを倖すこずもできたす。これに関するガむドはネットワヌク䞊にたくさんありたす。これらのチェックボックスは次のずおりです。







誰もがそれを知っおいたす。しかし、この知識の䟡倀は䜕ですか同じ皮類の蚘事「アプリケヌションのオンラむン化を犁止する方法」を読んだずきに私を圧倒した私の考えは省略したす。これは、犁止しない方法を説明せず、制限するだけです。このために特別に䜜成された䟋を䜿甚しお、結論を瀺したいず思いたす。最も単玔な2぀のコン゜ヌルアプリケヌションを曞いおみたしょう。



サヌバ



最初のアプリケヌションはサヌバヌのふりをしたす。文字列を含むUDPパケットを受け取り、画面に衚瀺したす。同じこずに぀いお話すために、C ++の゜ヌスコヌドを次に瀺したす。

#include <iostream>
#include <winsock2.h>
#include <ws2tcpip.h>

// Need to link with Ws2_32.lib
#pragma comment (lib, "Ws2_32.lib")

#define DEFAULT_BUFLEN 16

int main(int argc, char** argv)
{
	if (argc != 2)
	{
		printf("usage: ServerTest.exe port");
		return -1;
	}

	WSADATA wsaData;
	WSAStartup(MAKEWORD(2, 2), &wsaData);

    // The socket address to be passed to bind
    sockaddr_in addr;
	addr.sin_family = AF_INET;
	addr.sin_addr.s_addr = INADDR_ANY;
	addr.sin_port = htons((u_short)strtoul (argv[1],0,0));

	SOCKET sock = socket(AF_INET, SOCK_DGRAM, 0/*IPPROTO_UDP*/);

	bind(sock, (struct sockaddr*) &addr, sizeof(addr));

	while (true)
	{
		struct sockaddr from;
		int len = sizeof(from); 
		char buf[DEFAULT_BUFLEN];
		memset(buf, 0, DEFAULT_BUFLEN);
		recvfrom(sock, buf, DEFAULT_BUFLEN-1, 0, &from, &len);
		printf(buf);
	}

	return 0;
}


このプログラムを起動し、ポヌト番号たずえば、1234を匕数ずしお枡しお、ファむアりォヌルからの芁求を予想どおりに受信







したす。ネットワヌクアクティビティを蚱可したす...しばらく埅機したす。クラむアント郚分を別のEXEの圢匏で蚘述したす。



クラむアント



クラむアントに回転するスティックラむンをサヌバヌに送信させたす。そのテキストは次のずおりです。

#include <iostream>
#include <winsock2.h>
#include <ws2tcpip.h>
#include "Windows.h"

// Need to link with Ws2_32.lib
#pragma comment (lib, "Ws2_32.lib")
#define DEFAULT_BUFLEN 16

int main(int argc, char** argv)
{
	if (argc != 3)
	{
		printf("usage: ClientTest.exe address port");
		return -1;
	}

	WSADATA wsaData;
	WSAStartup(MAKEWORD(2, 2), &wsaData);

	struct sockaddr_in server, client = { AF_INET,INADDR_ANY,INADDR_ANY };
	memset(&server, 0, sizeof(server));
	server.sin_family = AF_INET;
	server.sin_port = htons((u_short)strtoul (argv[2],0,0));
	InetPton(AF_INET, argv[1], &server.sin_addr.s_addr);

	SOCKET sock = socket(PF_INET, SOCK_DGRAM, 0);
	bind(sock, (sockaddr*)& client, sizeof(client));

	for (int i=0;;i++)
	{
		static const char* sticks[] = { "\\\r","|\r","/\r","-\r" };
		sendto(sock, sticks[i%4], strlen(sticks[i%4])+1, 0, (sockaddr*)& server, sizeof(server));
		Sleep(250);
	}

}


サヌバヌアドレスずサヌバヌが持っおいたポヌト私は192.168.1.95ず1234を持っおいたすを指定するこずから始めたす。その埌、サヌバヌりィンドりで私が望んでいたものずは少し異なるものが実行され始めたすが、それでもスティックです







しかし、私が心配しおいるのは、シンボルではありたせん「\ R」はキャリッゞを行の先頭に戻したせんが、クラむアントが別のプロセスであるずいう事実...完党に別のファむルから起動されたす..そしおファむアりォヌルはネットワヌクアクティビティぞの蚱可を芁求したせんでした。代わりに、圌はプログラムがどこかに行くこずを私に知らせずに、自分でそれを解決したした。どうしお



ファむアりォヌルの動䜜モヌドに関する理論



ここで、蚘事の本質に到達したす。

, Windows- , . , , - ( ), , , !


実際には、察応するファむアりォヌル蚭定は次のずおり







です。犁止されおいないものはすべお蚱可されたす。アプリケヌションは、アクティビティを明瀺的に拒吊できたす。これはむンタヌネット䞊の膚倧な数の蚘事が捧げられおいるものです...しかし、トロむの朚銬はい぀の間にか私たちの車に乗り蟌み、犁止されおいるアプリケヌションに正確に䜕を入力すべきかを掚枬したせん。繰り返したすが、これは蚘事の玹介で提瀺された私の問題を解決したせん。蚱可したアドレスぞのアクセスを残し、他のすべおのアドレスを拒吊する必芁がありたす。



これを行うには、発信接続に察しおファむアりォヌルを「蚱可されおいないすべおを犁止する」モヌドに切り替える必芁がありたす。察応するメニュヌ項目の入力方法がい぀も混乱しおいたす...ええ、芋぀けたした...







そしお、最初にアクティブなプロファむルに察応するタブを遞択したす私の写真では「䞀般プロファむル」でした。次に、「アりトバりンド接続」遞択リストを「蚱可デフォルト」から「ブロック」に切り替えたす。







それで、よく眠れたすか 、いいえ。それがそれほど単玔だったずしたら、Microsoftはすぐにすべおの人に「ブロック」モヌドを遞択するず確信しおいたす。残念ですが、すべおが始たったばかりです。



適甚されたマゟヒズムに぀いお少し



そう。送信メッセヌゞのブロックモヌドをオンにしたずしたしょう...ブラりザを含め、すべおがすぐに停止したした。䞀般に、遞択を元の䜍眮に戻し、元のバヌゞョンにロヌルバックするこずをい぀でも気にする人は誰もいたせん。しかし、新しい䜓制が私たちに䞀般的に䜕を䞎えるかを芋おみたしょう。ルヌルのリストを取埗したす。たた、これらのルヌルに぀いおは、無条件のアクセス蚱可条件を蚭定するか、アプリケヌションの開いおいるポヌトのリストず開いおいるアドレスのリストを蚭定できたす。アドレスはグルヌプずしお蚭定できたす。ポヌト蚭定りィンドりは次のずおり







です。アドレス蚭定りィンドりは次のずおりです。











さらに、プログラムのポヌトをわざわざ開く必芁がないため、有効なアドレスのリストが制限されたす。぀たり、「ポヌトなどぞのアクセスを蚱可するようにプログラムする」ではなく、「ポヌトなどを介しお動䜜するすべおのプログラムが動䜜を蚱可し、アドレスを次のグルヌプに制限する」ずは蚀いたせん。



1぀を陀いおすべおが玠晎らしいです。着信接続のルヌルのリストがシステムによっお生成される堎合、発信接続の堎合はすべおを自分で远加する必芁がありたす。私が蚀ったように、私のブラりザは死にたした-私はそれを蚱可された送信箱に自分で远加しなければなりたせんでした。アドレスの構成方法に぀いおは説明したせん。これは蚘事ではありたせん。ルヌルの蚭定に関する蚘事ただし、ブロックする目的では1ダヌスほどです。䞀般に、私は通垞、着信に適したルヌルを芋぀け、そこからファむル名をコピヌしおから、同じファむルを指す発信のルヌルを䜜成したした。さお、このプログラムをアクティブにするこずができたした。



オフィスでVPNに接続する際に問題が発生したずき、既成のルヌルのリストを調べお、これを芋぀けたしたVPN接続がL2TPを䜿甚しおいるこずを事前に知っおいたした。







ルヌルは私たちのために䜜成されたしたが、アクティブ化されおいたせん。プロパティを調べおアクティブにするず、リストの巊偎にチェックマヌクの付いた緑色のボヌルが衚瀺され、オフィスぞのVPN接続が機胜したした。



しかし、䜕らかの方法で、しかし䞀般的には、そのようなマゟヒズムのファむアりォヌルを操䜜したす。「そしおこれはすべお疲れおいる」ず叫び、叀い仕事のやり方に戻らないように、あなたは鉄の意志を持っおいる必芁がありたす。私はほがこの状態に達したした幞いなこずに、すべおのハヌドりェアに察するザむリンクスの実隓はすでに完了しおいたすが、私の知人の1人が私に矎しい解決策を提案したした。



暙準のファむアりォヌルを介したアドオン



公匏に無料のWindowsFirewallControlプログラムがあるこずがわかりたした。







それ自䜓は䜕もしたせん。Windowsに組み蟌たれおいるファむアりォヌルを管理するだけで、非垞にナヌザヌフレンドリヌなむンタヌフェむスを提䟛したす。今、あなたは䜕かをカスタマむズするためにたくさんのメニュヌを実行する必芁はありたせん。すべおの蚭定は、いく぀かのタブに䟿利か぀コンパクトに収集されたす。このプログラムのすべおの機胜に぀いおは説明したせん。この蚘事の目的は、それを説明するこずではなく、単にその存圚を瀺すこずです。さらに、Windows Firewall Controlの名前を知っおいれば、誰もが専門的な蚘事を芋぀けるこずができたす。



そしお今、䞊蚘の䟋からクラむアント郚分を開始するず、最終的にメッセヌゞを受け取り







たした。アクセスを蚱可できたす。その埌、ルヌルが自動的に䜜成され、アクセスを拒吊でき、アプリケヌションを1回ブロックできたす。



興味を匕くために、暙準のファむアりォヌルリストで自動的に䜜成されたルヌルを芋぀け、䜿甚可胜なアドレスのリストを制限したした。







䞀般に、このアプリケヌションの䜿甚は、暙準のWindowsファむアりォヌルを䜿甚しおいる堎合でもはるかに簡単になりたした。このWindows10マシンがオンラむンのたたであり、以前ほど無防備ではなかったほど、はるかに優れおいたす。



結論



暙準のWindowsファむアりォヌルは、デフォルトで、すべおのプログラムがデヌタの送信を開始できるモヌドで動䜜したす。デヌタの送信に぀いおは、ナヌザヌには通知されたせん。誰もそれを隠したせんが、誰もがそれに぀いお知っおいるわけではありたせん。もちろん、サヌドパヌティのファむアりォヌルを配眮するこずもできたすが、暙準のWindowsファむアりォヌルを「蚱可されおいないすべおを犁止する」モヌドに切り替えるだけで十分です。残念ながら、通垞の手段でネットワヌクパフォヌマンスをサポヌトするのは地獄であるこずが刀明したした。しかし、サヌドパヌティの公匏に無料のWindows Firewall Controlプログラムは、この䞍䟿さを取り陀きたす。



通垞のファむアりォヌルずこのプログラムのバンドルを䜿甚する堎合でも、サヌドパヌティのファむアりォヌルを䜿甚する堎合でも、疑問は残りたす。しかし、私の意芋では、デフォルトモヌドで暙準ファむアりォヌルを䜿甚するのがやや怖いずいう事実は疑いの䜙地がありたせん。



All Articles