web-dev-qa-db-ja.com

CentOS 6でこのiptablesファイル行が失敗する理由

こんにちは誰もが私のiptablesファイルで行15がおそらく失敗している理由を理解するのを手伝ってくれるでしょう。 CentOS 6を使用しています。

Iptablesサービスを再起動しようとすると、次のようになります。

[root@dbserver ~]# service iptables restart
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Applying firewall rules: iptables-restore: line 15 failed
                                                           [FAILED]

私のiptablesファイルは次のようになります:

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-Host-prohibited
-A FORWARD -j REJECT --reject-with icmp-Host-prohibited
COMMIT
#-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m udp -p tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.1.1/254 -m state --state NEW -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -p tcp --dport 21 -j ACCEPT

私は現在、ローカルネットワークからマシンへのアクセスを許可しようとしているだけです。

どんな助けでも大歓迎です。ありがとう。

編集:

最初の回答に従って、COMMITをファイルの終わりに移動しましたが、まだエラーを受け取っています...

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-Host-prohibited
-A FORWARD -j REJECT --reject-with icmp-Host-prohibited
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m udp -p tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.1.0/255 -m state --state NEW -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -p tcp --dport 21 -j ACCEPT
COMMIT

エラー:

[root@dbserver ~]# service iptables restart
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Applying firewall rules: iptables-restore: line 13 failed
                                                           [FAILED]
4
Larry B

シンプル-COMMITをファイルの最後に移動する必要があります。

COMMITは、宣言が完了し、構成をカーネルに送信することをiptablesに伝えます。それはあなたの宣言を終了します。 iptablesにCOMMITを指示していて、新しい宣言なしで新しいルールを指定しているため、エラーが発生します。

風下のコメントの内容を含めるように編集します。

これがあなたの設定の更新された機能している(必ずしも最適ではない)バージョンです: http://Gist.github.com/381812 。問題のいくつかを要約します。

  1. 入力チェーンRH-Firewall-1-INPUTが存在しません。別の場所からコピーして貼り付けていますか?
  2. 一部のルールは、デフォルトの拒否ルールの後にあります。構文が取られたとしても、ルールは機能しません。
  3. 192.168.1.1/254は、有効なCIDRアドレス指定にさえ近づいていません。もしかして192.168.1.0/24ですか?
  4. -A RH-Firewall-1-INPUT -m udp -p tcpがありますが、これは意味がありません。つまり、-A INPUT -m udp -p udpという意味です。
4
jgoldschrafe

Jgoldschrafeが述べたCOMMIT問題に加えて、存在しないルール(RH-Firewall-1-INPUT)に行を追加しようとしています。

行を追加する必要があります

:RH-Firewall-1-INPUT - [0:0]

すぐ下

:OUTPUT ACCEPT [0:0]

チェーンを宣言し、ルールを追加できるようにします。ただし、名前には魔法がなく、3つのメインチェーン(INPUTOUTPUT、およびFORWARD)にはパケットが送信されないため、チェーンはまだ効果がありません。それに。確かに、INPUTチェーンにルールを追加して、新しいチェーンにトラフィックを送信できますが、これを間違った方法で行わないでください-そのファイルの上部に記載されていることに注意してください

このファイルを手動でカスタマイズすることはお勧めしません。

それは理由があります。必ずそれを無視して編集してください。しかし、正しく理解するためには、システムのセキュリティや可用性にかなり大きな穴を開けてしまう可能性があります。

編集: 19行目の問題は192.168.1.0/255として指定されたアドレス範囲であり、無効です。 192.168.1.0192.168.1.255の間のすべてのアドレスを指定する場合は、192.168.1.0/24が必要です。

申し訳ありませんが、ファイアウォールやネットワークについてよく知っている人としては、実際にあなたに出くわしていません。これが専門的に保守しているサーバーだとすると、このことを学ぶのに最適な場所ではないかもしれません。 。

4
MadHatter

一般に、たとえばiptables-saveが独自の前提条件を知っているためにシステムが再起動したときにiptables-restoreを介してそれらを再度ロードするために使用する場合に備えて、iptablesを介してルールを追加し、それらをiptables-saveを使用してファイルにダンプします。あなたよりも良いです。

1
ZaphodB

2行を入れてみてください

-A INPUT -j REJECT --reject-with icmp-Host-prohibited
-A FORWARD -j REJECT --reject-with icmp-Host-prohibited

cOMMITの前のファイルの最後。

0
Dexter Cato