Rocky Linux 10 / 방화벽 관리

Rocky Linux는 firewalld를 기본 방화벽으로 사용하며, firewall-cmd 명령어로 실시간 설정이 가능합니다. 포트나 서비스를 열고 닫거나, Zone을 통해 네트워크 접근을 세분화하여 관리할 수 있습니다. 설정은 일시적 또는 영구적으로 적용 가능합니다.

방화벽 상태 확인

방화벽이 실행 중이면 running, 실행 중이 아니면 not running을 출력합니다.

# firewall-cmd --state

방화벽 시작과 중지

방화벽을 시작합니다.

# systemctl start firewalld

방화벽을 중지합니다.

# systemctl stop firewalld

시스템 시작 시 방화벽이 자동으로 시작하도록 합니다.

# systemctl enable firewalld

시스템 시작 시 방화벽이 자동으로 시작하지 않도록 합니다.

# systemctl disable firewalld

열려 있는 서비스와 포트 확인

열려 있는 서비스를 출력합니다.

# firewall-cmd --list-services

열려 있는 포트를 출력합니다.

# firewall-cmd --list-ports

서비스 허용과 차단

임시 허용과 차단

http 서비스를 허용합니다.

# firewall-cmd --add-service=http

http 서비스를 차단합니다.

# firewall-cmd --remove-service=http

위와 같이 하면 바로 적용됩니다.

임시 정책이므로 firewalld 서비스를 reload, restart하거나 firewall-cmd --reload를 하면 허용 또는 차단이 해제됩니다.

영구 허용과 차단

http 서비스를 영구적으로 허용합니다.

# firewall-cmd --add-service=http --permanent

http 서비스를 영구적으로 차단합니다.

# firewall-cmd --remove-service=http --permanent

아래와 같이 명령해야 적용됩니다.

# firewall-cmd --reload

서비스 목록

서비스 목록은 --get-services 옵션으로 볼 수 있습니다.

# firewall-cmd --get-services
0-AD RH-Satellite-6 RH-Satellite-6-capsule afp alvr amanda-client amanda-k5-client amqp amqps anno-1602 anno-1800 apcupsd aseqnet audit ausweisapp2 bacula bacula-client bareos-director bareos-filedaemon bareos-storage bb bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-exporter ceph-mon cfengine checkmk-agent civilization-iv civilization-v cockpit collectd condor-collector cratedb ctdb dds dds-multicast dds-unicast dhcp dhcpv6 dhcpv6-client distcc dns dns-over-quic dns-over-tls docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-server factorio finger foreman foreman-proxy freeipa-4 freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp galera ganglia-client ganglia-master git gpsd grafana gre high-availability http http3 https ident imap imaps iperf2 iperf3 ipfs ipp ipp-client ipsec irc ircs iscsi-target isns jenkins kadmin kdeconnect kerberos kibana klogin kpasswd kprop kshell kube-api kube-apiserver kube-control-plane kube-control-plane-secure kube-controller-manager kube-controller-manager-secure kube-nodeport-services kube-scheduler kube-scheduler-secure kube-worker kubelet kubelet-readonly kubelet-worker ldap ldaps libvirt libvirt-tls lightning-network llmnr llmnr-client llmnr-tcp llmnr-udp managesieve matrix mdns memcache minecraft minidlna mndp mongodb mosh mountd mpd mqtt mqtt-tls ms-wbt mssql murmur mysql nbd nebula need-for-speed-most-wanted netbios-ns netdata-dashboard nfs nfs3 nmea-0183 nrpe ntp nut opentelemetry openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole plex pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy prometheus prometheus-node-exporter proxy-dhcp ps2link ps3netsrv ptp pulseaudio puppetmaster quassel radius radsec rdp redis redis-sentinel rootd rpc-bind rquotad rsh rsyncd rtsp salt-master samba samba-client samba-dc sane settlers-history-collection sip sips slimevr slp smtp smtp-submission smtps snmp snmptls snmptls-trap snmptrap spideroak-lansync spotify-sync squid ssdp ssh statsrv steam-lan-transfer steam-streaming stellaris stronghold-crusader stun stuns submission supertuxkart svdrp svn syncthing syncthing-gui syncthing-relay synergy syscomlan syslog syslog-tls telnet tentacle terraria tftp tile38 tinc tor-socks transmission-client turn turns upnp-client vdsm vnc-server vrrp warpinator wbem-http wbem-https wireguard ws-discovery ws-discovery-client ws-discovery-host ws-discovery-tcp ws-discovery-udp wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-java-gateway zabbix-server zabbix-trapper zabbix-web-service zero-k zerotier

특정 서비스에 대한 자세한 정보는 다음과 같은 방식으로 볼 수 있습니다.

# firewall-cmd --info-service=http
http
  ports: 80/tcp
  protocols:
  source-ports:
  modules:
  destination:
  includes:
  helpers:

포트 허용과 차단

임시 허용과 차단

80 TCP 포트를 허용합니다.

# firewall-cmd --add-port=80/tcp

80 TCP 포트를 차단합니다.

# firewall-cmd --remove-port=80/tcp

위와 같이 하면 바로 적용됩니다.

임시 정책이므로 firewalld 서비스를 reload, restart하거나 firewall-cmd --reload를 하면 허용 또는 차단이 해제됩니다.

영구 허용과 차단

80 TCP 포트를 영구적으로 허용합니다.

# firewall-cmd --add-port=80/tcp --permanent

http 서비스를 영구적으로 차단합니다.

# firewall-cmd --remove-port=80/tcp --permanent

아래와 같이 명령해야 적용됩니다.

# firewall-cmd --reload

특정 IP 차단

192.168.1.178에서의 접속을 차단합니다.

# firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.178" drop'

차단한 것을 제거합니다.

# firewall-cmd --remove-rich-rule='rule family="ipv4" source address="192.168.1.178" drop'

영구 차단하고 싶다면 --permanent 옵션을 붙이고, 다시 로드합니다.

# firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.178" drop' --permanent
# firewall-cmd --reload

 

같은 카테고리의 다른 글
Rocky Linux 10 / 방화벽 관리

Rocky Linux 10 / 방화벽 관리

Rocky Linux는 firewalld를 기본 방화벽으로 사용하며, firewall-cmd 명령어로 실시간 설정이 가능합니다. 포트나 서비스를 열고 닫거나, Zone을 통해 네트워크 접근을 세분화하여 관리할 수 있습니다. 설정은 일시적 또는 영구적으로 적용 가능합니다.

Rocky Linux 8 / 고정 IP 설정하는 방법

Rocky Linux 8 / 고정 IP 설정하는 방법

보통 Rocky Linux를 설치할 때 IP를 설정하나, 여러 가지 이유로 IP 설정을 다시 해야 하는 경우가 있다. IP를 설정하는 두 가지 방법을 소개한다. TUI 네트워크 설정 파일을 수정하는 것보다는 NetworkManager Text User Interface(nmtui)를 이용하는 게 편하다. nmtui를 실행한다. Edit a connection을 선택한다. 설정하려는 네트워크 카드를 선택한다. 현재 설정이 나오는데... 적절히 설정한다. 다음과 같이 명령하여 반영한다. systemctl restart NetworkManager GUI Settings를 연다. Network에서 ...

Rocky Linux 9 / SSH / 포트 변경하는 방법

Rocky Linux 9 / SSH / 포트 변경하는 방법

SSH는 22 포트를 사용한다. 알려진 포트이므로 다른 포트로 변경하는 것이 보안상 좋다. Rocky Linux 9에서 SSH 포트 변경하는 방법은 다음과 같다. 포트를 1980으로 바꾼다고 가정한다. /etc/ssh/sshd_config에서 다음의 코드를... #Port 22 다음으로 변경한다. Port 1980 SELINUX가 활성화되어 있다면 다음과 같이 명령하여 1980 포트를 사용할 수 있게 만든다. semanage port -a -t ssh_port_t -p tcp 1980 만약 다음과 같은 ...

Rocky Linux 8 / DNF 사용법

Rocky Linux 8 / DNF 사용법

dnf는 패키지를 관리하는 명령어이다. 도움말 도움말 보기 # dnf -h 목록 보기 패키지 목록 보기 # dnf list 그룹 목록 보기 # dnf grouplist 검색 zip을 키워드로 패키지 검색 # dnf search zip 정보 출력 zip 패키지 정보 출력 # dnf info zip Server with GUI 그룹 정보 출력 # dnf groupinfo 'Server with GUI' 설치 zip 패키지 설치 # dnf install zip httpd와 php 설치 # dnf install httpd php Server ...

Rocky Linux 9 / Apache, PHP, MariaDB 설치

Rocky Linux 9 / Apache, PHP, MariaDB 설치

Rocky Linux 9에 Apache, PHP, MariaDB를 설치하는 방법을 정리합니다.

Rocky Linux 8 / 원격 데스크톱으로 연결하는 방법

Rocky Linux 8 / 원격 데스크톱으로 연결하는 방법

패키지 설치 다음과 같이 명령하여 EPEL(Extra Packages of Enterprise Linux) 저장소를 추가한다. dnf install epel-release xrdp 패키지를 설치한다. dnf install xrdp 방화벽 설정 원격 데스크톱이 사용하는 포트는 3389이다. firewall-cmd로 3389 포트를 열어준다. firewall-cmd --permanent --add-port=3389/tcp 방화벽을 다시 로드한다. firewall-cmd --reload 서비스 설정 systemctl 명령어로 xrdp 서비스를 시작한다. systemctl start xrdp 시스템 재부팅 후에도 자동으로 실행되게 하려면 다음과 같이 명령한다. systemctl enable xrdp 재부팅 위와 같이 했을 때 원격 ...

Rocky Linux 8 / SELinux 끄는 방법

Rocky Linux 8 / SELinux 끄는 방법

상태 확인 켜진 상태라면 Enforcing, 꺼진 상태라면 Permissive를 출력한다. getenforce 방법 1 다음과 같이 명령하면 SELinux가 꺼진다. 재부팅하면 다시 SELinux가 켜진다. setenforce 0 만약 다시 SELinux를 사용하고 싶다면 다음과 같이 명령한다. setenforce 1 방법 2 /etc/selinux/config에 다음과 같은 코드가 있다. SELINUX=enforcing 다음과 같이 바꾼다. SELINUX=disabled 시스템을 재부팅하면 적용된다. 방법 1과는 달리 재부팅해도 설정이 유지된다.

Rocky Linux 9 / 설치

Rocky Linux 9 / 설치

다운로드 아래 링크에서 ISO 파일을 다운로드한다. https://rockylinux.org/download Boot, Minimal, DVD 세 가지가 있는데, 다음과 같이 설명되어 있다. Boot Used to install the operating system from another source (such as a HTTP repository of the binary files). Can also be used to enter Rescue Mode. Minimal Used to install the operating system from another source (such as a ...

Rocky Linux 9 / 설치된 패키지 확인하는 방법

Rocky Linux 9 / 설치된 패키지 확인하는 방법

Rocky Linux에서 설치된 패키지 확인은 dnf 또는 rpm 명령어로 할 수 있다. 출력하는 내용에 차이가 있다. dnf 명령어로 설치된 패키지 확인 설치된 모든 패키지를 출력한다. # dnf list --installed 설치된 패키지 중 이름에 mariadb가 있는 것을 출력한다. # dnf list --installed | grep mariadb rpm 명령어로 설치된 패키지 확인 설치된 모든 패키지를 출력한다. # rpm -qa 설치된 패키지 중 ...

Rocky Linux 9 / hostname 변경하는 방법

Rocky Linux 9 / hostname 변경하는 방법

CLI 다음과 같이 명령하면 hostname을 출력한다. hostname 다음과 같이 명령하면 hostname을 rocky로 변경한다. hostnamectl set-hostname rocky GUI 의 Device Name에서 변경한다.