web-dev-qa-db-ja.com

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

Linode などの仮想プライベートサーバーを使用しており、Ubuntuを実行している場合、Ubuntuクライアントが接続できるようにPPTP VPNを簡単に設定するにはどうすればよいですか?

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

15
Stefano Palazzo

絶対最小サーバー設定

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

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

Sudo apt-get install pptpd

次に、/ etc/sysctl.confの関連する行のコメントを解除して、IPv4のカーネルでip_forwardを有効にします。

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

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

クライアントの構成

Network Managerアプレット で、VPN接続VPNの構成を選択し、追加をクリックします。次の画面で、VPNタイプにPPTPを選択してから、作成をクリックします。

enter image description here

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

Advancedをクリックします。

enter image description here

このウィンドウで、「ポイントツーポイント暗号化(MPPE)を使用する」を有効にして、128-bit securityを選択します。 MSCHAP認証の使用を無効にします(MSCHAPv2有効のままにします)。

最後に、OkをクリックしてからSaveをクリックして前のウィンドウを閉じます。

これで、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サーバーを使用して、すべてのドメイン名検索が引き続き照会されます。 完全なドキュメント を読んで、この設定や他の多くの設定を変更する方法を見つけてください。

28
Michael Kropat

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

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

enter image description here

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

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
4
Luka

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

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

  2. 手動選択でnot installed packages> 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
    

    DROP

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

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

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

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

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

3
Ilias