記事一覧

OpenVPN その2

vyattaでの作業です。
何らかの方法でvyatta.alleycat.co.jp.tarをアップロードしておいてください。

どこかにアップロードしてwgetしてくるなり、FileZillaやEmFTPでアップロードするなり。

コンソールでconfigureで編集モードになる前に、openvpnのファイルを展開しておきます。
mkdir openvpn
mv vyatta.alleycat.co.jp.tar openvpn/
cd openvpn
tar xzf vyatta.alleycat.co.jp.tar

次いで、openvpnクライアントとして設定をします。
configure
set interfaces openvpn vtun10
set interfaces openvpn vtun10 mode client
set interfaces openvpn vtun10 openvpn-option "--cipher aes-128-cbc"
set interfaces openvpn vtun10 protocol tcp-active
set interfaces openvpn vtun10 remote-host alleycat.co.jp
set interfaces openvpn vtun10 remote-port 11194
set interfaces openvpn vtun10 tls
set interfaces openvpn vtun10 tls ca-cert-file /home/vyatta/openvpn/ca.crt
set interfaces openvpn vtun10 tls cert-file /home/vyatta/openvpn/vyatta.alleycat.co.jp.crt
set interfaces openvpn vtun10 tls key-file /home/vyatta/openvpn/vyatta.alleycat.co.jp.key
commit
save

次いで、OpenVPN上から流れてくるパケットを制限します。
OpenVPN経由からは、リモートデスクトップ以外の接続は拒否する前提です。

set firewall name FROM-EXTERNAL description "Block Unwanted OpenVPN Traffic"

set firewall name FROM-EXTERNAL rule 10 description "Accept Established-Related Connections"
set firewall name FROM-EXTERNAL rule 10 action accept
set firewall name FROM-EXTERNAL rule 10 state established enable
set firewall name FROM-EXTERNAL rule 10 state related enable
set firewall name FROM-EXTERNAL rule 10 log disable

set firewall name FROM-EXTERNAL rule 20 description "Remote Desktop Access"
set firewall name FROM-EXTERNAL rule 20 action accept
set firewall name FROM-EXTERNAL rule 20 protocol tcp
set firewall name FROM-EXTERNAL rule 20 source address 10.8.0.1/24
set firewall name FROM-EXTERNAL rule 20 destination port 3389
set firewall name FROM-EXTERNAL rule 20 log disable
commit

set firewall name TO-ROUTER description "Traffic Destined for Router Itself"
set firewall name TO-ROUTER rule 10 description "Accept Established-Related Connections"
set firewall name TO-ROUTER rule 10 action accept
set firewall name TO-ROUTER rule 10 state established enable
set firewall name TO-ROUTER rule 10 state related enable
set firewall name TO-ROUTER rule 10 log disable

set firewall name TO-ROUTER rule 20 description "Accept ICMP Unreachable"
set firewall name TO-ROUTER rule 20 action accept
set firewall name TO-ROUTER rule 20 protocol icmp
set firewall name TO-ROUTER rule 20 icmp type 3
set firewall name TO-ROUTER rule 20 log disable
set firewall name TO-ROUTER rule 22 description "Accept ICMP Echo Request"
set firewall name TO-ROUTER rule 22 action accept
set firewall name TO-ROUTER rule 22 protocol icmp
set firewall name TO-ROUTER rule 22 icmp type 8
set firewall name TO-ROUTER rule 22 log disable
set firewall name TO-ROUTER rule 24 description "Accept ICMP Time-Exceeded"
set firewall name TO-ROUTER rule 24 action accept
set firewall name TO-ROUTER rule 24 protocol icmp
set firewall name TO-ROUTER rule 24 icmp type 11
set firewall name TO-ROUTER rule 24 log disable

#普通ルータへのOpenVPN経由SSHログインは認めないので、
#このブロックは無視してよいです。
set firewall name TO-ROUTER rule 50 description "SSH Access"
set firewall name TO-ROUTER rule 50 action accept
set firewall name TO-ROUTER rule 50 protocol tcp
set firewall name TO-ROUTER rule 50 source address 10.8.0.1/24
set firewall name TO-ROUTER rule 50 destination port ssh
set firewall name TO-ROUTER rule 50 log disable

#普通ルータへのOpenVPN経由HTTPSログインは認めないので、
#このブロックは無視してよいです。
set firewall name TO-ROUTER rule 52 description "HTTPS Access"
set firewall name TO-ROUTER rule 52 action accept
set firewall name TO-ROUTER rule 52 protocol tcp
set firewall name TO-ROUTER rule 52 source address 10.8.0.1/24
set firewall name TO-ROUTER rule 52 destination port https
set firewall name TO-ROUTER rule 52 log disable

commit
save

set interfaces openvpn vtun10 firewall in name FROM-EXTERNAL
set interfaces openvpn vtun10 firewall local name TO-ROUTER
commit
save

こんな感じかな?
これでまだテストしてないので、コマンド直すかも。

OpenVPN その1

openVPNサーバーを立てます。

施設AのUbuntuに立て、esxi上のvyattaからアクセスさせます。

Ubuntuサーバーでの作業です。
詳細は(面倒くさいので)省きます。
sudo aptitude install openvpn
cp -pr /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
vi vars

一番下の
export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="me@myhost.mydomain"
を書き換え。
export KEY_COUNTRY="JP"
export KEY_PROVINCE="Tokyo"
export KEY_CITY="Setagaya"
export KEY_ORG="alleycat.co.jp"
export KEY_EMAIL="aaa@bbb.ccc"

mkdir keys
source ./vars
./clean-all

基本的に全部デフォルトで答えます。
./build-ca

基本的に全部デフォルトで答えます。
./build-key-server server

cp keys/ca.crt ../
cp keys/server.crt ../
cp keys/server.key ../

./build-dh
cp keys/dh1024.pem ../

ダミークライアントキーを作成
./build-key dummy
ダミークライアントキーを使用禁止指定
./revoke-full dummy
ダミークライアントキーの使用禁止情報を適用
cp keys/crl.pem ../

使用するクライアントキーの作成:パスあり
./build-key-pass cirno.alleycat.co.jp
./build-key-pass kanna.alleycat.co.jp

使用するクライアントキーの作成:パスなし
./build-key vyatta.alleycat.co.jp
>パスありにしたいけれどもvyattaでの設定方法が・・・。
>たぶん、openvpn-optionで指定するのだろうけれども。

*cirno 施設AのクライアントWindowsPC
*kanna 施設AのクライアントWindowsPC
*vyatta vyattaルータ

生成されたファイルのうち、
ca.crt
*.key
*.crt
が必要になります。
cd keys
tar czf vyatta.alleycat.co.jp.tar ca.crt vyatta.alleycat.co.jp.key vyatta.alleycat.co.jp.crt
tar czf kanna.alleycat.co.jp.tar ca.crt kanna.alleycat.co.jp.key kanna.alleycat.co.jp.crt
tar czf cirno.alleycat.co.jp.tar ca.crt cirno.alleycat.co.jp.key cirno.alleycat.co.jp.crt

vyatta.alleycat.co.jp.tarを施設Bへ持ち出し、何らかの方法でvyattaアカウントのホームの下に設置します。
kannaとcirnoは施設AのPCへ持ち込みます。

openvpnサーバーの設定ファイルはこんな感じになっています。
cd /etc/openvpn
grep -v -e "^[ \t]*[#;]" -e "^$" server.conf
port 11194
proto tcp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.241.0 255.255.255.0"
client-config-dir ccd
route 192.168.241.0 255.255.255.0
client-to-client
keepalive 10 120
cipher AES-128-CBC # AES
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn-status.log
log-append /var/log/openvpn.log
verb 3
management localhost 7505
crl-verify crl.pem

よくわからない解説:
port:デフォルトポート番号は使用したくないという、なんとなくな考えです。
proto:施設Aのルーター(もしかするとISP)が、なんでかudpを上手く通してくれなかった。
push:「openVPNネットワーク上に、192.168.241.0/24への出口があります」と通知
route:同上
client-to-client:openVPNのクライアント同士は通信できます
management:telnetコマンドで、接続状況を確認できます

ページ移動

  • 前のページ
  • 次のページ