IT 기술 문서

2025.02.01 16:26

CentOS 7 유용한 명령어 시리즈 - ④ 방화벽 및 네트워크 관리

  • it2033 4일 전 2025.02.01 16:26
  • 4
    0

alt text


CentOS 7에서는 기본 방화벽으로 firewalld를 사용하며, 네트워크 관련 명령어를 활용하여 서버의 연결 상태를 관리할 수 있습니다. 이 글에서는 방화벽 설정 및 네트워크 관리에 필요한 명령어들을 정리하겠습니다.


방화벽 관리 (firewalld)

CentOS 7에서는 iptables 대신 firewalld가 기본 방화벽으로 설정되어 있습니다.

1. 방화벽 상태 확인

firewall-cmd --state
  • 현재 방화벽이 활성화(running) 또는 비활성화(not running) 상태인지 확인할 수 있습니다.

2. 방화벽 시작 및 중지

2.1. 방화벽 시작

systemctl start firewalld
  • firewalld 서비스를 실행하여 방화벽을 활성화합니다.

2.2. 방화벽 중지

systemctl stop firewalld
  • firewalld 서비스를 중지하여 방화벽을 비활성화합니다.

2.3. 방화벽 재시작

systemctl restart firewalld
  • firewalld를 다시 시작하여 변경 사항을 적용합니다.

3. 부팅 시 방화벽 자동 실행 설정

3.1. 부팅 시 자동 실행 설정

systemctl enable firewalld
  • 시스템 부팅 시 방화벽이 자동으로 실행되도록 설정합니다.

3.2. 부팅 시 자동 실행 해제

systemctl disable firewalld
  • 부팅 시 방화벽이 자동으로 실행되지 않도록 설정합니다.

4. 현재 방화벽 설정 확인

firewall-cmd --list-all
  • 현재 방화벽에서 설정된 서비스, 포트, 활성화된 규칙 등을 확인할 수 있습니다.

5. 방화벽에서 특정 포트 허용 및 차단

5.1. 특정 포트 열기 (예: 80 포트 - HTTP)

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload
  • HTTP(80번) 포트를 열어 웹 서비스가 정상적으로 작동하도록 합니다.

5.2. 특정 포트 차단 (예: 80 포트)

firewall-cmd --permanent --remove-port=80/tcp
firewall-cmd --reload
  • 기존에 열린 80번 포트를 다시 차단합니다.

6. 방화벽에서 특정 서비스 허용 및 차단

6.1. 서비스 기반 허용 (예: HTTP, HTTPS)

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
  • HTTP 및 HTTPS 트래픽을 허용합니다.

6.2. 서비스 차단 (예: HTTP)

firewall-cmd --permanent --remove-service=http
firewall-cmd --reload
  • HTTP 서비스에 대한 방화벽 허용을 제거합니다.

7. 특정 IP 차단 및 허용

7.1. 특정 IP 차단

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject'
firewall-cmd --reload
  • 192.168.1.100에서 오는 트래픽을 차단합니다.

7.2. 특정 IP 허용

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" accept'
firewall-cmd --reload
  • 192.168.1.100에서 오는 트래픽을 허용합니다.


네트워크 관리

서버의 네트워크 연결 상태를 확인하고 관리하는 것은 중요합니다.

8. 네트워크 인터페이스 확인

ip a
  • 현재 사용 중인 네트워크 인터페이스와 IP 주소를 확인할 수 있습니다.

출력 예시:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
    inet 192.168.1.10/24 brd 192.168.1.255 scope global eth0
  • inet 192.168.1.10 → 현재 서버의 IP 주소를 나타냅니다.

9. 특정 IP 또는 도메인에 대한 연결 확인

9.1. 특정 IP 또는 도메인에 Ping 테스트

ping -c 4 8.8.8.8
  • Google DNS 서버(8.8.8.8)까지의 연결 상태를 확인합니다.

9.2. 특정 포트가 열려 있는지 확인

nc -zv 192.168.1.10 22
  • 192.168.1.10 서버의 22번 포트(SSH)가 열려 있는지 확인합니다.

10. 현재 열려 있는 포트 확인

10.1. Netstat을 이용한 포트 확인

netstat -tulnp
  • 현재 열려 있는 모든 포트를 확인할 수 있습니다.

  • yum install net-tools 패키지를 설치해야 사용할 수 있습니다.

10.2. SS를 이용한 포트 확인

ss -tulnp
  • netstat의 대체 명령어로 더욱 빠르게 실행됩니다.

11. 네트워크 연결 추적

11.1. 특정 도메인까지 가는 경로 확인

traceroute google.com
  • 서버에서 google.com까지 가는 네트워크 경로를 확인합니다.

  • 네트워크 속도가 느릴 경우 어느 구간에서 지연이 발생하는지 분석할 수 있습니다.

12. 도메인 및 DNS 정보 확인

12.1. 도메인 네임서버(DNS) 조회

dig google.com
  • 특정 도메인의 네임서버 정보를 확인할 수 있습니다.

  • yum install bind-utils 패키지를 설치해야 사용할 수 있습니다.

12.2. 특정 도메인의 IP 주소 확인

nslookup google.com
  • 도메인에 연결된 IP 주소를 조회할 수 있습니다.

13. 특정 포트 사용 중인 프로세스 확인

lsof -i :80
  • 80번 포트를 사용 중인 프로세스를 확인할 수 있습니다.

  • yum install lsof 패키지를 설치해야 사용할 수 있습니다.


정리

명령어

설명

firewall-cmd --state

방화벽 상태 확인

firewall-cmd --list-all

현재 방화벽 설정 확인

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

특정 포트 열기

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

특정 서비스 허용

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="IP" reject'

특정 IP 차단

ip a

네트워크 인터페이스 및 IP 확인

ping -c 4 8.8.8.8

특정 IP에 Ping 테스트

netstat -tulnp

현재 열려 있는 포트 확인

ss -tulnp

Netstat 대체 명령어

traceroute google.com

특정 도메인까지 가는 경로 확인

dig google.com

도메인의 DNS 정보 확인

nslookup google.com

도메인의 IP 주소 확인

lsof -i :80

특정 포트를 사용 중인 프로세스 확인

이번에는 CentOS 7에서 방화벽 및 네트워크 관리에 유용한 명령어들을 정리했습니다. 다음 시리즈에서는 패키지 및 소프트웨어 관리 명령어를 다루겠습니다.

  • 공유링크 복사