From manual page:
firewalld provides a dynamically managed firewall with support for network/firewall zones to define the trust level of network connections
or interfaces. It has support for IPv4, IPv6 firewall settings and for
ethernet bridges and has a separation of runtime and permanent
configuration options. It also supports an interface for services or
applications to add firewall rules directly.
Zones:
A network or firewall zone defines the trust level of the interface
used for a connection. There are several pre-defined zones provided by
firewalld. Zone configuration options and generic information about
zones are described in firewalld.zone(5)
Services:
A service can be a list of local ports, protocols and destinations and
additionally also a list of firewall helper modules automatically
loaded if a service is enabled. Service configuration options and
generic information about services are described in
firewalld.service(5). The use of predefined services makes it easier
for the user to enable and disable access to a service.
ICMP types:
The Internet Control Message Protocol (ICMP) is used to exchange
information and also error messages in the Internet Protocol (IP). ICMP
types can be used in firewalld to limit the exchange of these messages.
For more information, please have a look at firewalld.icmptype(5).
Runtime configuration:
Runtime configuration is the actual active configuration and is not
permanent. After reload/restart of the service or a system reboot,
runtime settings will be gone if they haven’t been also in permanent
configuration.
Permanent configuration:
The permanent configuration is stored in config files and will be
loaded and become new runtime configuration with every machine boot or
service reload/restart.
Direct interface:
The direct interface is mainly used by services or applications to add
specific firewall rules. It requires basic knowledge of ip(6)tables
concepts (tables, chains, commands, parameters, targets).
BEGIN
Command used to manage firewalld is firewall-cmd.
Firstly , web install firewalld using
#yum install firewalld

and enable/run
#systemctl enable firewalld
#systemctl start firewalld
-Verify service running or not
#firewall-cmd --state

-Get all available zones
#firewall-cmd --get-zones

-Get default zone (this zone that we gonna use)
#firewall-cmd --get-default-zone

-Get active zone (will display with Ethernet iface)
#firewall-cmd --get-active-zones

-Get list of setting for each zones
#firewall-cmd --list-all

-Get available services ( http, ssh, https, etc … ) to enable it on zone
#firewall-cmd --get-services

-SET http service for zone public (default zone actived) and make it permanent ( will remain even after reboot)
#firewall-cmd --zone=public --add-service=http --permanent
-Verify if service setted.
#firewall-cmd --zone=public --permanent --list-services

-Set and verify zone using port number or port range.
#firewall-cmd --zone=public --permanent --add-port=8080/tcp
#firewall-cmd --zone=public --permanent --list-ports


After complete all setting, reload the firewall service to make sure setting work.
#firewall-cmd --reload

Add-on:-
Adding new zone to specific port with specific ip range.
#firewall-cmd --new-zone=secret--permanent
#firewall-cmd --reload
#firewall-cmd --zone=secret--add-source=10.202.0.0/32
#firewall-cmd --zone=secret--add-port=2200/tcp
*Tested on CentOS Linux release 7.5.1804 (Core)
References :
Linux Manual Page
https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-firewalld-on-centos-7