일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- docker container
- docker
- Notification
- github
- gitlab
- octoprint
- 3d프린터 초보
- C언어
- 3D프린터입문
- IoTNetwork
- 네이버클라우드
- 데이터 직렬화 포맷
- 코틀린개발환경
- kubernetes
- Jenkins
- Kotlin
- 3D 프린터 용어
- git
- OnlineIDE
- 3D
- 3D프린터
- data serialization formats
- 리눅스 파일동기화
- 3D모델링
- nas
- Token인증방식
- linux job
- NAS HDD교체
- 3D프린터 입문
- ci/cd
- Today
- Total
0과 1을 공부하다.
[Linux] Rocky 8 방화벽(Firewall) 설정 본문
방화벽 개요
방화벽(Firewall)의 원래 의미는 건물에서 발생한 화재가 더 이상 번지는 것을 막기 위한 시설이다. 이러한 의미는 네트워크상에서 동일한 의미로 사용되고 있으며, 주체가 화재에서 불법적인 트래픽으로 바꼈다는 것이다. 네트워크상에서 불법적인 보안사고를 방지하기 위해 트래픽을 관제하고 정해진 룰에 따라 차단 및 거부를 수행한다. 이로써 사전에 불법적인 행위를 차단하여 공격자로부터 불법행위를 방지할 수 있는 기능을 한다.
※ 본 글은 Linux Rocky 8(Red Hat 계열) 기준에서 작성하였다.
방화벽 설치 및 실행
# 설치
$ yum install firewalld
# 상태확인
$ systemctl status firewalld
# 서비스 시작
$ systemctl start firewalld
# 서비스 종료
$ systemctl stop firewalld
# 서비스 활성화(부팅시에 실행)
$ systemctl enable firewalld
# 서비스 비활성화(부팅시에 실행하지 않음)
$ systemctl disable firewalld
존(Zone) 설정
방화벽에서 존(Zone)은 서버의 용도에 맞게 미리 정의된 네트워크 보안 레벨을 의미한다. 기본 디폴트는 public zone으로 설정되어 있다. public zone 외에도 목적에 맞는 다른 존이 존재하는데 각 존이 해당하는 의미는 아래와 같다.
Zone | 내용 |
Public | 서비스를 제공하는 특별한 포트로의 연결만을 허용하고, 그 외 포트로의 연결은 모두 거부되며 기본 Zone으로 사용된다. |
Drop | Iptables에서 사용하던 DROP과 동일하며, 들어오는 모든 패킷은 버려지고 이에 대한 응답 메시지도 보내지 않으며 단지 외부로로 나가는 연결만 허용된다. |
Block | Drop 존처럼 들어오는 모든 네트워크 연결은 거부되는데, 이에 대해 단지 icmp-host-prohibited와 i cmp6-prohibited라는 응답 메시지를 보낸다. 그러나 시스템 내부에서 시작된 연결은 허용된다. |
External | 특별히 매스커레이딩 규칙이 적용되는 외부의 라우터를 위해 사용되며, 단지 내부로의 연결 요청 중에서 선택된 연결만을 허용 |
DMZ | 내부 네트워크로의 접근은 제한적으로 허용되지만, 공개된 네트워크에 대한 접근을 허용하는 경우에 사용되며 이 경우도 선택된 연결만이 허용된다. |
Work | 같은 회사에 위치한 네트워크를 위해 사용되며, 대부분 같은 네트워크에 위치한 다른 시스템을 신뢰하고 오직 선택된 연결만을 접속 허용한다. |
Home | 홈 영역을 위해 사용되며, 네트워크에 존재하는 다른 시스템을 신뢰하고 오직 선택된 연결만을 접속 허용한다. |
Internal | 내부 네트워크를 위해 사용되고, 선택된 연결만을 접속 허용한다. |
Trusted | 모든 네트워크 접속 연결을 허용하는 경우 사용한다. |
※ 출처: https://sepiros.tistory.com/7
현재 자신의 존을 확인하는 명령어는 아래와 같다.
$ firewall-cmd --get-default-zone
다른 존으로 변경하는 명령어는 아래와 같다.
$ firewall-cmd --set-default-zone=ZoneName
Zone을 설정하는 방법은 구성파일에 직접 작성하는 방법과 명령어로 입력하는 방법이 있다.
구성파일은 public(/etc/firewalld/zones/public.xml), internal(/etc/firewalld/zones/internal.xml)에서 편집 가능하다.
명령어로 존에 특정 서비스를 추가하고 제거하는 명령어는 아래와 같다.
# public zone에 https 서비스를 추가한다.
$ firewall-cmd --zone=public --add-service=https
# public zone에 ssh 서비스를 제거한다.
$ firewall-cmd --zone=public --remove-service=ssh
아래 명령어와 같이 포트번호와 프로토콜을 입력하여 추가할 수도 있다.
$ firewall-cmd --zone=public --permanent --add-port=10443/tcp
$ firewall-cmd --runtime-to-permanent # 추가/제거한 서비스를 영구적으로 적용한다. (구성파일에 쓰기)
$ firewall-cmd --reload # 정책 적용
$ firewall-cmd --list-all --zone=public # public zone 확인
$ firewall-cmd --list-all --zone=internal # internal zone 확인
방화벽을 재실행하여 현재 정책을 적용한다.
$ systemctl restart firewalld
※ 본 게시글의 정보가 잘못 되었거나 부족한 부분에 대한 피드백을 환영합니다.
* CopyRight 2022. Jay Park All rights reserved.
'Study > Linux' 카테고리의 다른 글
[Linux] Rsync 유틸리티를 이용한 파일/디렉터리 동기화 (0) | 2024.01.18 |
---|---|
[Linux] Rocky 8 고정ip 설정 (0) | 2022.06.27 |
[Linux] SSH(Secure Shell) 포트변경 (0) | 2022.05.27 |
[Linux] 리눅스 명령어 (파일 및 디렉터리 관리 / 시스템 재부팅 및 종료) (0) | 2022.01.17 |
[Linux] Vi(Vim) .vimrc 파일 수정을 통해 가독성을 높이는 방법 (0) | 2022.01.13 |