저는 *nix 운영 체제를 처음 접했고 몇 가지 문제에 봉착했습니다. 이는 iptables 방화벽의 잘못된 구성 때문이라고 생각됩니다.
내 서버는 포트 22에서 SSH를 실행하고 TCP 포트 25565에서 서버 소프트웨어를 실행합니다. SSH와 서버 소프트웨어는 네트워크 내에서 이루어진 연결(즉, 서버의 로컬 주소 10.0.0.xx를 사용하여 이루어진 연결)에 적절하게 응답합니다. 그러나 네트워크 외부에서 접속하거나 라우터의 외부 IP 주소를 사용하여 접속하려고 하면 응답하지 않습니다.
라우터는 이러한 포트를 서버로 전달하도록 구성되어 있으며 거기에 버그가 있는지 의심됩니다.
iptables를 조사한 후 몇 가지 가이드를 시도했지만 결과가 표시되지 않았습니다.
iptables -L의 출력은 다음과 같습니다.
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:25565
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp dpt:27015
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
네트워크 내부의 nmap 스캔에서는 포트 22와 25565가 열려 있고 포트 80과 2705(현재 실행하고 있지 않은 또 다른 서버 소프트웨어)가 닫혀 있다고 보고합니다. 라우터의 외부 IP를 사용하여 nmap을 실행하면 유용한 결과가 반환되지 않습니다. 라우터가 검색 시도를 감지하고 응답을 거부하는 것 같습니다.
서버는 일반 텍스트 모드로 데비안을 실행하고 있습니다.
문제가 무엇인지 아는 사람이 있거나 문제 해결 단계를 제안한 사람이 있습니까?
의견에 대한 응답:
netstat -tpln은 다음과 같은 내용을 제공합니다. 비록 tcp와 tcp6의 차이점을 이해하지는 못하지만 이것이 괜찮다고 생각합니다.
tcp6 0 0 :::25565 :::* LISTEN 3092/java
Hosts.deny에는 항목이 없습니다.
그러나 /var/auth.log에는 일부 내용이 있습니다...흥미로운콘텐츠. SSH가 노출되는 순간 사람들이 내 루트 비밀번호를 무차별 공격하기 시작하는 것이 정상입니까?
하지만 그렇습니다. 로그를 자세히 살펴보면 내 서버에 SSH를 연결할 수 없는 유일한 사람인 것 같습니다.
답변1
iptables는 "원시 커널 테이블을 내보내고 관리자가 이를 이해할 수 있도록 하자" 설계의 최악(최고?) 예 중 하나입니다.
간단한 방화벽귀하가 설명하는 일반적인 상황을 처리하고 귀하를 제정신으로 유지할 것입니다. 이는 iptables를 둘러싼 래퍼일 뿐이지만 커널 구조가 아닌 작업 구조 측면에서 표현됩니다.
답변2
하지만 그렇습니다. 로그를 자세히 살펴보면 내 서버에 SSH를 연결할 수 없는 유일한 사람인 것 같습니다.
모닝콜입니다... 지금부터 시작하시겠습니까?내부회로망? 이것은 작동하지 않을 것입니다. VPS 또는 3G 휴대폰과 같이 라우터의 인터넷 측에서 액세스를 테스트해야 합니다. 그냥 생각...
답변3
iptables를 지우고 기본 정책을 로 설정해 보십시오 ACCEPT
. 연결할 수 있으면 문제는 iptables 규칙이고, 그렇지 않으면 라우터에 문제가 있는 것입니다.
auth.log 파일의 항목과 관련하여 구성을 손상시키려는(또는 단지 테스트용) 가능성이 가장 높은 여러 알려진 봇넷에 대한 차단 목록이 있으며 openssh-blacklist-extra
추가 보호를 위해 설치되었습니다(sshd와 함께 작동해야 하지만 빠른 검사는 돕다). 또한 fail2ban
좋은 생각이어야 합니다.
답변4
수동으로 구성 할 수도 있지만 iptables
도구를 사용하여 요구 사항에 맞게 방화벽을 구축하는 것이 훨씬 더 안정적입니다. 내가 찾은부두 벽잘 문서화되어 있고 사용하기 쉬운 도구가 되십시오. 패키지 형태로 제공됩니다. IPv6가 필요한 경우 Shorewal6 패키지도 있습니다. 좋은 시작점이 될 수 있는 다양한 구성에 대한 샘플 구성이 있습니다.
이 ucf
패키지는 규칙 세트를 작성하는 데에도 사용할 수 있습니다.
둘 다 자체 방화벽을 배포할 때 놓칠 수 있는 몇 가지 표준 규칙을 설정합니다.