����Linux�Ż�
Linux����

CentOS7��Firewall����ǽ�����÷����

����ʱ��:2015-10-02 09:41:22��Դ:linux��վ����:cbbbc

centos 7�з���ǽ��һ���dz���ǿ��Ĺ����ˣ�������centos 7���ڷ���ǽ�н����������ˣ���������һ������ϸ�Ŀ�������centos 7�з���ǽʹ�÷�����
FirewallD �ṩ��֧������/����ǽ����(zone)�������������Լ��ӿڰ�ȫ�ȼ��Ķ�̬����ǽ�������ߡ���֧�� IPv4, IPv6 ����ǽ�����Լ���̫���Žӣ�����ӵ������ʱ���ú���������ѡ���Ҳ֧�������������Ӧ�ó���ֱ�����ӷ���ǽ����Ľӿڡ� ��ǰ�� system-config-firewall/lokkit ����ǽģ���Ǿ�̬�ģ�ÿ���޸Ķ�Ҫ�����ǽ��ȫ������������̰����ں� netfilter ����ǽģ���ж�غ�����������ģ���װ�صȡ���ģ���ж�ؽ����ƻ�״̬����ǽ��ȷ�������ӡ�
�෴��firewall daemon ��̬��������ǽ������Ҫ������������ǽ���Ӧ�ø��ġ����Ҳ��û�б�Ҫ���������ں˷���ǽģ���ˡ�������Ҫʹ�� firewall daemon ��Ҫ�����ǽ�����б����Ҫͨ�����ػ�������ʵ�֣���ȷ���ػ������е�״̬���ں���ķ���ǽ��һ�µġ����⣬firewall daemon �޷������� ip*tables �� ebtables �����й������ӵķ���ǽ����
�ػ�����ͨ�� D-BUS �ṩ��ǰ����ķ���ǽ������Ϣ��Ҳͨ�� D-BUS ����ʹ�� PolicyKit ��֤��ʽ���ĸ��ġ�


“�ػ�����”

Ӧ�ó����ػ����̺��û�����ͨ�� D-BUS ��������һ������ǽ���ԡ����Կ�����Ԥ����ķ���ǽ���ܣ��磺���񡢶˿ں�Э�����ϡ��˿�/���ݱ�ת����αװ��ICMP ���ػ��Զ������ȡ��ù��ܿ�������ȷ����һ��ʱ��Ҳ�����ٴ�ͣ�á�
ͨ����ν��ֱ�ӽӿڣ������ķ���(���� libvirt )�ܹ�ͨ�� iptables ��Ԫ(arguments)�Ͳ���(parameters)�����Լ��Ĺ���
amanda ��ftp ��samba �� tftp ����� netfilter ����ǽ����Ҳ��“�ػ�����”�����,ֻҪ���ǻ���ΪԤ��������һ���֡��������ֵ�װ�ز���Ϊ��ǰ�ӿڵ�һ���֡�����һЩ����ֻ������ģ����Ƶ��������Ӷ��رպ�ſ�װ�ء����������������Ϣ����Ҫ����Ҫ���뿼�Ƿ�Χ��

��̬����ǽ(system-config-firewall/lokkit)

ʹ�� system-config-firewall �� lokkit �ľ�̬����ǽģ��ʵ������Ȼ���ò��������ṩ����ȴ������“�ػ�����”ͬʱʹ�á��û����߹���Ա���Ծ���ʹ����һ�ַ�����
��������װ�����������������״�����ʱ���������һ��ѡ������ͨ���������ѡ��Ҫʹ�õķ���ǽ�����������Ľ����������������������ͨ������ģʽ���á�
firewall daemon ������ system-config-firewall�������߲���ͬʱʹ�á�

ʹ��iptables��ip6tables�ľ�̬����ǽ����

�������ʹ���Լ��� iptables �� ip6tables ��̬����ǽ����, ��ô�밲װ iptables-services ���ҽ��� firewalld ������ iptables ��ip6tables:

yum install iptables-services 
systemctl mask firewalld.service 
systemctl enable iptables.service 
systemctl enable ip6tables.service 

��̬����ǽ���������ļ��� /etc/sysconfig/iptables �Լ� /etc/sysconfig/ip6tables .
ע��iptables �� iptables-services ���������ṩ���������ʹ�õķ���ǽ����. ��Щ�������������ϼ������Լ�����ʹ���Լ�����ǽ�������ʹ�õ�. ����԰�װ��ʹ�� system-config-firewall ����������������Ҫ�Ĺ���. Ϊ����ʹ�� system-config-firewall, �����ֹͣ firewalld.
Ϊ���񴴽�����ͣ�� firewalld �󣬾Ϳ������� iptables �� ip6tables ������:
systemctl stop firewalld.service 
systemctl start iptables.service 
systemctl start ip6tables.service 


ʲô������

�������������������ӵĿ��ŵȼ�������һ��һ�Զ�Ĺ�ϵ������ζ��һ�����ӿ��Խ�����һ�������һ���֣���һ������������ںܶ����ӡ�

Ԥ����ķ���

�����Ƕ˿ں�/��Э����ڵ���ϡ���ѡ���ݰ��� netfilter ����ģ���Լ� IPv4��IPv6��ַ��

�˿ں�Э��

������ tcp �� udp �˿ڣ��˿ڿ�����һ���˿ڻ��߶˿ڷ�Χ��

ICMP����

����ѡ�� Internet ���Ʊ���Э��ı��ġ���Щ���Ŀ�������Ϣ��������Ƕ���Ϣ��������������������Ӧ��
αװ
˽�������ַ���Ա�ӳ�䵽������IP��ַ������һ������ĵ�ַת����

�˿�ת��

�˿ڿ���ӳ�䵽��һ���˿��Լ�/��������������

�ĸ��������?

��firewalld �ṩ�������մӲ����ε����ε�˳������

����

�κ���������İ������������������κ���Ӧ��ֻ�����������������ӡ�

����

�κν�����������Ӷ����ܾ��������� IPv4 �� icmp-host-prohibited ���Ļ��� IPv6 �� icmp6-adm-prohibited ���ġ�ֻ�����ɸ�ϵͳ��ʼ�����������ӡ�

����

���Կ��Թ����IJ��֡�����Ϊ�����������ļ���������Ų��ҿ����˺���ļ������ֻ����ѡ�е����ӽ��롣��You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.��

�ⲿ

����·����������αװ���ⲿ���硣����Ϊ�����������ļ���������Ų��ҿ����˺���ļ������ֻ����ѡ�е����ӽ��롣

��������dmz��

����������������dmz���еĵ������޵ر����������ʡ�ֻ���ܱ�ѡ�е����ӡ�

����

���ڹ������硣�����������еĴ�������������Ӱ����ļ������ֻ���ܱ�ѡ�е����ӡ�

��ͥ

���ڼ�ͥ���硣�����������еĴ�������������Ӱ����ļ������ֻ���ܱ�ѡ�е����ӡ�

�ڲ�

�����ڲ����硣�����������еĴ�������������Ӱ����ļ������ֻ���ܱ�ѡ�е����ӡ�

�����ε�

���������������ӡ�

��Ӧ��ѡ���ĸ�����?

���磬������ WIFI ����Ӧ����ҪΪ�������εģ���ͥ����������Ӧ�����൱�����εġ���������ʹ�õ���������ϵ��������ѡ��


������û�����������?

�����ʹ���κ�һ�� firewalld ���ù��������û������������Լ��޸����á����������� firewall-config ������ͼ�ν��湤�ߣ� firewall-cmd �����������й��ߣ��Լ�D-BUS�ӿڡ�������Ҳ�����������ļ�Ŀ¼�д������߿��������ļ��� @PREFIX@/lib/firewalld/zones ������Ĭ�Ϻͱ������ã�/etc/firewalld/zones �������û��������Զ��������ļ���

���Ϊ�����������û����޸�����

���������� ZONE= ѡ�� �洢���������ӵ�ifcfg�ļ��С�������ѡ��ȱʧ����Ϊ�գ�firewalld ��ʹ�����õ�Ĭ������
�����������ܵ� NetworkManager ���ƣ���Ҳ����ʹ�� nm-connection-editor ���޸�����

��NetworkManager���Ƶ���������

����ǽ���ܹ�ͨ�� NetworkManager ��ʾ�������������������ӣ�ֻ����������ӿڡ��������������֮ǰ NetworkManager �������ļ��������Ӷ�Ӧ������ӿڸ��� firewalld ������������ļ���û���������򣬽ӿڽ����õ� firewalld ��Ĭ�����������������ʹ���˲�ֹһ���ӿڣ����еĽӿڶ���Ӧ�õ� fiwewalld���ӿ����Ƶĸı�Ҳ���� NetworkManager ���Ʋ�Ӧ�õ�firewalld��
Ϊ�˼򻯣��Դˣ��������ӽ�������������Ĺ�ϵ��
���һ���ӿڶϿ��ˣ�NetworkManagerҲ������firewalld��������ɾ���ýӿڡ�
��firewalld��systemd����init�ű���������������firewalld��֪ͨNetworkManager�������������ӵ�����


�ɽű����Ƶ�����

����������ű����Ƶ�������һ�����ƣ�û���ػ�����֪ͨ firewalld ���������ӵ�������������� ifcfg-post �ű����С���ˣ��˺���������ӵ������������ܱ�Ӧ�õ�firewalld��ͬ���������ӻʱ���� firewalld ����������ʧȥ���������������޸����������򵥵��ǽ�ȫ��δ�������Ӽ���Ĭ������
�������˱������з���ǽ�����ԣ�

ʹ��firewalld

�����ͨ��ͼ�ν��湤�� firewall-config ���������пͻ��� firewall-cmd ���û��߹رշ���ǽ���ԡ�

ʹ��firewall-cmd

�����й��� firewall-cmd ֧��ȫ������ǽ���ԡ�����״̬�Ͳ�ѯģʽ������ֻ����״̬��û�����������


һ��Ӧ��

��ȡ firewalld ״̬

firewall-cmd --state

�˾ٷ��� firewalld ��״̬��û���κ����������ʹ�����·�ʽ���״̬�����

firewall-cmd --state && echo "Running" || echo "Not running"

�� Fedora 19 ��, ״̬����ȴ�ǰֱ��:

# rpm -qf $( which firewall-cmd )
firewalld-0.3.3-2.fc19.noarch# firewall-cmd --state
not running

�ڲ��ı�״̬�����������¼��ط���ǽ��

firewall-cmd --reload

�����ʹ��–complete-reload��״̬��Ϣ���ᶪʧ�����ѡ��Ӧ�������ڴ�������ǽ����ʱ�����磬״̬��Ϣ�ͷ���ǽ�������������Dz��ܽ����κ����ӵ������
��ȡ֧�ֵ������б�

firewall-cmd --get-zones

������������ÿո�ָ����б���
��ȡ����֧�ֵķ���

firewall-cmd --get-services

������������ÿո�ָ����б���
��ȡ����֧�ֵ�ICMP����

firewall-cmd --get-icmptypes

������������ÿո�ָ����б���
�г�ȫ�����õ����������

firewall-cmd --list-all-zones

�����ʽ�ǣ�

<zone>
interfaces: <interface1> ..
services: <service1> ..
ports: <port1> ..
forward-ports: <forward port1> ..
icmp-blocks: <icmp type1> ....

������� <zone> ȫ�����õ����ԡ�����������򣬽���ʾĬ���������Ϣ��

firewall-cmd [--zone=<zone>] --list-all

��ȡĬ���������������

firewall-cmd --get-default-zone

����Ĭ������

firewall-cmd --set-default-zone=<zone>

����Ĭ�����������õĽӿڵ��·������󽫱������µ�Ĭ�����򡣵�ǰ������ӽ�����Ӱ�졣
��ȡ�������

firewall-cmd --get-active-zones

������������¸�ʽ���ÿ�����������ӿڣ�

<zone1>: <interface1> <interface2> ..<zone2>: <interface3> ..

���ݽӿڻ�ȡ����

firewall-cmd --get-zone-of-interface=<interface>

�����������ӿ��������������ơ�
���ӿ����ӵ�����

firewall-cmd [--zone=<zone>] --add-interface=<interface>

����ӿڲ��������򣬽ӿڽ������ӵ������������ʡ���ˣ���ʹ��Ĭ�����򡣽ӿ������¼��غ�����Ӧ�á�
�޸Ľӿ���������

firewall-cmd [--zone=<zone>] --change-interface=<interface>

���ѡ���� –add-interface ѡ�����ƣ����ǵ��ӿ��Ѿ���������һ�������ʱ�򣬸ýӿڽ������ӵ��µ�����
��������ɾ��һ���ӿ�

firewall-cmd [--zone=<zone>] --remove-interface=<interface>

��ѯ�������Ƿ����ij�ӿ�

firewall-cmd [--zone=<zone>] --query-interface=<interface>

���ؽӿ��Ƿ�����ڸ�����û�������
�о����������õķ���

firewall-cmd [ --zone=<zone> ] --list-services

����Ӧ��ģʽ��������������ӣ��Է����ֽ���״��

firewall-cmd --panic-on

����Ӧ��ģʽ

firewall-cmd --panic-off

Ӧ��ģʽ�� 0.3.0 �汾�з����˱仯
�� 0.3.0 ֮ǰ�� FirewallD�汾��, panic ѡ���� –enable-panic �� –disable-panic.
��ѯӦ��ģʽ

firewall-cmd --query-panic

�������Ӧ��ģʽ��״̬��û�����������ʹ�����·�ʽ���״̬�����

firewall-cmd --query-panic && echo "On" || echo "Off"

��������ʱ����

����ʱģʽ�¶�������е��޸IJ���������Ч�ġ����¼��ػ����������޸Ľ�ʧЧ��
���������е�һ�ַ���

firewall-cmd [--zone=<zone>] --add-service=<service> [--timeout=<seconds>]

�˾����������е�һ�ַ������δָ�����򣬽�ʹ��Ĭ����������趨�˳�ʱʱ�䣬����ֻ�����ض���������������Ѿ���Ծ�����������κξ�����Ϣ��
��: ʹ�����е�ipp-client������Ч60��:

firewall-cmd --zone=home --add-service=ipp-client --timeout=60

��: ����Ĭ�������е�http����:

firewall-cmd --add-service=http

���������е�ij�ַ���

firewall-cmd [--zone=<zone>] --remove-service=<service>

�˾ٽ��������е�ij�ַ������δָ�����򣬽�ʹ��Ĭ������
��: ��ֹhome�����е�http����:

firewall-cmd --zone=home --remove-service=http

�����ֵķ��񽫱����á��������û�����ã����������κξ�����Ϣ��
��ѯ�������Ƿ��������ض�����

firewall-cmd [--zone=<zone>] --query-service=<service>

����������ã�������1,���򷵻�0��û�������Ϣ��
��������˿ں�Э�����

firewall-cmd [--zone=<zone>] --add-port=<port>[-<port>]/<protocol> [--timeout=<seconds>]

�˾ٽ����ö˿ں�Э�����ϡ��˿ڿ�����һ�������Ķ˿� <port> ������һ���˿ڷ�Χ <port>-<port> ��Э������� tcp �� udp��
���ö˿ں�Э�����

firewall-cmd [--zone=<zone>] --remove-port=<port>[-<port>]/<protocol>

��ѯ�������Ƿ������˶˿ں�Э�����

firewall-cmd [--zone=<zone>] --query-port=<port>[-<port>]/<protocol>

������ã�������з���ֵ��û�������Ϣ��
���������е�IPαװ����

firewall-cmd [--zone=<zone>] --add-masquerade

�˾����������αװ���ܡ�˽������ĵ�ַ�������ز�ӳ�䵽һ������IP�����ǵ�ַת����һ����ʽ��������·�ɡ������ں˵����ƣ�αװ���ܽ�������IPv4��
���������е�IPαװ

firewall-cmd [--zone=<zone>] --remove-masquerade

��ѯ�����αװ״̬

firewall-cmd [--zone=<zone>] --query-masquerade

������ã�������з���ֵ��û�������Ϣ��
���������ICMP��������

firewall-cmd [--zone=<zone>] --add-icmp-block=<icmptype>

�˾ٽ�����ѡ�е�Internet���Ʊ���Э�飨ICMP�����Ľ���������ICMP���Ŀ�����������Ϣ���ߴ�����Ӧ���ģ��Լ�����Ӧ��
��ֹ�����ICMP��������

firewall-cmd [--zone=<zone>] --remove-icmp-block=<icmptype>

��ѯ�����ICMP��������

firewall-cmd [--zone=<zone>] --query-icmp-block=<icmptype>

������ã�������з���ֵ��û�������Ϣ��
��: �����������ӦӦ����:

firewall-cmd --zone=public --add-icmp-block=echo-reply

�����������ö˿�ת����ӳ��

firewall-cmd [--zone=<zone>] --add-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }

�˿ڿ���ӳ�䵽��һ̨������ͬһ�˿ڣ�Ҳ������ͬһ��������һ�����IJ�ͬ�˿ڡ��˿ںſ�����һ�������Ķ˿� <port> �����Ƕ˿ڷ�Χ <port>-<port> ��Э�����Ϊ tcp ��udp ��Ŀ��˿ڿ����Ƕ˿ں� <port> �����Ƕ˿ڷ�Χ <port>-<port> ��Ŀ���ַ������ IPv4 ��ַ�����ں����ƣ��˿�ת�����ܽ�������IPv4��
��ֹ����Ķ˿�ת�����߶˿�ӳ��

firewall-cmd [--zone=<zone>] --remove-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }

��ѯ����Ķ˿�ת�����߶˿�ӳ��

firewall-cmd [--zone=<zone>] --query-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }

������ã�������з���ֵ��û�������Ϣ��
��: ������home��sshת����127.0.0.2

firewall-cmd --zone=home --add-forward-port=port=22:proto=tcp:toaddr=127.0.0.2

������������

����ѡ�ֱ��Ӱ������ʱ��״̬����Щѡ��������ػ�����������ʱ���á�Ϊ��ʹ������ʱ���������ã���Ҫ�ֱ��������ߡ� ѡ�� –permanent ��Ҫ���������õĵ�һ��������
��ȡ����ѡ����֧�ֵķ���

firewall-cmd --permanent --get-services

��ȡ����ѡ����֧�ֵ�ICMP�����б�

firewall-cmd --permanent --get-icmptypes

��ȡ֧�ֵ���������

firewall-cmd --permanent --get-zones

���������еķ���

firewall-cmd --permanent [--zone=<zone>] --add-service=<service>

�˾ٽ��������������еķ������δָ�����򣬽�ʹ��Ĭ������
���������е�һ�ַ���

firewall-cmd --permanent [--zone=<zone>] --remove-service=<service>

��ѯ�����еķ����Ƿ�����

firewall-cmd --permanent [--zone=<zone>] --query-service=<service>

����������ã�������з���ֵ��������û�������Ϣ��
��: �������� home �����е� ipp-client ����

firewall-cmd --permanent --zone=home --add-service=ipp-client

�������������е�һ���˿�-Э�����

firewall-cmd --permanent [--zone=<zone>] --add-port=<port>[-<port>]/<protocol>

���ý��������е�һ���˿�-Э�����

firewall-cmd --permanent [--zone=<zone>] --remove-port=<port>[-<port>]/<protocol>

��ѯ�����еĶ˿�-Э������Ƿ���������

firewall-cmd --permanent [--zone=<zone>] --query-port=<port>[-<port>]/<protocol>

����������ã�������з���ֵ��������û�������Ϣ��
��: �������� home �����е� https (tcp 443) �˿�

firewall-cmd --permanent --zone=home --add-port=443/tcp

�������������е�αװ

firewall-cmd --permanent [--zone=<zone>] --add-masquerade

�˾����������αװ���ܡ�˽������ĵ�ַ�������ز�ӳ�䵽һ������IP�����ǵ�ַת����һ����ʽ��������·�ɡ������ں˵����ƣ�αװ���ܽ�������IPv4��
���ý��������е�αװ

firewall-cmd --permanent [--zone=<zone>] --remove-masquerade

��ѯ�����е�αװ������״̬

firewall-cmd --permanent [--zone=<zone>] --query-masquerade

����������ã�������з���ֵ��������û�������Ϣ��
�������������е�ICMP����

firewall-cmd --permanent [--zone=<zone>] --add-icmp-block=<icmptype>

�˾ٽ�����ѡ�е� Internet ���Ʊ���Э�� ��ICMP�� ���Ľ��������� ICMP ���Ŀ�����������Ϣ���ߴ�����Ӧ���Ļ����Ӧ���ġ�
���ý��������е�ICMP����

firewall-cmd --permanent [--zone=<zone>] --remove-icmp-block=<icmptype>

��ѯ�����е�ICMP����״̬

firewall-cmd --permanent [--zone=<zone>] --query-icmp-block=<icmptype>

����������ã�������з���ֵ��������û�������Ϣ��
��: �������������е���ӦӦ����:

firewall-cmd --permanent --zone=public --add-icmp-block=echo-reply

���������������ö˿�ת����ӳ��

firewall-cmd --permanent [--zone=<zone>] --add-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }

�˿ڿ���ӳ�䵽��һ̨������ͬһ�˿ڣ�Ҳ������ͬһ��������һ�����IJ�ͬ�˿ڡ��˿ںſ�����һ�������Ķ˿� <port> �����Ƕ˿ڷ�Χ <port>-<port> ��Э�����Ϊ tcp ��udp ��Ŀ��˿ڿ����Ƕ˿ں� <port> �����Ƕ˿ڷ�Χ <port>-<port> ��Ŀ���ַ������ IPv4 ��ַ�����ں����ƣ��˿�ת�����ܽ�������IPv4��
���ý�ֹ����Ķ˿�ת�����߶˿�ӳ��

firewall-cmd --permanent [--zone=<zone>] --remove-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }

��ѯ����Ķ˿�ת�����߶˿�ӳ��״̬

firewall-cmd --permanent [--zone=<zone>] --query-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }

����������ã�������з���ֵ��������û�������Ϣ��
��: �� home ����� ssh ����ת���� 127.0.0.2

firewall-cmd --permanent --zone=home --add-forward-port=port=22:proto=tcp:toaddr=127.0.0.2

ֱ��ѡ��

ֱ��ѡ����Ҫ����ʹ�����Ӧ�ó����ܹ����ӹ��� ���򲻻ᱻ���棬�����¼��ػ�������֮������ٴ��ύ�����ݵIJ��� <args> �� iptables, ip6tables �Լ� ebtables һ�¡�
ѡ��–direct��Ҫ��ֱ��ѡ��ĵ�һ��������
������ݸ�����ǽ������ <args> ������ iptables, ip6tables �Լ� ebtables �����в�����

firewall-cmd --direct --passthrough { ipv4 | ipv6 | eb } <args>

Ϊ�� <table> ����һ������ <chain> ��

firewall-cmd --direct --add-chain { ipv4 | ipv6 | eb } <table> <chain>

�ӱ� <table> ��ɾ���� <chain> ��

firewall-cmd --direct --remove-chain { ipv4 | ipv6 | eb } <table> <chain>

��ѯ <chain> ���Ƿ������� <table>. ����ǣ�����0,���򷵻�1.

firewall-cmd --direct --query-chain { ipv4 | ipv6 | eb } <table> <chain>

������ã�������з���ֵ��������û�������Ϣ��
��ȡ�ÿո�ָ��ı� <table> �������б���

firewall-cmd --direct --get-chains { ipv4 | ipv6 | eb } <table>

Ϊ�� <table> ����һ������Ϊ <args> ���� <chain> �����ȼ��趨Ϊ <priority>��

firewall-cmd --direct --add-rule { ipv4 | ipv6 | eb } <table> <chain> <priority> <args>

�ӱ� <table> ��ɾ�������� <args> ���� <chain>��

firewall-cmd --direct --remove-rule { ipv4 | ipv6 | eb } <table> <chain> <args>

��ѯ������ <args> ���� <chain> �Ƿ���ڱ� <table> ��. ����ǣ�����0,���򷵻�1.

firewall-cmd --direct --query-rule { ipv4 | ipv6 | eb } <table> <chain> <args>

������ã�������з���ֵ��������û�������Ϣ��
��ȡ�� <table> ���������ӵ��� <chain> �Ĺ��򣬲��û��зָ���

firewall-cmd --direct --get-rules { ipv4 | ipv6 | eb } <table> <chain>


��ǰ��firewalld����

D-BUS�ӿ�

D-BUS �ӿ��ṩ����ǽ״̬����Ϣ��ʹ����ǽ�����á�ͣ�û��ѯ���ó�Ϊ���ܡ�

����

������߷���ǽ�����������ӵĿ��ų̶ȡ�firewalld �ṩ�˼���Ԥ�����������������ѡ���ͨ��������Ϣ������firewall.zone(5)���ֲ���鵽��

����

���������һϵ�б����˿ڡ�Ŀ���Լ�������Ϣ��Ҳ�����Ƿ�������ʱ�Զ����ӵķ���ǽ����ģ�顣Ԥ��������ʹ��ʹ���úͽ��öԷ���ķ��ʱ�ø��Ӽ򵥡���������ѡ���ͨ���ļ���Ϣ�� firewalld.service(5) �ֲ�����������

ICMP����

Internet���Ʊ���Э�� (ICMP) �����Խ������ĺͻ�����Э�� (IP) �Ĵ����ġ��� firewalld �п���ʹ�� ICMP ���������Ʊ��Ľ����� ICMP ��������ѡ���ͨ���ļ���Ϣ���Բ��� firewalld.icmptype(5) �ֲᡣ

ֱ�ӽӿ�

ֱ�ӽӿ���Ҫ���ڷ������Ӧ�ó��������ض��ķ���ǽ������Щ���򲢷�������Ч���������յ� firewalld ͨ�� D-Bus ���ݵ������������������źź���Ҫ����Ӧ�á�

����ʱ����

����ʱ���ò���������Ч�������¼���ʱ���Ա��ָ�����ϵͳ���߷���������ֹͣʱ����Щѡ��ᶪʧ��

��������

�������ô洢�������ļ��֣�ÿ�λ����������߷������������¼���ʱ���Զ��ָ���

��������

����С���� firewall-applet Ϊ�û���ʾ����ǽ״̬�ʹ��ڵ����⡣��Ҳ�������������û������޸ĵ����á�

ͼ�λ����ù���

firewall daemon ��Ҫ�����ù����� firewall-config ����֧�ַ���ǽ���������ԣ������ɷ���/Ӧ�ó������ӹ���ʹ�õ�ֱ�ӽӿڣ��� ����ԱҲ�����������ı�ϵͳ���û����ԡ�

�����пͻ���

firewall-cmd�����������ṩ�󲿷�ͼ�ι����������ԵĹ��ߡ�

����ebtables��֧��

Ҫ����libvirt daemon��ȫ���������ں� netfilter ���Ϸ�ֹ ip*tables �� ebtables ��������⣬ebtables ֧������Ҫ�ġ�������Щ�����Ƿ�����ͬ�ṹ�ģ��������ͬʱʹ�á�

/usr/lib/firewalld�е�Ĭ��/��������

��Ŀ¼�������� firewalld �ṩ��Ĭ���Լ����õ� ICMP ���͡������������á��� firewalld �������ṩ����Щ�ļ����ܱ��޸ģ���ʹ�޸�Ҳ������ firewalld �������ĸ��±����á� ������ ICMP ���͡������������ÿ���ͨ�����������ߴ����ļ��ķ�ʽ�ṩ��
/etc/firewalld�е�ϵͳ��������
�洢�ڴ˵�ϵͳ�����û������ļ�������ϵͳ����Աͨ�����ýӿڶ��Ƶģ�Ҳ�������ֶ����Ƶġ���Щ�ļ�������Ĭ�������ļ���
Ϊ���ֶ��޸�Ԥ����� icmp ���ͣ�������߷��񣬴�Ĭ������Ŀ¼�����ÿ�������Ӧ��ϵͳ����Ŀ¼��Ȼ�������������޸ġ�
������������Ĭ�Ϻͱ������õ������� /etc/firewalld�µĶ�Ӧ�ļ�����������Ϊ <file>.old Ȼ�����ñ������á�


���ڿ���������

������

�����������ṩ��һ�ֲ���Ҫ�˽�iptables�﷨��ͨ���߼��������ø��� IPv4 �� IPv6 ����ǽ����Ļ��ơ�
Fedora 19 �ṩ�˴��� D-Bus ��������֧�ֵĸ��������Ե�2����̱��汾����3����̱��汾Ҳ���ṩ����ͼ�ν��� firewall-config ��֧�֡�
���ڴ����Եĸ�����Ϣ������ģ� firewalld Rich Language

����

��������Ϊ firewalld ��������������Ӧ�û��߷������õļ����÷�ʽ������һ����������Ӧ�ó�����ԡ�
Fedora 19 �ṩ���������Եĵڶ�����̱��汾������ D-Bus ��������֧�֡���3����̱��汾Ҳ���ṩͼ�ν��� firewall-config �µ�֧�֡�
������Ϣ����ģ� firewalld Lockdown

����ֱ�ӹ���

�������Դ�������״̬�������ܹ��ṩ����ֱ�ӹ����ֱ�����Ĺ��ܡ�ͨ���������ڸ����ԡ��������ֱ�ӹ������Ϣ�����Direct options��
��ip*tables��ebtables����Ǩ��
�������Դ�������״̬�������������ṩ��iptables,ip6tables �� ebtables ��������ת��Ϊ����ֱ�ӹ���Ľű�������������firewalld�ṩ��ֱ�������ɷ�����ܴ��ھ����ԡ�
�����Խ���Ҫ�������ӷ���ǽ���õ�Ǩ�Ʋ��ԡ�

�ƻ������鹦��
����ǽ����ģ��

�� ip*tables �� ebtables ����ǽ����֮�����ӳ����ʹ���ӹ�����򵥺�ֱ�ۡ�Ҫ����㹦��ǿ�󣬵�ͬʱ�ֲ��ܸ��ӣ�������һ��򵥵�����Ϊ�ˣ����ò�����һ�ַ���ǽ���ԡ�ʹ����ǽ����ӵ�й̶���λ�ã����Բ�ѯ�˿ڵķ���״̬�����ʲ��Ե���ͨ��Ϣ��һЩ�������ܵķ���ǽ���ԡ�

����conntrack��֧��

Ҫ��ֹ����������ȷ����������Ҫ conntrack ��������һЩ�������ֹ���ӿ����Dz��õģ��磺Ϊ��������ʱ���ڵ��������ⲿ���Ӷ����õķ���ǽ����

�û�����ģ��

���Ƿ���ǽ���û����߹���Ա�������õ�һ������ģʽ��Ӧ�ó�������Ҫ���ķ���ǽ�����󽫶�����û�֪�����Ա�ȷ�Ϻͷ��ϡ�Ϊһ�����ӵ���Ȩ����һ��ʱ�����Ʋ���������������������������ǿ��еġ����ÿ��Ա����Ա㽫������֪ͨ���Ӧ����ͬ��Ϊ�� ��ģʽ����һ�������ǹ�����Ӧ�ó���������������ͬ���ܵ�Ԥѡ����Ͷ˿ڵ��ⲿ���ӳ��ԡ�����Ͷ˿ڵ�����Ҳ�����Ʒ��͸��û�������������

�û�����֧��

����Ա���Թ涨��Щ�û�����ʹ���û�����ģʽ�����Ʒ���ǽ�������ԡ�

�˿�Ԫ������Ϣ(�� Lennart Poettering ����)

ӵ��һ���˿ڶ�����Ԫ������Ϣ�Ǻܺõġ���ǰ�� /etc/services �Ķ˿ں�Э�龲̬����ģ�Ͳ��Ǹ��õĽ��������Ҳû�з�ӳ��ǰʹ�������Ӧ�ó�������Ķ˿��Ƕ�̬�ģ�����˿ڱ�������������ʹ�������
Ԫ������Ϣ��������Ϊ����ǽ�ƶ��򵥵Ĺ���������һЩ���ӣ�

�����ⲿ�����ļ�����Ӧ�ó�������
�����ⲿ�������ֹ���Ӧ�ó�������
�����ⲿ����ȫ������Ӧ�ó�������
�����ⲿ���� torrent �ļ�����Ӧ�ó�������
�����ⲿ���� http �������

�����Ԫ������Ϣ��ֻ���ض�Ӧ�ó��򣬻�������һ��ʹ����������磺��“ȫ������”������“�ļ�����”���Զ�Ӧ��ȫ���������ļ���������(�磺torrent �ļ�����)����Щֻ�����ӣ���������ܲ�û��ʵ���ô���
�������ڷ���ǽ�л�ȡԪ������Ϣ�����ֿ���;����
��һ�������ӵ� netfilter (�ں˿ռ�)���ô���ÿ���˶�����ʹ��������Ҳ��һ��ʹ�����ơ���Ҫ�����û���ϵͳ�ռ�ľ�����Ϣ��������Щ����Ҫ���ں˲���ʵ�֡�
�ڶ��������ӵ� firewall daemon �С���Щ����Ĺ�����Ժ;�����Ϣ(�磺�������ӿ��ż�����Ϊ�������/����Ҫ�������û�����������Ա��ֹ��ȫ������Ӧ�����)һ��ʹ�á�
�ڶ��ֽ�������ĺô��Dz���ҪΪ���µ�Ԫ�����������ı�(���ż����û�ƫ�û����Ա����ȵ�)���±����ںˡ���Щ������������ʹ�� firewall daemon �������ɡ���ʹ���µİ�ȫ��Ҳ����Ҫ�����ں˼����������ӡ�
sysctld
�������� sysctl ����û����ȷӦ�á�һ�������ǣ��� rc.sysinit ������ʱ�����ṩ���õ�ģ��������ʱû��װ�ػ�������װ�ظ�ģ��ʱ�ᷢ�����⡣
��һ�������� net.ipv4.ip_forward ������ǽ���á�libvirt ���û�/����Ա���Ķ���Ҫ�������������Ӧ�ó�����ػ�����ֻ����Ҫʱ���� ip_forwarding ��֮���������һ���ڲ�֪��������¹ص����񣬶���һ������Ҫ������ʱ�Ͳ��ò���������
sysctl daemon ����ͨ��������ʹ���ڲ������������������⡣��ʱ����֮ǰ�����߲�����Ҫʱ�����ͻ��ٴλص�֮ǰ������״̬������ֱ�ӹر�����


����ǽ����

netfilter ����ǽ���������ܵ�����˳���Ӱ�죬��Ϊһ������������û�й̶���λ�á���һ������֮ǰ���ӻ���ɾ�����򶼻�ı�˹����λ�á� �ھ�̬����ǽģ���У��ı����ǽ�����ؽ�һ���ɾ������Ƶķ���ǽ���ã��������� system-config-firewall / lokkit ֱ��֧�ֵĹ��ܡ�Ҳû����������Ӧ�ó��򴴽�����ǽ����������Զ�������ļ�����û��ʹ�� s-c-fw / lokkit �Ͳ�֪�����ǡ�Ĭ����ͨ��Ҳû�а�ȫ�ķ�ʽ���ӻ�ɾ���������Ӱ����������
��̬����ǽ�и��ӵķ���ǽ����������Щ������������Ѷ����˳����е��ã�������������ӹ��򽫲��������ǰ���õľܾ��Ͷ������򡣴Ӷ����ڴ�����Ϊ�������Ƶķ���ǽ���á�
������һЩ���ػ����̴����Ĺ��򣬹����б����������ڹ�������� ssh , mdns �� ipp-client ��֧�֣�

*filter
:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]:FORWARD_ZONES - [0:0]:FORWARD_direct - [0:0]:INPUT_ZONES - [0:0]:INPUT_direct - [0:0]:IN_ZONE_public - [0:0]:IN_ZONE_public_allow - [0:0]:IN_ZONE_public_deny - [0:0]:OUTPUT_direct - [0:0]-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -j INPUT_direct
-A INPUT -j INPUT_ZONES
-A INPUT -p icmp -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i lo -j ACCEPT
-A FORWARD -j FORWARD_direct
-A FORWARD -j FORWARD_ZONES
-A FORWARD -p icmp -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A OUTPUT -j OUTPUT_direct
-A IN_ZONE_public -j IN_ZONE_public_deny
-A IN_ZONE_public -j IN_ZONE_public_allow
-A IN_ZONE_public_allow -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
-A IN_ZONE_public_allow -d 224.0.0.251/32 -p udp -m udp --dport 5353 -m conntrack --ctstate NEW -j ACCEPT
-A IN_ZONE_public_allow -p udp -m udp --dport 631 -m conntrack --ctstate NEW -j ACCEPT

ʹ�� deny/allow ģ��������һ��������Ϊ(���û�г�ͻ����)�����磺 ICMP�齫���� IN_ZONE_public_deny ��(���Ϊ�������������˵Ļ�)�������� IN_ZONE_public_allow ��֮ǰ������
��ģ��ʹ���ڲ�������������������һ����������ӻ�ɾ���������ø������ס�


�����RHEL/CentOS 7�Լ�Fedora������FirewallD��//m.ajphoenix.com/linux/8573.html

ʹ��FirewallD������̬����ǽ��//m.ajphoenix.com/linux/5908.html

Ubuntu����ǽ-the Uncomplicated Firewall��ufw����//m.ajphoenix.com/linux/5412.html