티스토리 뷰

반응형
이 글은 Hyperledger Indy의 공식 문서를 번역한 것입니다.
원본 사이트 : https://hyperledger-indy.readthedocs.io/projects/node/en/latest/setup-iptables.html

 

클라이언트는 포트에 대한 동시 클라이언트 연결 수를 제한하는 iptables(또는 다른 방화벽) 규칙을 추가하는 것이 좋습니다. 이에 대한 두 가지 중요한 이유가 있습니다.

  • 클라이언트 연결로 인한 indy-node 프로세스가 open file descriptors 한계에 도달하지 못하도록 방지
  • ZeroMQ가 각 TCP 연결에 대해 별도의 큐를 생성하기 때문에 indy-node 프로세스가 많은 메모리를 사용하는 것을 방지

참고: 동시 클라이언트 연결(simultaneous clients connections) 수를 제한한다고 해서 언제든지 indy-node가 작동하는 동시 클라이언트(simultaneous clients) 수를 제한하는 것은 아닙니다. IndySDK 클라이언트는 연결을 무한정 유지하지 않으며 일부 최적화와 함꼐 request-response 세션에 동일한 연결을 사용하므로 클라이언트가 아닌 connection에 관한 것입니다.

iptables는 다양한 DoS 공격(예: syn flood)을 처리하는 데 사용될 수 있지만 규칙의 매개 변수는 아직 추정되지 않았습니다.

참고: iptables를 사용하려면 root여야합니다.

 

Setting up clients connections limit(클라이언트 연결 제한 설정)

Using raw iptables command or iptables front-end(raw iptables 명령 또는 iptables front-end 사용)

deb 설치의 경우 init_indy_node 스크립트에 의해 indy-node 환경 파일인 /etc/indy/indy.env가 작성됩니다. 이 환경 파일에는 클라이언트 포트(NODE_CLIENT_PORT) 및 권장 클라이언트 연결 제한(CLIENT_CONNECTIONS_LIMIT)이 포함되어 있습니다. 이 매개 변수는 체인 INPUT에 대한 iptables 규칙을 추가하는 데 사용할 수 있습니다:

# iptables -I INPUT -p tcp --syn --dport 9702 -m connlimit --connlimit-above 500 --connlimit-mask 0 -j REJECT --reject-with tcp-reset

몇 가지 주요 옵션:

  • -dport : 한계가 설정된 포트
  • -connlimit-above : 연결 제한, 새로운 연결을 초과하면 TCP 재설정(reset)을 사용하여 거부됩니다.
  • -connlimit-mask : 접두사(prefix) 길이를 사용하는 그룹 호스트, 0은 "모든 서브넷"을 의미

일부 iptables front-end 사용의 경우 해당 필드를 설정해야합니다.

 

Using indy scripts(indy 스크립트 사용)

사용하기 쉽고 iptables에 익숙하지 않은 사람들을 위해 두 가지 스크립트를 추가했습니다.

  • setup_iptables: iptables에 규칙을 추가하여 지정된 포트에 대한 동시 클라이언트 연결 수를 제한합니다.
  • setup_indy_node_iptables: init_indy_node 스크립트로 작성된 indy-node 환경 파일에서 클라이언트 포트 및 권장 연결 제한을 가져오는 setup_iptables 스크립트의 wrapper.

이 스크립트에 대한 링크:

참고: 현재 규칙이 추가된 iptables 체인은 매개 변수화되지 않고 규칙은 항상 INPUT 체인에 추가되므로 필요한 경우 나중에 매개 변수화 할 수 있습니다.

 

For deb installation(deb 설치)

동시 클라이언트 연결 수의 한계를 설정하려면 매개 변수 없이 다음 스크립트를 실행하면 충분합니다.

# setup_indy_node_iptables

이 스크립트는 클라이언트 포트와 권장 연결 제한을 indy-node 환경 파일에서 가져옵니다.

참고: 이 스크립트는 init_indy_node 스크립트 다음에 호출해야합니다.

 

For pip installation(pip 설치)

pip 설치의 경우 indy-node 환경 파일이 존재하지 않기 때문에 setup_indy_node_iptables 스크립트를 사용할 수 없습니다. 대신 setup_iptables 스크립트를 사용하십시오(9702는 클라이언트 포트, 500은 현재 권장되는 한계입니다).

# setup_iptables 9702 500

실제로 setup_indy_node_iptables 스크립트는 setup_iptables 스크립트의 wrapper일 뿐입니다.

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함