ドイツの1Cベースをどのように隠したか

画像の代替テキスト


管理者が(どこに行っても)データについて心配する場合、暗号化を検討するか、ディスクの酸を購入するか、海外のデータセンターを検索します。 サーバーを国外に移動することを選択した場合、他のオフィスで使用することにより、多くの明らかな問題が発生します。 この記事では、1Cをヨーロッパのデータセンターに転送するシナリオと、「ホーミング」IPSecのセットアップについて説明します。


結局のところ、悪魔は詳細にあります。


ある組織では、そのサービスの一部をドイツの専用サーバーに移行する機会がありました。 なぜ専用サーバーがドイツにあるのかは重要ではないので、当然のことと考えます。 それは平凡なVPNとサービスへのリモートアクセスのように思えます-何がうまくいかないのでしょうか?


患者の検査


同社のユーザーのほとんどは、ターミナルサーバーファームでシンクライアントを使用しており、境界は、数百の隆起したIPsecトンネルを備えたD-Link DFL-800ファイアウォールルーターによって保護されています。 同じルーターがWANの予約を担当します。


転送には、いくつかの1Cデータベースが選択されましたが、その構成は、他のデータベースとネットワークリソースを使用する多くの交換と処理によって複雑になります。 これはすべて誰によっても知られていないため、アドバイスを求めることができなかったと書かれています。 ユーザーはActive Directoryを使用して1Cで承認されますが、これは変更したくないでしょう。


このため、ドイツで別のターミナルサーバーを作成することはお勧めできません。RDP(シンクライアント)内でのRDPの作業には多くの課題が残され、リダイレクトされたプリンターでの平凡な印刷はクエストになります。 Citrix XenAppに基づかないアプリケーションの仮想化が適切な選択肢になりますが、専用の予算サーバーの長期リース後、それほど多くはありませんでした。


画像の代替テキスト


DBMSとインフラストラクチャの変更をゼロにするには、数千キロメートル離れたサーバーに透過的なVPNを作成する必要がありました。 基礎は、Windowsベースの典型的なIPSecトンネルとD-Linkのメイトでした。 これは、最小限の投資でかなり一般的なソリューションです。


次の3つの簡単な質問に答える必要があります。



順番に始めましょう。


ゆっくりとマシンをドメインに追加して......


すべての詐欺の結果として、サーバーはドメインの完全なメンバーになり、暗号化されたチャネルを介してローカルネットワーク全体を見る必要があります。 一般的なスキームは次のとおりでした(オリジナルではありませんが、一般的な考え方としては、描く方が良いでしょう):


画像の代替テキスト


IPSec用にWindowsとDFLをセットアップすることについては十分書かれていますが、それでも指示はネタバレに任せます。

入力として、以下を説明します。


  • プライマリおよびバックアップオフィスプロバイダー1.2.3.4および1.2.3.5のIPアドレス。


  • オフィスLAN 192.168.0.0/24;


  • D-Linkの内部アドレスは192.168.0.1です。


  • 外部サーバーのアドレス5.4.3.2。

トンネルをインストールするには、ルーターとサーバーでいくつかのコマンドを実行する必要があります。


D-Linkの場合:


  1. IPsecおよびIKEアルゴリズムを追加します。


    add IKEAlgorithms Medium DES3Enabled=True SHA1Enabled=True add IPsecAlgorithms Medium DES3Enabled=True SHA1Enabled=True 

  2. 外部サーバーのアドレスを追加します。


     add IP4Address IP_Remote Address=5.4.3.2 

  3. IPsecにキーを追加します。


     add PSK Key_Remote Type=ASCII PSKAscii=MegaSecureKey Comments=MegaSecureKey 

  4. トンネル自体:


     add IPsecTunnel Remote_Server LocalNetwork=InterfaceAddresses/lannet RemoteNetwork=IP_Remote RemoteEndpoint=IP_Remote IKEAlgorithms=Medium IPsecAlgorithms=Medium AuthMethod=PSK PSK=Key_Remote AddRouteToRemoteNet=True PFS=PFS NATTraversal=Off KeepAlive=Manual KeepAliveSourceIP=lan_ip KeepAliveDestinationIP=IP_Remote AutoInterfaceNetworkRoute=False 

  5. 設定を有効にします:


     activate 

  6. そして、スマートルーターが変更をロールバックしないようにそれらを確認します
     commit 

Windowsの場合:


  1. ポリシーを作成しますが、割り当てません。


     netsh ipsec static add policy ipsec assign=no mmpfs=yes mmsec="3DES-SHA1-2" 

  2. フィルターアクションを追加します。


     netsh ipsec static add filteraction name=ipsec action=negotiate qmpfs=yes qmsec="ESP[3DES,SHA1]:3600s" 

  3. 一方と他方で2つのフィルターを構成します。


     netsh ipsec static add filter filterlist=win2dfl srcaddr=5.4.3.2 dstaddr=192.168.0.0 dstmask=255.255.255.0 mirrored=no 

     netsh ipsec static add filter filterlist=dfl2win dstaddr=5.4.3.2 srcaddr=192.168.0.0 srcmask=255.255.255.0 mirrored=no 

  4. フィルター用に2つのポリシールールを作成します。


     netsh ipsec static add rule name=win2dfl policy=ipsec filterlist=win2dfl filteraction=ipsec tunnel=1.2.3.4 psk=MegaSecureKey 

     netsh ipsec static add rule name=dfl2win policy=ipsec filterlist=dfl2win filteraction=ipsec tunnel=5.4.3.2 psk=MegaSecureKey 

  5. ポリシーを適用します。
     netsh ipsec static set policy name=ipsec assign=yes 

これでトンネルは機能しています。


画像の代替テキスト


最近のDFLを使用する場合、IPsecはWindowsファイアウォールを介してより良く証明されていることに注意してください。 構成は、netsh advfirewall consecのコンテキストで行われます。


トンネルを作成した後、wmiマジックを使用してサーバーのネットワークパラメーターを準備します。その後、ドメインに追加できます。


 wmic nicconfig where IPEnabled=TRUE call SetDNSServerSearchOrder ("192.168.0.2","192.168.0.3") 

 wmic nicconfig call SetDNSSuffixSearchOrder (mylocaldomain.com) 

結果として生じるトンネルは、VPNの上限が60 Mbpsで、約24 Mbpsの速度で機能しました。 二重化のために天井を半分に分割する必要があるため、許容できる1C動作に適しています。


基地までずっと交換し、夢中にならない


1Cデータベースへのパスの自動追加は、ユーザープロファイルのibases.v8iファイルを1行ずつ埋める巨大なスクリプトによって実装されました。 このオプションには、より成功した選択肢があります。


たとえば、標準の1Cメカニズム+ NTFSセキュリティが便利です。

2つのベースと2つのセキュリティグループ(buhとtorg)があるとします。 次に、自動接続メカニズムは次のようになります。


  1. 共有フォルダーに2つのテキストファイルを作成:buh.v8iとtorg.v8i。


  2. ファイルごとに、対応するセキュリティグループにのみ読み取りアクセス権を付与する必要があります。


  3. ファイルの内容は次のとおりです。

buh.v8i:


 [] Connect=Srvr="servername";Ref="buh"; ClientConnectionSpeed=Normal App=ThickClient WA=1 Version=8.3 

torg.v8i:


 [] Connect=Srvr="servername";Ref="torg"; ClientConnectionSpeed=Normal App=ThickClient WA=1 Version=8.3 

すべてのユーザーは、1CEStart.cfgファイルを使用して、これら両方のファイルへのパスを登録する必要があります。 グループポリシー(%appdata%\ 1C \ 1CEStart)によってユーザープロファイルに配置できます。 すべてのユーザーがターミナルサーバーで作業している場合は、このファイルをC:\ ProgramData \ 1C \ 1CEStartに置くだけです。 ファイルの内容は次のとおりです。


 CommonInfoBases=\\___\buh.v8i CommonInfoBases=\\___\torg.v8i 

これで、ユーザーは、セキュリティグループのメンバーシップに応じて、1Cに特定のデータベースセットを持ちます。 データベースを移動するときは、v8iファイルの内容のみを変更するだけで十分です。


しかし、そのプロジェクトでは、彼らは物語に敬意を示し、少し後で問題を美しく解決することにしました。 簡単なスクリプトを使用したAutoITが一時的に助けになりました。


 #include <File.au3> ;     1 local $aArray = _FileListToArrayRec ("  DFS-   ", "ibases.v8i",1,1,0,2) if @error <> 1 then ;  for $i=1 to $aArray[0] $iLine=0 While 1 $iLine += 1 $sLine = FileReadLine($aArray[$i],$iLine ) If @error = -1 Then ExitLoop ;       … If StringInStr($sLine, 'Ref="  ";') Then ;…     _ReplaceStringInFile($aArray[$i],$sLine,StringReplace($sLine,"  ","  ")) EndIf WEnd Next EndIf 

おそらく、Powershellはもっとエレガントに出てきたでしょう。ここでは味と色が違います。


手放すな!


基本的にリモートデータベースが作業に利用できるようになったとき、バックアップWAN接続の「チェッカー」が変わりました。


もちろん、異なるプロバイダーを介して2つのトンネルを構成できますが、すでに疲れた鉄片をもう一度ロードしたくありませんでした。 必要なのは、プライマリが利用できない場合に別のアドレスに接続するようにIPSecを教えることでした。


シンプルなCMDスクリプトが役立ちます:


 @echo off Rem   IP    . Set office1=1.2.3.4 Set office2=4.3.2.1 Rem     : Ping 10.0.0.10 -n 3 Rem    if errorlevel 1 ( rem      ping %office1% -n 3 remif errorlevel 1 ( ping %office2% -n 3 rem      –    .    if errorlevel 1 ( echo %date% %time% office down >> check-ipsec.txt ) else ( Remecho %date% %time% reset tun office2 >>check-ipsec.txt netsh ipsec static set rule id=1 policy=ipsec tunnel=%office2% netsh ipsec static set policy name=ipsec assign=no netsh ipsec static set policy name=ipsec assign=yes ping 10.0.0.10 -n 3 ) ) else ( Rem      ,    rem     ,    . echo %date% %time% reset tun office1 >> check-ipsec.txt netsh ipsec static set rule id=1 policy=ipsec tunnel=%office1% netsh ipsec static set policy name=ipsec assign=no netsh ipsec static set policy name=ipsec assign=yes ping 10.0.0.10 -n 3 ) ) 

5分ごとにスクリプトを起動し、フェールセーフIPSec接続の問題は解決されました。 DリンクDFLの側面からチャンネルを切り替えることについては説明しません。すべてが平凡であり、手順は公式Webサイトに記載されています。


しかし、会計士はinしている


会計士とは異なり、顧客は満足していました。 VPNの効率が不十分であるために1Cの動作が遅くなることは、もちろん迷惑です。 IT部門は、報告期間中に特に悪い意見を見つけました。 リモート1Cの応答性を高めるため、ギガビットVPNが約束されているD-Link DFL-870にルーターを置き換えることが計画されています。


それでも、海外拠点の予算移転は完了したとみなすことができます。



Source: https://habr.com/ru/post/J320016/


All Articles