OpenVPN のファイアウォール設定

OpenVPN のファイアウォール設定

Fedora Server 35 を実行している VPS 上に OpenVPN サーバーをセットアップしようとしています。VPN をセットアップして動作させていますが、ファイアウォールのセットアップで問題が発生しています。

ファイアウォールを管理するのは今回が初めてで、Linux ネイティブでもありませんが、学ぼうとしています。CentOS インスタンスのガイドに従いましたが、CentOS は廃止されたため、Contabo の Fedora イメージを選択しました。

このガイドは に依存しておりfirewalld、私の VPS にはすでに がインストールされ、部分的にセットアップされていたため、私も同じことをしました。firewalldをオフにすると VPN クライアントが問題なく接続されるため、 が問題であることがわかっています。

2 つのアクティブ ゾーンが設定されていますFedoraServertrustedゾーンFedoraServerは VPS イメージで事前設定されており、デフォルト ゾーンとしてセットアップされています。ガイドに従って設定を変更するには、次のコマンドを使用しました。

firewall-cmd --zone=trusted --add-service openvpn
firewall-cmd --zone=trusted --add-service openvpn --permanent
firewall-cmd --add-masquerade
firewall-cmd --add-masquerade --permanent
VAR=$(ip route get 1.1.1.1 | awk 'NR==1 {print $(NF-2)}')
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o $VAR -j MASQUERADE
firewall-cmd --reload

現在のゾーン情報は次のとおりです。

[~]# firewall-cmd --info-zone=FedoraServer
FedoraServer (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 
  protocols: 
  forward: no
  masquerade: yes
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
[~]# firewall-cmd --info-zone=trusted
trusted (active)
  target: ACCEPT
  icmp-block-inversion: no
  interfaces: tun0
  sources: 
  services: openvpn
  ports: 
  protocols: 
  forward: yes
  masquerade: yes
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

興味深い注意点は、デフォルト ゾーンとして設定すると、 NAT が機能し、インターネットにアクセスできる状態trustedで VPN に接続できることです。firewalld

これで問題は解決したと言えるでしょう。しかし、私の知識不足により、ゾーンがtrustedを使用しているため、セキュリティに穴が開いているのではないかと心配していますtarget: ACCEPT

StackExchange、Fedora フォーラム、OpenVPN フォーラムのスレッドを数え切れないほど読みましたが、firewalldドキュメントも役に立ちませんでした。これを理解するための基礎的なネットワーク知識が不足していると感じており、何を検索すればよいのかもうわかりません。

どのような助け、ヒント、ガイダンスでもいただければ幸いです。

答え1

信頼ゾーンにサービスを追加し、受け入れをドロップに変更することができます。たとえば、openvpnとsshのみを許可するには、次のようにします。

sudo firewall-cmd --zone=trusted --add-service={ssh,openvpn}
sudo firewall-cmd --zone=trusted --set-target=DROP
sudo firewall-cmd --reload

答え2

どうやら正しい方向に進んでいるようで、Fedora 35 での OpenVPN サーバーの構成は順調に進んでいます。主な懸念事項は、ファイアウォール設定が安全であり、不要な穴が残っていないことを確認することです。

あなたの懸念に対処し、いくつかのガイダンスを提供しましょう:

デフォルトゾーン:

目的に応じて異なるゾーンを用意するのはよくあることです。信頼済みをデフォルト ゾーンとして設定することで VPN が機能するのであれば問題ありません。ただし、target: ACCEPT に関する懸念についてはご指摘のとおりです。より安全な構成では、必要なサービスのみにアクセスを制限する必要があります。

FedoraServerゾーン:

FedoraServer ゾーンをデフォルトとして使用する場合は、OpenVPN に必要なトラフィックが許可されていることを確認する必要があります。信頼済みがデフォルトとして設定されている場合に OpenVPN が機能するとおっしゃっていますので、2 つのゾーンの設定を比較すると役立つかもしれません。FedoraServer ゾーンの調整:

FedoraServer ゾーンをデフォルトとして使用する場合は、OpenVPN トラフィックを許可するルールを追加する必要があります。例:

ファイアウォール-cmd --zone=FedoraServer --add-service=openvpn --permanent ファイアウォール-cmd --reload

関連情報