firewalldでRHEL7 / CentOS7の発信接続をブロックしますか?


12

RHEL7 / CentOS7は、新しいfirewalldファイアウォールサービスを備えてiptables serviceおり、これは(両方ともiptablesツールを使用してカーネルのNetfilterと対話します)を置き換えます。

firewalld着信トラフィックをブロックするように簡単に調整できますが、1.5年前のThomas Woerner述べているように、「現時点では単純な方法でfirewalldを使用して発信トラフィックを制限することはできません」。そして、私が知る限り、それ以来状況は変わっていません。それともありますか?で発信トラフィックをブロックする方法はありますfirewalldか?そうでない場合は、iptablesツールを使用して手動でルールを追加する以外に、発信トラフィックをブロックする他の「標準」方法(RHEL7ディストリビューション)がありますか?

回答:


11

私はその素敵なGUIでオプションを見つけませんでしたが、直接インターフェースを介して可能です

発信ポート80のみを有効にするには:

firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -p tcp -m tcp --dport=80 -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -j DROP

これにより、ランタイムルールではなく、永続的なルールに追加されます。
永続的なルールを再ロードして、ランタイムルールになるようにする必要があります。

firewall-cmd --reload

永続的なルールを表示する

firewall-cmd --permanent --direct --get-all-rules

実行時ルールを表示する

firewall-cmd --direct --get-all-rules

実際のリッチルール言語を使用してこれをどのように実現しますか?
ケーシー

@Casey私の理解では、リッチルールはINPUTチェーンに厳密に使用されます。
ライス

上記のルールはipv4(iptables)に対してのみ機能すると思います。ipv6(ip6tablesの場合)またはeb(ebtablesの場合)に同様のルールを設定することが望ましい場合があります。
mwfearnley

また、これによりサーバーへのSSH接続が切断されました!確立された接続を保持する方法については、user253068の回答を参照してください。
mwfearnley

5

同じ質問を自分で行い、いじくり回した後、発信トラフィックをHTTP / HTTPSおよびDNSクエリに制限するためのいくつかの素晴らしいルールを集めました。

確立された接続を許可する:

# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -m state --state ESTABLISHED,RELATED -j ACCEPT

HTTPを許可:

# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p tcp -m tcp --dport 80 -j ACCEPT

HTTPSを許可:

# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p tcp -m tcp --dport 443 -j ACCEPT

DNSクエリを許可します。

# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p tcp -m tcp --dport 53 -j ACCEPT
# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p udp --dport 53 -j ACCEPT

他のすべてを拒否する:

# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 2 -j DROP

'--permanent'引数を省略して最初にテストすることをお勧めします。

私は決して専門家ではありませんが、これは私にはうまくいくようです:)


ある時点で、ルールを削除すると便利な場合があります。単一の直接ルールを削除するのは難しいように見えますが、大ハンマーの場合firewall-cmd [--permanent] --direct --remove-rules ipv4 filter OUTPUTは一括削除を行います。
mwfearnley

1

GUIについて; これは「ダイレクト構成」の下にあると思います。アクセスするには、「表示」で選択する必要があります。私は間違っている可能性があります。

サイドノート

ルールを削除するには; 終了してから再入力する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.