WinNAT定義の強制削除

 article  Comments Off on WinNAT定義の強制削除
Apr 222017
 

Hyver-V仮想マシン用に設定していたWinNATが動作しなくなりました。

PS C:\WINDOWS\system32> Get-NetNat


Name                             : MyNATnetwork
ExternalIPInterfaceAddressPrefix :
InternalIPInterfaceAddressPrefix : 192.168.0.0/24
IcmpQueryTimeout                 : 30
TcpEstablishedConnectionTimeout  : 1800
TcpTransientConnectionTimeout    : 120
TcpFilteringBehavior             : AddressDependentFiltering
UdpFilteringBehavior             : AddressDependentFiltering
UdpIdleSessionTimeout            : 120
UdpInboundRefresh                : False
Store                            : Local
Active                           : False



PS C:\WINDOWS\system32> 

最後のActive:Falseになっているのが怪しいのですが、Trueにしようと思ってもSet-NetNatコマンドレットにはそのようなオプションはありません。
作り直そうと思っても、削除時にエラーになってしまいます。

PS C:\WINDOWS\system32> Get-NetNat|Remove-NetNat

確認
この操作を実行しますか?
対象 MyNATnetwork の PolicyStore Local に対して操作 Delete を実行しています
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): Y
Remove-NetNat : 要求された操作がサポートされていません。
発生場所 行:1 文字:12
+ Get-NetNat|Remove-NetNat
+            ~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (MSFT_NetNat (In...yNATnetwork;0"):root/StandardCimv2/MSFT_NetNat) [Remove-NetNat]、CimException
    + FullyQualifiedErrorId : Windows System Error 50,Remove-NetNat

PS C:\WINDOWS\system32> 

なんとも方法がわからず途方に暮れていたら以下の記事に同じような事象がありました。
Set up a Hyper-V Virtual Switch using a NAT Network | Thomas Maurer
ちょっとコメントがつぶれていますが、以下のレジストリキーを削除したとのこと。
HKLM\System\CurrentControlSet\Control\NSI\{eb004a20-…..7759bc}\6\

今のままでは他に情報もないので、以下のキーをバックアップして削除してみたところ、Get-NetNatでエントリーが出現しなくなりました。
HKLM\SYSTEM\CurrentControlSet\Control\Nsi\{eb004a20-9b1a-11d4-9123-0050047759bc}\6

PS C:\WINDOWS\system32> Get-NetNat

うーん、これで大丈夫なのかわかりませんが、とりあえずNew-NetNatでの再作成は成功したので暫く経過観察します。

PS C:\WINDOWS\system32> New-NetNat -Name MyNATnetwork -InternalIPInterfaceAddressPrefix 192.168.0.0/24


Name                             : MyNATnetwork
ExternalIPInterfaceAddressPrefix :
InternalIPInterfaceAddressPrefix : 192.168.0.0/24
IcmpQueryTimeout                 : 30
TcpEstablishedConnectionTimeout  : 1800
TcpTransientConnectionTimeout    : 120
TcpFilteringBehavior             : AddressDependentFiltering
UdpFilteringBehavior             : AddressDependentFiltering
UdpIdleSessionTimeout            : 120
UdpInboundRefresh                : False
Store                            : Local
Active                           : True



PS C:\WINDOWS\system32>

ちゃんとActive:Trueになってるし。

プロバイダがIPv6対応したのでDebianに設定

 article  Comments Off on プロバイダがIPv6対応したのでDebianに設定
Apr 132017
 

プロバイダがIPv6サービス提供を開始したので、フレッツ光とプロバイダにそれぞれ申し込んでみました。

フレッツ光でIPv6オプションを申し込んだ直後はNTT東日本のIPv6アドレスが割り当てられます。

gmtx24@debian:~$ ip -6 addr show dev eth0
2: eth0:  mtu 1500 qdisc mq state UP group default qlen 1000
    inet6 2408:***:****:****:****:****:****:****/64 scope global mngtmpaddr dynamic 
       valid_lft 2591524sec preferred_lft 604324sec
    inet6 2001:c90:****:****:****:****:****:****/64 scope global deprecated mngtmpaddr dynamic 
       valid_lft 2584978sec preferred_lft 0sec
    inet6 fe80::a2b3:ccff:fee9:5cd7/64 scope link 
       valid_lft forever preferred_lft forever
gmtx24@debian:~$ 

次にプロバイダにIPv6オプションを申し込んだ後は、プロバイダ所有のプレフィックスアドレス(伏せてます)に変わりました。

gmtx24@debian:~$ ip -6 addr show dev eth0
2: eth0:  mtu 1500 qdisc mq state UP group default qlen 1000
    inet6 ****:****:****:****:****:****:****:****/64 scope global mngtmpaddr dynamic
       valid_lft 2591508sec preferred_lft 604308sec
    inet6 fe80::a2b3:ccff:fee9:5cd7/64 scope link
       valid_lft forever preferred_lft forever
gmtx24@debian:~$ 

ルーティングも同様に、NTT東日本からプロバイダに変わります。
フレッツ光のIPv6開通後

gmtx24@debian:~$ ip -6 route show
2001:c90:****:****::/64 dev eth0 proto kernel metric 256  expires 2581221sec pref medium
2408:***:****:****::/64 dev eth0 proto kernel metric 256  expires 2591184sec pref medium
fe80::/64 dev eth0 proto kernel metric 256  pref medium
default via fe80::30ff:fe0c:204d dev eth0 proto ra metric 1024  expires 1755sec hoplimit 64 pref medium
gmtx24@debian:~$ 

プロバイダのIPv6開通後

gmtx24@debian:~$ ip -6 route show
****:****:****::/64 dev eth0 proto kernel metric 256  expires 2591575sec pref medium
fe80::/64 dev eth0 proto kernel metric 256  pref medium
default via fe80::30ff:fe0c:204d dev eth0 proto ra metric 1024  expires 1375sec hoplimit 64 pref medium
gmtx24@debian:~$ 

このままだとMACアドレスベースで生成されたIPv6アドレスが設定されますので、IPv6プライバシー拡張を使ってランダム生成のアドレスにしたい場合は、/etc/network/interfacesに以下の設定をおこないます。

iface eth0 inet6 auto
    privext 2

確認はsysctlコマンドでnet.ipv6.conf.eth0.use_tempaddr=2になっているか、もしくはIPv6 test – IPv6/4 connectivity and speed testに接続してSLAAC noになっているかで確認しました。もちろんIPv6アドレスがMACアドレスベースになっていないことでも確認できます。

※参考
IPv6 プライバシー拡張

NetXMSお試し(1)

 article  Comments Off on NetXMSお試し(1)
Jan 062014
 

NetXMSという監視ツールを見つけまして試しに入れてみました。
スクリーンショットを見る限り洗練されていそうなのと、監視サーバーをWindowsで稼働させらるのも魅力的です。
OpenNMSもWindowsで稼働させることができますが、あちらはSNMPベースの監視が基本でエージェント監視方式ではありません。

タイトルに(1)と謳っていますが続編を書くかは未定です。

Debian用にはバイナリーパッケージが提供されていますので、そちらを利用します。
エージェントおよびサーバーは1台にまとめて稼働させます。

パッケージインストール

aptでインストールできるようsources.listを用意します。

# cat /etc/apt/sources.list.d/netxms.list
# NetXMS
deb http://www.netxms.org/apt squeeze main

エージェント用パッケージ、サーバー用パッケージを一式インストールします。

# apt-get update
# apt-get install netxms-base netxms-server netxms-agent

設定

エージェント用設定ファイルを用意します。

# cat /etc/nxagentd.conf
Servers = 127.0.0.1
ControlServers = 127.0.0.1
MasterServers = 127.0.0.1
LogFile = /var/log/netxms/nxagentd.log
FileStore = /var/lib/netxms/nxagentd

サーバー用設定ファイルを用意します。

# cat /etc/netxmsd.conf
DBDriver = sqlite.ddr
DBName   = /var/lib/netxms/sqlite.db
LogFile  = /var/log/netxms/netxmsd.log

ディレクトリおよびデータベース作成

ディレクトリを作成します。

# mkdir -p /var/log/netxms
# mkdir -p /var/lib/netxms/nxagentd

DBをSQLiteで作成します。

# nxdbmgr init /usr/share/netxms/sql/dbinit_sqlite.sql
# nxdbmgr check

起動

エージェントを起動します。

# systemctl start nxagentd.service

サーバーを起動します。

# systemctl start netxmsd.service

監視コンソールの起動

監視コンソールはWebアプリケーションで稼働するものとEclipseベースで稼働するものの2種類あります。
今回は手早くEclipseベースものをダウンロードページから入手して起動させます。Windows版の場合、圧縮ファイルを展開するとnxmc.exeというバイナリーがありますのでそちらを実行します。
起動するとサーバー名や認証方式を聞かれますので、
Server: netxmsdが起動しているサーバー(4701/tcpを使用します)
Login: admin
Authentication: Password
Password: netxms
を指定するとNetXMSサーバーに接続されます。

開始直後は監視項目はほとんど設定されていません。
Zabbixのように監視テンプレートが予め提供されているわけでもないようですので、ここから個々の監視項目を設定する必要がありそうです(テンプレート化は可能)。

Window XPのRRAS設定(Filter&NAT)

 article  Comments Off on Window XPのRRAS設定(Filter&NAT)
Apr 202011
 

Windows XPで動かすcoLinuxをNATで使いたいのですが、Windows Firewall/Internet Connection Sharing (ICS)ではNATで使用できる内部ネットワークアドレスに制限があります(192.168.0.0/24固定)。
Routing and Remote Access(RRAS)でもNATはできるのですが、ICSのFirewallと共存することはできません。

結局、NATとパケットフィルタリング両方にRRASを使うようにしているので、そちらの設定メモです。

ICSのサービスを止めてRRASサービスを有効にします。

C:\>net stop sharedaccess
C:\>net start remoteaccess

netshのrouting ipコンテキストでフィルタを設定します。

C:\>netsh
netsh>routing ip
netsh routing ip>set filter "Cable" input drop
OK

netsh routing ip>add filter "Cable" input 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 tcp-est 0 0
OK

netsh routing ip>add filter "Cable" input 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 udp 53 0
OK

netsh routing ip>add filter "Cable" input 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 udp 123 0
OK

netsh routing ip>add filter "Cable" input 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 icmp any any
OK

netsh routing ip>

設定したフィルタの確認。

netsh routing ip>show filter "Cable"

インターフェイス Cable のフィルタ情報
------------------------------------------------------------------

フラグメント チェックは 無効 です。

フィルタの種類        : INPUT
既定の操作            : DROP

    Src Addr       Src Mask         Dst Addr       Dst Mask      Proto  Src Port  Dst Port
------------------------------------------------------------------------------------------
        0.0.0.0         0.0.0.0         0.0.0.0         0.0.0.0 TCP-EST       0       0
        0.0.0.0         0.0.0.0         0.0.0.0         0.0.0.0    UDP      53       0
        0.0.0.0         0.0.0.0         0.0.0.0         0.0.0.0    UDP     123       0
        0.0.0.0         0.0.0.0         0.0.0.0         0.0.0.0   ICMP       0       0
出力フィルタが構成されていません。
デマンド ダイヤル フィルタが構成されていません。

netsh routing ip>

続いてNAT設定。coLinuxでインストールしたTapインターフェースをPrivate、Cableインターフェースをfullに設定します。

netsh routing ip>nat
netsh routing ip nat>install

netsh routing ip nat>add interface "Cable" full

netsh routing ip nat>add interface "Tap" private

netsh routing ip nat>

NAT設定内容の確認。

netsh routing ip nat>show interface

NAT Cable の構成
---------------------------
モード            : アドレスおよびポートの変換


NAT Tap の構成
---------------------------
モード            : プライベート インターフェイス


netsh routing ip nat>

最後にDNS Proxyを設定して終了。

netsh routing ip nat>dnsproxy
netsh routing ip dnsproxy>install
netsh routing ip dnsproxy>exit


C:\>

PPP Adapterに対するRRASのフィルタはデフォルトDROPらしい

 article  Comments Off on PPP Adapterに対するRRASのフィルタはデフォルトDROPらしい
Apr 102011
 

私はWindows XPのFirewall機能に、標準的なICS(Windows Firewall/Internet Connection Sharing (ICS))ではなくRRAS(Routing and Remote Access)を使っています。
ICSではNATで利用するIPアドレスに制限がある(192.168.0.0/24固定)ことや、RRASのほうがルーター等N/W機器の一般的なフィルタに近い感覚で設定できることが理由です(個々のプログラムレベルでの通信許可はできなくなるので、ウィルスやマルウェア対策面では不安が残りますが)。

で、RRASでは「ローカルエリア接続」等の各N/Wインターフェースに対してデフォルトポリシーを許可ルールを設定しますが、PPP Adapterに関してはこちらに一覧が出現しません。

C:\>netsh routing ip show filter
Input           Output          Demand-dial     Frag. Check     Interface
---------       ----------      -------------   --------------  ----------------
0   (FORWARD)   0   (FORWARD)   0   (FORWARD)   無効            ループバック
0   (FORWARD)   0   (FORWARD)   0   (FORWARD)   無効            内部
0   (FORWARD)   0   (FORWARD)   0   (FORWARD)   無効            VMnet8
0   (FORWARD)   0   (FORWARD)   0   (FORWARD)   無効            VMnet1
0   (FORWARD)   0   (FORWARD)   0   (FORWARD)   無効            Cable
0   (FORWARD)   0   (FORWARD)   0   (FORWARD)   無効            WiFi
0   (FORWARD)   0   (FORWARD)   0   (FORWARD)   無効            Tap


C:\>

※普段はInputをDROPにしてますが、テストのためFORWARDに変更しています

デフォルトはFORWARDなのかDROPなのか、リモートからnmapで確認してみました。結論からいうとRRASサービスを有効にしただけでPPP Adapterに対してはDROPの動作になるようです。

RRAS停止状態(net stop remoteaccess)

debian1:~# nmap 183.72.42.159

Starting Nmap 5.21 ( http://nmap.org ) at 2011-04-10 01:35 JST
Nmap scan report for u542159.xgsfmg18.imtp.tachikawa.mopera.net (183.72.42.159)
Host is up (0.15s latency).
Not shown: 988 closed ports
PORT      STATE    SERVICE
135/tcp   filtered msrpc
139/tcp   filtered netbios-ssn
161/tcp   filtered snmp
445/tcp   filtered microsoft-ds
902/tcp   open     iss-realsecure
912/tcp   open     unknown
2049/tcp  filtered nfs
2869/tcp  open     unknown
8222/tcp  open     unknown
8333/tcp  open     unknown
12345/tcp filtered netbus
31038/tcp open     unknown

Nmap done: 1 IP address (1 host up) scanned in 10.16 seconds
debian1:~#

RRAS開始状態(net start remoteaccess)

debian1:~# nmap 183.72.42.159

Starting Nmap 5.21 ( http://nmap.org ) at 2011-04-10 01:37 JST
Note: Host seems down. If it is really up, but blocking our ping probes, try -PN
Nmap done: 1 IP address (0 hosts up) scanned in 3.08 seconds
debian1:~#
Nov 202009
 

マルチホームなLinuxマシンで、受信したNICインターフェース側から応答を返す方法をCentOS 5.4で実装する方法です。

複数のアップリンク/プロバイダに対するルーティング
として例示される設定を、スクリプトではなくCentOSの設定ファイルで記述してみます。

上記例でのポイントはip route addコマンドの実行とip rule addコマンドの実行です。
Fedora等のRed Hat系ではNICインターフェースのアップ時(/sbin/ifupコマンド実行時)に、/etc/sysconfig/network-scripts配下のifup-ethやifup-routesコマンドが呼びだされます。

ifup-routesスクリプトを眺めてみると、route-eth*やrule-eth*を記述しておくとその内容を引数にしてそれぞれip route addとip rule addを実行してることがわかります。

この方法のよいところはifdown実行時にifdown-routesスクリプトでルールの削除処理(ip rule del)もおこなってくれるところです。

構成

ネットワーク構成

                     +------------+       +----------
                     |            |       |
       +-------------+ Provider 1 +-------+
       |             |            |       |
+------+-------+     +------------+       |
|     eth1     |                          |
|              |                          |
| Linux router |                          | Internet
|              |                          |
|     eth2     |                          |
+------+-------+     +------------+       |
       |             |            |       |
       +-------------+ Provider 2 +-------+
                     |            |       |
                     +------------+       +----------

Provider 1構成

  • N/W アドレス: 192.0.2.0/25
  • Linux IPアドレス: 192.0.2.1
  • Provider1 IPアドレス: 192.0.2.126

Provider 2構成

  • N/W アドレス: 192.0.2.128/25
  • Linux IPアドレス: 192.0.2.129
  • Provider1 IPアドレス: 192.0.2.254

設定内容

/etc/iproute2/rt_tablesの末尾にテーブルを追加。

200 Provider1
201 Provider2

/etc/sysconfig/network-scripts/route-eth1

192.0.2.0/25 dev eth1 src 192.0.2.1 table Provider1
192.0.2.0/25 dev eth1 src 192.0.2.1
default via 192.0.2.126 table Provider1

/etc/sysconfig/network-scripts/route-eth2

192.0.2.128/25 dev eth2 src 192.0.2.129 table Provider2
192.0.2.128/25 dev eth2 src 192.0.2.129
default via 192.0.2.254 table Provider2

/etc/sysconfig/network-scripts/rule-eth1

from 192.0.2.1 table Provider1

/etc/sysconfig/network-scripts/rule-eth2

from 192.0.2.129 table Provider2

defaultルートは/etc/sysconfig/network-scripts/ifcfg-eth*のどちらかにGATEWAYを設定すればOKです。

一点気になるのは、/etc/sysconfig/network-scripts/ifup-routesスクリプトでip route addコマンドの引数をそのまま記述する方式は”older format”とコメントされていることです。
もしかしたら近い将来使えなくなるのかも知れませんが、Fedora 12ではまだ使えるようなのでしばらくは大丈夫でしょう 😛

■2010-08-10追記
コメントでご指摘のとおりファイル名が間違っていましたので修正しました。
ご指摘ありがとうございました。

Aug 152008
 

FileZillaでcoreserverにFTPES接続できなくなりました。FileZillaのバージョンは3.1.0.1, 3.1.1-rc1です。

コマンド:	LIST
応答:	150 Opening ASCII mode data connection for file list
状態:	Server did not properly shut down TLS connection
エラー:	Could not read from transfer socket: ECONNABORTED - Connection aborted
応答:	226 Transfer complete.
エラー:	ディレクトリ一覧表示の取り出しに失敗しました

本家のForumにも話題があがっているのですが、ftpサーバのバージョンが古いと発生するようです。
FileZilla Forums • View topic – ECONNABORTED: It’s the server’s fault!
coreserverで使われているProFTPDの場合、CVS HEADでないと直らないようですので解決されるのは先になりそうな予感。

仕方がありませんので、当面FileZillaを2.2.32にダウングレートして使うことにしました。

古いバージョンのダウンロードリンクは以下のフォーラムに記載されています。
FileZilla Forums • View topic – D/L links of Filezilla 2 / 3 for older OS(WinNT/Win2K/Tiger)
注意書きにもあるように非サポートかつ脆弱性の存在がわかっているバージョンですので、利用時は自己責任でどうぞ。

■2008-09-06追記
3.0.11.1でも大丈夫みたいです。

Oct 232007
 

例示用、テスト用に使用できる予約ドメインがあるのはいまや有名な話。
RFC 2606 – Reserved Top Level DNS Names

IPv4アドレスにも例示用に使用できる領域が予約されている。
RFC 3330 – Special-Use IPv4 Addresses

  • APIPAでアサインされるアドレス
    169.254.0.0/16 – This is the “link local” block.
  • 例示用はこれ
    192.0.2.0/24 – This block is assigned as “TEST-NET” for use in documentation and example code.
  • ベンチマークテスト用なんてのもある
    198.18.0.0/15 – This block has been allocated for use in benchmark tests of network interconnect devices.

など。他にもいろいろ書かれている。

ドキュメンテーションや例示用の場合、ドメイン名にはexample.jpとかexample.comを、IPアドレスには192.0.2.0/24を使おう、ということになる。

Jun 252007
 

以前書いたかも知れないけど。

NFSのポート番号を固定にする方法

portmap本体は固定されているし(udp/111)、nfsも事実上{tcp,udp}/2049しか使われない。
しかし、rpc.statdやrpc.mountdはportmapでころころかわるので、それを決める必要がある。

CentOS 3あたりの場合、/etc/sysconfig/nfsを作って

STATD_PORT=
STATD_OUTGOING_PORT=
MOUNTD_PORT=

を書いてあげればrpc.statdとrpc.mountdのポートを決めうちにできる。

参考

FTP passiveモードのデータポート範囲を固定にする方法

vsftpdの場合、vsftpd.confでpasv_min_portとpasv_max_portを指定すればよい。

pasv_enable=YES
pasv_min_port=3000
pasv_max_port=3009

IIS 6.0のFTPの場合は

>C:\Inetpub\AdminScripts\adsutil.vbs SET /MSFTPSVC/PassivePortRange "3000-3009"

のようにする。
PassivePortRange の IIS の構成方法