管理番号:YMHRT-4603
(最終更新日: 2023/7/26)
本設定例では、Luaスクリプト機能とL2TP/IPsecを用いたリモートアクセスVPN機能を使用しています。
Luaスクリプト機能の対応機種は、RTX5000、RTX3510、RTX3500、RTX1300、RTX1220、RTX1210、RTX1200(Rev.10.01.16以降)、RTX830、RTX810、NVR700W、NVR510、NVR500、FWX120、vRXです。
リモートアクセスVPN機能の対応機種は、RTX5000(Rev.14.00.12以降)、RTX3510、RTX3500(Rev.14.00.12以降)、RTX1300、RTX1220、RTX1210、RTX1200(Rev.10.01.59以降)、RTX830、RTX810(Rev.11.01.21以降)、NVR700W、NVR510(Rev.15.01.03以降)、FWX120(Rev.11.03.08以降)、vRXです。
定期的にL2TPクライアントから接続を受け付けるためのPPP認証のパスワードを変更し、ユーザーへ新しいパスワード(ワンタイムパスワード)をメールで通知するスクリプトです。
メールで通知されたユーザーは、ワンタイムパスワードを下記ドキュメントの説明内にある「認証用パスワード」として設定します。
本設定例では、一例として毎週月曜日の朝8:00にLuaスクリプトを実行しています。
光回線に接続するためには、別途ONUが必要です。
NVR700WとNVR510は、本体のONUポートに小型ONUを装着することで、光回線に接続できます。
対応機種のうち、設定例を掲載している機種は、以下のとおりです。
機種 | 掲載内容 | 備考 |
---|---|---|
RTX1300 RTX1220 RTX1210 RTX1200 RTX830 RTX810 NVR700W NVR510 FWX120 | コマンド設定例 Luaスクリプト例 |
Luaスクリプト機能、 リモートアクセスVPN機能 |
ゲートウェイの設定 | ip route default gateway pp 1 |
---|---|
LANインターフェースの設定 (LAN1ポートを使用) |
ip lan1 address 192.168.100.1/24 ip lan1 proxyarp on |
WANインターフェースの設定 (LAN2ポートを使用) |
pp select 1 pp always-on on pppoe use lan2 pp auth accept (認証方式) pp auth myname (ISPに接続するID) (ISPに接続するパスワード) ppp lcp mru on 1454 ppp ipcp ipaddress on ppp ipcp msext on ppp ccp type none ip pp mtu 1454 ip pp nat descriptor 1 pp enable 1 |
L2TP接続を受け入れるための設定 | pp select anonymous pp bind tunnel1-tunnel2 pp auth request (認証方式) pp auth username (PPPユーザー名1) (PPPパスワード1) # 注釈1 pp auth username (PPPユーザー名2) (PPPパスワード2) # 注釈1 ppp ipcp ipaddress on ppp ipcp msext on ip pp remote address pool 192.168.100.10-192.168.100.20 ip pp mtu 1258 pp enable anonymous |
L2TP接続で使用するトンネルの設定 (クライアントA) |
tunnel select 1 tunnel encapsulation l2tp ipsec tunnel 101 ipsec sa policy 101 1 esp (暗号化アルゴリズム) (認証アルゴリズム) ipsec ike keepalive use 1 off ipsec ike local address 1 192.168.100.1 ipsec ike nat-traversal 1 on ipsec ike pre-shared-key 1 text (事前共有鍵) ipsec ike remote address 1 any l2tp tunnel disconnect time off l2tp keepalive use on 10 3 l2tp keepalive log on l2tp syslog on ip tunnel tcp mss limit auto tunnel enable 1 |
L2TP接続で使用するトンネルの設定 (クライアントB) |
tunnel select 2 tunnel encapsulation l2tp ipsec tunnel 102 ipsec sa policy 102 2 esp (暗号化アルゴリズム) (認証アルゴリズム) ipsec ike keepalive use 2 off ipsec ike local address 2 192.168.100.1 ipsec ike nat-traversal 2 on ipsec ike pre-shared-key 2 text (事前共有鍵) ipsec ike remote address 2 any l2tp tunnel disconnect time off l2tp keepalive use on 10 3 l2tp keepalive log on l2tp syslog on ip tunnel tcp mss limit auto tunnel enable 2 |
IPsecのトランス ポートモード設定 |
ipsec transport 1 101 udp 1701 ipsec transport 2 102 udp 1701 ipsec auto refresh on |
L2TP設定 | l2tp service on |
NATの設定 | nat descriptor type 1 masquerade nat descriptor address outer 1 ipcp nat descriptor address inner 1 auto nat descriptor masquerade static 1 1 192.168.100.1 esp # 注釈2 nat descriptor masquerade static 1 2 192.168.100.1 udp 500 # 注釈2 nat descriptor masquerade static 1 3 192.168.100.1 udp 4500 # 注釈3 |
DHCPの設定 | dhcp service server dhcp server rfc2131 compliant except remain-silent dhcp scope 1 192.168.100.30-192.168.100.191/24 |
DNSの設定 | dns host lan1 dns server (ISPより指定されたDNSサーバーのIPアドレス) dns private address spoof on |
Luaスクリプトのスケジュール設定 | schedule at 1 */mon 8:00 * lua (Luaスクリプトファイル名) |
注釈1:
Luaスクリプトによって変更されます。
注釈2:
VPN(IPsec)に関係するパケットを通過させる設定です。
注釈3:
VPN(IPsec:NATトラバーサル機能を使用時)に関係するパケットを通過させる設定です。
設定値 | -- 登録するユーザーの一覧(カンマで区切って列挙する) -- ワンタイムパスワードの文字数 (4 - 64 文字) -- メールの送信に失敗したときに出力する SYSLOG のレベル (info, debug, notice) |
---|---|
乱数を文字に変換するテーブル | wd_tbl = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "!", "$", "%", "&", "(", ")", "*", "+", ",", "-", ".", "/", ":", ";", "=", "@", "[", "]", "_", "`", "{", "|", "}", "~" } |
ワンタイムパスワードを作成する関数 | function make_pass(name) math.randomseed(os.time()) cmd = "pp auth username " .. name .. " " .. pass return pass |
メール送信を行う関数 | function send_mail(name, pass, mail_tbl) sjct = name .. " さんの新しいパスワードの通知" return rt.mail(mail_tbl) |
パラメーター確認を行う関数 | function check_param() if digits < 4 or 64 < digits then for i = 1, #user_tbl do return err |
メインルーチン | local i, pass, err if check_param() then for i = 1, #user_tbl do |
ご相談・お問い合わせ