ドイツの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にルーターを置き換えることが計画されています。







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








All Articles