게임 서버를 방화벽으로 보호할 경우 ProudNet의 정상 수행을 위해서는 다음 사항을 고려해야 합니다.
서버 실행시(Proud.CNetServer.Start) Proud.CStartServerParameter.m_tcpPort 에서 지정한 TCP port의 송수신을 허용해야 합니다.
서버 실행시 지정했던 UDP port들(Proud.CStartServerParameter.m_udpPorts)은 송신,수신 모두 열려 있어야 합니다. 보다 안전한 설정을 위해서는 3.1 DDOS 공격을 버티기 위한 방화벽 설정
을 참고하십시오.
꼭 필요한 경우가 아니라면 ICMP 타입 IP 패킷의 송수신을 허용해야 합니다. 그렇지 않으면 간헐적인 네트워크 장애가 있을 수 있습니다. 예를 들어 ICMP Type=3 Code=4 패킷이 막혀 있는 경우 간헐적으로 클라이언트와 서버와의 연결이 끊어질 수 있습니다.
참고
3.1DDOS 공격을 버티기 위한 방화벽 설정
ProudNet에서는 클라이언트와의 연결이 성사되면 서버가 먼저 해당 클라이언트와의 UDP 통신 전에 그 클라이언트에게 임의 패킷 하나를 던집니다. 그리고 그 클라이언트는 그 패킷을 받아서 그냥 버립니다.
어떠한 서버용 방화벽들은, 인터넷 주소가 A인 클라이언트에게 먼저 UDP 패킷을 쏜 후부터 A에 한해 A가 서버에 UDP 패킷을 보내는 것을 일정 시간동안은 받을 수 있게 허락하는 기능을 갖고 있습니다. 이 기능을 켜 둘 경우, ProudNet의 위 특징 덕택에 UDP를 열어두면서도 DDOS 공격에 안전할 수 있는 방화벽 설정이 가능합니다.
이러한 기능을 사용할 수 있는 방화벽이면, Proud.ServerUdpAssignMode_PerClient 와 비어있는 Proud.CStartServerParameter.m_udpPorts 설정으로만 서버를 실행시킬 수 있습니다. 이렇게 할 경우 동시접속자 제한을 최소화한 서버 실행이 가능해지는 이익을 볼 수 있습니다.
(자세한 내용: 6.4 서버의 UDP 포트 사용 방식)
3.2ICMP 관련 방화벽 설정
서버 시작 옵션에서 Proud.ServerUdpAssignMode.ServerUdpAssignMode_Static 를 사용하는 경우 ICMP host unreachable 패킷 수신을 차단하는 것을 권장합니다. (자세한 내용: 6.4 서버의 UDP 포트 사용 방식)
다음은 Windows 방화벽을 사용시 이러한 설정을 하는 방법의 예시입니다.
이 다음부터는 마침 버튼이 나올 때까지 계속 다음 버튼을 누르시면 됩니다.