#author("2023-07-09T06:28:02+09:00","default:dramsukohome","dramsukohome")
#author("2023-07-09T06:28:34+09:00","default:dramsukohome","dramsukohome")
[[Linux]]

#shadowheader(1,VPN Centos);

#Contents




*vpn 比較 [#q1af3335]
-[[こちら:http://jp.giganews.com/vyprvpn/compare-vpn-protocols.html]]のサイト参照
-- openVPN を初めにインストールしましたが、~
ios へ対応していないのでボツ
-- 次に pptp をインストールしましたが、~
emobile に対応していないのでボツ
-- 最後に L2TP をインストール




*pptp サーバー構築 (CentOS 5) [#jd2be6ab]
- ppp のインストール
-- yum install ppp
- download
-- [[http://sourceforge.net/projects/poptop/files/:http://sourceforge.net/projects/poptop/files/]]
- rpm build のためファイルを下記ディレクトリへコピー
-- cp ./pptpd-1.3.4.tar.gz /usr/src/redhat/SOURCES/
- rpm を build
-- rpmbuild -ta pptpd-1.3.4.tar.gz
- rpm からインストール
-- cd /usr/src/redhat/RPMS/i386/
-- rpm -ivh pptpd-1.3.4-1.i386.rpm
- /etc/pptpd.conf 編集
-- vi /etc/pptpd.conf
-- 最後に下記を追加
 ppp /usr/sbin/pppd
 localip 192.168.1.101-110
 remoteip 192.168.2.111-120
 
 #logwtmp < logwtmp をコメントアウト
- ppp の設定
-- vi /etc/ppp/options.pptpd
 name pptpd
 domain tar3.net
 
 # localip と remoteip が LAN 側サブネットに含まれる場合は proxyarp を有効にします。
 proxyarp
 
 auth
 lock
 
 refuse-pap
 refuse-chap
 refuse-mschap
 
 require-mschap-v2
 require-mppe-128
 
 ms-dns 192.168.1.37
 ms-dns 192.168.1.1
 ms-wins 192.168.1.37
 
 nobsdcomp
 
 novj
 novjcomp
 
 nologfd
 
 mtu 1200
 mru 1200
 
 debug
-- vi /etc/ppp/chap-secrets
 hoge pptpd password  *
- ルーティング機能を有効にする
-- echo 1 > /proc/sys/net/ipv4/ip_forward
-- vi /etc/sysctl.conf
 net.ipv4.ip_forward = 1
- ファイアウォールの 1723 と 47 のポートを開ける(iptables)
-- vi /etc/sysconfig/iptables
 -A FORWARD -i ppp+ -j ACCEPT
 -A FORWARD -o ppp+ -j ACCEPT
 -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
 
 -A INPUT -p gre -j ACCEPT
 -A INPUT -p tcp -m state --state NEW -m tcp --dport 1723 -j ACCEPT
- 外とのルーターポートをNATで開ける
-- 1723 と 47 ポート
- Windowsのネットワークコンピュータで LAN内部の別コンピュータのが見えるように~
-- /etc/samba/smb.conf を編集
 [root@sv22 ~]# vi /etc/samba/smb.conf
 ; domain master = yes
  ↓
 domain master = yes
 
 ; local master = no
  ↓
 local master = yes
 
 ; preferred master = yes
  ↓
 preferred master = yes
 
 ; os level = 33
  ↓
 os level = 65
 
 ; wins support = yes
  ↓
 wins support = yes
-Samba再起動
 [root@sv22 ~]# /etc/rc.d/init.d/smb restart
 SMB サービスを停止中: [ OK ]
 NMB サービスを停止中: [ OK ]
 SMB サービスを起動中: [ OK ]
 NMB サービスを起動中: [ OK ]




*L2TP サーバー構築(centos 5) [#j22d5570]



**参考サイト [#zb999906]
-[[参考外部サイト:http://sig9.hatenablog.com/entry/2015/07/12/233445]]



**CentOS に epel レポジトリのインストール [#n91c6a50]
- 参考URL~
--[[32bit版CentOS 6の場合は:http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/i386/]]
--[[64bit版CentOS 6の場合は:http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/]]
--[[32bit版CentOS 5の場合は:http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/5/i386/]]
--[[64bit版CentOS 5の場合は:http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/5/x86_64/]]
-CentOS 5.5 に EPEL リポジトリを追加する
--cd /etc/pki/rpm-gpg/
--wget http://mirrors.ustc.edu.cn/fedora/epel/RPM-GPG-KEY-EPEL
--rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
--rpm -ivh http://mirrors.ustc.edu.cn/fedora/epel/5/i386/epel-release-5-
-CentOS 6(32bit) に EPEL リポジトリを追加
 rpm -Uvh http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
 vi /etc/yum.repos.d/epel.repo
-EPEL リポジトリの利用準備が整ったら、L2TP を実現するためのパッケージ "xl2tpd" をインストール
--yum install xl2tpd



** 編集ファイル一覧 [#n17a162c]
- /etc/xl2tpd/xl2tpd.conf
- /etc/ppp/options.xl2tpd
- /etc/strongswan/ipsec.conf
- /etc/strongswan/ipsec.d/l2tp-psk.conf
- /etc/strongswan/ipsec.secrets
- /etc/sysctl.conf
- /etc/ppp/chap-secrets
- /etc/sysconfig/selinux
- /etc/sysconfig/iptables



** /etc/xl2tpd/xl2tpd.conf の編集 [#u3f05004]
-- vi /etc/xl2tpd/xl2tpd.conf
 [global]
 [lns default]
 ip range = 192.168.1.128-192.168.1.254
 local ip = 192.168.1.99
 require chap = yes
 refuse pap = yes
 require authentication = yes
 name = VPNserver
 ppp debug = yes
 pppoptfile = /etc/ppp/options.xl2tpd
 length bit = yes



** /etc/ppp/options.xl2tpdの編集 [#ya1c1e82]
-- vi /etc/ppp/options.xl2tpd
 auth
 crtscts
 debug
 lock
 proxyarp
 
 refuse-pap
 refuse-chap
 refuse-mschap
 require-mschap-v2
 
 logfile /var/log/xl2tpd.log 
 
 ms-dns  192.168.1.1
 ms-dns  192.168.1.2
 
 ipcp-accept-local
 ipcp-accept-remote



** IPSec のインストール [#xd64f958]


*** strongswan のインストール(yum) [#c8a76e5c]
openswan にiPhoneからつながらない不具合が有り、~
strongswan に変更
 yum install strongswan


*** /etc/strongswan/ipsec.conf の編集 [#j93d9be0]
- vi /etc/strongswan/ipsec.conf
 version 2.0
 
 config setup
  protostack=netkey
  nat_traversal=yes
 include /etc/strongswan/ipsec.d/*.conf


*** /etc/strongswan/ipsec.d/l2tp-psk.conf ファイルの作成 [#p3f5fcf9]
- vi /etc/strongswan/ipsec.d/l2tp-psk.conf
 conn L2TP-PSK-NAT
        rightsubnet=0.0.0.0/0
        #rightsubnet=vhost:%priv
        forceencaps=yes
        dpddelay=10
        dpdtimeout=30
        dpdaction=clear
        also=L2TP-PSK-noNAT
 conn L2TP-PSK-noNAT
 #conn L2TP-PSK
 #
 # Configuration for one user with any type of IPsec/L2TP client
 # including the updated Windows 2000/XP (MS KB Q818043), but
 # excluding the non-updated Windows 2000/XP.
 #
 #
 # Use a Preshared Key. Disable Perfect Forward Secrecy.
 #
 # PreSharedSecret needs to be specified in /etc/ipsec.secrets as
 # YourIPAddress  %any: "sharedsecret"
         authby=secret
         pfs=no
         auto=add
         keyingtries=3
         
         # we cannot rekey for %any, let client rekey
         rekey=no
  
         # Apple iOS doesn't send delete notify so we need dead peer detection
         # to detect vanishing clients
         #dpddelay=5
         #dpdtimeout=10
         #dpdaction=clear
  
         # Set ikelifetime and keylife to same defaults windows has
         ikelifetime=8h
         keylife=1h
         
         # l2tp-over-ipsec is transport mode
         type=transport
  
         left=192.168.1.3
         leftnexthop=%defaultroute
         #leftsubnet=192.168.1.0/24 
         
         # For updated Windows 2000/XP clients,
         # to support old clients as well, use leftprotoport=17/%any
         leftprotoport=17/1701
         
         # The remote user.
         right=%any
         
         # Using the magic port of "%any" means "any one single port". This is
         # a work around required for Apple OSX clients that use a randomly
         # high port.
         
         rightprotoport=17/%any
         #rightprotoport=17/0
         
         #ike=3des-md5
         #esp=3des-md5
         #forceencaps=yes
         
         


*** /etc/strongswan/ipsec.secrets の編集 [#cb93133f]
- vi /etc/strongswan/ipsec.secrets
 : PSK "password"
 
 include /etc/strongswan/ipsec.d/*.secrets
- root 以外の参照禁止
--chmod go-rwx /etc/strongswan/ipsec.secrets



** 起動 [#b26bc26a]
- service strongswan start
- service xl2tpd start



** 自動起動の設定 [#fcf48df3]
-chkconfig strongswan on
-chkconfig xl2tpd on



**NETKEY detected, testing for disabled ICMP send_redirects [FAILED] 対策 [#uce6303e]
- vi /etc/sysctl.conf
 net.ipv4.conf.all.send_redirects = 0
 net.ipv4.conf.all.accept_redirects = 0
 net.ipv4.conf.default.send_redirects = 0
 net.ipv4.conf.default.accept_redirects = 0
 net.ipv4.conf.lo.send_redirects = 0
 net.ipv4.conf.lo.accept_redirects = 0
 net.ipv4.conf.eth0.send_redirects = 0
 net.ipv4.conf.eth0.accept_redirects = 0
 net.ipv4.conf.eth1.send_redirects = 0
 net.ipv4.conf.eth1.accept_redirects = 0
 
 net.ipv4.ip_forward = 1



**反映 [#j7a75f4b]
- sysctl -p



**Pluto listening for IKE on udp 500 Pluto listening for NAT-T on udp 4500 [FAILED] 対応 [#f4032877]
 yum install lsof



**libpcap-devel のインストール [#n440e100]
 yum install libpcap-devel ppp



** selinux 無効化 [#z2663064]
- vi /etc/sysconfig/selinux
 SELINUX=disabled



** サーバーの再起動 [#u6a717ae]



** iptables 編集 [#t47573ec]
- vi /etc/sysconfig/iptables
-- 追加
 -A FORWARD -i ppp+ -j ACCEPT
 -A FORWARD -o ppp+ -j ACCEPT
 -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
 
 -A INPUT -p esp -j ACCEPT
 -A INPUT -p udp -m udp --dport 50 -j ACCEPT
 -A INPUT -p udp -m udp --dport 500 -j ACCEPT
 -A INPUT -p udp -m udp --dport 4500 -j ACCEPT
 -A INPUT -p udp -m udp --dport 1701 -j ACCEPT



** /etc/ppp/chap-secrets の編集 [#f3e9a6dc]
- vi /etc/ppp/chap-secrets
 # アカウント    接続名    パスワード    IPアドレス
 "vpn-account"    *    "vpn-password"    *



** log ファイル、ひな形の作成 [#y61f1ddf]
 touch /var/log/xl2tpd.log



** ルーターのポート開放 [#r22a8dec]
- udp 500
- udp 4500
- 50
- 1701



** Client の設定 [#f328d2b5]


*** Windows [#h58ac449]
+レジストリの変更 [#k194a06b]
-- regedit
--- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent
--- 新規 「DWORD値」[AssumeUDPEncapsulationContextOnSendRule ]
--- 値 2
+ Windows,エラー,1 [#gd104903]
-指定したユーザー名またはパスワードが認識されないか、選択した認証プロトコルがリモート アクセス サーバーで許可されていないため、リモート接続が拒否されました。」
--本当にパスワードが間違えてる。
--コピペでなく手打ちすると直った。



*** iPhone [#y23e04af]
+iPhone の設定で気をつけること [#cd5fd356]
「全ての全ての通信を送信」のチェックがOnだと AU wifi につなげた状態では~
VPN に繋がりませんでした。チェックをオフにすると繋がります。


*** Linux(Ubuntu) [#r3218d82]
-関連ソフトのインストール
 sudo apt install network-manager-openvpn network-manager-l2tp
-以下,KDEでの設定
++ 「設定」-「接続」
++ 「+」 -> 「レイヤ2トンネリング プロトコル(L2TP)」を選択
+++ 接続名:適当に決める
+++ 「VPN(l2tp)」タブを選択
+++ Gateway : 接続先URL  例) vpn.hoge.net
+++ User name : ユーザー名
+++ Password : パスワード
++ 「IPSec Settings...」ボタン
+++ チェックオン「Enable IPsec tunnel to L2TP host」
+++ 「Pre-shared key」を入力




* OpenVPN [#md0d17c9]
-[[参考サイト:https://centossrv.com/openvpn.shtml]]



** 設定関連図(構成図) [#k4621803]
Client1 -> Internet - udp -> キャリアルーター -> VPN サーバ -> Internet(全ての通信がVPNサーバ経由を目標とする)~
※tcp は重い。server.conf に tcp-nodelay オプションを記入することにより改善されるが重い。~
※tcp にするには、server.conf で udp を無効化しtcp を有効化。 同様に client 設定ファイルも行う。



** OpenVPN Install [#v02e754c]


*** 必要なパッケージのインストール [#e05fe3f7]
 sudo yum -y install openssl-devel lzo-devel pam-devel gcc


*** OpenVPN のインストール [#i36f5d11]
 mkdir temp
 wget http://swupdate.openvpn.org/community/releases/openvpn-2.3.12.tar.gz
- rpm-buildのインストール
--[[このリンク先を参照(サイト内)>Linux#y2790b50]]
- RPM パッケージの生成
 sudo rpmbuild -tb --clean openvpn-2.3.12.tar.gz
- RPM パッケージからインストール
 sudo yum -y localinstall ~/rpmbuild/RPMS/x86_64/openvpn-2.3.12-1.x86_64.rpm


*** easy-rsa のインストール [#ld9dbc80]
 cd ~/temp
 wget https://github.com/OpenVPN/easy-rsa/archive/master.zip
 unzip master.zip
- easy-rsa をコピー
 sudo cp -r easy-rsa-master/easyrsa3/ /etc/openvpn/



** 証明書の作成とファイルのコピー [#r543789a]
※以下 su - で実行


*** 最初の1回のみ初期化 [#v215f57c]
 cd /etc/openvpn/easyrsa3/
 ./easyrsa init-pki


*** CA証明書・秘密鍵作成 [#z08e40b7]
- CA証明書は認証局サーバで認証するための証明書 [[参考(認証局)(外部サイト):https://jp.globalsign.com/knowledge/ca.html]]
 ./easyrsa build-ca
 ~
 Enter PEM pass phrase: (任意のパスワード)
 Verifying - Enter PEM pass phrase: (任意のパスワード)(確認)
 ~
 Common Name (eg: your user, host, or server name) [Easy-RSA CA]:(サイト名) 例) tar3.net
 ~
 CA creation complete and you may now import and sign cert requests.
 Your new CA certificate file for publishing is at:
 /root/easy-rsa-master/easyrsa3/pki/ca.crt
- CA証明書のコピー
 cp pki/ca.crt /etc/openvpn/


*** サーバ証明書の作成 [#h3722ce5]
 ./easyrsa build-server-full server nopass
 Enter pass phrase for /etc/openvpn/easyrsa3/pki/private/ca.key: (CA秘密鍵のパスワード)(上記で入力)
 ~
 Data Base Updated
- ファイルのコピー
 cp pki/issued/server.crt /etc/openvpn/
 cp pki/private/server.key /etc/openvpn/


*** DH(Diffie Hellman)パラメータ作成 [#e40aa37e]
-DH(Diffie Hellman)パラメータとは?
-- [[参考 外部サイト:http://devillinuxvpn.eksd.jp/appendix_dhkeyexchange.html]]
-- 以下抜粋
 (セキュリティー確保のため共有キーを直接やりとりしないために)登場するのが、
 DH鍵交換方式。
 DH鍵交換方式では、共通鍵そのものを送受信せず、
 共通鍵を作り出す材料となる数のみを互いに交換する。
 共通鍵そのものを送受信していないのに、同じ共通鍵を持つことができ
 セキュリティーを確保することができる。
-DH(Diffie Hellman)パラメータ作成 
 ./easyrsa gen-dh
 (少し時間がかかるので終わるまで待つ(数分?)
-ファイルのコピー
 cp pki/dh.pem /etc/openvpn/


*** 証明書廃止リスト作成 [#i6c69c89]
 ./easyrsa build-client-full dmy nopass
 ~
 Enter pass phrase for /etc/openvpn/easyrsa3/pki/private/ca.key:(CA秘密鍵のパスワード)(上記で入力)
 ~
 Write out database with 1 new entries
 Data Base Updated
- 廃止
 ./easyrsa revoke dmy
 ~
 Continue with revocation: yes   (Enter)
 ~
 IMPORTANT!!!
 
 Revocation was successful. You must run gen-crl and upload a CRL to your
 infrastructure in order to prevent the revoked cert from being accepted.
- 作成
 ./easyrsa gen-crl
 ~
 Enter pass phrase for /etc/openvpn/easyrsa3/pki/private/ca.key:(CA秘密鍵のパスワード)(上記で入力)
 
 An updated CRL has been created.
 CRL file: /etc/openvpn/easyrsa3/pki/crl.pem
- ファイルのコピー
 cp ./pki/crl.pem /etc/openvpn/
- アクセス権の変更
 chmod o+r /etc/openvpn/crl.pem



** OpenVPN の設定(server.conf) [#fa72fde1]
※以下 su - で実行
- TLS認証キーの作成
 openvpn --genkey --secret /etc/openvpn/ta.key
- サンプル設定ファイルのコピー
 cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn/
- server.conf の編集~
[[参考(OpenVPN日本語サイト):http://www.openvpn.jp/document/how-to/#RoutedOrBridged]]内~
「クライアントのすべてのトラフィック(Webトラフィックを含む)をVPN経由にルーティングする」
-- vi /etc/openvpn/server.conf
 port 1194
 ~
 proto udp
  ※tcp は重い。server.conf に tcp-nodelay オプションを記入することにより改善されるが重い。
  ※tcp にするには、server.conf で udp を無効化しtcp を有効化。 同様に client 設定ファイルも行う。
 ~
 dev tun ← 確認するだけ。デフォルトで設定済み
 ~
 ca ca.crt
 cert server.crt
 key server.key  # This file should be kept secret
 ~
 dh dh.pem ← 左記のように変更する。DHパラメータ ファイル名
 ~
 server 10.8.0.0 255.255.255.0 ← VPNクライアント割当てアドレス範囲(デフォルト)
 ~
 ifconfig-pool-persist ipp.txt
 ~
 ;push "route 192.168.10.0 255.255.255.0"
 ;push "route 192.168.20.0 255.255.255.0"
 push "route 192.168.3.0 255.255.255.0" ← 追加(LAN(例:192.168.3.0/24)へのルートをVPNサーバー経由にする)
 ~
 push "redirect-gateway def1"     <- インターネットへのアクセスをVPN経由で行う
 ~
 push "dhcp-option DNS 192.168.1.1"     <- インターネットアクセス時に使用するDNSサーバ
 ~
 tls-auth ta.key 0 # This file is secret ← 行頭の;を削除してコメント解除(TLS認証有効化)
 ~
 comp-lzo
 ~
 user nobody ← 行頭の;を削除してコメント解除(OpenVPN実行権限を下げる)
 group nobody ← 行頭の;を削除してコメント解除(OpenVPN実行権限を下げる)
 ~
 persist-key
 persist-tun
 ~
 status openvpn-status.log
 ~
 log-append  /var/log/openvpn.log ← 行頭の;を削除してコメント解除(ログを/var/log/openvpn.logに記録する)
 ~
 verb 3
 ~
 management localhost 7505 ← 最終行へ追加(管理インタフェースの有効化※後述)
 ~
 crl-verify crl.pem ← 最終行へ追加(証明書廃止リストの有効化)
 ~
 最終行へ以下を追加(OpenVPN経由でSambaへのアクセスがエラーになる場合)
 fragment 1280
 mssfix 1280
 link-mtu 1400
 
 cipher AES-128-CBC



** ファイアウォール設定 (省略) [#e9d7ab41]



** ログ ローテーション [#kf484de5]
※以下 su - で実行
- vi /etc/logrotate.d/openvpn
 /var/log/openvpn.log {
     missingok
     notifempty
     sharedscripts
     postrotate
         systemctl restart openvpn 2>&1 > /dev/null || true
     endscript
 }



** OpenVPN の起動 [#k60bb994]
※以下 su - で実行


*** OpenVPN 起動スクリプトの編集 [#kb53a6b2]
- vi /etc/rc.d/init.d/openvpn
-- 行頭の # を削除してコメント解除
 echo 1 > /proc/sys/net/ipv4/ip_forward
*** OpenVPN の起動 [#p7b8bb2d]
 service openvpn start
*** 自動起動の設定 [#oa9e6f69]
 chkconfig openvpn on



** ファイアウォール設定 [#m0755311]
設定関連図(構成図)~
Client1 -> Internet -> キャリアルーター -> VPN サーバ -> Internet(全ての通信がVPNサーバ経由を目標とする)


*** キャリアルーターの設定 [#j01c0a5a]
+1194ポートをVPNサーバへ転送(tcp の場合は tcp ポートを。udp の場合はUDPポートを)
+10.8 系へのルートの追加 10.8.0.0 のゲートウェイを VPNサーバへ
*** VPNサーバのファイアウォール設定(省略) [#j4f86180]



** クライアント証明書の秘密キー作成 [#qd1e818c]
※以下 su - で実行


*** クライアント証明書・秘密鍵作成(パスフレーズ認証なし) [#b48cd22a]
 cd /etc/openvpn/easyrsa3/
 ./easyrsa build-client-full client1 nopass
 
 Enter pass phrase for /etc/openvpn/easyrsa3/pki/private/ca.key: (CA秘密鍵のパスワード入力)
 
 Write out database with 1 new entries
 Data Base Updated



** クライアントの設定 [#m7628219]


*** Windows(iPhoneの場合も設定ファイルを作るのでこちらから) [#ob4f7108]
+共通
++ OpenVPN クライアントのダウンロード
--- [[OpenVPN:https://openvpn.net/index.php/open-source/downloads.html]]
++ OpenVPN のインストール
+新(2019/2/5)
--(設定ファイルがある前提でスタート)
++OpenVPNソフトを起動
++タスクトレイにあるOpenVPNアイコンを右クリック、「Import File」を選択
++*.ovpn ファイルを選択
++タスクトレイにあるOpenVPNアイコンを右クリック、「設定」を選択
++「Advanced」タブを選択
++「設定ファイル」の場所を確認し、「ディレクトリ」のPATHをコピーする。
++エクスプローラーで上記のコピーしたPATHを開く
++以下のファイルをコピーする。
+++ ca.crt (/etc/openvpn/easyrsa3/pki/ca.crt)
+++ ta.key (/etc/openvpn/ta.key)
+++ 接続名.crt   例) clientConnect.crt  (/etc/openvpn/easyrsa3/pki/issued/clientConnect.crt)
+++ 接続名.key   例) clientConnect.key (/etc/openvpn/easyrsa3/pki/private/clientConnect.key)
++接続の確認
+++ タスクトレイにあるOpenVPNアイコンを右クリック、「接続」を選択
+旧
++ サンプルファイルのコピー
--- コピー元
 C:\Program Files\OpenVPN\sample-config\client.ovpn
--- コピー先
 C:\Program Files\OpenVPN\config
++ client.ovpn の編集
--- 外からクライアントで接続する先を設定
 remote tar3.net 1194
--- クライアント証明書、秘密鍵の指定
 ca ca.crt
 cert client1.crt
 key client1.key
--- 中間者攻撃(Man-in-the-Middle)対策。※中間者攻撃については[[こちら(wikipedia)から:https://ja.wikipedia.org/wiki/%E4%B8%AD%E9%96%93%E8%80%85%E6%94%BB%E6%92%83]]
 remote-cert-tls server
--- TLS 認証の有効化
 tls-auth ta.key 1
--- (参考) Samba アクセス対策(追加)
 fragment 1280
 mssfix 1280
 link-mtu 1400
++必要ファイルをクライアントへコピー(※必ずセキュアな接続で行うこと)
--- コピー元
>
+++ CA証明書
 /etc/openvpn/ca.crt
+++ クライアント証明書
 /etc/openvpn/easyrsa3/pki/issued/client1.crt
+++ クライアント秘密鍵
 /etc/openvpn/easyrsa3/pki/private/client1.key
+++ TLS認証鍵
 /etc/openvpn/ta.key
<
--- コピー先
>
- C:\Program Files\OpenVPN\config
<


*** iPhone(Windows の場合が終わってから) [#r7a0f789]
- OpenVPN のインストール
- iTunes 経由で iPhone へファイルを送り込む。
-- iTunes -> iPhone -> アプリ -> 下に画面をスクロールすると、ファイルを入れられる機能がある



** 接続確認 [#jd8f029b]


*** Windows [#g2596e75]
- OpenVPN を起動し、タスクトレイにあるアイコンを右クリック、接続を選択
-- Windows のネットワークは、インターネット経由(テザリング)などにしておくほうが望ましい。~
自宅LANからだと名前解決、認証解決ができない場合が多い。~
また本当の意味でのテストにならない。
-- 「確認くん」というグローバルIPをチェックするサイトがある(これで接続の状況がわかる。)
-- [[CMAN(Global address 確認):https://www.cman.jp/network/support/go_access.cgi]]


*** iPhone [#x45d0d9c]
- OpenVPN アプリの起動。
- 緑色の + ボタンを押す。
- あとは○をスライドし接続する。
-- iPhone の場合も、無線LAN環境ではなく、4G回線などインターネット経由が望ましい。~
理由は上記の Windows の場合と同様。~
無線LAN環境をやめるためには、現在接続設定がある全ての無線LANの接続を切断し、~
どこの無線LANにも繋がっていない環境を作ることにより可能。


*** 疎通確認 [#r6b00033]
Ping による疎通確認が可能だが、通らない場合は大抵ルートの問題。~
キャリアルーターにきちんと静的ルートが書いてあるか。また間違えてないか、など~
OpenVPN サーバの Push "Route ..." は関係ない場合が多く、そこをいじっても解決しない時が多い。


*** VPNクライアントの削除 [#ca836d89]
※以下 su - で実行
-クライアント証明書廃止
 cd /etc/openvpn/easyrsa3/
 ./easyrsa revoke client1
 ~
 Continue with revocation: yes    を入力
 ~
 Enter pass phrase for /etc/openvpn/easyrsa3/pki/private/ca.key    <-CA秘密鍵のパスワードを入力
-証明書類の削除
 rm -f ./pki/issued/client1.crt ← client1証明書類削除
 rm -f ./pki/private/client1.key ← client1証明書類削除
 rm -f ./pki/reqs/client1.req ← client1証明書類削除
 ./easyrsa gen-crl ← 証明書廃止リストを作成
 ~
 Enter pass phrase for /etc/openvpn/easyrsa3/pki/private/ca.key:   <-CA秘密鍵のパスワードを入力 
 ~
 CRL file: /etc/openvpn/easyrsa3/pki/crl.pem
-廃止証明書のコピー
 cp ./pki/crl.pem /etc/openvpn/
-廃止証明書への権限付与
 chmod o+r /etc/openvpn/crl.pem


***接続中クライアントの強制切断 [#s1179195]
※以下 su - で実行
-telnet のインストール
 yum install telnet
-OpenVPN の管理インターフェースへアクセス
 telnet localhost 7505
-status の確認
 status
  client1,124.211.3.180:1617,6882,7144,Tue Nov 28 19:26:53 2006 ← client1が接続中
-client1 の強制切断
 kill client1
-status の再確認
 status
-OpenVPN管理インタフェース終了
 exit



** トラブル [#cac0d20b]


*** Server:Version2.4, Client:Version2.6,繋がらない [#o429645a]
-エラーメッセージ
-- OpenSSL: error:0308010C:digital envelope routines::unsupported  Cipher algorithm 'BF-CBC' not found  Unsupported cipher in --data-ciphers: BF-CBC
-採用されなくなったcipher(サイファー)が原因
+ サーバー側
++ sudo vim /etc/openvpn/server.conf
--- 末尾に以下を追加
 cipher AES-128-CBC
+ クライアントの.ovpnファイルに追加
+ クライアントの.ovpnファイルの末尾へ追加
++Version2.6
 data-ciphers AES-128-CBC
++Version2.4
 cipher AES-128-CBC




* 過去ログ [#t74b739c]



** ipsec の確認 ipsec verify [#f1a8b37f]
- ipsec verify
- うちの結果はこんな感じです(^^)
 Verifying installed system and configuration files
 
 Version check and ipsec on-path                         [OK]
 Libreswan 3.7 (netkey) on 2.6.32-431.3.1.el6.i686
 Checking for IPsec support in kernel                    [OK]
  NETKEY: Testing XFRM related proc values
          ICMP default/send_redirects                    [OK]
          ICMP default/accept_redirects                  [OK]
          XFRM larval drop                               [OK]
 Pluto ipsec.conf syntax                                 [OK]
 Hardware random device                                  [N/A]
 Two or more interfaces found, checking IP forwarding    [OK]
 Checking rp_filter                                      [ENABLED]
  /proc/sys/net/ipv4/conf/default/rp_filter              [ENABLED]
  /proc/sys/net/ipv4/conf/lo/rp_filter                   [ENABLED]
  /proc/sys/net/ipv4/conf/eth0/rp_filter                 [ENABLED]
  /proc/sys/net/ipv4/conf/ppp0/rp_filter                 [ENABLED]
   rp_filter is not fully aware of IPsec and should be disabled
 Checking that pluto is running                          [OK]
  Pluto listening for IKE on udp 500                     [OK]
  Pluto listening for IKE/NAT-T on udp 4500              [OK]
  Pluto ipsec.secret syntax                              [OK]
 Checking NAT and MASQUERADEing                          [TEST INCOMPLETE]
 Checking 'ip' command                                   [OK]
 Checking 'iptables' command                             [OK]
 Checking 'prelink' command does not interfere with FIPSChecking for obsolete ipsec.conf options                 [OK]
 Opportunistic Encryption                                [DISABLED]
 
 ipsec verify: encountered 9 errors - see 'man ipsec_verify' for help

- うちの結果はこんな感じ(^^)
 Verifying installed system and configuration files
 
 Version check and ipsec on-path                         [OK]
 Libreswan 3.7 (netkey) on 2.6.32-431.3.1.el6.i686
 Checking for IPsec support in kernel                    [OK]
  NETKEY: Testing XFRM related proc values
          ICMP default/send_redirects                    [OK]
          ICMP default/accept_redirects                  [OK]
          XFRM larval drop                               [OK]
 Pluto ipsec.conf syntax                                 [OK]
 Hardware random device                                  [N/A]
 Two or more interfaces found, checking IP forwarding    [OK]
 Checking rp_filter                                      [ENABLED]
  /proc/sys/net/ipv4/conf/default/rp_filter              [ENABLED]
  /proc/sys/net/ipv4/conf/lo/rp_filter                   [ENABLED]
  /proc/sys/net/ipv4/conf/eth0/rp_filter                 [ENABLED]
  /proc/sys/net/ipv4/conf/ppp0/rp_filter                 [ENABLED]
   rp_filter is not fully aware of IPsec and should be disabled
 Checking that pluto is running                          [OK]
  Pluto listening for IKE on udp 500                     [OK]
  Pluto listening for IKE/NAT-T on udp 4500              [OK]
  Pluto ipsec.secret syntax                              [OK]
 Checking NAT and MASQUERADEing                          [TEST INCOMPLETE]
 Checking 'ip' command                                   [OK]
 Checking 'iptables' command                             [OK]
 Checking 'prelink' command does not interfere with FIPSChecking for obsolete ipsec.conf options                 [OK]
 Opportunistic Encryption                                [DISABLED]
 
 ipsec verify: encountered 9 errors - see 'man ipsec_verify' for help

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS