SOHOのさまざまなタスク用にMikrotikルーターを構成する

この記事は、社内で新しいルーターを構成するために、私が個人的に書いた内部指示書付きのトレーシングペーパーです。 アイテムは多かれ少なかれ時系列順に並べられますが、それぞれは当社で使用されているサービスの1つに対する独立したミニ命令です。

1.電源オン、初期セットアップ


最初に行うことは、デバイスに接続することです。 デフォルトでは、ルーターの設定は192.168.88.0/24サブネットで設定されます。 ブラウザーでアドレスを開き、コンピューターのWinbox.exeにダウンロードして保存します。



Winboxを起動し、逆Connect to [ Connect to ]をクリックして[ "…" ]ボタンをクリックすると、数秒後にルーターがリストに表示されます。



MACアドレスをダブルクリックし、パスワードなしでadminという名前で接続します。
最初のログイン時に、システムは自動ルーター構成スクリプトが起動されたことを警告します。 [ Remove ConfigurationRemove Configuration ]ボタンをクリックします。



その後、 Winboxコンソールが閉じるまで待機し、数秒後にWinboxを(保存した場所から)再び起動し、MACアドレスに再度接続します。
接続したら、左側のInterfacesを選択し、不要なインターフェイス( VLAN, Bridgeを削除しVLAN, Bridge 。 各インターフェイスの設定(会社のルーターには5つしかありません)に進み、 Master-portproxy-arpを無効にして、設定を次の形式にします。



2. IPを発行する


IP — Addresses移動しIP — Addresses 。 必要なインターフェイスに必要なアドレスを指定します。 エスコートネットワークでルーターを使用する場合、2つのインターネットプロバイダーと内部ネットワークが接続されます。 2番目の内部ネットワークは、VPNを介して形成されます。 各インターフェイスに必要なIPを示します。
 [admin@Mikrotik] /ip address> print Flags: X - disabled, I - invalid, D - dynamic # ADDRESS NETWORK INTERFACE 0 I ;;; , !!! 10.0.33.1/24 10.0.33.0 ether4-hosting-network 1 22.22.22.17/29 22.22.22.16 ether2-gateway2 2 11.11.11.1/28 11.11.11.0 ether1-gateway1 3 192.168.3.101/22 192.168.0.0 ether3-internal-network 4 I 192.168.4.2/22 192.168.4.0 ether4-hosting-network 


3.ルーティング


3.1。 マスタールートとスレーブルートを作成する

IP — Routes移動しIP — Routes 。 デフォルトでは、ルーティングのホストの代わりにインターフェースが使用されます。 すべての静的ルートを削除することをお勧めします。静的ルートを変更した後、動的ルートは自動的に変更されます。 注意:すべてを簡単に削除するには、ルートを使用せずにローカルネットワーク経由でルーターに接続する必要があります。そうしないと、メイン接続が削除されたときに接続が切断されます。 次に、新しいルートを作成しますDst.AddressフィールドDst.Address 0.0.0.0/0を指定し、GatewayフィールドでメインゲートウェイのIPを指定します。 距離を忘れないでください-どのルートで短いか、それが主なものになります。 一般に、ルート設定は次のようになります。



外部インターフェイスの場合、距離4の11.11.11.11と距離3の22.22.22.22をゲートウェイとして指定します。



3つのルート(外部チャネルに2つ、内部ネットワークに1つ)を追加した後、ルーターをネットワークに接続し、内部IPを使用してIP 192.168.3.101で接続できます。

3.2。 テーブルルーティングを作成する

上記で作成した構成では、2つの外部インターフェイスを作成できますが、そのうち1つのみが単位時間あたりに機能します。つまり、距離が短いものと最大のものは、ケーブルが最初のインターフェイスから引き出されたときにのみ機能します。 明らかな理由から、これは私たちには適していません-2つのゲートウェイの同時操作が必要です。 これを行うには、要求の送信元のインターフェイスにトラフィックを返すようにルーターに教える必要があります。 これは、2つの追加ルートを作成し、ファイアウォールを設定することにより行われます。 まず、必要なルートを作成します。 以前に作成したルートも便利ですが、複製することができます。 それらはわずかに変化します。 これを行うには、以前に作成したルートをクリックし、[ Copy ]ボタンをクリックして、 Routing Markを追加します。それぞれ、インターフェイス名でルートをマークします。 それらをto_ISP1およびto_ISP2to_ISP2




次に、に行きます
IP-ファイアウォール-マングル


ルールを作成します。
  General: Chain: prerouting In-interface:      Connection Mark: no-mark ,   Action: Action: mark connection New Connection Mark: ISP1_conn Passthrough:  . 


留め具の写真




これらの手順は、2つの外部インターフェイス(それぞれISP1_connおよびISP2_connブランド)に対して2回繰り返す必要があります。
次に、 ISP1_connおよびISP2_connとマークされた発信トラフィックを上記でマークされたルートにISP2_connする2つのルールをさらに作成する必要があります。 ルールを作成します。
 General: Chain: output Connection Mark: ISP1_conn Action: mark routing New Routing Mark: to_ISP1 Passthrough:  . 


写真





4.マスタースレーブモードでのルートバランシング


そのため、同時に動作する2つのゲートウェイの存在を実現しました。そのうちの1つは2番目のゲートウェイよりも優先度が高くなっています。 この設定の問題は、デバイスインターフェイスの物理リンクが落ちたときに、ゲートウェイ間の切り替えが排他的に実行されることです。 しかし、他の状況があります:アカウントのお金がなくなった、プロバイダー側​​の問題など-メインゲートウェイでさえアクセスできるが、トラフィックがそれより先に進まない状況で、通常この場合、メインゲートウェイは切り替えられません 自動Netwatchには、 Netwatch機能を使用する必要があります。これは、インターフェイス上のトラフィックの存在を監視し、ルールに応じてトラフィックを切り替えます。 この機能のセットアップは、3つのステージで構成されます。

4.1。 スイッチスクリプトを作成する

System — Scripts移動しSystem — ScriptsISP1-DOWN, ISP1-UP, ISP2-DOWN, ISP2-UPという名前の4つのスクリプトを作成します。 すべてのスクリプトに最大の許可を与えます。
スクリプトの内容
ISP1-DOWN:
 /ip route disable [find dst-address=0.0.0.0/0 and gateway=11.11.11.11 and distance >=4]; 

ISP1-UP:
 /ip route enable [find dst-address=0.0.0.0/0 and gateway=11.11.11.11 and distance >= 4]; 

ISP2-DOWN:
 /ip route disable [find dst-address=0.0.0.0/0 and gateway=22.22.22.22 and distance >=3]; 

ISP2-UP:
 /ip route enable [find dst-address=0.0.0.0/0 and gateway=22.22.22.22 and distance >=3]; 


4.2。 Netwatchルールを作成する

[ Tools — Netwatch移動しTools — Netwatch
新しいルールを作成します。

 host: 8.8.4.4 Interval: 00:00:10 timeout: 1000ms Up: ISP2-UP Down: ISP2-DOWN   : host: 8.8.8.8 Interval: 00:00:10 timeout: 1000ms Up: ISP1-UP Down: ISP1-DOWN 

写真




4.3。 永続的な独立ルートを作成します


各ホスト(8.8.8.8および8.8.4.4)に対して、異なるゲートウェイ(11.11.11.11および22.22.22.22)を通る距離を短縮した一意のルートを規定します。



外部インターフェイスの1つで論理(非物理)リンクをnetwatchことnetwatchnetwatchの動作を確認できます。 私の会社はこれにマネージドスイッチを使用し、隣接していないルーターポートを消滅させました。 したがって、ホスト8.8.8.8へのpingは中断されましたが、物理リンクはアクティブでした。 pingが停止した後、Netwatchは必要なルートを出力し、内部ネットワークはバックアップインターフェイスを介してインターネットにアクセスしました。

5. NATを作成する


IP — Firewallに移動し、 NATタブに移動します
外部インターフェイスごとに2つのルールを作成します。
 Chain: srcnat Out-Interface:     Action: masquerade 

写真


ルーターの内部インターフェイスに接続されたコンピューターからインターネット上のサイトの1つにpingを送信することにより、NATを確認できます。 ルーターで2つのNATルールのいずれかを無効にすると、インターネット上の選択したホストへのトレースがどのように変化するかを確認できます。

6. VPNサーバーを作成する


6.1。 必要なIPアドレスのプールを作成します。

会社のネットワークでは、192.168.160.2 / 22サブネットを使用することが決定されました。クライアントのアドレス指定は192.168.170.2から始まり、ゲートウェイアドレス(ルーター自体の)192.168.170.1
IP — Pool vpn-pool入り、192.168.170.2-192.168.171.254の範囲で新しいvpn-poolを作成します。

6.2。 PPTPサーバーの電源を入れます

[ PPP ]メニュー項目に移動し、[ Interfaces ]タブに[ PPTP Server ]ボタンがあります。 daws Enabled, mschap2Enabled, mschap2 Default Profile: default-encodingを選択します。


6.3。 暗号化を構成する

[ PPP Profile ]タブに移動します。 [ General ]タブで、 Local Address: 192.168.170.1Remote Address: vpn-pool 。 [ Protocols ]タブの[ Use EncryptionUse Encryption ]オプションで、回答オプションを[ Yes ]に設定します。

6.4。 アカウントを作成する

[ Secrets ]タブに移動します。 ユーザーを作成します。
 Name:   Password:   Service: any Profile: default-encryption Local Address: 192.168.170.1 Remote Address: ,  ,   ,   vpn-pool.    ,    VPN    . 

写真


6.5。 バッチアカウント作成

シークレット(アカウント)VPNのバッチ作成には、スクリプトを使用できます。
[ System — Scripts ]に移動し、[新しいSystem — Scripts作成]をクリックして、そこに必要なスクリプトテキストを貼り付ける必要があります。


スクリプトテキスト
 :global content [/file get [/file find name=vpnusers.txt] contents] ; :global contentLen [ :len $content ] ; :global lineEnd 0; :global line ""; :global lastEnd 0; :do { :set lineEnd [:find $content "\r\n" $lastEnd ] ; :set line [:pick $content $lastEnd $lineEnd] ; :set lastEnd ( $lineEnd + 2 ) ; :local tmpArray [:toarray $line] ; :if ( [:pick $tmpArray 0] != "" ) do={ :put $tmpArray; /ppp secret add name=[:pick $tmpArray 0] password=[:pick $tmpArray 1] \ local-address=[:pick $tmpArray 2] remote-address=[:pick $tmpArray 3] \ profile=[:pick $tmpArray 4] service=[:pick $tmpArray 5]; } } while ($lineEnd < $contentLen) 


スクリプトを作成したら、次の構文に従うファイルを作成します。

,,IP_,IP_,_,

完成したファイルは次のようになります


最後の行は空であることに注意してください。 空のままにしない場合、最後に入力された行は処理されません。
次に、[ Files ]メニュー項目を開きます。 作成されたファイルは、マウスを使用して結果のウィンドウにドラッグする必要があります。 ファイルはvpnusers.txtと呼ばれる必要があります。そうしないと、スクリプトは機能しません。
これらの準備が完了したら、[ System — Scripts [ Run Script ]に移動し、必要なスクリプトをマウスで選択して[ Run Script ]をクリックしRun Script



スクリプトの結果、 PPP — Secretsに追加されたアカウントが表示されます



7. SSTPを構成する


SSTPを使用するには、証明書が必要です。 OpenVPNスナップインによって発行された自己署名証明書を使用しました 。 証明書を取得するために、すべてのコンポーネントをインストールする必要はありません
スクリーンショットだけで十分です



次に、cmdを管理者として実行し、 c:\Program Files\OpenVPN\easy-rsa\ディレクトリ(または64ビットWindowsに32ビットバージョンのOpenVPNをインストールした場合はProgram Files (x86) )に移動します。 編集のためにvars.batファイルを開きます。 そうでない場合は、 vars.bat.sample名前をvars.bat.sampleに変更し、次の形式にします。
vars.bat
 @echo off rem Edit this variable to point to rem the openssl.cnf file included rem with easy-rsa. set HOME=%ProgramFiles%\OpenVPN\easy-rsa set KEY_CONFIG=openssl-1.0.0.cnf rem Edit this variable to point to rem your soon-to-be-created key rem directory. rem rem WARNING: clean-all will do rem a rm -rf on this directory rem so make sure you define rem it correctly! set KEY_DIR=keys rem Increase this to 2048 if you rem are paranoid. This will slow rem down TLS negotiation performance rem as well as the one-time DH parms rem generation process. set KEY_SIZE=1024 rem These are the default values for fields rem which will be placed in the certificate. rem Change these to reflect your site. rem Don't leave any of these parms blank. set KEY_COUNTRY=RU set KEY_PROVINCE=Nsk set KEY_CITY=Novosibirsk set KEY_ORG=Escort set KEY_EMAIL=i_nichupienko@soft-escort.ru set KEY_CN=87.245.176.183 set KEY_NAME=temp_nie set KEY_OU=changeme set PKCS11_MODULE_PATH=changeme set PKCS11_PIN=1234 


さらに、便宜上、 build-ca.batを編集しました。
build-ca.bat
 @echo off cd %HOME% rem build a cert authority valid for ten years, starting now "c:\Program Files\OpenVPN\bin\openssl.exe" req -days 3650 -nodes -new -x509 -keyout %KEY_DIR%\%1.key -out %KEY_DIR%\%1.crt -config %KEY_CONFIG% 


その後、次の順序で実行します。

 c:\Program Files\OpenVPN\easy-rsa>vars.bat c:\Program Files\OpenVPN\easy-rsa>clean-all.bat c:\Program Files\OpenVPN\easy-rsa>build-ca.bat newuser 


最後のコマンドの質問については、単にEnterキーを押すか( vars.batファイルに入力されたデータが使用されます)、新しいデータを入力できます。 一般的に、どれほど便利か。
コマンド実行


結果


Winboxルーターで、[ Files ]ボタンをクリックし、ドラッグアンドドロップメソッドを使用して、そこからフォルダーから結果のファイルをコピーします。



次に、 Winbox System — Certificates Winbox移動しSystem — Certificates 。 [ Importクリックして、最初に1つのファイルを選択し、次に2番目のファイルを選択します。



[ PPP — Profile ]に移動し、以前に作成したdefault-encryption開き、[ Copy ]をクリックし、[ Protocol ]タブで[ Use Encryption ]フィールドの値を[ Yesから[ Required ]に変更します。



プロファイル名としてSSTPprofileSSTPprofileします。
次に、[ System — PPP SSTP-Server ]で[ Interface ]タブに移動し、そこで[ SSTP-Server ]ボタンをクリックします。 [ Enabled SSTPProfileを設定し、 Default ProfileとしてSSTPProfileを選択し、必要な証明書を指定します。 認証方法として、 mschap2のみを選択します。



PPPシークレット(ログイン/パスワード)を作成するときPPP最初にサービスのタイプをAnyとして指定したため、追加のものを作成する必要はありません。 接続の準備ができました。

この記事はクライアントではなくルーターのセットアップに関するものであるため、この記事ではこの証明書をさまざまなOSにインポートし、クライアントSSTP接続をセットアップする方法を検討しません。 受け取った証明書は、信頼されたルート証明機関に追加する必要があることだけに言及します。

8.主要なファイアウォールルールの設定


IP — Firewall — Filter Rules

8.1。 内部ネットワークからWinbox経由でルーターにアクセスする

ルールを作成します。
 Chain: Input Protocol: tcp Dst.Port: 8291 In. Interface: ether3-internal Action: accept 

写真


8.2。 内部ネットワークからPingアウトする

2つのルールを作成します。
 Chain: forward Protocol: icmp Out. Interface: ether1-gateway1  ether2-gateway2 (    , ..       .    ,   2) Action: accept 

写真



8.3。 VPNから内部ネットワークにPing

 Chain: forward Protocol: icmp Src.Address: 192.168.170.0/24 Dst.Address: 192.168.0.0/22 Action: accept 

写真


8.4。 VPNから内部ネットワークへのRDPアクセス

 Chain: forward Protocol: tcp Src.Address: 192.168.170.0/24 Dst.Address: 192.168.0.0/22 Dst.Port: 3389 Action: accept 

写真


9.マシン192.168.2.82のポート80の公開


IP — Firewall — NAT移動
 Chain: dstnat Protocol: tcp Dst.Port: 80 In.Interface: ether1-gateway1 ( ether2-gateway2      ) Action: netmap To Addresses: 192.168.2.82 To Ports: 80 

写真


10.マシン192.168.2.82のポート3389をVPNに公開する


このルールは、クライアントマシンでルーティングを使用せずにアクセスを作成するために必要です。 2.82マシンには追加のIP-:あります。VPNクライアントと同じサブネットセグメントのIP-:です。
IP — Firewall — NAT移動
 Chain: dstnat Dst.Address: 192.168.170.82 Protocol: tcp Dst.Port: 3389 Action: dst-nat To Addresses: 192.168.2.82 To Ports: 3389 

写真

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


All Articles