Rocky Linux 8 / firewall-cmd / 방화벽 설정
Created 2023-04-16
Last Modified 2024-04-14
Rocky Linux의 방화벽 관리 데몬은 firewalld이다. 관리는 firewall-cmd 명령어로 한다.
차례
방화벽 실행 여부 확인
- 실행 중이면 running, 실행 중이 아니면 not running을 출력한다.
# firewall-cmd --state running
방화벽 다시 로드
- 방화벽 설정을 추가하거나 수정한 경우, 다시 로드해야 적용된다.
# firewall-cmd --reload
Zone 출력하기
- Zone 목록을 출력한다.
# firewall-cmd --get-zones block dmz drop external home internal nm-shared public trusted work
- 활성화된 Zone을 출력한다.
# firewall-cmd --get-active-zone public interfaces: eth2 eth1 eth0
- 기본 Zone을 출력한다.
# firewall-cmd --get-default-zone public
사용 가능한 서비스/포트 출력하기
- 사용 가능한 모든 서비스/포트 목록을 출력한다.
# firewall-cmd --list-all
- public zone에 속한 사용 가능한 모든 서비스/포트 목록을 출력한다.
# firewall-cmd --zone=public --list-all
서비스 추가/제거
- 서비스 목록을 출력한다.
# firewall-cmd --get-services RH-Satellite-6 RH-Satellite-6-capsule afp amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bb bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-mon cfengine cockpit collectd condor-collector ctdb dhcp dhcpv6 dhcpv6-client distcc dns dns-over-tls docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-server finger foreman foreman-proxy freeipa-4 freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp galera ganglia-client ganglia-master git grafana gre high-availability http http3 https imap imaps ipp ipp-client ipsec irc ircs iscsi-target isns jellyfin jenkins kadmin kdeconnect kerberos kibana klogin kpasswd kprop kshell kube-api kube-apiserver kube-control-plane kube-controller-manager kube-scheduler kubelet-worker ldap ldaps libvirt libvirt-tls lightning-network llmnr llmnr-tcp llmnr-udp managesieve matrix mdns memcache minidlna mongodb mosh mountd mqtt mqtt-tls ms-wbt mssql murmur mysql nbd netbios-ns nfs nfs3 nmea-0183 nrpe ntp nut openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole plex pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy prometheus proxy-dhcp ptp pulseaudio puppetmaster quassel radius rdp redis redis-sentinel rpc-bind rquotad rsh rsyncd rtsp salt-master samba samba-client samba-dc sane sip sips slp smtp smtp-submission smtps snmp snmptrap spideroak-lansync spotify-sync squid ssdp ssh steam-streaming svdrp svn syncthing syncthing-gui synergy syslog syslog-tls telnet tentacle tftp tile38 tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-http wbem-https wireguard ws-discovery ws-discovery-client ws-discovery-tcp ws-discovery-udp wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server zerotier
- ftp 서비스 정보를 출력한다.
# firewall-cmd --info-service=ftp ftp ports: 21/tcp protocols: source-ports: modules: destination: includes: helpers: ftp
- ftp 서비스를 추가한다.
# firewall-cmd --add-service=ftp success
- ftp 서비스를 제거한다.
# firewall-cmd --remove-service=ftp success
포트 추가/제거
- 21 tcp 포트를 추가한다.
# firewall-cmd --add-port=21/tcp success
- 21 tcp 포트를 제거한다.
# firewall-cmd --remove-port=21/tcp success
--zone=<zone>
- zone 옵션이 없으면 default zone에 추가 또는 삭제를 한다. 특정 zone에 작업하고 싶으면 zone 옵션을 추가한다.
- 예를 들어 trusted zone에 ftp 서비스를 추가하고 싶다면 다음과 같이 한다.
# firewall-cmd --zone=trusted --add-service=ftp
--permanent
- 시스템 재부팅 또는 방화벽 재시작 후에도 적용되도록 하려면 --permanent 옵션을 붙힌다.
# firewall-cmd --permanent --add-service=ftp
방화벽 끄기, 켜기
- 방화벽을 끈다.
systemctl stop firewalld
- 시스템 시작할 때 방화벽 서비스를 시작하지 않게 한다.
systemctl disable firewalld
- 방화벽을 켠다.
systemctl start firewalld