GNU/Linux >> Linux の 問題 >  >> Panels >> OpenVPN

Fedora 29 /CentOS7にOpenVPNサーバーをインストールしてセットアップする

このガイドでは、Fedora 29 /CentOS7にOpenVPNサーバーをインストールしてセットアップする方法を学習します。
OpenVPNは、SSLベースのVPNトンネルを作成できるオープンソースのVPNソフトウェアです。離れた場所から協力的なイントラネットに接続したいとします。 VPNサーバーをセットアップしている場合は、これが可能になる可能性があるため、心配する必要はありません。仮想プライベートネットワーク(VPN)は、パブリックネットワーク全体にプライベートネットワークを拡張する安全なトンネルを提供します。つまり、既存のローカルエリアネットワーク(LAN)からワイドエリアネットワーク(WAN)を作成するのに役立ちます。その結果、ユーザーは、LANに直接接続されているかのように、パブリックネットワークを介してデータを安全に送信できます。

OpenVPNについて詳しくは、こちらをご覧ください。

Fedora 29/28 /CentOS7にOpenVPNサーバーをインストールしてセットアップする

多くの理論はありませんが、Fedora 29/28 /CentOS7にOpenVPNサーバーをインストールしてセットアップする方法を段階的に見ていきましょう。

サーバーを更新します。

dnf update << Fedora
yum update << Fedora/CentOS

OpenVPNとEasy-RSAをFedora29/28にインストールする

OpenVPNは堅牢で柔軟性の高いVPNデーモンを提供し、Easy-RSAパッケージはVPN接続を保護するために使用されるSSLキーペアを生成するために使用されます。 OpenVPNパッケージとEasy-RSAパッケージの両方が、デフォルトのFedoraリポジトリで利用できます。以下のコマンドを実行してインストールします。

dnf install openvpn easy-rsa

CentOS7にOpenVPNとEasy-RSAをインストールする

OpenVPNはデフォルトのCentOSリポジトリでは利用できませんが、EPELで利用できるため、OpenVPNをインストールする前にEPELリポジトリをインストールする必要があります。

Enterprise Linux(EPEL)用の追加パッケージを追加するには、次のコマンドのいずれかを実行します;

yum install epel-release

または

wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm

OpenVPNとEasy-RSAをインストールします

yum install openvpn easy-rsa

ローカルCAを構築し、サーバーキーと証明書ファイルを生成します

サーバーキーと証明書ファイルを保存するディレクトリを作成します。

mkdir /etc/openvpn/easy-rsa

Easy-RSAによってインストールされたキー/証明書生成スクリプトをデフォルトのディレクトリから上記で作成したディレクトリにコピーします。

cp -air /usr/share/easy-rsa/3/* /etc/openvpn/easy-rsa

/etc/openvpn/easy-rsaに移動します ディレクトリを作成し、新しいPKIを開始します。

cd /etc/openvpn/easy-rsa
./easyrsa init-pki

CA証明書を作成します。これにより、暗号化パスワードとサーバーの共通名の入力を求められます。

./easyrsa build-ca
...
writing new private key to '/etc/openvpn/easy-rsa/pki/private/ca.key.EajtR0SkLM'
Enter PEM pass phrase: PASSWORD
Verifying - Enter PEM pass phrase: PASSWORD
-----
...
-----
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:server

CA creation complete and you may now import and sign cert requests.
Your new CA certificate file for publishing is at:
/etc/openvpn/easy-rsa/pki/ca.crt

前述のように、CA証明書は/etc/openvpn/easy-rsa/pki/ca.crtに保存されます。 。

接続しているクライアントとのTLSハンドシェイク中に使用できるDiffie-Hellmanキーファイルを生成します。

./easyrsa gen-dh

これにより、DHキーが生成され、/etc/openvpn/easy-rsa/pki/dh.pemとして保存されます。 。

サーバーのキーと証明書ファイルを生成します。

./easyrsa build-server-full server nopass

クライアントのキーと証明書ファイルを生成します。

./easyrsa build-client-full client nopass

以前に署名された証明書を無効にする必要がある場合は、失効証明書を生成します。

./easyrsa gen-crl

これにより、失効証明書が/etc/openvpn/easy-rsa/pki/crl.pemに保存されます。 。

TLS/SSL事前共有認証キーを生成します

openvpn --genkey --secret /etc/openvpn/easy-rsa/pki/ta.key

生成された証明書/キーをサーバー構成ディレクトリにコピーします。

cp -rp /etc/openvpn/easy-rsa/pki/{ca.crt,dh.pem,ta.key,issued,private} /etc/openvpn/server/

OpenVPNサーバーの構成

OpenVPNのドキュメントディレクトリにはサンプル構成ファイルがあるため、作業を楽にするために、サンプル/usr/share/doc/openvpn{-2.4.6,}/sample/sample-config-files/server.conf /etc/openvpnへのファイル 変更のため。

Fedora

cp /usr/share/doc/openvpn/sample/sample-config-files/server.conf /etc/openvpn/server/

CentOS 7

cp /usr/share/doc/openvpn-2.4.6/sample/sample-config-files/server.conf /etc/openvpn/server/

server.confを編集します 次のようにファイルします;

vim /etc/openvpn/server/server.conf

次のようにファイルを変更します;

# Which TCP/UDP port should OpenVPN listen on?
# Change to match your port and open it in the firewall
port 1194

# TCP or UDP server?
proto udp

# "dev tun" will create a routed IP tunnel
dev tun

# Change path for certificates
ca ca.crt
cert issued/server.crt
key private/server.key

# Diffie hellman exchange key path
dh dh.pem

# Network topology
topology subnet

# OpenVPN Network IP. For below, The server will take 10.8.0.1 for itself,
# the rest will be made available to clients.
server 172.16.0.0 255.255.255.0

# this directive will configure all clients to redirect their default
# network gateway through the VPN
push "redirect-gateway def1 bypass-dhcp"

# DNS servers
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"

# For compression compatible with older clients use comp-lzo.
comp-lzo

# Run VPN with limited privileges
user nobody
group nobody

# Status log file
status /var/log/openvpn/openvpn-status.log

# TLS/SSL pre-shared authentication key
tls-auth ta.key 0

# Make VPN log directory and log file
log-append /var/log/openvpn/openvpn.log

#Append this line to change authentication algorithm (HMAC) from SHA1 to SHA512
auth SHA512

ログディレクトリを作成します;

mkdir /var/log/openvpn/

構成ファイルを保存します

ルーティングの構成

IP転送を有効にする

IP転送を有効にすると、クライアントからのトラフィックがサーバーのIPアドレスを介してルーティングされ、クライアントのIPアドレスがマスクされます。

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

以下のコマンドを実行して、変更を有効にします;

sysctl --system

ファイアウォールを介したOpenVPNサービスポートの許可

firewall-cmd --add-port=1194/udp --permanent

IPマスカレードをアクティブ化

firewall-cmd --add-masquerade --permanent

指定されたOpenVPNサブネットで受信したトラフィックを、パケットが送信されるインターフェイスに転送します。

以下のコマンドを実行して、パケットが送信されるインターフェイスを見つけます。

ip route get 8.8.8.8
8.8.8.8 via 192.168.43.1 dev enp0s8 src 192.168.43.23

場合によっては、インターフェース名が異なる場合があります。それに応じて置き換えます。

firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 172.16.0.0/24 -o enp0s8 -j MASQUERADE

変更を有効にするためにfirewalldをリロードします。

firewall-cmd --reload

OpenVPNを起動して起動時に開始するように設定します。

systemctl start [email protected]
systemctl enable [email protected]

OpenVPNサービスを実行すると、トンネリングインターフェイスtun0;

ip add show tun0
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/none 
    inet 172.16.0.1/24 brd 172.16.0.255 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::1155:c60c:c009:48c9/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever

VPNサーバーにはIPアドレス172.16.0.1が割り当てられ、最初のクライアントには172.16.0.2が割り当てられます。

VPNクライアントの構成

VPNクライアントがVPNサーバーに接続するには、上記で生成されたCA証明書、クライアントキー、クライアント証明書、およびTLS/SSL認証キーのコピーが必要です。したがって、これらのファイルをターゲットクライアントにコピーし、便利なディレクトリに配置します。

cd /etc/openvpn/easy-rsa/pki/
scp {ca.crt,issued/client.crt,private/client.key,ta.key} [email protected]:~/

OpenVPNクライアントのインストール

  • クライアントとしてLinux/Unixサーバーを使用している場合は、たとえば、respecitveパッケージマネージャーを使用してOpenVPNクライアントをインストールします。
    apt install openvpn
    yum install openvpn
  • Windowsマシンから接続している場合は、OpenVPNダウンロードページからOpenVPNクライアントインストーラーをダウンロードしてインストールするだけです。

以下に示すように、クライアントのOpenVPN構成ファイルを作成します。例として、証明書とキーファイルをクライアントのホームディレクトリにコピーしました。

[email protected]:/home/amos# ls
ca.crt client.crt client.key ta.key
vim client.ovpn
client
tls-client
pull
dev tun
proto udp
remote 192.168.43.69 1194
resolv-retry infinite
nobind
dhcp-option DNS 8.8.8.8
user nobody
group nogroup
persist-key
persist-tun
key-direction 1
tls-auth ta.key 1
comp-lzo
verb 3
ca ca.crt
cert client.crt
key client.key
auth SHA512

クライアントからOpenVPNサーバーに接続するには、以下のコマンドのいずれかを実行します;

sudo openvpn client.ovpn

または

sudo openvpn --config client.ovpn

接続が成功すると、Initialization Sequence Completedが表示されます。 。

Mon Dec 31 03:54:39 2018 TUN/TAP device tun0 opened
Mon Dec 31 03:54:39 2018 TUN/TAP TX queue length set to 100
Mon Dec 31 03:54:39 2018 do_ifconfig, tt->did_ifconfig_ipv6_setup=0
Mon Dec 31 03:54:39 2018 /sbin/ip link set dev tun0 up mtu 1500
Mon Dec 31 03:54:39 2018 /sbin/ip addr add dev tun0 172.16.0.2/24 broadcast 172.16.0.255
Mon Dec 31 03:54:39 2018 /sbin/ip route add 192.168.43.69/32 dev enp0s8
Mon Dec 31 03:54:39 2018 /sbin/ip route add 0.0.0.0/1 via 172.16.0.1
Mon Dec 31 03:54:39 2018 /sbin/ip route add 128.0.0.0/1 via 172.16.0.1
Mon Dec 31 03:54:39 2018 GID set to nogroup
Mon Dec 31 03:54:39 2018 UID set to nobody
Mon Dec 31 03:54:39 2018 Initialization Sequence Completed

インターフェイスを確認できる場合は、トンネリングインターフェイスが作成されていることを確認してください。

ip add sh tun0
20: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
    link/none 
    inet 172.16.0.2/24 brd 172.16.0.255 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::dc37:c115:60f:6b86/64 scope link flags 800 
       valid_lft forever preferred_lft forever

これで、VPNサーバーに正常に接続できました。

これで、OpenVPNサーバーをFedora 29 /CentOS7にインストールしてセットアップする方法について説明しました。OpenVPNサーバーは完全に機能しています。楽しみ。

関連チュートリアル

Ubuntu18.04でStrongSwanを使用してIPSECVPNを構成する

Ubuntu 18.04 /CentOS8でstrongSwanVPNクライアントを構成する

Debian10でStrongSwanを使用してIPSECVPNをセットアップする


No
OpenVPN
  1. Ubuntu20.04にOpenVPNサーバーをインストールしてセットアップする

  2. CentOS 8 /Ubuntu18.04にOpenVPNクライアントをインストールして構成する

  3. CentOS8でOpenVPNサーバーをセットアップする

  1. CentOSにDRBDをインストールしてセットアップする方法

  2. LinuxでOpenVPNサーバーをインストールおよび構成する最も簡単な方法

  3. OpenVPNサーバーFreeBSD12のインストールと設定

  1. OpenVPNアクセスサーバーをインストールして構成する方法

  2. CentOS7にTeamSpeakサーバーをインストールして使用する方法

  3. CentOS /RHEL7/6およびFedora30/29でNTPサーバーをセットアップする方法