UbuntuをVPNサーバーとして設定する最も簡単な方法


68

VPNクライアントとサーバーを設定するための多くのチュートリアルがネット上にあることを知っています。

私はあなたがシンプル/短いものを見つけました、私はサーバーの部分にのみ興味があります。

クライアントについては、OS Xを使用L2TP over IPsecするPPTPため、Cisco IPsec を使用するか、Cisco IPsecにコストがかかると思われるため、ソリューションを選択します。

設定に多くの時間を費やしたくありません。誰かが既にセットアップスクリプトを作成しているかもしれません:)

注:Ubuntu 12.04を実行しているEC2マイクロインスタンスを使用しています。


3
注:CISCO IPSecは、StrongSwanと多くの設定を介して実現できますが、注意が必要です。PPTPはもう安全ではありません。L2TP over IPSecでは、L2TPとIPSecの両方の構成が必要です。私の答えは、PPTPを説明したが、あなたのレジャーで選ぶ
トーマス・ウォード

回答:


24

更新:Sierraの時点で、macOSはPPTP vpnをサポートしなくなりました。この回答は、macOSクライアントSierra以降では無効です。

PoPToP経由のPPTPは簡単です

  1. apt-get install pptpd
  2. /etc/pptpd.confremoteipオプションを編集して、DHCPサーバーがサービスを提供していないネットワーク上の範囲に設定します。
  3. /etc/ppp/chap-secretsユーザー名とパスワードを編集して追加する

例えば

vpnuser pptpd vpnpassword *

これが、pptpのセットアップに必要なすべてです。次に、OS Xクライアントでテストします。


また、どの場所からでもこのサーバーに接続することを考えると、localipとremoteipの値が最も安全だと思います。おそらくデフォルト値はとで192.168.0.あり192.168.1.、おそらく最悪の可能性の1つです。
ソリン

5月12日13:28:06 zork pppd [9447]:プラグイン/usr/lib/pptpd/pptpd-logwtmp.soがロードされました。5月12日13:28:06 zork pppd [9447]:root、uid 0によって開始されたpppd 2.4.5 5月12日13:28:06 zork pppd [9447]:インターフェースppp0を使用5月12 13:28:06 zork pppd [9447 ]:接続:ppp0 <-> / dev / pts / 3 5月12日13:28:36 zork pppd [9447]:ハングアップ(SIGHUP)5月12日13:28:36 zork pppd [9447]:モデムハングアップ5月12日13 :28:36 zork pppd [9447]:接続が終了しました。5月12日13:28:36 zork pppd [9447]:終了。まだ動作しません!あなたのガイドは不完全です(まだ);)
ソリン

ええ、これは機能しません。
bkerensa

1
役に立たなかった
タイラーギリーズ

@SorinSbarneaこれらのIPはプライベートであり、インターネットを経由することはありません。そのため、「最も安全な」という意味がわかりません。カフェや接続先の職場と同じIP範囲でない場合は、最高の運があります。192.168.42。*を試してください:)
Jay _silly_evarlast_ Wren

86

警告:PPTPは安全でないプロトコルです!暗号化が破られただけでなく、クリアテキストで認証を送信し、簡単に傍受されます。パスワードをブルートフォースするのに必要な時間は、単一のDESキーをブルートフォースするのに必要な時間とほぼ等しいと推定されています。PPTPの代わりにOpenVPNまたは別のVPNアーキテクチャの使用を検討してください!

このガイドを使用して、Ubuntu 12.04サーバーにPPTP VPNサーバーをセットアップしました。


ただし、リンクの主なポイントを要約するには:

1:pptpdおよびをインストールしufwます。 iptablesufwの代わりに使用できますが、わかりにくいufw場合はわかりやすくなりますiptables

sudo apt-get install pptpd ufw

2:必要なポートを開きます。このガイドでは、pptp vpnの22(SSH)と1723を提案しています。

sudo ufw allow 22
sudo ufw allow 1723
sudo ufw enable

3:編集/etc/ppp/pptpd-options。好みのエディター(私のnanoなので、コマンドはsudo nano /etc/ppp/pptpd-options)でファイルを開き、これらの行#をすべてのOSで普遍的に機能させるには、前に追加してコメントアウトします。

ごみ袋
拒否する
拒否-mschap

暗号化を無効にする場合は、次の行をコメント化できます。 require-mppe-128

4:編集中/etc/ppp/pptpd-optionsに、VPN用のDNSサーバーを追加します。この例では、OpenDNSサーバーを使用しています。

ms-dns 208.67.222.222
ms-dns 208.67.220.220

5:編集/etc/pptpd.conf。お気に入りのエディターでファイルを開きます(私のnanoなので、コマンドはですsudo nano /etc/pptpd.conf)。システムのローカルVPN IPを追加する必要があるため、次を追加します。

localip 10.99.99.99
remoteip 10.99.99.100-199

システムがVPSの場合、「localip」にパブリックIPを使用します。ローカルネットワーク上にない場合は、コンピューターのネットワークIPを使用します。これらのIPがサブネットに存在する場合は、異なるIPと範囲を使用してください!VPSのパブリックIPがわからない場合は、次を実行して見つけてください。dig +short myip.opendns.com @resolver1.opendns.com

6:編集/etc/ppp/chap-secrets。好みのエディター(私のnanoなので、コマンドはsudo nano /etc/ppp/chap-secrets)でファイルを開き、認証データを追加します。
形式/etc/ppp/chap-secretsは次のとおりです。

[ユーザー名] [サービス] [パスワード] [許可されたIPアドレス]

例は次のとおりです。 sampleuser pptpd samplepassword *

7:pptpdを再起動します。ターミナルで次のコマンドを実行します。sudo /etc/init.d/pptpd restart

8:編集/etc/sysctl.conf。お気に入りのエディターでファイルを開きます(私のnanoなので、コマンドはですsudo nano /etc/sysctl.conf)。次の行のコメントを外します(#先頭のを削除して)/etc/sysctl.confnet.ipv4.ip_forward=1
構成を再読み込みします。 sudo sysctl -p

9:この手順では、ufwがあることを前提としています。
編集/etc/default/ufwオプションを変更してDEFAULT_FORWARD_POLICYからDROPACCEPT

10:この手順では、ufwがあることを前提としています。
編集し/etc/ufw/before.rules、ルールの最初/etc/ufw/before.rulesまたは直前に以下を追加します*filter(推奨)。

#NATテーブルルール
* nat

:POSTROUTING ACCEPT [0:0]
#eth0への転送トラフィックを許可
-Aポストルーティング-s 10.99.99.0/24 -o eth0 -jマスカレード

#NATテーブルルールを処理する
コミット

カーネルバージョン3.18以降を使用している場合(これを実行すると確認できますuname -r)、行の前に次の行も追加します# drop INVALID packets ...

-A ufw-before-input -p 47 -j ACCEPT

11:ファイアウォールを再起動して、ルールセットを更新し、/etc/ufw/*.rulesファイルに追加したルールを適用します。 sudo ufw disable && sudo ufw enable

警告:サーバーがウェブサイトをホストしている場合のHTTPSなど、他のポートを開く必要がある場合は、それらのポートを許可リストに個別に追加する必要がありますsudo ufw allow <PORT>


4
今、私は一体何をしますか:D私は、サーバー上にないアイデアどのように接続する笑作業していないことを持っている
ジェイミーHutber

1
@Jamie Network Manager内のドキュメントはもちろん、VPNへの接続に関するAsk Ubuntuには、他にも多くのドキュメントとエントリがあります。この質問は、VPNのセットアップとサーバー側のみを対象としています。接続部分ではありません。
トーマスウォード

:D超高速応答:DIうまくいったかもしれないと思う。間違って設定したに違いない。これは、UFWがアクティブであり、ほとんどのポートを許可していることを示しています。とにかくこれが私を取得するかどうかを確認するiptablesを再生します
ジェイミーハッバー14

@Jamie ufwよりもiptablesを好むあなたの家に帰るときに使用するiptablesコマンドを提供できます。
トーマスウォード

1
iptables / netfilterはufwで使用されます。ufwは、エンドユーザー向けのルールとコマンドの処理により優れています。
トーマスウォード

19

Ubuntu 12.04でのPPTP VPNの例

Ubuntu 12.04で基本的なPPTP VPNサーバーをセットアップする簡単なチュートリアルを次に示します。

必要なパッケージをインストールする

                          sudo apt-get install ppp pptpd

サーバーでPPTP IP範囲を構成する

                          sudo nano /etc/pptpd.conf

最後に次の行を追加します

                          localip 10.89.64.1
                          remoteip 10.89.64.100-150

これにより、IP範囲10.89.64.100から10.89.64.150をPPTPクライアントに配布しながら、IP 10.89.64.1を使用するようにPPTPサーバーがセットアップされます。プライベートIPアドレスであり、サーバーで既に使用されているIPアドレスと競合しない限り、必要に応じてこれらを変更します。

クライアントがこのPPTPサーバーに接続するときに使用するDNSサーバーを構成する

                          sudo nano /etc/ppp/pptpd-options

最後に次の行を変更または追加します

                          ms-dns 8.8.8.8
                          ms-dns 8.8.4.4

PPTPユーザーを作成する

                          sudo nano /etc/ppp/chap-secrets

ファイルが次のようになるように、一番下に行を追加します。

                          # client    server  secret          IP addresses
                          test        pptpd   abcd1234        *

PPTP接続のNATを構成する

この手順を実行しないと接続できますが、このサーバーからWeb接続を読み込むことはできません。

                          sudo nano /etc/rc.local

「exit 0」行の前の右下に次を追加します。

                          iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

eth0を想定して、ifconfigネットワーク名の確認に使用できます。

IPv4 forwadingを有効にします。

                          sudo nano /etc/sysctl.conf

次の行のコメントを解除します。

                          net.ipv4.ip_forward=1

次に、構成を再読み込みします。

                          sudo sysctl -p

VPSを再起動すると、PPTPクライアントからすべてがスムーズに動作します。


クライアント側の構成

Macの場合、PPTP VPN接続を追加したことを確認してください。それに加えて、認証設定でサーバーアドレス、アカウント名、パスワードを設定するだけです。ここに痛みはありません。

Linuxの場合、NetworkManagerがVPN接続を追加します。PPTP VPN接続を追加したことを確認してください。そして、私が使用する構成は次のとおりです。

PPTP / VPNクライアント接続をデバッグおよび修正する方法

ここに画像の説明を入力してください

Windowsの場合

ここに画像の説明を入力してください


この方法はUbuntu 12.04の非サーバーエディションでも機能しますか?このVPNネットワークに接続するためにクライアントが使用しなければならないIP番号は何ですか?
ラズール

はい、それはあなたが@RasoulをVPNに接続するクライアントにサーバーのIPアドレスを使用する必要があり、また、非サーバー版のためである
カシム

動作しません、Ubuntuサーバー13.04。クライアントがDNSの検索をスタックしました。
knutole

@knutoleは、IPTablesルールが適切にルーティングされていることを確認します。en0インターフェイスがあり、他の名前が付けられていないことを確認してください。一覧にパブリックIPアドレスが表示されます。
ニックウッドハムズ

さて、あなたの例ではどのIPがサーバーIPですか?10.89.64.1?次に、Ubuntuネットワークマネージャーで、クライアントはゲートウェイとして10.89.64.1をリストしますか?
dranxo 14年

9

私の場合、このスレッドに関する他の回答は部分的な回答にすぎませんでした。これがUbuntu 12.04.3で私のために働いたものです

sudo apt-get install pptpd

以下を/etc/pptpd.confに追加します(IPアドレスは関係ありません。これはppp0インターフェースのIPアドレスのみです)。

localip 10.0.0.1
remoteip 10.0.0.100-200

DNSサーバーを/ etc / ppp / pptpd-optionsに追加します

ms-dns 8.8.8.8
ms-dns 8.8.4.4

IP転送を有効にする

sudo vim /etc/sysctl.conf

この行のコメントを解除します

net.ipv4.ip_forward=1

変更内容を保存

sudo sysctl -p /etc/sysctl.conf

/ etc / ppp / chap-secretsを編集し、VPNユーザーを次の形式で追加します。

# Secrets for authentication using CHAP
# client    server  secret          IP addresses
username pptpd supersecretpassword *

PPTPを再起動します

service pptpd restart

実行ifconfigしてデフォルトのインターフェースを見つけます。私の場合はbr0でした(物理マシン上の仮想マシンがインターフェースを共有できるように変更しました。おそらくen0になります)

ここに画像の説明を入力してください

iptablesをバックアップする

iptables-save > ~/iptables.save

ここで、ifconfigによって明らかにされたデフォルトのインターフェースを使用して、iptablesの変更を行います。

iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE
iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables -I INPUT -s 10.0.0.0/8 -i ppp0 -j ACCEPT
iptables --append FORWARD --in-interface br0 -j ACCEPT

システムの再起動時に永続的に保つため。

sudo apt-get install iptables-persistent

クライアントコンピューターにVPNを追加する(Mac)

システム環境設定>ネットワーク> [+]> VPN

ここに画像の説明を入力してください

ここに画像の説明を入力してください

次に、[認証設定]> [パスワード]を選択し、ここにパスワードを入力します

ここに画像の説明を入力してください


7

以下は、OpenVPNの痛みを取り除いた非常に甘いプロジェクトです。

https://github.com/Nyr/openvpn-install

実行するだけで、Open VPNがインストールされ、構成されます。最後に、クライアントのセットアップに使用できるclient.ovpnファイルがポップアウトされます。かなりうまくいくようです。


聖なる牛。それはただ動作します。なぜ広く認識されていないのだろうか。
マーカス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.