yacy / yacy_search_server

Distributed Peer-to-Peer Web Search Engine and Intranet Search Appliance
http://yacy.net
Other
3.43k stars 429 forks source link

Separate peer data exchange port and web interface port #315

Open skobkin opened 5 years ago

skobkin commented 5 years ago

When I've found YaCy I was excited because I like decentralized projects and oftenly participate in them at least being a part of the P2P network.

But when I started to learn how I can set up my own node I started to feel discomfort about how it's done now.

The most important of my concerns was that fact that YaCy uses only two ports: HTTP and HTTPS (as far as I understand).

I read the FAQ and discovered that the 8090 port is used for peer data exchange and web interface at the same time (here for P2P and here for web interface).

That was a shock for me. It meant that I can't participate in the network without making my search engine public or using very complicated schemes with reverse proxy and query filtration. I saw that you can disable search engine access for non-admin users but it still means that you must expose too much to the public and trust that YaCy's security is strong enough. Also you're making the search less friendly to the users when require authentication.

I believe that P2P and web interface ports must be separated so you can for example proxy P2P port to the public for data exchange but still have private search interface which is accessible only for you.

The simplest use-case scenario which benefits from this is internal LAN search service which indexes the whole Internet and freely accessible from LAN without any restrictions but closed for WAN. Such server will be useful network participant and will not (as far as P2P part can be simple and secure) cause any risks for those who administer it.

tyden70 commented 6 days ago

Переклад та пояснення:

Коли я знайшов YaCy, я був у захваті, тому що мені подобаються децентралізовані проекти, і я часто беру в них участь, принаймні як частина P2P-мережі.

Але коли я почав вивчати, як налаштувати свій власний вузол, я відчув дискомфорт через те, як це зараз працює.

Найважливіше, що мене турбує, — це той факт, що YaCy використовує лише два порти: HTTP і HTTPS (наскільки я розумію).

Я прочитав FAQ і виявив, що порт 8090 використовується одночасно для обміну даними між вузлами та для веб-інтерфейсу (тут для P2P і тут для веб-інтерфейсу).

Це стало для мене шоком. Це означало, що я не можу брати участь у мережі, не роблячи свій пошуковий двигун публічним, або не використовуючи складні схеми з реверс-проксі та фільтрацією запитів.
Я побачив, що ви можете відключити доступ до пошукового двигуна для неадміністраторів, але це все одно означає, що ви повинні надто багато відкривати для публічного доступу і довіряти безпеці YaCy. Крім того, це робить пошук менш зручним для користувачів, оскільки вимагає авторизації.

Я вважаю, що порти для P2P і веб-інтерфейсу повинні бути розділені, щоб, наприклад, можна було проксирувати P2P-порт у публічний доступ для обміну даними, але зберігати приватний інтерфейс пошуку доступним тільки для себе.

Найпростіший сценарій використання, який виграє від цього, — це внутрішній сервіс пошуку в локальній мережі (LAN), який індексує весь Інтернет і є вільно доступним у LAN без будь-яких обмежень, але закритим для WAN. Такий сервер буде корисним учасником мережі і не створюватиме (за умови, що P2P-частина може бути простою та безпечною) жодних ризиків для тих, хто його адмініструє.


Пояснення:

Автор висловлює своє занепокоєння щодо того, як організована мережа YaCy. Він (або вона) вважає, що поточне налаштування, де один і той самий порт використовується як для обміну даними в P2P-мережі, так і для веб-інтерфейсу, створює ризики. Головна проблема — відсутність гнучкості в ізоляції публічних і приватних функцій вузла. Це обмежує можливість використовувати YaCy у внутрішніх локальних мережах, не піддаючи себе зайвим ризикам. Автор пропонує розділити ці порти, щоб забезпечити більшу безпеку та зручність у налаштуванні сервера.