포트 50000의 호스트에 텔넷으로 연결하려고 하는데, 이 호스트가 DB2 인스턴스(db2inst1)에서 수신 대기하고 있는 것으로 확인되었습니다.
telnet [host] 50000
telnet [ip_adress] 50000
하지만 오류가 발생합니다. 연결 시간이 초과되었습니다.
/etc/sysconfig/iptables 파일을 확인했고 포트 50000에 대한 방화벽 규칙이 올바르게 설정되었습니다(저장되었으며 iptables 서비스가 다시 시작되었습니다).
-A INPUT -p tcp -m tcp --dport 50000 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 50000 -j ACCEPT
하지만 여전히 해당 포트에 텔넷을 연결할 수 없습니다. 서비스를 비활성화했지만 iptables
연결이 가능해졌습니다. 이는 방화벽 규칙에 문제가 있음을 의미합니다.
답변1
방화벽 규칙이 작동하지 않는 문제는 컴퓨터가 데이터베이스 서버의 관점에서 데이터베이스 서버에 연결될 때 실제로 대상 포트이지만 데이터베이스 서버의 관점에서 보면 패킷이 데이터베이스 서버를 떠날 때입니다. 데이터베이스 서비스/수신 포트가 소스 포트입니다.
따라서 규칙에 대한 직접적인 수정은 다음과 같아야 합니다.
-A INPUT -p tcp -m tcp --dport 50000 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 50000 -j ACCEPT
또한 여러 데몬에서 localhost 연결이 필요한 경우가 많다는 점에 유의하세요. 규칙 상단에서 이 작업을 수행할 수 있습니다.
-A INPUT -i lo -j ACCEPT
-A OUTPUT -i lo -j ACCEPT
보안 요구 사항과 규칙 수에 따라 다음을 살펴보겠습니다.ESTABLISHED 및 RELATED 지시문. 상태 저장 방화벽 인식 규칙을 사용하여 규칙을 단순화할 수 있습니다.
ESTABLISHED는 패킷이 양방향에서 패킷을 본 연결과 연관되어 있음을 의미하고, NEW는 패킷이 새로운 연결을 시작했거나 양방향에서 패킷을 보지 못한 연결과 연관되어 있음을 의미하며, RELATED는 data 패키지가 새 연결을 시작하지만 FTP 데이터 전송 또는 ICMP 오류와 같은 기존 연결과 연결되어 있습니다.