방화벽 뒤의 네트워크 운용성을 위한 기본 요구 사항을 갖춘 서버 시스템으로서의 Linux

방화벽 뒤의 네트워크 운용성을 위한 기본 요구 사항을 갖춘 서버 시스템으로서의 Linux

저는 Linux가 처음이고 Windows에 더 익숙합니다. 주어진 맥락에서 올바른 질문을 할 수 있도록 후자의 상황을 설명합니다. Windows에서 로컬 시스템 방화벽을 엄격 차단 모드로 실행하는 경우 네트워크 연결이 제대로 작동하려면 몇 가지 요구 사항을 충족해야 합니다. 기본 내장 방화벽 설정에는 네트워크 연결을 보장하기 위해 존재하고 활성화되는 일반적으로 "핵심 네트워크"라고 하는 몇 가지 규칙이 있습니다. 예를 들어:

Core Networking - Destination Unreachable Fragmentation Needed (ICMPv4-In)
Core Networking - Dynamic Host Configuration Protocol (DHCP-In) 
Core Networking - Internet Group Management Protocol (IGMP-In)
Core Networking Diagnostics - ICMP Echo Request (ICMPv4-In)
(and their counterparts for Outbound)

이는 네트워크가 제대로 작동하는 데 필요한 최소값입니다. 남은 것은 필요한 애플리케이션과 해당 기능인 애플리케이션 도메인 구성입니다. 즉, 사용자 지정 규칙을 추가합니다.

그래서 내 질문은 다음과 같습니다Linux에도 비슷한 작업이 있나요? 예를 들어, 기본 Arch를 설치하는 경우 사전 구성된 iptables 또는 방화벽 규칙이 없으므로 직접 만들어야 합니다. 특정 컬렉션이 있나요?기본 필수 전역 규칙방화벽을 설치하면"명시적으로 허용되지 않은 모든 콘텐츠를 차단합니다"코어 네트워크를 사용할 수 있나요?

내가 묻는 이유는 일부 배포판, 특히 서버 배포판이 기본적으로 이 상태를 가지고 있다는 것을 알고 있기 때문입니다. 원하거나 필요한 포트를 명시적으로 허용/열어야 합니다. 나는 함께 제공되는 많은 VPS/VDS를 사용했습니다. 내가 몰랐던 것은 설정의 복잡성이었습니다. 나는 교육적인 결론을 내릴 경험이 많지 않습니다. 분명히 나는 ​​모든 포트에서 들어오는 모든 데이터를 거부하는 전역 iptabels 규칙을 만드는 방법과 포트 22에 대해 예외를 만드는 방법을 알고 있습니다.나는 무엇을 모른다그 이상의 것이 있으면 위의 Windows 예와 유사하게 백그라운드에서 설정해야 합니다.

나는 비슷한 것을 시도했습니다 :

iptables -F
iptables -P INPUT DROP
iptables -A INPUT -i lo -p all -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT 
iptables -A INPUT -j DROP

하지만 이제는 simple 과 같은 나가는 콘텐츠도 허용하지 않습니다 ping ip.ip.ip.ip.

내가 무엇을 놓치고 있나요?

답변1

핑 응답(또는 모든 연결 응답)을 차단했습니다. 구현 규칙이 누락되었습니다.상태 저장 방화벽. 예를 들어, Arch Linux를 사용하고 있으므로 다음 문서에 설명되어 있습니다.간단한 상태 저장 방화벽. 당신이 놓친 중요한 부분은 다음과 같습니다.

# iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

이것이 말해줄 것이다iptables들어오는 모든 패킷에 대해묻다이것연결하다서브시스템방금 수신한 패킷이 이미 추적 스트림의 일부인 경우. 스트림이 존재하고 예상된 상태에 있는 경우 이는 처음 볼 때 해당 스트림(예: 스트림의 첫 번째 패킷)이 이전에 수락되었음을 의미합니다(예: OUTPUT 링크는 OP의 경우 모든 것을 수락함). 따라서 패킷을 수락합니다. (그리고 나머지 규칙을 단락시킵니다).

이를 ping에 적용: 들어오는 ping 응답 패킷은 나가는 ping 요청에 의해 생성된 흐름의 일부로 간주되므로 이를 허용하는 규칙이 없기 때문에 삭제되지 않고 수락됩니다.

순서가 중요하다는 점을 기억하세요. 이 규칙은 첫 번째 규칙이어야 합니다(또는 나중에 수행할 경우 -I INPUT첫 번째 위치에 삽입하는 대신 사용). -A INPUT자세한 내용은 Arch Linux 위키 페이지의 나머지 부분을 읽어야 합니다.

다른 운영 체제에서와 똑같은 기능을 찾을 것이라고 기대하지 마십시오. 이에 대해 생각하는 방식을 바꿔야 할 수도 있습니다.

관련 정보