Upload
akira-kaneda
View
1.016
Download
1
Embed Size (px)
Citation preview
2つのモード(OperationMode、ConfigurationMode)
● OperationMode○ 設定を参照したり、負荷状況を見たり、設定以
外の作業をするモード
● ConfigurationMode○ 設定をするモード
● ConfigurationModeとで使えるコマンドが違う
各モードへの切り替え
OperationModeからConfigurationModeへ移行
hogehoge@vyos:~$ configure
ConfigurationModeからOperationModeへの移行
[edit]vagrant@vyos# exit
よく使うコマンドを列挙以降はConfigurationModeでの説明になります。
● 設定を確認する。
show <コマンド>変更箇所には+-の表示が出る。
● 設定をする。
set <コマンド>例:set interface ethernet eth1 address 192.168.0.1/24
● 設定を削除する。
delete <コマンド>例:delete interface ethernet eth1 address 102.168.0.1/24
よく使うコマンドを列挙
以降はConfigurationModeでの説明になります。
● 設定を確定する。
commit
*注意*EdgeOS(VyOS)は通常のルータと違い、設定をしただけでは反映されません。
確定する作業をして始めて反映されます。
が、時々コミットにコケているのに一部だけ反映される場合があります。
こけた時showコマンドでどの設定が有効化されているか確認しましょう。
よく使うコマンドを列挙以降はConfigurationModeでの説明になります。
● 設定が誤っていたなどで、commit(確定)に失敗した場合、取り消す
discard
● 確定した設定を恒久的に反映する。要するに保存する。
save*注意*未確定の状態で保存することは出来ません。
ようは、commitが通らないと保存できません。
保存できていないということは、電源を切ると消えるということです。
注意しましょう。
ちょっとしたTips長いコマンドを省略したい
同じレベル(設定対象)の場合、省略できます。
* VBでいうUGINGみたいなもの
例:
[edit]vagrant@vyos# set interfaces ethernet eth0 address 192.168.0.1/24[edit]vagrant@vyos# set interfaces ethernet eth0 speed 1000
とかだと、設定対象が同じeth0なので、以下のようにすることで省略できます。
[edit]vagrant@vyos# edit interfaces ethernet eth0[edit interfaces ethernet eth0] <---ここが変わる。以降はinterface ethernet eth0が省略された状態からスタート。
vagrant@vyos# set <TAB> を打ってみると、
Possible completions:+ address IP address bond-group Assign interface to bonding group↑set interface ethernet eth0 からのコマンドたちになっている。
この状態から抜ける場合はexit
制限事項
今回は時間の都合上OpenVPNを中心にやりますので、
● LDAPの構築及び解説はやらない。(Win2012SrvR2体験版でADを作る)● FireWallの構築はやらない。
● NATの設定は最低限のみ。
● OpenVPN設定以外のルーティングもやらない。
● タイムゾーン設定やDHCPサーバなど基本的な設定もしない。
● OpenVPNのSite-to Site構成はしない。
機材が妙に古いのは気にしないでください(汗
● 自宅にある勉強用機材で小型で持ち出せるものを選択しただけです。
● IX2005やSSG5は重要ではなく、あくまで一般的なブロードバンド環境を再現してい
るだけです。
● 左のノートPCはFWやNAT配下で、直接インターネットに繋がっていないし、
EdgeRouterのLAN側にあるサーバに接続が出来ない設定がしてあります。
● ようは普通のNAT環境ですね。この状態でインターネットは普通に接続できる状態
にしてあります。
● この状態からVPNを張って、EdgeRouterのLAN側にあるサーバに接続できる設定
をEdgeRouterにしていきます。
● EdgeRouter以外のサーバ、ルータは設定済み前提です。
その1:NICにIPを割り当てよう。
EdgeRouterLITEには3つのNICがあります。
普通のルータのように、WAN、LANという区別はありません。それは設定する人が定義
します。
今回はEth0をWAN側として、Eth2をLAN側として使用します。
まずはそれぞれにIPを割り当てます。
ConfigurationModeになって、それぞれ以下のコマンドを実行します。
set interfaces ethernet eth0 address 10.0.11.231/24set interfaces ethernet eth2 address 192.168.0.1/24
その2:通信できるようにしよう
NICにIPを割り当てただけでは、外部と通信することができません。
WAN側のデフォルトゲートウエイ(上位ISPへの通信経路設定)やDNSの設定などを追
加します。
● デフォルトゲートウエイ設定
set system gateway-address 10.0.11.1 <---上位ISPルータのIP● DNS設定
set system name-server 8.8.8.8set service dns forwarding listen-on eth2 <---LAN側にDNSを転送する
set service dns forwarding system
その2:通信できるようにしよう
LAN側の複数台マシンがインターネット接続できるよう、NAT(IPマスカレード)設定をし
ます。
なお、ここの構文はEdgeOS独自となり、VyOSは異なります。
EdgeOSの制限として、IPマスカレード設定の場合、
ルールの番号は5000以上10000以下でないとダメなようです。
set service nat rule 5000 outbound-interface eth0set service nat rule 5000 type masquerade
その3:まずは普通に繋がることを確認しよう。
設定をしたら、必ずcommitを行い、設定を有効にしましょう。
有効にしたら、LAN側のサーバからインターネットに繋がることを確認します。
なお、今回FW設定をしていないので、WAN側から丸見えです。
試しに、WAN側にPCをつないで、EdgeRouterのWAN側IPでSSH接続してみましょう。
実際にはちゃんと設定してから繋がないと、こんなことになります・・・・
その4:いよいよOpenVPNの設定です。
実は、OpenVPNの設定はEdgeOSのコマンドだけで行うことができません。
EdgeOSのベースになっているLinux(Debian)にアクセスし、Linuxのコマンドを使わない
といけません。
コマンドの詳細は省略しますので、今回はこの通り実行してください。
● まずはEdgeOSからLinuxに切り替えます。
sudo su -
OpenVPNで必要な証明書の作成cd /usr/share/doc/openvpn/examples/easy-rsa/2.0. ./vars./clean-all./build-caCountry NameはJPを応答
State or Province NameにはHiroshimaを応答
Locality NameにはHiroshimaを応答
Organization Nameにはopenvpn-gwを応答
Organizational Unit Nameには空行を応答
Common Nameにはvpn-gwを応答
Nameには空行を応答
EmailAddressは空行を応答
OpenVPNで必要な証明書の作成./build-key-server vpnCountry NameはJPを応答
State or Province NameにはHiroshimaを応答
Locality NameにはHiroshimaを応答
Organization Nameにはopenvpn-gwを応答
Organizational Unit Nameには空行を応答
Common Nameにはvpn-gwを応答
Nameには空行を応答
EmailAddressは空行を応答
A challenge passwordは空行を応答
An optional company nameは空行を応答
Sign the certificate?にはyを応答
1 out of 1 certificate requests certified, commit?にはyを応答
DHパラメタの生成./build-dh*注意*:結構時間がかかります。
これで必要なファイルがそろいました。
作成したファイルを指定した場所にコピーします。
cd keyscp ca.crt dh1024.pem vpn.crt vpn.key /config/auth/また、ここで作成したca.crtファイルはクライアントで必要ですので、
ファイルに保存しておきます。
いったんEdgeOS側に戻ります。
exit
リポジトリの登録
OepnVPNとLDAPを連携させるため、EdgeOSに標準以外の、外部プログラムをインス
トールします。
インストールするためのプログラムが置いてあるサーバの場所が記されたものをリポジ
トリと呼びます。
EdgeOSはDebianというLinuxをベースに作られており、このDebianのリポジトリを登録
することにより、機能拡張をする事が出来ます。
では、ConfigurationModeに移行し、リポジトリの登録を行います。
リポジトリの登録
configure
set system package repository wheezy components 'main contrib non-free'
set system package repository wheezy distribution wheezy
set system package repository wheezy url http://http.us.debian.org/debian
set system package repository wheezy-security components main
set system package repository wheezy-security distribution wheezy/updates
set system package repository wheezy-security url http://security.debian.org
commit
save
*参考*:https://goo.gl/ztrvUw
LDAP連携プログラムのインストールと設定
sudo apt-get install openvpn-auth-ldap
でLDAP連携プログラムをインストールします。
次にインストールしたopenvpn-auth-ldapの設定を行います。
openvpn-auth-ldapの設定
vi /config/auth/ldap.conf
<LDAP> URL ldap://192.168.0.10 ←-ADサーバのIP BindDN cn=ldap,ou=example,dc=example,dc=local <---ADの構成によって異なる。cn=はLDAPバインド用ユーザ名
Password <LDAPバインドユーザのPW> Timeout 15 TLSEnable no FollowReferrals yes</LDAP>
<Authorization> BaseDN "ou=example,dc=example,dc=local" <---上記同様ADの構成によって異なる。
SearchFilter "(&(sAMAccountName=%u))" ←--ADの場合、ユーザ認証で使用するプロパティがsAMAccountNameになる。
RequireGroup false</Authorization>
OpenVPNの設定
EdgeOSでOpenVPNの設定を行います。
edit interfaces openvpn vtun0set local-port '1194'set mode 'server'set openvpn-option '--push route 192.168.0.0 255.255.255.0' #0.0/24はOpenVPNにするルーティング追加
set openvpn-option '--push dhcp-option DNS 192.168.0.1' #OpenVPNがクライアント
に配信するDNSサーバの設定
set openvpn-option '--comp-lzo' #LZO圧縮を有効化
set openvpn-option '--client-to-client' #クライアント同士の通信を許可
OpenVPNの設定
set openvpn-option '--push redirect-gateway def1' #すべての通信をOpenVPN経由
にする。
set openvpn-option '--script-security 2' #外部スクリプトのセキュリティレベル設定らし
い
set openvpn-option '--client-cert-not-required' #接続に証明書を使用しない
set openvpn-option '--username-as-common-name' #ユーザ名を使用する
set openvpn-option '--tmp-dir /dev/shm' #認証時使用する一時領域設定
set openvpn-option "--plugin /usr/lib/openvpn/openvpn-auth-ldap.so /config/auth/ldap.conf" #プラグインopenvpn-atuh-ldapの使用と設定ファイル指定
set openvpn-option '--log-append /var/log/openvpn.log' #ログの出力先設定
OpenVPNの設定
set server subnet '192.168.20.0/24' #クライアントへ配信するVPNのネットワークアド
レス
set tls ca-cert-file '/config/auth/ca.crt' #認証局の証明書
set tls cert-file '/config/auth/vpn.crt' #サーバの秘密鍵
set tls dh-file '/config/auth/dh1024.pem' #DHパラメタ
set tls key-file '/config/auth/vpn.key' #サーバの証明書
exitcommit
save
接続テスト
以上で設定は完了しました。
https://goo.gl/VtkamM
からOpenVPN接続用クライアントをダウンロードし、作成したca.crtファイルとともに配布
し、設定します。
SSG5側にあるPCからADに登録したユーザ、パスワードでOpenVPNが接続でき、
内部サーバにアクセスできることを確認します。
最後にEdgeRouterLITEは市販のルータと違い、DebianというPCでも動作するLinuxをベース
に開発されているVyOSをベースに作成されており、本来の機能では出来ないことを、プ
ログラムをインストールする事で機能拡張する事が出来ます。
EdgeOSにはWebでの設定画面がありますが、当然外部プログラムを追加した場合Webは使えません。
Webの設定がどういうコマンドになるのか、逆にコマンド設定はどのようにWeb画面に反
映されるのか調べてみると面白いかもしれません。
ルータをクラッキングするのは不正アクセスの第一歩です。
一気に設定せず、少しずつ確実に設定されていることを確認しましょう。