CentOS 7ファイアウォールの問題


Linuxファイアウォールの操作中に、
error reading information on service iptables: No such file or directory
CentOS 7.0以前、ファイアウォールの基本操作文は
1 [linuxidc@localhost ~]$service iptable status
結果を表示:
1 2 3 4 5 [linuxidc@localhost ~]$service iptable status Redirecting  to   /bin/systemctl status  iptable.service ● iptable.service     Loaded:  not -found (Reason:  No   such file  or   directory)     Active: inactive (dead)   --
CentOS 6.5ファイアウォールを閉じる
1 2 [root@localhost ~]#servcie iptables stop                     -- [root@localhost ~]#chkconfig iptables  off                      --
 
CentOS 7.0ではデフォルトでファイアウォールとしてfirewallが使用されていますが、ここではiptablesファイアウォールステップに変更します.
Firewall-cmd--state#デフォルトのファイアウォールステータスを表示(閉じたらnotrunning、開いたらrunning)
1 2 [root@localhost ~]#firewall-cmd  --state not   running
ファイアウォールのステータスを確認します.
centos 7からsystemctlを使用してサービスとプログラムを管理し、サービスとchkconfigを含む.
1 2 [root@localhost ~]#systemctl list-unit-files|grep firewalld.service             -- firewalld.service                          disabled
または
1 2 3 4 [root@localhost ~]#systemctl status firewalld.service ● firewalld.service - firewalld -  dynamic   firewall daemon     Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)     Active: inactive (dead)
ファイアウォールを閉じる:
systemctl stop firewalld.サービス停止サービス#firewall起動禁止
1 2 [root@localhost ~]#systemctl stop firewalld.service [root@localhost ~]#systemctl disable firewalld.service
1 2 3 4 5 6 7 8 :systemctl start firewalld.service :systemctl stop firewalld.service :systemctl restart firewalld.service :systemctl status firewalld.service :systemctl enable firewalld.service :systemctl disable firewalld.service :systemctl  is -enabled firewalld.service;echo $? :systemctl list-unit-files|grep enabled
Centos 7 firewallコマンド:
すでにオープンしているポートを表示するには、次の手順に従います.
firewall-cmd --list-ports

オープンポート
firewall-cmd --zone=public --add-port=80/tcp --permanent

コマンドの意味:
-zone#役割ドメイン
-add-port=80/tcp#追加ポート:ポート/通信プロトコル
-permanent#は永続的に有効です.このパラメータが再起動されてから失効しません.
ファイアウォールの再起動
firewall-cmd --reload #  firewall
systemctl stop firewalld.service #  firewall
systemctl disable firewalld.service #  firewall    
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

CentOS 7 以下版本 iptables 命令

如要开放80,22,8080 端口,输入以下命令即可

/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

保存:
/etc/rc.d/init.d/iptables save

開いているポートを表示するには、次の手順に従います.
/etc/init.d/iptables status

ファイアウォールを閉じる1)永続性が有効になり、再起動しても元に戻らない
オン:chkconfig iptables on
閉じる:chkconfig iptables off
2)即時発効、再起動後復元
オン:service iptables start
閉じる:service iptables stop
ファイアウォールのステータスの表示:service iptables status
次にCentOS 7と6のデフォルトファイアウォールの違いを説明します
CentOS 7のデフォルトではファイアウォールとしてfirewallが使用されていますが、iptablesを使用するには再設定が必要です
1、ファイアウォールを直接閉じる
systemctl stop firewalld.サービス#firewallの停止
systemctl disable firewalld.サービス#firewall起動禁止
2、iptablesサービスの設定
yum -y install iptables-services
ファイアウォールポート3306を追加するなど、ファイアウォール構成を変更する場合
vi/etc/sysconfig/iptables 
ルールの追加
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
保存終了後
systemctl restart iptables.サービス#ファイアウォールを再起動して構成を有効にする
systemctl enable iptables.サービス#ファイアウォールの起動を設定
最後にシステムを再起動して設定を有効にすればいいです.
systemctl start iptables.サービス#ファイアウォールを開く
systemctl stop iptables.サービス#ファイアウォールを閉じる
ホストがVM CentOSのサイトにアクセスできないことを解決
この間、仮想マシンにCentOS 6を搭載しました.2、そしてapache+php+mysqlを配合して、しかし本機はアクセスすることができません.ずっと振り回されなかった. 
 
具体的には
1.本機能ping通仮想機
2.仮想マシンでも本体をpingできる
3.仮想機能が自分のWebにアクセスする
4.本機は仮想機のwebにアクセスできない
 
その後、ファイアウォールが80ポートを遮断したことが分かった. 
 
サーバーの80ポートがファイアウォールで詰まっているかどうかを確認します.コマンド:telnet server_ip 80でテストします. 
 
解決策は次のとおりです.
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT 
保存:
/etc/rc.d/init.d/iptables save 
ファイアウォールの再起動
/etc/init.d/iptables restart 
 
CentOSファイアウォールのシャットダウンは、サービスをシャットダウンします.
CentOSファイアウォール情報を表示する:/etc/init.d/iptables status 
CentOSファイアウォールサービスをオフにする:/etc/init.d/iptables stop