내 서버에서 텔넷을 차단하려고 시도했지만 실패했습니다. 필터 테이블의 입력 체인에 다음 방화벽 규칙을 추가했습니다.
INPUT CHAIN(filter table):
<some other firewall rules>
iptables -A INPUT -p tcp --dport 23 -j DROP
iptables -A INPUT -i eth0.2 -j DROP
기반으로이 스레드우분투 포럼에서. 하지만 내 서버에서 여전히 텔넷을 열 수 있다는 것을 알았습니다. 위 질문에 대한 링크도 준비했는데 아무런 도움을 받지 못했습니다. 규칙을 추가하는 동안 어디에서 잘못되었는지 알려주시기 바랍니다.
답변1
먼저, 반대로 생각해야 합니다. 즉, 서버의 방화벽을 차단하도록 구성해야 합니다.모두포트와는 별개로컴퓨터에서 실행하는 서비스입니다. 예를 들어 SSH를 통해 액세스해야 하는 HTTP/HTTPS 웹 서버의 경우 관련 iptables 구성은 다음과 같습니다.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
둘째, 컴퓨터에서 텔넷 서버를 실행해서는 안 됩니다. 이는 암호화되지 않고 안전하지 않은 프로토콜입니다. 대신 SSH를 설정하세요.
이것은 단지 내 추론일 뿐이지만 외부 사용자가 텔넷을 사용하여 컴퓨터의 포트를 검색하는 것을 방지하고 싶을 수도 있습니다.
telnet yourhost 25
실행 중인 SMTP 서버가 있는지 감지합니다. 이 경우 차단할 수 없습니다. 서버에서 실행되는 서비스 포트를 제외하고 들어오는 모든 연결을 차단하도록 방화벽을 구성하면 됩니다.