VPN「仮想プライベートネットワーク」は、暗号化を使用してユーザーID、発信元、およびデータを隠すプライベートネットワークです。その主な用途は、ユーザーのデータプライバシーとインターネットへの安全な接続です。データを非表示にするため、通常は地理的制限によってブロックされているデータにアクセスできます。
OpenVPNは、それ自体がソフトウェアでありプロトコルでもあるオープンソースVPNソフトウェアです。ファイアウォールをバイパスし続けるため、非常に高く評価されています。
このチュートリアルでは、OpenVPNサーバーをインストールしてセットアップし、OpenVPNクライアントに接続する方法を段階的に説明します。インストールにはCentOS8サーバーを使用します。同じ手順は、RockyLinux8とAlmaLinux8でも機能します。
前提条件
ターミナルアクセス
sudo権限を持つユーザーアカウント。
注: このチュートリアルのコマンドはCentOS8で実行されます。チュートリアルのすべてのメソッドはCentOS7でも有効です。
システムの更新とアップグレード
次のコマンドを実行してシステムを更新およびアップグレードし、システムが最新であることを確認します。
sudo dnf update &&sudo dnf upgrade
SELinuxを無効にする
次に、SELinuxがOpenVPNと競合し、起動できないため、SELinuxを無効にする必要があります。
SELinuxを無効にするには、次のコマンドを使用してSELinux構成ファイルを開きます。
sudo nano / etc / selinux / config
ファイルをnanoエディターで開いたら。 SELinuxを検索し、その値をdisabledに変更するか、単に次のコード行に置き換えます。
SELINUX=無効
Ctrl+Oを押してからCtrl+Xを押して、ファイルを保存して終了します。
IP転送を有効にする
次に、着信パケットを別のネットワークに転送できるように、IP転送を有効にする必要があります。
IP転送を有効にするには、nanoエディターでsysctl構成ファイルを開きます。
sudo nano /etc/sysctl.conf
次のコードをファイルに追加します。
net.ipv4.ip_forward =1
Ctrl+Oを押してからCtrl+Xを押します。
OpenVPNサーバーのインストール
必ずepel-releaseパッケージをインストールしてください。
sudo dnf install epel-release -y
これで、次のコマンドを使用してOpenVPNをインストールできます。
sudo dnf install openvpn -y
これでOpenVPNがインストールされました。インストールフォルダに移動し、easy-rsaをダウンロードします。 Easy-RSAは、認証局(CA)を構築および管理します。
cd / etc / openvpn
sudo wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.6/EasyRSA-unix-v3.0.6.tgz
ダウンロードしたzipファイルを解凍します。
sudo tar -xvzf EasyRSA-unix-v3.0.6.tgz
EasyRSAファイルをそのフォルダに移動します。
sudo mv EasyRSA-v3.0.6 easy-rsa
Easy-RSAの構成
次に、SSL証明書を追加して構築する必要があります。これを行うには、まず、easy-rsaディレクトリに移動します。
cd / etc / openvpn / easy-rsa
nanoエディターでvarsファイルを開くには、次のコマンドを実行します。
sudo nano vars
次に、次のコード行をコピーしてvarsファイルに貼り付けます。
<前> set_var EASYRSA "$ PWD" set_var EASYRSA_PKI "$ EASYRSA / PKI" set_var EASYRSA_DN "cn_only" set_var EASYRSA_REQ_COUNTRY "USA" set_var EASYRSA_REQ_PROVINCE "NEWYORK" set_var EASYRSA_REQ_CITY "NEWYORK" set_var EASYRSA_REQ_ORG "CERTIFICATE AUTHORITY osradar" set_var EASYRSA_REQ_EMAIL "" set_var EASYRSA_REQ_OU "osradar EASY CA" set_var EASYRSA_KEY_SIZE 2048set_var EASYRSA_ALGO rsaset_var EASYRSA_CA_EXPIRE 7500set_var EASYRSA_CERT_EXPIRE 365set_var EASYRSA_NS_SUPPORT "CERTIFICATE AUTHORITY osradar" "いいえ" set_var EASYRSA_NS_COMMENT set_var EASYRSA_EXT_DIR "$ EASYRSA / X509-タイプ" set_var EASYRSA_SSL_CONF "$ EASYRSA / opensslの-easyrsa.cnf" set_var EASYRSA_DIGEST」 sha256 "
要件に応じて、国、都市、州、および電子メールの値を変更できます。
Ctrl+Oを押してからCtrl+Xを押します。
次に、次のコマンドを使用してPKIディレクトリを開始します。
./ easyrsa init-pki
最後に、CA証明書を作成できます。
sudo ./easyrsa build-ca
サーバー証明書ファイルの生成
次のコマンドを使用して、キーペアと証明書のリクエストを取得します。
sudo ./easyrsa gen-req vitux-server nopass
CAを使用してサーバーキーに署名する
CAを使用してサーバーキーに署名するには、次のコマンドを実行します。
sudo ./easyrsa sign-req server vitux-server
キー交換の目的で、Diffie-Hellmanキーが必要です。次のコマンドを実行してキーを生成します。
sudo ./easyrsa gen-dh
次に、これらすべてのファイルを / etc / openvpn / server /にコピーします ディレクトリ。
cp pki / ca.crt / etc / openvpn / server / cp pki / dh.pem /etc/openvpn/server/cp pki / private / vitux-server.key / etc / openvpn / server / cp pki / issued /vitux-server.crt / etc / openvpn / server /
クライアントキーと証明書を生成する
次のコマンドを実行すると、クライアントキーを取得できます。
sudo ./easyrsa gen-req client nopass
次に、生成されたCA証明書を使用してクライアントキーに署名します。
sudo./easyrsasign-reqクライアントクライアント
これらのファイルを/etc / openvpn / client /にコピーします ディレクトリ
cp pki / ca.crt / etc / openvpn / client / cp pki / issued / client.crt /etc/openvpn/client/cp pki / private / client.key / etc / openvpn / client /
OpenVPNサーバーの構成
次のコマンドを使用して、クライアントディレクトリに新しい構成ファイルを作成して開きます。
sudo nano /etc/openvpn/server/server.conf
次に、ファイルに次のコード行を追加します。
port 1194proto udpdev tunca /etc/openvpn/server/ca.crtcert /etc/openvpn/server/vitux-server.crtkey /etc/openvpn/server/vitux-server.keydh / etc / openvpn / server / dh pemserver 10.8.0.0 255.255.255.0push "redirect-gateway def1" push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.220.220" duplicate-cncipher AES-256-CBCtls-version-min 1.2tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS- DHE-RSA-WITH-AES-128-CBC-SHA256auth SHA512auth-nocachekeepalive 20 60persist-keypersist-tuncompress lz4daemonuser nobodygroup nobodylog-append /var/log/openvpn.logverb 3
Ctrl+OとCtrl+Xを押します。
OpenVPNサービスを開始して有効にする
OpenVPNを起動する準備ができました。次のコマンドを使用してサーバーを起動し、有効にします。
sudo systemctl start [email protected] sudo systemctl enable [email protected]
次のコマンドを使用して、アクティブなステータスを確認および確認できます。
systemctl status [email protected]
OpenVPNサーバーが正常に起動すると、新しいネットワークインターフェイスが作成されます。次のコマンドを実行して詳細を確認します。
ifconfig
クライアント構成ファイルを生成する
次のステップは、クライアントをOpenVPNサーバーに接続することです。そのためのクライアント構成ファイルが必要です。クライアント構成ファイルを生成するには、次のコマンドを実行します。
sudo nano /etc/openvpn/client/client.ovpn
次に、次のコードをコピーしてファイルに貼り付けます。
clientdev tunproto udpremote vpn-server-ip 1194ca ca.crtcert client.crtkey client.keycipher AES-256-CBCauth SHA512auth-nocachetls-version-min 1.2tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM -SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256resolv -infinitecompresslz4nobindpersist-keypersist-tunmute-replay-warningsverb3を再試行します
Ctrl + Oを押して変更を保存し、Ctrl+Xを押してエディターを終了します。
ルーティングの構成
次のコマンドを使用してOpenVPNサービス設定を設定し、ファイアウォールを通過できるようにします。
Firewall-cmd --permanent --add-service =openvpnfirewall-cmd --permanent --zone =trusted --add-service =openvpnfirewall-cmd --permanent --zone =trusted --add-interface =tun0
Firewall-cmd --add-masqueradefirewall-cmd --permanent --add-masquerade
VPNからローカルネットワークに着信トラフィックを転送するようにルーティングを設定します。
routecnf =$(ip route get 8.8.8.8 | awk'NR ==1 {print $(NF-2)}')firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o $ routecnf -j MASQUERADE
リロードして変更を有効にします。
Firewall-cmd --reload
クライアントマシンにOpenVPNをインストールして使用する
サーバー側で行ったように、epel-releaseとOpenVPNをインストールする必要があります。
dnf install epel-release -ydnf install openvpn -y
次に、以下のコマンドを使用して、サーバーからクライアント構成ファイルをコピーします。
sudo scp -r [メール保護]:/ etc / openvpn/client。
クライアントディレクトリに移動し、次のコマンドを使用してOpenVPNサーバーに接続します。
cd clientopenvpn --config client.ovpn
ifconfigを実行して、割り当てられたIPアドレスを確認します。
ifconfig tun0