Slide 1

Slide 1 text

EdgeOS(VyOS)の基本(入門編) EdgeOS Touch Meeting ver 0.1 広島サーバユーザ友の会(仮称) 第101回勉強会

Slide 2

Slide 2 text

とにかく、何か困ったらTABを押せ! ● コマンドの補完をしてくれます。 ● また、必要なパラメタなど簡易HELPが表示されます。 ○ 参考:http://goo.gl/8QM1kg

Slide 3

Slide 3 text

2つのモード(OperationMode、ConfigurationMode) ● OperationMode ○ 設定を参照したり、負荷状況を見たり、設定以 外の作業をするモード ● ConfigurationMode ○ 設定をするモード ● ConfigurationModeとで使えるコマンドが違う

Slide 4

Slide 4 text

各モードの見分け方 ● OperationMode hogehoge@vyos:~$ ● ConfigurationMode [edit] vagrant@vyos#

Slide 5

Slide 5 text

各モードへの切り替え OperationModeからConfigurationModeへ移行 hogehoge@vyos:~$ configure ConfigurationModeからOperationModeへの移行 [edit] vagrant@vyos# exit

Slide 6

Slide 6 text

よく使うコマンドを列挙 以降はConfigurationModeでの説明になります。 ● 設定を確認する。 show <コマンド> 変更箇所には+-の表示が出る。 ● 設定をする。 set <コマンド> 例:set interface ethernet eth1 address 192.168.0.1/24 ● 設定を削除する。 delete <コマンド> 例:delete interface ethernet eth1 address 102.168.0.1/24

Slide 7

Slide 7 text

よく使うコマンドを列挙 以降はConfigurationModeでの説明になります。 ● 設定を確定する。 commit *注意* EdgeOS(VyOS)は通常のルータと違い、設定をしただけでは反映されません。 確定する作業をして始めて反映されます。 が、時々コミットにコケているのに一部だけ反映される場合があります。 こけた時showコマンドでどの設定が有効化されているか確認しましょう。

Slide 8

Slide 8 text

よく使うコマンドを列挙 以降はConfigurationModeでの説明になります。 ● 設定が誤っていたなどで、commit(確定)に失敗した場合、取り消す discard ● 確定した設定を恒久的に反映する。要するに保存する。 save *注意* 未確定の状態で保存することは出来ません。 ようは、commitが通らないと保存できません。 保存できていないということは、電源を切ると消えるということです。 注意しましょう。

Slide 9

Slide 9 text

ちょっとした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 を打ってみると、 Possible completions: + address IP address bond-group Assign interface to bonding group ↑ set interface ethernet eth0 からのコマンドたちになっている。 この状態から抜ける場合は exit

Slide 10

Slide 10 text

本日のお題 EdgeRouterLITEでOpenVPNサーバを構築する。 &LDAPと認証を連携させる。

Slide 11

Slide 11 text

制限事項 今回は時間の都合上OpenVPNを中心にやりますので、 ● LDAPの構築及び解説はやらない。(Win2012SrvR2体験版でADを作る) ● FireWallの構築はやらない。 ● NATの設定は最低限のみ。 ● OpenVPN設定以外のルーティングもやらない。 ● タイムゾーン設定やDHCPサーバなど基本的な設定もしない。 ● OpenVPNのSite-to Site構成はしない。

Slide 12

Slide 12 text

~今回の構成~

Slide 13

Slide 13 text

実際に構築した模擬インターネット網

Slide 14

Slide 14 text

機材が妙に古いのは気にしないでください(汗 ● 自宅にある勉強用機材で小型で持ち出せるものを選択しただけです。 ● IX2005やSSG5は重要ではなく、あくまで一般的なブロードバンド環境を再現してい るだけです。 ● 左のノートPCはFWやNAT配下で、直接インターネットに繋がっていないし、 EdgeRouterのLAN側にあるサーバに接続が出来ない設定がしてあります。 ● ようは普通のNAT環境ですね。この状態でインターネットは普通に接続できる状態 にしてあります。 ● この状態からVPNを張って、EdgeRouterのLAN側にあるサーバに接続できる設定 をEdgeRouterにしていきます。 ● EdgeRouter以外のサーバ、ルータは設定済み前提です。

Slide 15

Slide 15 text

その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

Slide 16

Slide 16 text

その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

Slide 17

Slide 17 text

その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

Slide 18

Slide 18 text

その3:まずは普通に繋がることを確認しよう。 設定をしたら、必ずcommitを行い、設定を有効にしましょう。 有効にしたら、LAN側のサーバからインターネットに繋がることを確認します。 なお、今回FW設定をしていないので、WAN側から丸見えです。 試しに、WAN側にPCをつないで、EdgeRouterのWAN側IPでSSH接続してみましょう。 実際にはちゃんと設定してから繋がないと、こんなことになります・・・・

Slide 19

Slide 19 text

その4:いよいよOpenVPNの設定です。 実は、OpenVPNの設定はEdgeOSのコマンドだけで行うことができません。 EdgeOSのベースになっているLinux(Debian)にアクセスし、Linuxのコマンドを使わない といけません。 コマンドの詳細は省略しますので、今回はこの通り実行してください。 ● まずはEdgeOSからLinuxに切り替えます。 sudo su -

Slide 20

Slide 20 text

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は空行を応答

Slide 21

Slide 21 text

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を応答

Slide 22

Slide 22 text

DHパラメタの生成 ./build-dh *注意*:結構時間がかかります。 これで必要なファイルがそろいました。 作成したファイルを指定した場所にコピーします。 cd keys cp ca.crt dh1024.pem vpn.crt vpn.key /config/auth/ また、ここで作成したca.crtファイルはクライアントで必要ですので、 ファイルに保存しておきます。 いったんEdgeOS側に戻ります。 exit

Slide 23

Slide 23 text

リポジトリの登録 OepnVPNとLDAPを連携させるため、EdgeOSに標準以外の、外部プログラムをインス トールします。 インストールするためのプログラムが置いてあるサーバの場所が記されたものをリポジ トリと呼びます。 EdgeOSはDebianというLinuxをベースに作られており、このDebianのリポジトリを登録 することにより、機能拡張をする事が出来ます。 では、ConfigurationModeに移行し、リポジトリの登録を行います。

Slide 24

Slide 24 text

リポジトリの登録 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

Slide 25

Slide 25 text

LDAP連携プログラムのインストールと設定 sudo apt-get install openvpn-auth-ldap でLDAP連携プログラムをインストールします。 次にインストールしたopenvpn-auth-ldapの設定を行います。

Slide 26

Slide 26 text

openvpn-auth-ldapの設定 vi /config/auth/ldap.conf URL ldap://192.168.0.10 ←-ADサーバのIP BindDN cn=ldap,ou=example,dc=example,dc=local  <---ADの構成によって異なる。cn=はLDAPバインド用ユーザ名 Password Timeout 15 TLSEnable no FollowReferrals yes BaseDN "ou=example,dc=example,dc=local" <---上記同様ADの構成によって異なる。 SearchFilter "(&(sAMAccountName=%u))" ←--ADの場合、ユーザ認証で使用するプロパティがsAMAccountNameになる。 RequireGroup false

Slide 27

Slide 27 text

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' #クライアント同士の通信を許可

Slide 28

Slide 28 text

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' #ログの出力先設定

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

接続テスト 以上で設定は完了しました。 https://goo.gl/VtkamM からOpenVPN接続用クライアントをダウンロードし、作成したca.crtファイルとともに配布 し、設定します。 SSG5側にあるPCからADに登録したユーザ、パスワードでOpenVPNが接続でき、 内部サーバにアクセスできることを確認します。

Slide 31

Slide 31 text

最後に EdgeRouterLITEは市販のルータと違い、DebianというPCでも動作するLinuxをベース に開発されているVyOSをベースに作成されており、本来の機能では出来ないことを、プ ログラムをインストールする事で機能拡張する事が出来ます。 EdgeOSにはWebでの設定画面がありますが、当然外部プログラムを追加した場合Web は使えません。 Webの設定がどういうコマンドになるのか、逆にコマンド設定はどのようにWeb画面に反 映されるのか調べてみると面白いかもしれません。 ルータをクラッキングするのは不正アクセスの第一歩です。 一気に設定せず、少しずつ確実に設定されていることを確認しましょう。