티스토리 뷰
[Hyperledger Indy Docs] Indy Node: 8. Setup iptables rules (recommended)
miiingo 2020. 2. 19. 14:59이 글은 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.
이 스크립트에 대한 링크:
- https://github.com/hyperledger/indy-node/blob/master/scripts/setup_iptables
- https://github.com/hyperledger/indy-node/blob/master/scripts/setup_indy_node_iptables
참고: 현재 규칙이 추가된 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일 뿐입니다.
'Blockchain > Hyperledger Indy' 카테고리의 다른 글
- Total
- Today
- Yesterday
- 암브로셔스
- 직딩잇템
- javascript
- 코테
- 알고리즘
- Private Data
- 빅데이터
- 하이퍼레저 패브릭
- Hyperledger Fabric v1.2
- Hyperledger Fabric v1.1
- 기초 of 기초 데이터 개념
- 블록 체인
- 어서와 데이터는 처음이지
- 블록체인
- ubuntu
- Hyperledger Fabric
- 문제풀이
- Hyperledger Indy
- 코딩테스트
- 하이퍼레저 페브릭
- 코딜리티
- 빅데이터 강의
- codility
- DOCs
- ambrosus
- docker
- 빅데이터 교육
- Blockchain
- 하이퍼레저 인디
- 빅데이터 기초
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |