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

Linuxでのfirewalldの初心者向けガイド

私たちの世界は、今ほどつながったことはありません。すべての人、企業、政府などは、Webを使用して通信し、通貨とデータを交換し、通常、日常生活と業務の動きを経験します。ただし、これらの接続は本質的に安全ではないため、場所、情報、およびお金を保護するための防御策を講じる必要があります。かつて、誰かが自分の所有物を確保したいと思ったとき、彼らは侵入者を遠ざけるために門と柵を建てました。今日、ファイアウォールを使用してこれらの同じ目標を達成しています。ほとんどのLinuxシステムはiptablesを利用していました しかし、実用性は、新しい技術が間近に迫っていました。

2011年にRedHatEnterprise Linux 7.0(RHEL)が導入されたことで、iptablesはfirewalldに取って代わられました。 生まれました。その核となるのは、firewalld ゾーンベースのファイアウォールです。ゾーンベースのファイアウォールは、トラフィックを監視し、着信/発信パケットに対して適用される一連の定義済みルールに基づいてアクションを実行するネットワークセキュリティシステムです。

すべてのゾーン

Firewalld さまざまな接続ゾーンにさまざまなレベルのセキュリティを提供します。ゾーンは、少なくとも1つのネットワークインターフェイス(eth0)に関連付けられています 、 例えば)。次のコマンドを使用して、事前構成されたゾーンを確認します。

[tcarrigan@server ~]$ firewall-cmd --get-zones
block dmz drop external home internal libvirt public trusted work

ご覧のとおり、デフォルトでリストされているゾーンは次のとおりです。

  • ブロック
  • dmz
  • ドロップ
  • 外部
  • 内部
  • libvirt
  • 公開
  • 信頼できる
  • 仕事

注:このデモではRHEL8.2仮想マシンを使用しています。

通常、ファイアウォールのデフォルトのルールは、すべてを拒否し、必要なサービスに対して特定の例外のみを通過させることです。

多くの場合、特定のゾーンに関連付けられているサービスを確認すると便利です。この情報を表示するには、次のコマンドを使用します。

firewall-cmd --list-all

ゾーンを指定しない場合、デフォルトのゾーンが照会されることに注意してください。ここで、デフォルトのゾーンはpublicです。 ゾーン。

[tcarrigan@server ~]$ firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s3 enp0s8
  sources: 
  services: cockpit dhcpv6-client mountd nfs rpc-bind ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

ゾーンを指定する場合は、--zone=zonenameを追加するだけです。

たとえば、externalを表示するには ゾーンには、以下を使用します:

[tcarrigan@server ~]$ firewall-cmd --zone=external --list-all
external
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh
  ports: 
  protocols: 
  masquerade: yes
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

何らかの理由でデフォルトゾーンを変更したい場合は、次のコマンドを使用して簡単に変更できます。

firewall-cmd --set-default=zonename

サービスによる許可と拒否

さて、ファイアウォールの良いところは、ファイアウォールがネットワークを安全に保つことです。悪い点は、あらゆる状況に適合する「万能」ファイアウォールがないことです。このため、ファイアウォールは、使用されている状況の正確なニーズに合わせてカスタマイズされます。たとえば、externalでFTP(ファイル転送プロトコル)転送を許可する必要がある場合 ポート21を介してファイルを移動できるように、次のようなゾーンを使用します。

firewall-cmd --zone=external --add-service=ftp

これが私のVMからの実際の例です:

[tcarrigan@server ~]$ sudo firewall-cmd --zone=external --add-service=ftp
[sudo] password for tcarrigan: 
success

デーモンが成功を返したことがわかります 、したがって、FTPサービスをexternalで許可する必要があります ゾーン。これを確認するには、externalを確認する必要があります ゾーンサービスリスト:

[tcarrigan@server ~]$ firewall-cmd --zone=external --list-services
ftp ssh

しかし、ファイアウォール構成をリロードするとどうなりますか?

[tcarrigan@server ~]$ sudo firewall-cmd --reload
success

[tcarrigan@server ~]$ firewall-cmd --zone=external --list-all
external
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh
  ports: 
  protocols: 
  masquerade: yes
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

新しい許可 ルールはfirewalldの再初期化に耐えられません 構成。新しいルールを確実に維持するには、--permanentを追加する必要があります オプション。新しいコマンドは次のとおりです。

# firewall-cmd --permanent --zone=external --add-service=ftp

permanentを使用したら コマンドを実行するには、変更を有効にするために構成を再ロードする必要があります。

サービスを削除するために、構文に小さな変更を1つ加えます。ここでは、FTPサービスをexternalから削除します。 ゾーンを永続的に:

[tcarrigan@server ~]$ sudo firewall-cmd --permanent --zone=external --remove-service=ftp
Warning: NOT_ENABLED: ftp
success

FTPが無効になっていること、および操作が成功したことをシステムが警告していることがわかります。

ポートによる許可と拒否

では、非標準ポートを介したトラフィックを許可する必要がある場合はどうなりますか?専用のUDPポートを介して実行する必要があるバックアップサービスがあるとします。この例外をゾーンにどのように追加しますか?構文は非常にユーザーフレンドリーで、サービスに使用したものとわずかに異なります。ゾーン構成にポートを追加するには、次を使用します。

[tcarrigan@server ~]$ sudo firewall-cmd --permanent --zone=external --add-port=60001/udp
success

次のコマンドで許可されたポートを確認します:

[tcarrigan@server ~]$ sudo firewall-cmd --zone=external --list-ports
60001/udp

そして、ポートルールを削除するには、ご想像のとおり... --add-port=xを切り替えるだけです。 --remove-port=x

[tcarrigan@server ~]$ sudo firewall-cmd --permanent --zone=external --remove-port=60001/udp
success

次は何ですか?

この記事を読んだ後、その情報をどうするか迷っている場合は、お気に入りのVM(RHEL、Fedora、CentOSなど)を起動して、上記のコマンドを試してみることを強くお勧めします。学ぶための最良の方法は、実践的な経験を積むことです。このコンテンツがおもしろいと思った場合は、パート2のEnable Sysadminに注目してください。ここでは、カスタムゾーンの作成とより高度なルールの作成について詳しく説明します。

[ネットワーク管理を簡単にします。 Red Hatの無料の本、みんなのためのネットワーク自動化をチェックしてください。 ]


Linux
  1. awkを学ぶための実用的なガイド

  2. Linuxの基本:vimを使用したテキスト編集の初心者向けガイド

  3. gawkの初心者向けガイド

  1. Linuxにアプリケーションをインストールするためのガイド

  2. FirewallDとは何ですか?Linuxに実装する方法

  3. LinuxでのLVMの完全な初心者向けガイド

  1. Linuxパーミッションのビギナーズガイド

  2. Linuxで検索および検索コマンドを使用する方法:初心者向けガイド

  3. Linuxコマンド-完全ガイド