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.
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
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を使用しないことを強くお勧めします。
再起動してもiptablesが起動しないという問題がありました。
これはそれを修正しました:
yum install iptables-services
systemctl mask firewalld
systemctl enable iptables
systemctl enable ip6tables
systemctl stop firewalld
systemctl start iptables
systemctl start ip6tables
次のコマンドiptables-save
を試してください。
/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コマンドを使って再起動したときに行った変更が保存されたようです。
先月、LXC VMコンテナでiptablesを設定しようとしましたが、再起動後に毎回iptables設定が自動的にロードされませんでした。
これを機能させる唯一の方法は、次のコマンドを実行することでした。
yum -y iptables-servicesをインストールします。 systemctl disable firewalld; systemctl mask firewalld; service iptablesが再起動します。サービスiptables保存
IPtablesの設定を従来のファイルに入れると、起動後にロードされます。
/ etc/sysconfig/iptables
さらに、systemctl mask firewalld
コマンドを実行した後でip6tablesに対しても同じことができるはずです。
systemctl start ip6tables.service
systemctl enable ip6tables.service
もしそうしていて、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/ /