GNU/Linux >> Linux の 問題 >  >> Linux

CentOS8でファイアウォールを使用してファイアウォールを設定する方法

ファイアウォールは、外部ネットワークからの不要なトラフィックからシステムを保護する方法です。無料の商用ファイアウォールツールは豊富にあります。それらのいくつかには、Iptables、UFW、Juniper、pfSense、SonicWallなどが含まれます。

その中で、FirewallDはCentOS / RHEL/Fedoraオペレーティングシステム用の無料のファイアウォールソフトウェアツールです。これはiptablesのフロントエンドコントローラーであり、ファイアウォールルールを実装するためのコマンドラインインターフェイスを提供します。 Iptablesと比較すると、FirewallDはチェーンとルールの代わりにゾーンとサービスを使用し、ルールセットを動的に管理します。 FirewallDは、ランタイムおよび永続的な構成を管理するためのfirewall-cmdコマンドラインツールを提供します。

機能

  • IPv4およびIPv6プロトコルをサポートする
  • 事前定義されたゾーンリスト
  • CLIとグラフィカル構成
  • 完全なD-BusAPI
  • イーサネットブリッジング
  • 拒否されたパケットの単純なログ
  • アプリケーションのホワイトリスト
  • 人形の統合

このチュートリアルでは、CentOS8でFirewallDを使用してファイアウォールを設定する方法を学習します。

前提条件

  • Atlantic.Netクラウドプラットフォーム上の新しいCentOS8VPS
  • サーバーで構成されているrootパスワード

ステップ1:Atlantic.Netクラウドサーバーを作成する

まず、Atlantic.Netクラウドサーバーにログインします。 1GB以上のRAMを搭載したオペレーティングシステムとしてCentOS8を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。

CentOS 8サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。

dnf update -y

ステップ2:Firewalldをインストールする

dnf install firewalld -y

インストールしたら、次のコマンドを使用して、FirewallDサービスを開始し、システムの再起動時に開始できるようにします。

systemctl start firewalld
systemctl enable firewalld

次のコマンドを使用して、FirewallDのステータスを確認することもできます。

firewall-cmd --state

出力:

running

ステップ3:基本的なFirewallDの使用法

FirewallDは、ゾーンを使用して一連のルールを管理します。各ゾーンには、コンピューターが接続されているネットワークに対する信頼のレベルに応じて、パケットを受け入れたり拒否したりするための独自の構成があります。

次のコマンドを使用して、使用可能なすべてのゾーンを一覧表示できます。

firewall-cmd --get-zones

次のリストが表示されます:

block dmz drop external home internal public trusted work

すべてのアクティブゾーンのリストを取得するには、次のコマンドを実行します。

firewall-cmd --get-active-zones

次のリストが表示されます:

public
interfaces: eth0 eth1

次のコマンドを使用して、ネットワーク接続に設定されているデフォルトのゾーンを一覧表示できます。

firewall-cmd --get-default-zone

出力:

public

次のコマンドを使用して、デフォルトゾーンをパブリックからホームに変更するには:

firewall-cmd --set-default-zone=home --permanent

次のコマンドを使用してゾーンに関する詳細情報を表示するには:

firewall-cmd --info-zone public

次の出力が得られるはずです:

public (active)
target: default
icmp-block-inversion: no
interfaces: eth0 eth1
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
>

次のコマンドを実行して、使用可能なすべてのサービスを一覧表示することもできます。

firewall-cmd --get-services

次の出力が得られるはずです:

RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bb bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-mon cfengine cockpit condor-collector ctdb dhcp dhcpv6 dhcpv6-client distcc dns dns-over-tls docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-server finger freeipa-4 freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master git grafana gre high-availability http https imap imaps ipp ipp-client ipsec irc ircs iscsi-target isns jenkins kadmin kdeconnect kerberos kibana klogin kpasswd kprop kshell kube-apiserver ldap ldaps libvirt libvirt-tls lightning-network llmnr managesieve matrix mdns memcache minidlna mongodb mosh mountd mqtt mqtt-tls ms-wbt mssql murmur mysql nfs nfs3 nmea-0183 nrpe ntp nut openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole plex pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy prometheus proxy-dhcp ptp pulseaudio puppetmaster quassel radius rdp redis redis-sentinel rpc-bind rsh rsyncd rtsp salt-master samba samba-client samba-dc sane sip sips slp smtp smtp-submission smtps snmp snmptrap spideroak-lansync spotify-sync squid ssdp ssh steam-streaming svdrp svn syncthing syncthing-gui synergy syslog syslog-tls telnet tentacle tftp tftp-client tile38 tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-http wbem-https wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server

ステップ4:Firewalldでポートを許可および拒否する

Firewalldは、システムのポートを追加および削除するためのfirewall-cmdコマンドラインツールを提供します。

たとえば、パブリックゾーンでTCPポート80および22を許可するには、次のコマンドを実行します。

firewall-cmd --zone=public --permanent --add-port=80/tcp --add-port=22/tcp

次に、FirewallDデーモンをリロードして、構成を保存します。

firewall-cmd --reload

次に、次のコマンドを使用して、追加されたポートを一覧表示します。

firewall-cmd --info-zone public

次の出力が表示されます。

public (active)
target: default
icmp-block-inversion: no
interfaces: eth0 eth1
sources:
services: cockpit dhcpv6-client ssh
ports: 80/tcp 22/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

オプション–remove-portを使用して、ポートをゾーンから簡単に拒否または削除することもできます。

たとえば、ポート80を拒否するか、パブリックゾーンから削除するには、次のコマンドを実行します。

firewall-cmd --zone=public --permanent --remove-port=80/tcp

ステップ5:FirewallDでサービスを許可および拒否する

FirewallDでポートを使用する代わりに、サービス名で許可および拒否することもできます。

たとえば、次のコマンドを実行して、パブリックゾーンでFTPサービスを許可します。

firewall-cmd --zone=public --permanent --add-service=ftp
firewall-cmd --reload

次のコマンドを使用して、FTPサービスを拒否またはパブリックゾーンから削除できます。

firewall-cmd --zone=public --permanent --remove-service=ftp
firewall-cmd --reload

ステップ6:FirewallDを使用してIPマスカレードを設定する

IPマスカレードは、プライベートIPアドレスを持つネットワーク内のコンピューターがサーバーのアドレスを使用してインターネットと通信できるようにするプロセスまたは方法です。 ISPから追加のIPを購入せずに、別のコンピューターがインターネットと通信できるようにする場合に非常に便利です。

IPマスカレードを設定する前に、次のコマンドでマスカレードがアクティブかどうかを確認してください。

firewall-cmd --zone=public --query-masquerade

以下に示すように、パブリックゾーンでIPマスカレードが無効になっていることがわかります。

no

次に、次のコマンドを使用してIPマスカレードを設定します。

firewall-cmd --zone=public --add-masquerade
firewall-cmd --reload

オプション–remove-masquerade:

を使用して、IPマスカレードを無効にすることもできます。
firewall-cmd --zone=public --remove-masquerade
firewall-cmd --reload

結論

上記のガイドでは、FirewallDを使用してシステム内の不要なトラフィックをブロックする方法を学びました。これで、不要な接続をすべて制限し、サーバーを攻撃者から保護できるようになります。 Atlantic.Net VPSでFirewallDをお試しください!


Linux
  1. CentOS8Linuxでファイアウォールを無効にする方法

  2. CentOS7でファイアウォールを構成する方法

  3. UbuntuとCentOSでiptablesを使用してファイアウォールを設定する方法

  1. Ubuntu16.04でUFWを使用してファイアウォールを設定する方法

  2. CentOS8でWireGuardVPNを設定する方法

  3. CentOS / RHEL 7 :firewall-cmd を使用してファイアウォールでポートを開く方法は?

  1. Ubuntu18.04でUFWを使用してファイアウォールを設定する方法

  2. CentOS7でFirewallDを使用してファイアウォールを構成する

  3. CentOS8でFirewallDを使用してファイアウォールを設定する方法