自分のUbuntuサーバーでPPTP VPNを設定するにはどうすればよいですか?


16

Ubuntuを実行しているLinodeなどの誰かからVirtual Private Serverがあると仮定すると、Ubuntuクライアントが接続できるようにPPTP VPNを簡単に設定するにはどうすればよいですか?

デフォルトでは、UbuntuはこれらのPPTPネットワークへの接続を提供しています。接続しやすいように設定します(つまり、クライアントにパッケージをインストールしません)。

回答:


28

絶対最小サーバー設定

以下は、Ubuntuで実行されている基本的なPPTP VPNサーバーを取得するために必要な絶対的な最小手順です。その後、クライアントはサーバーにVPN接続し、インターネットトラフィックをルーティングして、サーバーを経由してインターネットに到達できるようになります。いつものように、完全なドキュメントを参照して、すべてが何をしているかを理解してください。

まず、必要なソフトウェアをインストールします。

sudo apt-get install pptpd

第二には、有効ip_forwardに関連する行をコメントアウトすることで、IPv4用のカーネルには/etc/sysctl.conf

sudo sed -i -r 's/^\s*#(net\.ipv4\.ip_forward=1.*)/\1/' /etc/sysctl.conf
# Reload the config file to have the change take effect immediately.
sudo -i sysctl -p

3番目に、プライベートVPNネットワーク上のユーザーがインターネットにパケットをルーティングできるように、NATを有効にします(まだ有効になっていない場合)。

OUTIF=`/sbin/ip route show to exact 0/0 | sed -r 's/.*dev\s+(\S+).*/\1/'`
sudo -i iptables --table nat --append POSTROUTING --out-interface $OUTIF --jump MASQUERADE
# Enable NAT on boot from the rc.local script.
CMD="iptables --table nat --append POSTROUTING --out-interface $OUTIF --jump MASQUERADE"
sudo sed -i "\$i$CMD\n" /etc/rc.local

注:このガイドでは、サーバーにファイアウォールが構成されていないことを前提としています。UFWなどのサーバーにファイアウォールがある場合は、代わりに関連するドキュメントを参照してください。

4番目に、VPNユーザーごとに、ファイル/ etc / ppp / chap-secretsにアカウントを作成します。$USERそのVPNユーザーに使用する実際のユーザー名に置き換えます。

KEY=`head -c 20 /dev/urandom | sha1sum | nawk '{print $1}'`
echo "$USER pptpd $KEY *" | sudo tee -a /etc/ppp/chap-secrets

最後に、準備ができています...

クライアントを構成する

では、ネットワークマネージャアプレット、選択VPN接続設定VPNを、クリックします。次の画面で、VPNタイプにPPTPを選択し、[ 作成 ]をクリックします

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

このウィンドウで、サーバーのホスト名またはIPと、サーバー上の/ etc / ppp / chap-secretsファイルに追加したユーザー名とキーを入力します。

[ 詳細 ]をクリックします。

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

このウィンドウで、「ポイントツーポイント暗号化(MPPE)を使用する」を有効にし、128ビットセキュリティを選択します。MSCHAP認証の使用を無効にします(MSCHAPv2を有効のままにします)。

最後に、クリックし、[OK]をして、保存前のウィンドウを閉じます。

これで、Network Managerアプレット→ VPN接続に移動し、作成した接続を選択して、VPN接続をテストできます。VPN接続が成功したことを示すメッセージが表示されることを確認し、IPチェックWebサイトを参照して、IPがサーバーのIPとして表示されることを確認します。

サーバーへのVPN接続が失敗したというメッセージが表示された場合:最初に、クライアント設定を正しく入力したことを確認してください。次に、クライアントがサーバーのTCPポート1723にネットワーク接続されていることを確認します。最後に、サーバー上のログファイル/ var / log / messagesを調べて、さらに手がかりを探します。VPN接続は成功したが、その後クライアントからWebサイトを閲覧できない場合は、pptpd Webサイトでこの非常に役立つ診断ガイドを参照してください。

ノート

接続しているローカルネットワークが192.168.0.0/24および192.168.1.0/24サブネットを使用している場合、PPTPサーバーがデフォルトで使用するものであるため、問題が発生します。pptpd.confで異なるサブネットを使用するようにPPTPを構成する必要があります。

他にも多くの構成変更が必要になる場合があります。たとえば、ドメイン名のルックアップはすべて、PPTPサーバーを経由する代わりに、ローカルDNSサーバーを使用して照会されます。この設定や他の多くの設定を変更する方法については、ドキュメント全体を読んでください。


4

私が書いたこのチュートリアルはあなたをガイドします。VPSを使用している人々が犯すよくある間違いを避けるのに役立ちます。

最初にVPSパネルにログインし、TUN / TAPおよびPPPを有効にします。そのようなオプションがない場合は、ISPに連絡してこれを有効にしてください。

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

最初にこのパッケージをインストールします。

sudo apt-get install pptpd

VPNを公開したくないので、ユーザーを作成します。
私はあなたがNANOまたはあなたが好きなテキストエディタを使用できるVIを使用しています

vi /etc/ppp/chap-secrets

形式は

[username] [service] [password] [ip]

john pptpd johnspassword *

* すべてのIPアドレスからのアクセスが許可されることを意味します。静的IPアドレスがある場合にのみIPを指定してください。

PPTPD設定の編集

vi /etc/pptpd.conf

localipおよびremoteip設定を探します。#これらの設定が実際に認識されるように、両方の(コメント文字)を削除します。localipをサーバーIPに変更します。サーバーIPがわからない場合は、VPSコントロールパネルで確認できます。

remoteipは基本的に、クライアント(VPNに接続されているコンピューター)が割り当てられるIP範囲です。たとえば、192.168.120.231-235というIP範囲が必要な場合、VPNサーバーは192.168.120.232、192.168.120.233、192.168.120.234、および192.168.120.235をクライアントに割り当てることができます。このフィールドに使用するものはユーザー次第です。

個人的に私はこの設定を選択します:

localip 10.0.0.1
remoteip 10.0.0.100-200

したがって、約200のクライアントを接続できます。

DNSサーバーを追加する /etc/ppp/pptpd-options

ms-dns 8.8.8.8
ms-dns 8.8.4.4

これをファイルの最後に追加するか、それらの行を見つけてコメント解除し、IPを目的のパブリックDNSに変更するかを選択できます。

転送を設定する

PPTPサーバーでIP転送を有効にすることが重要です。これにより、PPTPでセットアップしたパブリックIPとプライベートIPの間でパケットを転送できます。/etc/sysctl.confを編集し、次の行がまだ存在しない場合は追加します。

net.ipv4.ip_forward = 1

変更をアクティブにするには、次を実行します sysctl -p

iptablesのNATルールを作成する

これは重要な部分です。VPSを使用している場合は、おそらくeth0を使用せず、代わりにvenet0を使用します。 ifconfig

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

また、PPTPクライアントが互いに通信するようにしたい場合は、次のiptablesルールを追加します。

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 eth0 -j ACCEPT

繰り返しますが、VPSを使用している場合は、eth0をvenet0に置き換える必要があります。

実行することをお勧めします

sudo iptables-save

これで、PPTPサーバーはルーターとしても機能します。

このコマンドを実行して、VPNサービスが起動時に開始されるようにすることができます

systemctl enable pptpd

iptables-persistentをインストールして、再起動後もルールが維持されるようにすることをお勧めします

sudo apt-get install -y iptables-persistent

リンクはどこにも行きません、主にこのドメイン名をリリースすることはありません、第二にそれは私のホスティングサーバーです、第三に私を信じています:DIは本当に長すぎるここにチュートリアルをコピーアンドペーストすることはできません。
ルカ

このサイトではリンクのみの回答は受け付けておりません。したがって、この回答はすぐに削除される可能性が高く、ご覧のとおり、既にレビューキューにあります(以前のコメントのリンク)。

ザンナ、どうもありがとう!@Paranoid Pandaさて、リンクを含んでいるので、2つの投票がある私の上の上記の答えを削除する必要があります:P-
ルカ

1
ここの問題、答えがリンクのみであることでした。これは、何らかの理由でリンクがダウンした場合(リンクがダウンすることはないとしても)、回答は無効になることを意味します。回答が自己依存になったので(および参照用のリンクを使用して)、回答はそのままで問題ありません。あなたの投稿がそうであったように適応されない限り、問題の答えは現在削除されています。
カズウルフ

1
チュートリアルを作成していただき、ありがとうございます。次回はこの長さの投稿をすることを恐れないでください。それは完全に受け入れられます。
ザンナ

3

このチュートリアルに従ってください:PPTP VPN Server with Ubuntu

  1. ソフトウェアの選択で、OpenSSHサーバー(マシンのリモート管理用)を選択し、実際のpptpdパッケージの手動パッケージ選択を選択します。より多くのサービスが必要な場合、たとえば、コンピューターをWebサーバーとしても使用する場合は、もちろん追加のソフトウェアを選択できます。セキュリティ上の理由から、一般的に、重要な環境でセットアップする場合は、マシンごとに外部からアクセス可能なサービスから1つだけを実行することをお勧めしますが、実際はあなた次第です。

  2. 手動選択で、インストールされいないパッケージ> netに移動し、pptpdを見つけます。それを選択し、パッケージをインストールするために「g」を2回押します。

  3. インストールを終了して、システムを再起動します。

  4. 新しくセットアップしたマシンにSSHで接続し、sudo aptitude update && sudo aptitude safe-upgrade最初に実行してすべてのパッケージを更新します。必要に応じて再起動します。

  5. pptpd.confファイルを開きsudo nano /etc/pptpd.confます。必要に応じて下部のIP設定を調整します。ローカルIPの下で、VPNサーバーのローカルネットワークにIPを入力します(分からない場合は「sudo ifconfig」と入力すると、ネットワークインターフェイスと割り当てられたIPが表示されます)。その点については、/ etc / network / interfacesまたはルーター構成で静的IPをセットアップすることをお勧めします。

  6. 必要に応じて、ホスト名を変更できます /etc/ppp/pptpd-options

  7. vpn:へのアクセスを許可するユーザー名とパスワードを指定しますsudo nano /etc/ppp/chap-secrets。前の手順でホスト名を変更した場合は、同じホスト名を入力してくださいserver

    例:

    # client        server  secret                  IP addresses
    eubolist   pptpd   myübersecretpassword   *
    

    pptpのように、パスワードのみに依存するキーファイルセキュリティはありません。そのため、長い(たとえば32文字)ランダムなパスワードを選択する必要があります。ここでそのようなパスワードを生成できます。

  8. ここで、IPマスカレードを設定する必要があります。 sudo nano /etc/rc.local

    「exit 0」という行の上に次の行を追加します

    # PPTP IP forwarding
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    

    オプションで、ブルートフォース攻撃からSSHサーバーを保護することをお勧めします。

    #SSH Brute Force Protection
    iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
    iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j
    

    落とす

    (「exit 0」の上にも挿入される)

    マシン上のインターネットに接続するように構成されているインターフェイスに応じて、「eth 0」を別のインターフェイスに変更する必要があります。

  9. 最後に、この行のコメントを外します/etc/sysctl.conf

    net.ipv4.ip_forward=1
    
  10. リブート

  11. VPNサーバーがインターネットに直接接続しない場合、ポート1723 TCPおよびGREをVPNサーバーのLAN IPに転送する必要がある場合があります。ベンダー固有の手順については、ルーターのマニュアルまたはportforward.comを参照してください。繰り返しますが、静的IPを割り当てる必要がある場合があります/etc/network/interfaces

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.