OS

2022.02.21 14:06

Linux 방화벽 firewalld 설정

  • 비아웹 오래 전 2022.02.21 14:06 인기
  • 6,217
    0

안녕하세요 서버호스팅 비아웹입니다.

CentOS 7 이상의 환경에서 기본 설치되는 방화벽인 firewalld 사용법에 대해 정리합니다.

 

1. 테스트 환경

OS : CentOS Linux release 7.6.1810 (Core) 최소 설치

버전 : firewalld-0.5.3-5.el7.noarch

 

2. firewalld 상태 확인

# systemctl status firewalld

firewalld 정책에 대한 iptables 확인

 

3. firewalld 서비스 제어

서비스 확인

systemctl status firewalld

서비스 중지

systemctl stop firewalld

서비스 시작

systemctl start firewalld

서비스 등록

systemctl enable firewalld

서비스 등록 삭제

systemctl disable firewalld

 

4. 현재 사용 중인 전체 zone 확인

# firewall-cmd --get-zones

- 상세 Zone 확인

# firewall-cmd list-all-zones

 

5. default zone 확인

# firewall-cmd --get-default-zone

 

6. zone 생성 / 삭제 / default zone 변경

- 신규 zone 생성

# firewall-cmd --permanent --new-zone=Zone_이름

- zone 삭제

# firewall-cmd --permanent --delete-zone=삭제_Zone_이름

- default zone 변경

# firewall-cmd --set-default-zone=새_default_zone

- 생성 / 삭제 / 변경 후 --reload 필요

# systemctl --reload

 

7. firewalld 허용된 서비스 / 포트 확인

# firewall-cmd --list-all

기본 : ssh / dhcp 허용

 

8.service 로 허용 / 차단 설정

- 허용

# firewall-cmd --add-servie=서비스명

ftp 정책 허용 후 iptables 을 통해 정책 확인

 

- 차단

# firewall-cmd --remove-service=서비스명

 

- 서비스명으로 제어하나 서비스 포트 변경하고자 할 경우

# 서비스 파일 위치 # /usr/lib/firewalld/services/

http.xml 에서 포트를 8080으로 수정

 

9. port 로 허용/차단

# firewall-cmd --permanent --add-port=포트번호/tcp # firewall-cmd --reload

 

10. 서비스 재시작시 정책 유지 여부

firewall-cmd

firewall-cmd --permanent

즉시 적용

O

X ( firewall-cmd --reload 필요)

재부팅

X( 초기화 됨)

O

- firewall-cmd runtime 저장

: --permanent 옵션없이 정책 설정 했을 경우

# firewall-cmd --runtime-to-permanent

 

11. 특정 IP에 대해 허용/차단

- rich-rule 확인

# firewall-cmd --list-rich-rule

- rule 생성 (포트에 대해)

# firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.80.1/32 \
port port=80 protocol=tcp accept"

- rule 생성 (서비스에 대해)

# firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.80.1/32" \
service name="ssh" accept"

- rule 삭제

# firewall-cmd --permanent --remove-rich-rule="rule family=ipv4 source address=192.168.80.1/32 \
port port=443 protocol=tcp accept"

- port 범위 제어

# firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.80.1/32 \
port port=6000-6300 protocol=tcp accept"

 

12. 기본 firewalld 룰셋

: http / https / smtp 전체 허용 , ssh 특정 IP 허용

# firewall-cmd --permanent --add-service=http # firewall-cmd --permanent --add-service=https # firewall-cmd --permanent --add-service=smtp # firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="IP" \
service name="ssh" accept" # firewall-cmd --permanent --remove-service=ssh # firewall-cmd --reload

13. 정책 파일 (public zone 사용시)

# /etc/firewalld/zones/public.xml

firewalld 에 대해 간략하게 정리 진행하였습니다.

현재 운영하고 계신 서버의 서비스 범위와 허용 범위에 대해 먼저 확인 후 적용하시기 바랍니다.

 

감사합니다.

서버호스팅 비아웹


 

  • 공유링크 복사

    댓글목록

    등록된 댓글이 없습니다.