Как защитить узел выпечки от атак типа DDOS?
3 ответ
- голосов
-
- 2019-01-31
-
9732
- порт по умолчанию для P2P-подключений,его можно переопределить с помощью--net-addr=ADDR:PORT
при запуске узла. -
8732
- порт по умолчанию для подключений RPC,может быть переопределен с помощью--rpc-addr=ADDR:PORT
- Все сети используют TCP.
При использовании
iptables
приведенных ниже правил должно хватить специально дляtezos.Имейте в виду,что вам нужно будет разрешить другие сетевые службы,отличные от Tezos,такие как DNS,NTP,DHCP,в зависимости от вашей конфигурации.
# Allow Tezos RPC iptables -A INPUT -p tcp --dport 8732 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 8732 -m conntrack --ctstate ESTABLISHED -j ACCEPT # Allow Tezos P2P connections iptables -A INPUT -p tcp --dport 9732 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --dport 9732 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 9732 -m conntrack --ctstate ESTABLISHED -j ACCEPT
9732
is the default port for P2P connections, can be overridden with--net-addr=ADDR:PORT
when starting the node8732
is the default port for RPC connections, can be overridden with--rpc-addr=ADDR:PORT
- All networking uses TCP.
If using
iptables
the below rules should suffice for tezos specifically.Be aware you will need to allow other non tezos network services like DNS,NTP,DHCP depending on your configuration.
# Allow Tezos RPC iptables -A INPUT -p tcp --dport 8732 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 8732 -m conntrack --ctstate ESTABLISHED -j ACCEPT # Allow Tezos P2P connections iptables -A INPUT -p tcp --dport 9732 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --dport 9732 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 9732 -m conntrack --ctstate ESTABLISHED -j ACCEPT
-
Но закрытие неиспользуемых портов не защитит пекаря от DDOS,не так ли?Стандартный способ сделать это - спрятать пекаря (в конфигурации частного узла) за несколькими общедоступными узлами.Это означает,что пекарь не может быть напрямую выбран,а общедоступные узлы могут быть заменены,если есть активный DDOS.But closing unused ports won't safeguard a baker from a DDOS, will it? The standard way of doing that is to hide a baker (in private node config) behind a number of public nodes. Doing so means a baker can't be directly targeted and public nodes can be swapped out if there is an active DDOS.
- 3
- 2019-02-01
- latte_jed
-
Вы правы,я думаю,что у OP на самом деле есть 2 вопроса,на которые нужно ответить - один по DDOS и один по портам Tezos.Соответственно,вопрос следует разделить на две части.You are correct, I guess the OP actually has 2 questions to be answered - one on DDOS and one on Tezos ports. The question ought to be split in two accordingly.
- 1
- 2019-02-02
- xtzbaker
-
Когда узел находится в частном режиме,также можно не разрешать входящие соединения на порт 9732 и разрешать только связанные и установленные входящие соединения.Частный узел в любом случае будет устанавливать соединения только с доверенными узлами,а другие,недоверенные узлы не смогут подключиться.When a node is in private mode, it is also possible to not allow incoming connections on port 9732 and to only allow related and established incoming connections. The private node will only establish connections to trusted nodes anyway and other, non-trusted nodes will not be able to connect.
- 0
- 2019-02-04
- cryptodad
-
- 2019-02-01
@xtzbaker точно соответствует портам,которые использует узел. Предотвращение DDoS-атак для узла выпечки также является одной из причин того,что наиболее распространенная установка для выпечки - это наличие частного узла выпечки с доверенными общедоступными узлами.
По сути,у нас есть один узел,который использует пекарь и индоссант,и он настроен на частный режим . Частный режим запрещает подключения от других,а также сообщает своим партнерам,чтобы они не передавали информацию о существовании узла своим партнерам. Чтобы действительно сохранить приватность нашего частного узла,одноранговые узлы частного узла должны быть доверенными,чтобы не раскрывать IP вашего частного узла. Это означает,что ваш частный узел должен явно устанавливать одноранговые узлы для доверенных узлов (а не просто позволять узлу выбирать любых доступных одноранговых узлов в сети).
Что значит надежность узла? Ну,это варьируется от человека к человеку в зависимости от вашего приемлемого уровня риска. Но если вы действительно хотите доверять узлу,единственный способ - владеть им самому. Тем не менее,многие пекари считают общественные узлы фонда достаточно надежными.
@xtzbaker is spot on with the ports that the node uses. Preventing DDoS for the baking node is also one of the reasons that the most common setup for baking is to have a private baking node with trusted public nodes.
Basically, we have a single node that the baker and endorser uses and it's configured to be on private mode. Private mode will disallow connections from others and also tell its peers to not broadcast the node's existence to their peers. In order to truly keep our private node private, the private node's peers must be trusted to not reveal your private node's ip. This means your private node needs to set explicit peers to trusted nodes(as opposed to just let the node choose any available peers on the network).
What does it mean for a node to be trustworthy? Well, it varies from person to person depending on your accepted level of risk. But if you want to truly trust a node, the only way is to own them yourself. That said, many bakers accept the foundation public nodes to be trustworthy enough.
-
Спасибо за информацию о настройке.Не могли бы вы объяснить,как сделать этот набор,используя образы докеров.Я вижу,что файлmainnet.sh имеет все конфигурации по умолчанию,но как изменить эту конфигурацию,чтобы иметь настройку,как вы объяснили?Информации о настройке с использованием образов докеров не так много.Thanks for the information about the setup. Can you explain how to do this set using docker images. I see that mainnet.sh file has all the default configurations but how to modify those configuration to have a setup as explained by you? There is not much information regarding setup done using docker images.
- 0
- 2019-02-03
- Sachin Tomar
-
В настоящее время я бы не стал использовать докер для запекания частного узла,особенно по причинам использования леджера.Но для внешних общедоступных узлов использование контейнеров докеров намного проще в обслуживании.Команда разработчиков ядра активно поддерживает их,самое большее всего на несколько минут отстает от последней версии в основной сети.Вы можете использовать [mainnet.sh] (https://gitlab.com/tezos/tezos/blob/mainnet/scripts/alphanet.sh),но я считаю,что запуск настраиваемой настройки docker-compose работает лучше,[вот чтоЯ использую] (https://gist.github.com/sirneb/8419e41aea4f2d5770555301006cea20).I currently wouldn't use docker for the baking private node, specifically reasons with using a ledger. But for frontend public nodes, using docker containers is much easier to maintain. The core dev team actively maintains them, at most only minutes behind latest on the mainnet branch. You could use the [mainnet.sh](https://gitlab.com/tezos/tezos/blob/mainnet/scripts/alphanet.sh), but I find running a custom docker-compose setup works better, [this is what I use](https://gist.github.com/sirneb/8419e41aea4f2d5770555301006cea20).
- 1
- 2019-02-04
- Frank
-
- 2019-02-04
Вы также можете добавить дополнительный уровень безопасности,настроив подключение вашего узла к Интернету через VPN,защищенную от DDoS-атак,например OctoVPN https://octovpn.com
You could also add an extra layer of security by having your node's internet connection go through a DDoS protected VPN, like OctoVPN https://octovpn.com
Я хочу знать,какие порты и протоколы используютсяtezos-node иbaker,чтобы я мог включить только эти порты и протоколы в настройках своего брандмауэра,чтобы предотвратить любые DDos-атаки на моем сервере.