DebianベースのLinuxディストリビューションベスト10
標準のDebianとその人気のある派生Ubuntuは、Linuxシステムにとって優れた万能の選択肢ですが、より専門的なニーズがある場合は、Debianの代替手段が必要になる場合があります。
Wireguardを使用してセルフホストVPNをセットアップする
VPN(仮想プライベートネットワーク)は、ユーザーのコンピュータが直接プライベートネットワークに接続されていたかのようにユーザーがリモートプライベートネットワークに接続することができます。このテクノロジーは当初、社内ネットワークの場所に実際に存在しない従業員のために、企業の社内プライベートネットワークへのリモートアクセスを可能にするために開発されました。
VPNサーバーは、内部ネットワークの場所に展開されます。このサーバーはパブリックネットワーク上にあり、従業員はVPNクライアントを使用してアクセスできます。VPNサーバーに接続するには認証が必要です。VPNサーバーとVPNクライアント間の通信は、トンネリングプロトコルを使用して保護されます。この通信は暗号化されている場合とされていない場合がありますが、通常、ほとんどのVPNプロトコルでは暗号化されていることに注意してください。
VPNのもう1つの用途は、インターネットにアクセスするときに匿名性を獲得すること、または一部のWebサイトにアクセスするときに課せられる地理的制限を回避することです。このような場合、ユーザーが接続したいネットワークはプライベートネットワークではなく、インターネットです。
多くのVPNプロトコルが何年にもわたって開発されてきました。これらのプロトコルは、サーバーとクライアント間の通信にさまざまなトンネリングプロトコルと暗号化アルゴリズムを利用します。
最近広く使用されているそのようなプロトコルの1つは、Wireguardです。Wireguardは、OpenVPN、IPSecなどのよく知られている従来から使用されているVPNプロトコルよりも軽量で、シンプルで、パフォーマンスが高くなっています。これは、Windows、Mac OS、および多数のLinuxディストリビューションにすでに実装されています。Linuxでは、カーネルモジュールとして実装されます。Ubuntu20.04の公式リポジトリで利用できます。
この記事では、Ubuntu20.04でWireguardVPNサーバーとクライアントをセットアップする方法を説明します。
インストール
この記事では、Ubuntu 20.04LinodeにWireguardサーバーをセットアップし、Ubuntu20.04を使用するローカルマシンにWireguardクライアントをセットアップします。
パッケージwireguard
は、Wireguardサーバーとクライアントの両方をインストールします。サーバーマシンとクライアントマシンの両方で次のコマンドを実行します。
sudo apt install wireguard
サーバー構成
セキュリティキー
Wireguard接続を認証して保護するには、公開鍵と秘密鍵のペアのセットを生成する必要があります。これは、次のコマンドを使用して実行できます。
sudo su
cd /etc/wireguard
umask 077
wg genkey | tee private_key | wg pubkey > public_key
スーパーユーザーとしてすべての構成タスクを実行していることに注意してください。その理由は、/etc/wireguard
通常のユーザーはディレクトリへのアクセスが禁止されており、通常のユーザーはsudo権限だけではディレクトリアクセスを取得できないためです。
次に、ファイル作成マスクをに設定します077
。これは、任意のプロセスによってこのフォルダーに新しいファイルが作成されるたびに、そのアクセス許可が077で自動的にマスクされることを意味します。このフォルダにアクセス許可777でファイルが作成された場合、そのファイルは自動的にマスクされ、アクセス許可は実質的に700になります。これにより、ファイルの所有者のみがファイルに対するすべてのアクセス許可を持ち、他のすべてのユーザーはアクセス許可を持ちません。
次の行で、サーバーの公開鍵と秘密鍵のペアを生成します。それらはファイルprivate_key
とに保存されますpublic_key
。キーを表示するには、次のコマンドを実行します。
cat private_key
cat public_key
秘密鍵をコピーします。次のステップで必要になります。
注:秘密鍵を公開しないでください。
構成ファイル
Wireguardサーバーの構成ファイルを作成しましょう。ファイルには任意の名前を選択できます。wg0.conf
この例ではファイルを作成します。
vim wg0.conf
以下をファイルに追加します。
[Interface]
Address = 10.20.43.1/24
SaveConfig = true
ListenPort = 51190
PrivateKey =
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o -j MASQUERADE
前にコピーした秘密鍵を上記のコードの5行目に貼り付けます。
サーバーのIPアドレスとは異なる(仮想)サブネット上でWireguardを構成する必要があります。ここでは、サーバーに10.20.43.1を使用し、クライアントに10.20.43.2を使用します。ここでは、任意のサブネットを使用できます。サーバーとインターフェースのIPアドレスを取得するには、次のコマンドを実行します。
ifconfig
強調表示されている部分はIPアドレスです
サーバーのIPアドレスをメモします。これは、クライアントの構成時に必要です。
上の画像に示されているように、サーバーが使用するインターフェースはeth0
です。インターフェース名は、ユーザのネットワークに基づいて異なることができ、それはすることができwlan0
、またはwlp2s0
ユーザが無線カードを使用して、Wi-Fiネットワークに接続されている場合には。
PostUp
とPostDown
をインターフェースに置き換えます。この例ではeth0
です。 PostUp
およびPostDown
ディレクティブは、サーバーの起動時と停止時にそれぞれ実行するコマンドを指定するために使用されます。この例では、iptables
コマンドを使用して、サーバーのIPアドレスがクライアントによって共有されるようにIPルールを設定します。サーバーが停止すると、ルールは削除されます。
ファイルを保存して終了します。vimを使用する場合は、Escキーを押してから、Enterキーを:wq
押して保存し、終了します。
ufw
サーバーでファイアウォールを使用している場合は、VPNサーバー51190のポートへのUDP接続を許可する必要があります。
ufw allow 51190/udp
サービスの開始
構成が完了したら、WireguardVPNサービスを開始できます。
起動時にサービスを開始できるようにするには、次のコマンドを実行します。
systemctl enable [email protected]
これwg0
が構成ファイルの名前であることに注意してください。
サービスを開始するには、次を実行します。
service [email protected] start
サービスが正常に開始されたことを確認します。
service [email protected] status
IPコマンドを使用して、構成ファイルで作成したインターフェースが開始されていることを確認します。
ip a show wg0
これで、WireguardVPNサーバーがセットアップされて実行されます。それでは、クライアントを構成しましょう。
クライアント構成
Wireguardのクライアント構成は、サーバー構成とほぼ同じです。クライアントのキーを生成してから、構成ファイルを作成します。
セキュリティキー
クライアントの公開鍵と秘密鍵のペアを生成するには、次のコマンドを実行します。
sudo su
cd /etc/wireguard
umask 077
wg genkey | tee client_private_key | wg pubkey > client_public_key
クライアントの公開鍵と秘密鍵は、それぞれファイルclient_private_key
とに生成されるようになりましたclient_public_key
。
cat
コマンドを使用して、それらが作成されていることを確認します。
cat client_private_key
cat client_public_key
表示された秘密鍵をクライアントの構成ファイルに追加する必要があるため、コピーします。
構成ファイル
任意の名前で構成ファイルを作成します。wg0-client
この例の名前で作成します。
vim wg0-client.conf
次の構成を追加します。
[Interface]
# IP Address and Private Key of the Client
Address = 10.20.43.2/24
PrivateKey =
[Peer]
# Public key, IP Address and Port of the Server
PublicKey =
Endpoint = :51190
AllowedIPs = 0.0.0.0/0, ::/0
クライアントのサブネットアドレスを入力します。前に説明したように10.20.43.2
、この例ではクライアントに使用します。
前の手順で生成されたクライアント秘密鍵を、上記の構成コードの4行目に追加します。
[ピア]の下に、接続するWireguardVPNサーバーに関する情報を追加します。
サーバーの公開鍵を入力します。以前にメモしたサーバーのIPアドレスを入力し、エンドポイントに対して指定された形式で移植します。これは、サーバー構成ファイルで指定したポートであり、サーバー上のVPNサービスが開始されたポートです。
許可されたIPは、指定されたとおりに入力する必要があります(0.0.0.0/0)。これにより、クライアントが使用する動的パブリックIPに対する要求は、常にVPNサーバーに転送されます。
ファイルを保存して終了します。vimを使用する場合は、Escキーを押してから、Enterキーを:wq
押して保存し、終了します。
起動するたびにクライアントサービスを実行できるようにして、起動します。
systemctl enable [email protected]
service [email protected] start
サービスが開始されているかどうかを確認します。
service [email protected] status
サーバーへのピアの追加
これで、VPNサーバーとクライアントが稼働しました。ただし、サーバーとクライアントの間にピアツーピア接続を確立しない限り、2つの間の安全なトンネルは確立されません。
サーバーに戻ります。まず、VPNサービスを停止します。
service [email protected] stop
次に、構成ファイルを開いて、ピア(クライアント)の構成を追加します。
vim /etc/wireguard/wg0.conf
次の行をファイルに追加します。
[Peer]
PublicKey =
AllowedIPs = 10.20.43.2/32
ここで、VPNサービスを再開します。
service [email protected] start
それでおしまい!これは、WireguardVPNクライアントとサーバーのセットアップに必要なすべての構成です。VPNをテストしてみましょう。
VPNのテスト
まず、VPNトンネル通信が機能することを確認するために、クライアントからサーバーへの簡単なpingを実行してみましょう。クライアントで次を実行します。
ping 10.20.43.1
次に、Webブラウザを開き、任意のWebサイトを開いて、クライアントマシンからインターネットに接続できるかどうかを確認します。を使用して、コマンドラインからインターネット接続を確認することもできますwget
。
wget
これで、トンネル接続とインターネット接続を確認しました。両方が機能している場合は、クライアントに着信するすべてのインターネットトラフィックがサーバーを通過していることを確認する必要があります。
このためには、インターネットから見たクライアントのIPアドレスを確認するだけです。これを行う1つの方法は、whatsmyip.orgにアクセスすることです。または、コマンドラインから、Curlを使用してIP情報と呼ばれる別の同様のサービスをクエリできます。
クライアントマシンで以下を実行します
curl https://ipinfo.io/ip
はい。これは、VPNサーバーがホストされているLinodeのパブリックIPアドレスです。これは、VPNを使用して匿名性を実現する方法です。これは、インターネット全体で、コンピューターではなくVPNサーバーのIPが表示されるようになったためです。
結論
セットアップの容易さは、OpenVPNのような従来のVPNソフトウェアに対するWireguardの最も重要な利点の1つであり、セットアップにはより高いレベルのネットワークとルーティングの知識が必要です。ただし、Wireguardのセットアップでエラーが発生したり、期待どおりに機能しなかったりすると、問題が発生する可能性のあるWireguardの詳細な公式ドキュメントが不足しています。
それでも、インターネットを介した安全な通信のためにセルフホストVPNが必要な場合は、Wireguardが最適です。Wireguardと、Wireguardが使用するプロトコルとテクノロジーの詳細については、公式サイトをご覧ください。
標準のDebianとその人気のある派生Ubuntuは、Linuxシステムにとって優れた万能の選択肢ですが、より専門的なニーズがある場合は、Debianの代替手段が必要になる場合があります。
Node.jsは、事実上、オープンソースのクロスプラットフォームJavaScriptランタイム環境です。Node.jsを有効にすると、ブラウザーを開くことを心配することなく、UbuntuマシンでJavaScriptを実行できます。ChromeのV8JavaScriptエンジン上に構築されており、Linuxにさまざまな方法でインストールできます。
LinuxでGUIファイルブラウザを使用してファイルを移動する方法をすでに知っている可能性がありますが、ターミナルに移動コマンドがあり、ファイルを別のディレクトリにすばやく移動できるかどうか疑問に思われるかもしれません。mvコマンドは必要なものであり、その単純な構文といくつかのオプションの安全フラグで簡単に使用できます。
makeコマンドは、おそらくLinuxエコシステムで最も広く使用されているコマンドの1つです。このコマンドは、ソースコードから直接プログラムをビルドおよびコンパイルするために使用されます。
Ubuntuは、その堅牢性と比較的少ないエラーで人気があります。しかし、確かに、問題の袋がないわけではありません。そのような問題の1つは、Wi-Fiドライバーにあります。システムの電源を入れても、Wi-Fiが機能していないことがわかります。
Ubuntu LinuxPCのターミナルからFirefoxを更新する方法を学ぶ
UbuntuでNotepad ++に代わる価値のあるものをお探しですか?無料のNotepadqqアプリを探すだけです
Linuxマシンに最初にインストールする必要があるものの1つ
Ubuntu 20.04でrootパスワードを設定、リセット、変更します
ドックを離れて出航したほうがよい場合もあります。
Ubuntu 20.04LTSでsudoを使用するすべてのユーザーにroot権限を付与する
Ubuntu20.04のコマンドラインからGoogleChromeをインストールするためのクイックガイド
どこからでもUbuntuマシンに安全にアクセスできます
Linuxは、カジュアルユーザーに好まれるオペレーティングシステムではないかもしれませんが、ほとんどの開発者やプログラマーにとって頼りになる選択肢です。Linuxは、プログラミングと開発者を念頭に置いて明示的に設計された、より実用的なOSです。
Linuxサーバーをセットアップする場合は、FTPアクセスが必要です。これは、最初にLinuxにFTPサーバーをインストールすることを意味します。これは、サーバーのオペレーティングシステムをインストールした後に最初に行うことの1つである必要があります。
多くの新しい更新されたテーマは、Ubuntu20.04の新しいGNOMEデスクトップにインストールする準備ができています。ここに2020年の最高のubuntuテーマのリストがあります
Ubuntuでは、デフォルトで、Windowsの代わりにアプリケーションを切り替えることができます。これを元に戻し、UbuntuのAlt-Tabでタブのグループ化を解除する方法は次のとおりです。
Gno-Menu、Extended Gesturesなどの人気のある拡張機能の多くは、Ubuntu20.04では機能しません。したがって、ここに最も効果的なGNOME拡張機能のリストがあります
アプリを使用してUbuntuのネイティブ壁紙をスライドショーすることはいつでもできますが、壁紙を動的にダウンロードして設定するためのアプリをいくつか紹介します。
Ubuntuのルートスーパーユーザーの違いは何ですか?さて、ここでカバーしてもらいます。
このビデオでは、完全なガイド付きのubuntu12.04システム用のTeamViewer8をインストールして使用します。しかし、これはウィンドウでも同じように機能します。
すべての綿毛を除いて、ここにあなたが素晴らしいビデオを作成するために使うことができるUbuntuのための最高の無料のビデオエディタのリストがあります。
Linuxのハウツーガイドでは、ターミナルで特定の操作を実行することを期待していることがよくありますが、これは最初は恐ろしいように思えます。しかし、心配する必要はありません。このLinuxコマンドのチートシートでは、ターミナルを開いていくつかの便利なコマンドを発行するプロセスについて説明します。
Arch Linuxにパッケージをインストールしたいのですが、方法がわかりませんか?多くの人は、DebianベースのディストリビューションからArchに最初に移行するときにこの問題に直面します。ただし、パッケージマネージャーを使用して、Archベースのシステムでパッケージを簡単に管理できます。
FTP、ピアツーピアファイル転送、Wi-Fi転送などのメカニズムを使用すると、AndroidとUbuntuの間でファイルを頻繁に共有する場合に時間を節約できます。