web-dev-qa-db-ja.com

どのように私はcentos 7でiptablesを使うことができますか?

CentOS 7を最小限の設定でインストールしました(os + devツール)。私はhttpdサービスのために80ポートを開こうとしていますが、私のiptablesサービスに何か問題があります...何が問題なのですか?何がおかしいのですか?

# ifconfig/sbin/service iptables save
bash: ifconfig/sbin/service: No such file or directory


# /sbin/service iptables save
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.

# Sudo service iptables status
Redirecting to /bin/systemctl status  iptables.service
iptables.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)

# /sbin/service iptables save
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.

# Sudo service iptables start
Redirecting to /bin/systemctl start  iptables.service
Failed to issue method call: Unit iptables.service failed to load: No such file or directory.
138
Meiblorn

RHEL 7/CentOS 7では、 firewalld がiptablesを管理するために導入されました。私見、firewalldはサーバー環境よりもワークステーションに適しています。

もっと古典的なiptables設定に戻ることは可能です。まず、firewalldサービスを停止してマスクします。

systemctl stop firewalld
systemctl mask firewalld

次に、iptables-servicesパッケージをインストールしてください。

yum install iptables-services

起動時にサービスを有効にします。

systemctl enable iptables

サービスを管理する

systemctl [stop|start|restart] iptables

ファイアウォールルールを保存するには、次のようにします。

service iptables save

または

/usr/libexec/iptables/iptables.init save
316
Sgaduuw

RHELとCentOS 7はiptablesの代わりにfirewall-cmdを使用します 。あなたはそのような種類のコマンドを使うべきです:

# add ssh port as permanent opened port
firewall-cmd --zone=public --add-port=22/tcp --permanent

それから、ルールをリロードして、すべてが問題ないことを確認できます。

firewall-cmd --reload

Lxcやdockerコンテナを使うつもりならば、これはiptable-saveを使うよりも優れています。 dockerサービスを起動すると、iptable-saveコマンドがプロンプトを表示するという規則がいくつか追加されます。結果を保存すると、保存してはいけない多くのルールがあります。 dockerコンテナは次回の再起動時にipアドレスを変更する可能性があるためです。

永続的なオプションを指定したfirewall-cmdの方が適しています。

"man firewall-cmd"をチェックするか、 公式のfirewalldドキュメントをチェックしてください オプションを見るには。ゾーン、設定、動作方法をチェックするためのオプションはたくさんあります。manページは本当に完成です。

Centos 7以降、iptables-serviceを使用しないことを強くお勧めします。

89
Metal3d

再起動してもiptablesが起動しないという問題がありました。

これはそれを修正しました:

yum install iptables-services
systemctl mask firewalld
systemctl enable iptables
systemctl enable ip6tables
systemctl stop firewalld
systemctl start iptables
systemctl start ip6tables
15
par

次のコマンドiptables-saveを試してください。

9
João Chambel

/etc/sysconfig/ip6tables-configファイルを変更して、

IP6TABLES_SAVE_ON_STOP="no"

に:

IP6TABLES_SAVE_ON_STOP="yes"

この:

IP6TABLES_SAVE_ON_RESTART="no"

に:

IP6TABLES_SAVE_ON_RESTART="yes"

これで、iptablesコマンドを使って再起動したときに行った変更が保存されたようです。

4
Dug

先月、LXC VMコンテナでiptablesを設定しようとしましたが、再起動後に毎回iptables設定が自動的にロードされませんでした。

これを機能させる唯一の方法は、次のコマンドを実行することでした。

yum -y iptables-servicesをインストールします。 systemctl disable firewalld; systemctl mask firewalld; service iptablesが再起動します。サービスiptables保存

1
BVB Media

IPtablesの設定を従来のファイルに入れると、起動後にロードされます。

/ etc/sysconfig/iptables

1
BVB Media

さらに、systemctl mask firewalldコマンドを実行した後でip6tablesに対しても同じことができるはずです。

    systemctl start ip6tables.service
    systemctl enable ip6tables.service
0
jman594

もしそうしていて、fail2banを使っているのなら、適切なフィルタ/アクションを有効にする必要があります。

以下の行を/etc/fail2ban/jail.d/sshd.localに入れてください

[ssh-iptables]
enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
logpath  = /var/log/secure
maxretry = 5
bantime = 86400

Fail2banを有効にして起動します。

systemctl enable fail2ban
systemctl start fail2ban

参照: http://blog.iopsl.com/fail2ban-on-centos-7-to-protect-ssh-part-ii/ /

0
Sebas