web-dev-qa-db-ja.com

指定されたIPアドレスを除くすべてへのアクセスを制限するためにfirewalldを取得するにはどうすればよいですか?

Firewalldの設定についてサポートをいただければ幸いです。これが背景です。私がやりたいのは、httpsで実行されているWebアプリケーションへのホワイトリストに登録されたIPアドレスを除くすべてのアクセスを防止することです。

私はググリングをたくさんしました。多くのことを学びましたが、まだうまくいきませんでした。これが私がしたことです:

  1. Firewalldが実行されていることがわかります

    # systemctl status firewalld
    
    firewalld.service - firewalld - dynamic     firewall daemon    Loaded: loaded
    (/usr/lib/systemd/system/firewalld.service; enabled)    Active: active
    (running)
    

またと

    # firewall-cmd –state
    running
  1. デフォルトのゾーンがあります

    # firewall-cmd --get-zones
    block dmz drop external home internal public trusted work
    
  2. 私のアクティブゾーンは次のとおりです。

    # firewall-cmd --get-active-zones
    public
    sources: 192.72.0.193 192.72.0.0/22 94.27.256.190
    
  3. 私のデフォルトゾーンはパブリックです:

    # firewall-cmd --get-default-zone
    public
    
  4. パブリックの詳細は次のとおりです。

    public (default)   
    interfaces:   
    sources: 192.72.0.193 192.72.0.0/22 94.27.256.190   
    services: http https ssh   
    ports:   
    masquerade: no   
    forward-ports:   
    icmp-blocks:   
    rich rules:
    

私の理解では、上記のパブリックゾーンの構成では、指定されたIPアドレスのいずれかからの要求にのみ許可が制限されます。しかし、リストされていないIPから https://www.example.com にアクセスしようとすると、許可されます。

3
pi.

1つのオプションは、サービスを削除することです:ゾーンからhttps

firewall-cmd --zone=public --remove-service=https

次に、いわゆるルールを使用して、どのソース[IPアドレス]がどのサービス[httpやhttpsなど]にアクセスできるかを指定します。

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="x.x.x.0/24" service name="https" log prefix="https" level="info" accept'

ただし、リロードする必要があるかもしれません

2
pi.