리눅스 방화벽 질문

리눅스 방화벽 질문

방화벽에 관한 일반적인 질문이 거의 없으며 여기 커뮤니티가 도움을 줄 수 있다고 생각했습니다.

1) 그래서 최근에 Ubuntu 서버 베어본을 설치했습니다. 열려 있는 포트를 확인했는데 열려 있는 포트가 하나도 없었는데 정말 좋았습니다. 방화벽이 설치되어 있어서 그런 걸까요, 아니면 설치된 애플리케이션이 없어서 그런 걸까요?

2) 일부 애플리케이션(Apache, postgres, ssh, Java 앱 및 일부)을 설치했습니다. 그 사이에 몇 개의 포트(~10개)를 열게 되었습니다. 이제 열어야 할 모든 포트 목록이 생겼습니다. 그렇다면 그들을 보호하려면 어떻게 해야 할까요? [이런 질문이 맞는 걸까요? 프로세스가 다음과 같이 진행됩니까? 방화벽 설치 -> 필요한 포트 허용 -> IPtables 규칙을 사용하여 나머지 거부]

이 내용은 인터넷에 공개될 예정입니다. 트래픽이 적은 전자상거래 사이트를 호스팅합니다.

3) 서버를 준보안하는 가장 쉬운 방법은 무엇이라고 생각하십니까? [낮은 유지 관리 오버헤드/단순성. 내 삶을 더 쉽게 만들어 줄 수 있는 오픈 소스 "소프트웨어"가 있습니까?]

4) 마지막으로, 열려 있는 포트 [2] 중에서 텔넷 포트이기 때문에 닫아야 하는 포트가 2개 있습니다. "방화벽"을 설치하지 않고 이 포트를 닫을 수 있나요?

도와주신 모든 분들께 감사드립니다. 즐거운 크리스마스 보내세요!!!!!!

답변1

  1. 청취 프로세스가 없었기 때문에 청취 포트가 없었습니다. 우분투는 기본 설치에서 이 점을 잘 수행합니다. 수신 포트가 필요한 프로세스는 일반적으로 기본적으로 localhost(127.0.0.1)를 사용합니다. 이는 원격 시스템에서 직접 액세스하는 것을 방지합니다.
  2. Apache 및 SSH 서버와 같은 애플리케이션은 원격 서버의 연결을 수신해야 합니다. Apache에는 액세스를 보호하기 위한 자체 ACL 목록이 있습니다. SSH 서버는 해당 구성 외에도 호스트.허용 및 호스트.거부 파일을 사용하여 보호할 수 있습니다. 내 MySQL 및 PostressSQL 애플리케이션은 기본적으로 localhost에서 수신 대기해야 합니다. 다른 시스템에서 액세스해야 하는 경우 해당 리스너 구성을 변경해야 합니다. 일반적으로 액세스 보안을 위한 하나 이상의 메커니즘이 있습니다.
  3. 이 메커니즘을 지원하는 애플리케이션에는 호스트.allow/hosts.deny를 사용하세요. 다음과 같은 방화벽 빌더를 사용하여해안벽안전한 방화벽을 구축하는 것이 도움이 됩니다. 각 애플리케이션의 자체 보안 메커니즘을 이해하면 메커니즘에 깊이를 더하는 데 도움이 됩니다. logcheck와 같은 도구는 로그를 모니터링하고 확인해야 할 일부 이벤트를 알려줄 수 있습니다. 저는 Munin을 사용하여 시스템을 모니터링하고 경우에 따라 문제를 알려줍니다. 이는 시스템 사용량을 모니터링하고 그래프화하기 위해 이전에 사용했던 Nagion 및 MRTG를 대체합니다.
  4. 텔넷이 실행 중인 경우 서비스를 중지하여 포트를 닫을 수 있습니다. 꼭 필요한 경우가 아니라면 telnet 패키지를 제거하고 ssh-server로 교체하세요. 대부분의 텔넷 서버는 액세스를 제한하기 위해 호스트.allow/hosts.deny 사용을 지원합니다. 이는 inetd 또는 xinetd에서 실행되는 응용 프로그램에도 적용됩니다. MySQL 및 PostgreSQL은 서버 외부에서 직접 액세스할 수 없는 안전한 127.0.0.1에서만 수신 대기해야 합니다.

나의 일반적인 Shorewall 방화벽 구성은 서버(또는 액세스 영역: NET, LAN, DMZ)의 인터페이스 수에 대한 예제 구성으로 시작됩니다. 영역이 인터페이스 및/또는 라우터를 공유하는 경우 보안이 덜할 수 있습니다. 그런 다음 필요에 따라 규칙을 조정합니다.

나는 종종 기본 아웃바운드 액세스 정책을 비활성화합니다. 이는 필수 포트(DNS, NTP, SMTP 등)에서 아웃바운드 액세스를 허용하는 규칙으로 대체됩니다.

답변2

1.) 언제든지 확인할 수 있습니다.iptables -L이 출력은 방화벽이 없음을 나타냅니다.

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

2.) 네, 인터페이스(예: eth0)의 입력 체인에 있는 포트를 허용하고 다른 모든 것을 삭제하세요.

다음과 같은 다른 작업도 수행해야 합니다.

  • 없는
  • 크리스마스(SYN+FIN+ACK)
  • 싱크핀

중요한 sysctl 옵션을 설정하는 것을 잊지 마세요

3.) 쉬운 방법:

  • 방화벽:http://easyfwgen.morizot.net/gen/
  • 위협에 대해 알려주는 로그 분석 도구
  • 사전 검사를 수행하는 기타 도구(예: Fail2ban)
  • 시스템 상태를 알려주는 모니터링 도구(예: zabbix, nagios)

4.) 다음 명령을 입력하십시오

root@host:~# netstat -npl | grep LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1417/telnet

흥미로운 숫자는 텔넷 다음의 1417(프로세스 번호)입니다. 그걸로 죽여라죽이기 -9 1417

하지만 무엇을 죽일지는 조심하세요!

종료하고 싶지 않다면 방화벽을 사용하여 이 포트가 사용되는 것을 거부할 수 있습니다.

답변3

1) ssh를 설치하고 nmap이 있는 다른 컴퓨터에서 포트 22가 열려 있는지 확인해볼 수 있습니다. 2) 이것은 큰 대답입니다. 귀하의 서비스에 어떤 종류의 보호를 제공하고 싶은지 정확히 알아야 합니다... 3) ? 4) inetd 서비스를 닫습니다

관련 정보