방화벽은 무엇입니까? 어떻게 작동합니까?
2022-06-01 last update
7 minutes reading Conceptual Firewall소개
방화벽은 사용자 정의 규칙에 따라 전송과 전송 네트워크 유량을 필터링하여 네트워크 안전을 제공하는 시스템이다.일반적으로 방화벽의 목적은 불필요한 네트워크 통신을 줄이거나 없애는 동시에 모든 합법적인 통신의 자유 유동을 허용하는 것이다.대부분의 서버 인프라 시설에서 방화벽은 중요한 안전층을 제공하여 다른 조치와 결합하여 공격자가 악의적인 방식으로 당신의 서버에 접근하는 것을 방지할 수 있습니다.
이 안내서는 방화벽의 작업 원리를 토론하고 클라우드 서버와 관련된 상태 소프트웨어 방화벽, 예를 들어 iptables와 FirewallD를 중점적으로 소개한다.먼저 TCP 패킷과 다양한 유형의 방화벽을 간략하게 설명합니다.그리고 우리는 상태 방화벽과 관련된 각종 주제를 토론할 것이다.마지막으로, 우리는 다른 강좌를 가리키는 링크를 제공할 것입니다. 이 강좌들은 귀하가 자신의 서버에 방화벽을 설치하는 데 도움을 줄 것입니다.
TCP 네트워크 패킷
서로 다른 유형의 방화벽을 토론하기 전에 전송 제어 프로토콜(TCP) 네트워크 데이터가 어떤 모습인지 신속하게 알아보자.
TCP 네트워크 데이터는 패킷 형식으로 네트워크에서 이동합니다. 패킷은 패킷 헤더로 구성된 용기입니다. 패킷은 원본과 목표 주소, 패킷 시퀀스 정보와 데이터(유효 부하라고도 함) 등 제어 정보를 포함합니다.모든 데이터 패키지의 제어 정보는 관련 데이터가 정확하게 전달되는 것을 확보하는 데 도움이 되지만, 이 패키지에 포함된 요소도 방화벽에 다양한 방법을 제공하여 데이터 패키지와 방화벽 규칙이 일치하도록 한다.
주의해야 할 것은 TCP 패키지를 성공적으로 수신하려면 수신자가 전송 확인 패키지를 발송자에게 보내야 한다는 것이다.그룹에 전송되고 전송되는 제어 정보의 조합은 송신자와 수신자 간의 연결 상태를 확인하는 데 사용할 수 있습니다 (예를 들어 새로운, 설정된, 관련된).
방화벽 유형
세 가지 기본 유형의 네트워크 방화벽: 패키지 필터(무상태), 유상태와 응용층을 신속하게 토론합시다.
패킷 필터링 또는 무상태 방화벽은 단일 패킷을 격리 검사하여 작동합니다.따라서 연결 상태를 모르고 단일 패키지 헤더를 기반으로 한 패키지만 허용하거나 거부할 수 있습니다.
상태 방화벽이 있으면 데이터 패키지의 연결 상태를 확정할 수 있어 무상태 방화벽보다 훨씬 유연하다.그것들의 작업 방식은 데이터에 어떤 방화벽 규칙을 적용하기 전에 연결 상태를 확정할 수 있을 때까지 관련 데이터 패키지를 수집하는 것이다.
응용 프로그램 방화벽은 전송된 데이터를 더욱 분석하여 네트워크 데이터가 단일 서비스나 응용 프로그램에 특정한 방화벽 규칙과 일치하도록 허용한다.이 방화벽들은 에이전트 기반의 방화벽이라고도 부른다.
모든 현대 운영체제에서 사용할 수 있는 방화벽 소프트웨어를 제외하고 방화벽 기능은 하드웨어 장치(예를 들어 공유기나 방화벽 장치)에서 제공할 수 있다.마찬가지로 우리의 토론은 상태 소프트웨어 방화벽에 집중될 것이다. 이 방화벽들은 그들이 보호하려는 서버에서 실행될 것이다.
방화벽 규칙
위에서 말한 바와 같이 방화벽을 통과하는 네트워크 데이터는 규칙에 따라 일치하여 통과를 허용해야 하는지 여부를 확정할 것이다.방화벽 규칙을 설명하는 간단한 방법은 몇 가지 예시를 보여주는 것이기 때문에 지금 바로 하겠습니다.
서버에 전송 트래픽에 적용되는 다음 방화벽 규칙 목록이 있다고 가정합니다.
이 예시의 첫 번째 단어는'수용','거부'또는'포기'입니다.이것은 네트워크 데이터가 규칙과 일치할 때 방화벽이 실행해야 할 동작을 지정합니다.수락은 데이터의 통과를 허용하는 것을 의미하고, 거부는 데이터의 흐름을 막지만'접근할 수 없음'오류로 회답하는 것을 의미하며, 포기는 데이터의 통과를 막지만 회답을 보내지 않는 것을 의미한다.각 규칙의 나머지 부분은 각 패킷이 일치하는 조건으로 구성됩니다.
사실이 증명하듯이 네트워크 데이터는 방화벽 규칙 목록에 따라 처음부터 끝까지 순서나 체인에 따라 일치한다.더욱 구체적으로 말하면 규칙이 일치하면 관련 조작은 논의된 네트워크 데이터에 응용될 것이다.우리의 예시에서 만약에 회계 직원이 서버에 SSH 연결을 만들려고 한다면 규칙 3을 검사하기 전에 규칙 2에 따라 거절당할 것이다.그러나 시스템 관리자는 규칙 3에만 부합되기 때문에 받아들일 것이다.
기본 정책
일련의 방화벽 규칙은 통상적으로 모든 가능한 상황을 명확하게 포함하지 않는다.따라서 방화벽 체인은 하나의 작업 (수용, 거부 또는 삭제) 만 포함하는 기본 정책을 항상 지정해야 합니다.
위의 예시 체인의 기본 정책이drop으로 설정되어 있다고 가정합니다.사무실 이외의 모든 컴퓨터가 서버에 SSH 연결을 시도하면 데이터가 규칙에 맞지 않기 때문에 버려집니다.
기본 정책이accept로 설정되어 있다면, 비기술 직원을 제외하고는 누구나 서버에 개방된 서비스에 연결할 수 있습니다.이것은 아주 나쁜 방화벽을 배치하는 예가 될 것이다. 왜냐하면 그것은 당신의 일부 직원들을 문밖으로 내쫓을 뿐이기 때문이다.
전송 및 전송 유량
서버의 측면에서 볼 때 네트워크 데이터는 전송될 수도 있고 전송될 수도 있기 때문에 방화벽은 이 두 가지 상황을 위해 서로 다른 규칙을 유지한다.다른 곳에서 오는 데이터(전입 데이터)의 처리 방식은 서버가 보내는 전송 데이터와 다르다.서버는 일반적으로 대부분의 데이터를 전송할 수 있다. 왜냐하면 서버 자체가 신뢰할 수 있기 때문이다.그럼에도 불구하고 서버 공격자나 악의적인 실행 파일 파괴 상황에서 전송 규칙 집합은 불필요한 통신을 방지하는 데 사용된다.
방화벽의 안전 우위를 최대한 발휘하기 위해서는 다른 시스템과 서버가 상호작용하기를 원하는 모든 방식을 확정하고 이를 명확하게 허용하는 규칙을 만들고 모든 다른 데이터를 버려야 합니다.서버가 모든 적당한 전송 연결에 전송 확인을 할 수 있도록 적당한 전송 규칙을 제정해야 한다는 것을 기억하십시오.또한 여러 가지 이유(예를 들어 다운로드 업데이트나 데이터베이스에 연결)로 인해 서버는 통상적으로 자신의 전송 데이터를 시작해야 하기 때문에 전송 규칙에 이런 상황을 집중적으로 포함하는 것도 중요하다.
전송 규칙 쓰기
우리의 예시 방화벽이 기본적으로 전송 유량을 버리는 것으로 설정되어 있다고 가정하십시오.이것은 상호보완적인 전송 규칙이 없다면 우리의 전송 수용 규칙은 쓸모가 없다는 것을 의미한다.
방화벽 규칙 섹션의 예제를 방화벽 규칙(1과 3)에 전달하고 주소와 포트에서 적절한 통신을 허용하기 위해 이러한 전송 방화벽 규칙을 사용할 수 있습니다.
방화벽 소프트웨어 및 도구
이제 우리는 방화벽의 작업 원리를 이해했고 효과적인 방화벽을 구축하는 데 도움을 줄 수 있는 흔한 소프트웨어 패키지를 보여 주었다.방화벽과 관련된 다른 패키지도 많지만 모두 유효하고 가장 많은 패키지를 만날 수 있습니다.
규칙
기본적으로 Iptables는 대부분의 Linux 버전에 포함된 표준 방화벽입니다. (nftables라고 불리는 현대 변체가 그것을 대체하기 시작합니다.)이것은 사실상 리눅스 네트워크 창고를 조작할 수 있는 커널급 넷필터 연결의 전단이다.네트워크 인터페이스를 통과하는 모든 데이터 패키지를 하나의 규칙과 일치시켜 무엇을 할지 결정합니다.
iptables를 사용하여 방화벽을 실현하는 방법을 알아보려면 다음 링크를 보십시오.
UFW 회사
UFW는 간단한 방화벽을 대표하며 IPtables의 인터페이스로 방화벽을 설정하는 과정을 간소화하기 위한 것이다.
UFW 사용에 대한 자세한 내용은 이 강좌를 참조하십시오.How To Setup a Firewall with UFW on an Ubuntu and Debian Cloud Server.
방화벽 D
FirewallD는 기본적으로 CentOS 7 서버에서 사용할 수 있는 전체 방화벽 솔루션입니다.참고로 FirewallD는 iptables를 사용하여 netfilter를 설정합니다.
FirewallD 사용에 대한 자세한 내용은 이 강좌를 참조하십시오.How To Configure FirewallD to Protect Your CentOS 7 Server.
CentOS 7을 실행하고 있지만 iptables를 사용하는 것을 더 좋아한다면 이 강좌를 따르십시오How To Migrate from FirewallD to Iptables on CentOS 7.
장애 2ban
Fail2ban은 폭력 로그인 시도와 디도스 공격을 막기 위해 방화벽을 자동으로 설정할 수 있는 침입 보호 소프트웨어이다.
Fail2ban에 대한 자세한 내용은 다음 링크를 참조하십시오.
결론
이제 방화벽의 작업 원리를 이해했습니다. 위의 강좌를 사용하여 방화벽을 실현하여 서버 설정의 안전성을 향상시키는 방법을 연구해야 합니다.
방화벽의 작동 원리에 대한 자세한 내용은 다음 링크를 참조하십시오.