들어오는 포트 차단

들어오는 포트 차단

저는 Scientific Linux 6 시스템에 LabView를 설치했고 보안 담당자로부터 포트 3580이 열려 있고 수신 대기 중이며 이것이 보안 문제라는 메시지를 즉시 받았습니다. 분명히 이 포트는 다음 용도로 사용됩니다.웹 모니터링 및 구성 서버닫을 수 없습니다. 제가 오해하고 있는 것일 수도 있지만, 그렇지 않은 경우: #%&!*#@

청취 포트를 보려면 다음을 입력합니다.

$ netstat -anp | grep 3580
> (Not all processes could be identified, non-owned process info
>  will not be shown, you would have to be root to see it all.)
> tcp        0      0 0.0.0.0:3580                0.0.0.0:*                   LISTEN      -

이제 다음을 사용하여 포트를 닫으려고 합니다 iptables.

$ iptables -A INPUT -p tcp --destination-port 3580 -j DROP

그런데 위의 명령을 다시 입력하면 netstat열려있는 포트가 보입니다. 물론 나는 iptables그것이 어떻게 작동하는지 오해했습니다. 누구든지 내가 뭘 잘못하고 있는지 말해 줄 수 있나요?

답변1

netstat는 해당 포트에서 무언가(아마도 Labview)가 수신 대기하고 있음을 보여줍니다. iptables 라인은 컴퓨터 외부에서 해당 포트로 도착하는 패킷을 차단하므로 문제가 없습니다. 프로그램이 Listen하고 있어서 netstat을 실행해보면 포트는 열려있지만 외부에서 패킷이 도착하지 않아 외부에서 해당 포트에 접근할 수 없는 것을 볼 수 있습니다. 컴퓨터 자체에서 패킷을 차단해야 하는 경우 가능하지만 LabView의 기능에 영향을 미칠 가능성이 높습니다.

노트:

  • 다른 방화벽 규칙이 없다고 생각하기 때문에 누군가가 귀하의 방화벽 규칙을 탐지할 수 있는 가능성은 여전히 ​​있습니다. iptables -L -n -v가서 보세요. 다른 규칙에 따라 DROP 또는 REJECT를 사용하려고 합니다. 패킷이 승인되면 REJECT를 사용하여 포트에서 수신 대기 중인 프로그램이 없는 것으로 시뮬레이션합니다. 편집: TCP 포트 연결에는 네 가지 가능한 결과가 있습니다.

    1. 연결은 TCP SYN/ACK 패킷으로 열립니다. 이는 포트에서 수신 대기 중인 프로그램이 있고 연결이 방화벽에 의해 차단되지 않은 경우 발생할 수 있습니다.
    2. TCP RST 패킷에 의해 연결이 거부/재설정되었습니다. 이는 포트에서 수신 대기하는 프로그램이 없거나 방화벽이 RST를 반환하는 경우 발생할 수 있습니다(iptables는 이를 수행하기 위해 -j REJECT를 사용합니다).
    3. 패킷을 전혀 반환하지 않습니다. 이는 패킷이 손실되거나 방화벽이 패킷을 삭제하는 경우 발생할 수 있습니다(iptables는 이를 수행하기 위해 -j DROP을 사용합니다).
    4. TCP 패킷은 반환되지 않지만 방화벽이 ICMP 패킷을 반환하는 경우는 흔하지 않습니다.

    따라서 시스템 외부에서 보안 직원은 TCP RST와 패킷이 전혀 없는 것의 차이를 쉽게 감지할 수 있습니다. 한 줄을 제외하고 방화벽이 없다면 즉시 RST를 -j REJECT사용하여 인터넷에 연결된 서버의 경우 포트 스캔을 사용하여 악의적인 사람들에게 최대한 많은 시간을 소비하도록 -j DROP권장 하지만 상황은 매우 다른 것 같습니다!-j DROP

  • 제공한 iptables 줄은 재부팅 후에 사라집니다. /etc/sysconfig/iptables수동으로 수정하거나 /sbin/service iptables save구성이 올바른 후 실행 해야 합니다 .

  • iptables 라인은 보안 담당자의 지시에 따라 패킷을 차단하지만 구성을 조사하여 필요한 것만 허용하고 상태 저장 구성을 통해 다른 모든 것을 허용하지 않아야 합니다. LabView 또는 다른 프로그램은 다른 포트를 완벽하게 열 수 있습니다. 이 주제는 이 짧은 답변에 비해 너무 큽니다!

  • 이미 Labview라는 것을 알고 계시지만 netstat 명령을 보면 포트에서 수신 대기 중인 항목을 확인하는 것이 더 낫다는 점 lsof(예를 들어 설치되지 않았을 수 있음) 을 지적하고 싶습니다 . lsof -i :3580무엇보다도 가장 좋은 점은 어떤 프로그램이 듣고 있는지 알려주므로 이를 통해 무엇을 할지 결정할 수 있다는 것입니다. netstat와 마찬가지로 모든 것을 보려면 루트이거나 sudo를 사용해야 합니다(iptables를 실행하려면 루트여야 하므로 문제가 되지 않을 것 같습니다).

관련 정보