Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Edge os(vyos)の基本(入門編)

3,149 views

Published on

EdgeRouterLITEでOpenVPN+LDAP連携してみました。
EdgeOS Ver1.2で動作させています。
EdgeOSのVer1.8では一部コマンドが削除されており動作しません。

Published in: Internet
  • Login to see the comments

Edge os(vyos)の基本(入門編)

  1. 1. EdgeOS(VyOS)の基本(入門編) EdgeOS Touch Meeting ver 0.1 広島サーバユーザ友の会(仮称) 第101回勉強会
  2. 2. とにかく、何か困ったらTABを押せ! ● コマンドの補完をしてくれます。 ● また、必要なパラメタなど簡易HELPが表示されます。 ○ 参考:http://goo.gl/8QM1kg
  3. 3. 2つのモード(OperationMode、ConfigurationMode) ● OperationMode ○ 設定を参照したり、負荷状況を見たり、設定以 外の作業をするモード ● ConfigurationMode ○ 設定をするモード ● ConfigurationModeとで使えるコマンドが違う
  4. 4. 各モードの見分け方 ● OperationMode hogehoge@vyos:~$ ● ConfigurationMode [edit] vagrant@vyos#
  5. 5. 各モードへの切り替え OperationModeからConfigurationModeへ移行 hogehoge@vyos:~$ configure ConfigurationModeからOperationModeへの移行 [edit] vagrant@vyos# exit
  6. 6. よく使うコマンドを列挙 以降はConfigurationModeでの説明になります。 ● 設定を確認する。 show <コマンド> 変更箇所には+-の表示が出る。 ● 設定をする。 set <コマンド> 例:set interface ethernet eth1 address 192.168.0.1/24 ● 設定を削除する。 delete <コマンド> 例:delete interface ethernet eth1 address 102.168.0.1/24
  7. 7. よく使うコマンドを列挙 以降はConfigurationModeでの説明になります。 ● 設定を確定する。 commit *注意* EdgeOS(VyOS)は通常のルータと違い、設定をしただけでは反映されません。 確定する作業をして始めて反映されます。 が、時々コミットにコケているのに一部だけ反映される場合があります。 こけた時showコマンドでどの設定が有効化されているか確認しましょう。
  8. 8. よく使うコマンドを列挙 以降はConfigurationModeでの説明になります。 ● 設定が誤っていたなどで、commit(確定)に失敗した場合、取り消す discard ● 確定した設定を恒久的に反映する。要するに保存する。 save *注意* 未確定の状態で保存することは出来ません。 ようは、commitが通らないと保存できません。 保存できていないということは、電源を切ると消えるということです。 注意しましょう。
  9. 9. ちょっとした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
  10. 10. 本日のお題 EdgeRouterLITEでOpenVPNサーバを構築する。 &LDAPと認証を連携させる。
  11. 11. 制限事項 今回は時間の都合上OpenVPNを中心にやりますので、 ● LDAPの構築及び解説はやらない。(Win2012SrvR2体験版でADを作る) ● FireWallの構築はやらない。 ● NATの設定は最低限のみ。 ● OpenVPN設定以外のルーティングもやらない。 ● タイムゾーン設定やDHCPサーバなど基本的な設定もしない。 ● OpenVPNのSite-to Site構成はしない。
  12. 12. ~今回の構成~
  13. 13. 実際に構築した模擬インターネット網
  14. 14. 機材が妙に古いのは気にしないでください(汗 ● 自宅にある勉強用機材で小型で持ち出せるものを選択しただけです。 ● IX2005やSSG5は重要ではなく、あくまで一般的なブロードバンド環境を再現してい るだけです。 ● 左のノートPCはFWやNAT配下で、直接インターネットに繋がっていないし、 EdgeRouterのLAN側にあるサーバに接続が出来ない設定がしてあります。 ● ようは普通のNAT環境ですね。この状態でインターネットは普通に接続できる状態 にしてあります。 ● この状態からVPNを張って、EdgeRouterのLAN側にあるサーバに接続できる設定 をEdgeRouterにしていきます。 ● EdgeRouter以外のサーバ、ルータは設定済み前提です。
  15. 15. その1:NICにIPを割り当てよう。 EdgeRouterLITEには3つのNICがあります。 普通のルータのように、WAN、LANという区別はありません。それは設定する人が定義 します。 今回はEth0をWAN側として、Eth2をLAN側として使用します。 まずはそれぞれにIPを割り当てます。 ConfigurationModeになって、それぞれ以下のコマンドを実行します。 set interfaces ethernet eth0 address 10.0.11.231/24 set interfaces ethernet eth2 address 192.168.0.1/24
  16. 16. その2:通信できるようにしよう NICにIPを割り当てただけでは、外部と通信することができません。 WAN側のデフォルトゲートウエイ(上位ISPへの通信経路設定)やDNSの設定などを追 加します。 ● デフォルトゲートウエイ設定 set system gateway-address 10.0.11.1 <---上位ISPルータのIP ● DNS設定 set system name-server 8.8.8.8 set service dns forwarding listen-on eth2 <---LAN側にDNSを転送する set service dns forwarding system
  17. 17. その2:通信できるようにしよう LAN側の複数台マシンがインターネット接続できるよう、NAT(IPマスカレード)設定をし ます。 なお、ここの構文はEdgeOS独自となり、VyOSは異なります。 EdgeOSの制限として、IPマスカレード設定の場合、 ルールの番号は5000以上10000以下でないとダメなようです。 set service nat rule 5000 outbound-interface eth0 set service nat rule 5000 type masquerade
  18. 18. その3:まずは普通に繋がることを確認しよう。 設定をしたら、必ずcommitを行い、設定を有効にしましょう。 有効にしたら、LAN側のサーバからインターネットに繋がることを確認します。 なお、今回FW設定をしていないので、WAN側から丸見えです。 試しに、WAN側にPCをつないで、EdgeRouterのWAN側IPでSSH接続してみましょう。 実際にはちゃんと設定してから繋がないと、こんなことになります・・・・
  19. 19. その4:いよいよOpenVPNの設定です。 実は、OpenVPNの設定はEdgeOSのコマンドだけで行うことができません。 EdgeOSのベースになっているLinux(Debian)にアクセスし、Linuxのコマンドを使わない といけません。 コマンドの詳細は省略しますので、今回はこの通り実行してください。 ● まずはEdgeOSからLinuxに切り替えます。 sudo su -
  20. 20. OpenVPNで必要な証明書の作成 cd /usr/share/doc/openvpn/examples/easy-rsa/2.0 . ./vars ./clean-all ./build-ca Country NameはJPを応答 State or Province NameにはHiroshimaを応答 Locality NameにはHiroshimaを応答 Organization Nameにはopenvpn-gwを応答 Organizational Unit Nameには空行を応答 Common Nameにはvpn-gwを応答 Nameには空行を応答 EmailAddressは空行を応答
  21. 21. OpenVPNで必要な証明書の作成 ./build-key-server vpn Country 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を応答
  22. 22. DHパラメタの生成 ./build-dh *注意*:結構時間がかかります。 これで必要なファイルがそろいました。 作成したファイルを指定した場所にコピーします。 cd keys cp ca.crt dh1024.pem vpn.crt vpn.key /config/auth/ また、ここで作成したca.crtファイルはクライアントで必要ですので、 ファイルに保存しておきます。 いったんEdgeOS側に戻ります。 exit
  23. 23. リポジトリの登録 OepnVPNとLDAPを連携させるため、EdgeOSに標準以外の、外部プログラムをインス トールします。 インストールするためのプログラムが置いてあるサーバの場所が記されたものをリポジ トリと呼びます。 EdgeOSはDebianというLinuxをベースに作られており、このDebianのリポジトリを登録 することにより、機能拡張をする事が出来ます。 では、ConfigurationModeに移行し、リポジトリの登録を行います。
  24. 24. リポジトリの登録 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
  25. 25. LDAP連携プログラムのインストールと設定 sudo apt-get install openvpn-auth-ldap でLDAP連携プログラムをインストールします。 次にインストールしたopenvpn-auth-ldapの設定を行います。
  26. 26. 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>
  27. 27. OpenVPNの設定 EdgeOSでOpenVPNの設定を行います。 edit interfaces openvpn vtun0 set 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' #クライアント同士の通信を許可
  28. 28. 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' #ログの出力先設定
  29. 29. 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' #サーバの証明書 exit commit save
  30. 30. 接続テスト 以上で設定は完了しました。 https://goo.gl/VtkamM からOpenVPN接続用クライアントをダウンロードし、作成したca.crtファイルとともに配布 し、設定します。 SSG5側にあるPCからADに登録したユーザ、パスワードでOpenVPNが接続でき、 内部サーバにアクセスできることを確認します。
  31. 31. 最後に EdgeRouterLITEは市販のルータと違い、DebianというPCでも動作するLinuxをベース に開発されているVyOSをベースに作成されており、本来の機能では出来ないことを、プ ログラムをインストールする事で機能拡張する事が出来ます。 EdgeOSにはWebでの設定画面がありますが、当然外部プログラムを追加した場合Web は使えません。 Webの設定がどういうコマンドになるのか、逆にコマンド設定はどのようにWeb画面に反 映されるのか調べてみると面白いかもしれません。 ルータをクラッキングするのは不正アクセスの第一歩です。 一気に設定せず、少しずつ確実に設定されていることを確認しましょう。

×