ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° ΠΏΡ€Π΅Π²ΠΎΠ΄ Π½Π° систСмнитС Π»ΠΎΠ³ΠΎΠ²Π΅ lastlog, btmp, utmp ΠΈ wtmp Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° SQLite

Π’ списъка Π·Π° разпространСниС linux-api Π΅ поставСно Π·Π° обсъТданС ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (RFC) Π΄Π° сС замСнят остарСлитС Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ Π½Π° систСмнитС ΠΆΡƒΡ€Π½Π°Π»ΠΈ lastlog, btmp, utmp ΠΈ wtmp с Π½ΠΎΠ²ΠΈ сподСляни Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ SQLite ΠΊΠ°Ρ‚ΠΎ Π±Π΅ΠΊΠ΅Π½Π΄. Π˜Π½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π°Ρ‚Π° Π΅ насочСна към Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° Π½Π°Ρ‚Ρ€ΡƒΠΏΠ°Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΡ€Π΅Π»ΠΈΠ²Π°Π½Π΅ Π½Π° 32-Π±ΠΈΡ‚ΠΎΠ²ΠΈΡ‚Π΅ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΈ ΠΏΡ€Π΅Π· 2038 Π³ΠΎΠ΄ΠΈΠ½Π°, липса Π½Π° Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚, ниска производитСлност Π½Π° запитванията ΠΈ липса Π½Π° атомарност ΠΏΡ€ΠΈ записитС.

Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ относно сСсиитС ΠΈ ΠΎΠΏΠΈΡ‚ΠΈΡ‚Π΅ Π·Π° удостовСряванС Π² Linux сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ слСднитС Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ с фиксирана структура:

  • /var/log/lastlog β€” врСмя послСднСго Π²Ρ…ΠΎΠ΄Π° (структура Β«struct lastlogΒ» с ΠΏΠΎΠ»Π΅ΠΌ Β«ll_timeΒ» 32-разрядного Ρ‚ΠΈΠΏΠ° time_t);
  • /var/log/btmp β€” Π½Π΅ΡƒΠ΄Π°Ρ‡Π½Ρ‹Π΅ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π°;
  • /var/run/utmp β€” Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ сСансы;
  • /var/log/wtmp β€” история Π²Ρ…ΠΎΠ΄ΠΎΠ² ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ².

Π€ΠΎΡ€ΠΌΠ°Ρ‚ΡŠΡ‚ Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π² Ρ‚Π΅Π·ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½ ΠΏΡ€Π΅Π΄ΠΈ няколко дСсСтилСтия ΠΈ ΠΈΠΌΠ° Ρ€Π΅Π΄ΠΈΡ†Π° Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»Π½ΠΈ ограничСния:

  • ΠŸΠΎΠ»Π΅Ρ‚ΠΎ Β«tv_secΒ» Π² структурата Β«utmpxΒ» ΠΈ ΠΏΠΎΠ»Π΅Ρ‚ΠΎ Β«ll_timeΒ» Π² Β«lastlogΒ» ΠΈΠΌΠ°Ρ‚ Ρ‚ΠΈΠΏ Β«int32_tΒ», Π° стойноститС Π½Π° Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Ρ‰Π΅ ΠΏΡ€Π΅Π»ΠΈΠ²Π°Ρ‚ Π½Π° 19 януари 2038 Π³ΠΎΠ΄ΠΈΠ½Π°. ΠŸΠΎΡ€Π°Π΄ΠΈ изискванията Π·Π° ABI-ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚, Π΄ΠΎΡ€ΠΈ Π½Π° 64-Π±ΠΈΡ‚ΠΎΠ²ΠΈ систСми, Ρ‚Π΅Π·ΠΈ ΠΏΠΎΠ»Π΅Ρ‚Π° остават 32-Π±ΠΈΡ‚ΠΎΠ²ΠΈ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Ρ‰Π΅ засСгнС всички инсталации Π½Π° Linux.
  • Ѐиксираният Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° записитС Π½Π΅ позволява добавянСто Π½Π° Π½ΠΎΠ²ΠΈ ΠΏΠΎΠ»Π΅Ρ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, ΠΈΠΌΠ΅ Π½Π° услугата, IP адрСс) Π±Π΅Π· пълна подмяна Π½Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Π° компилация Π½Π° всички ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΈ.
  • Π£Ρ‚ΠΈΠ»ΠΈΡ‚ΠΈΡ‚Π΅ last, lastb, who ΠΈ lastlog са ΠΏΡ€ΠΈΠ½ΡƒΠ΄Π΅Π½ΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ Π΄Π° обходят ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅. ΠŸΡ€ΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΈ Π½Π° ΠΆΡƒΡ€Π½Π°Π»ΠΈΡ‚Π΅, Π±Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° индСкси, ΠΊΠΎΠΈΡ‚ΠΎ позволяват Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° записитС, Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° систСмата Π·Π° Π²Ρ…ΠΎΠ΄/ΠΈΠ·Ρ…ΠΎΠ΄ ΠΈ Π·Π°ΠΊΡŠΡΠ½Π΅Π½ΠΈΡΡ‚Π° ΠΏΡ€ΠΈ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° запитвания стават Π½Π΅ΠΏΡ€ΠΈΠ΅ΠΌΠ»ΠΈΠ²ΠΈ.
  • Π—Π°ΠΏΠΈΡΡŠΡ‚ Π² Π±ΠΈΠ½Π°Ρ€Π΅Π½ Ρ„Π°ΠΉΠ» Π½Π΅ Π΅ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Π° опСрация. ΠŸΡ€ΠΈ ΠΏΠΎΠ²Ρ€Π΅Π΄Π° Π·Π°ΠΏΠΈΡΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС частично ΡƒΠ½ΠΈΡ‰ΠΎΠΆΠ΅Π½.
  • Π—Π° избягванС Π½Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΈ ΠΏΡ€ΠΈ Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ записи Π² ΠΆΡƒΡ€Π½Π°Π»Π° ΠΎΡ‚ няколко процСса (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, sshd ΠΈ login) сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ flock-Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°Ρ‚ атомарност ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π°Ρ‚ Π΄ΠΎ Π²Π·Π°ΠΈΠΌΠ½ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ.

ΠΠ²Ρ‚ΠΎΡ€ΡŠΡ‚ Π½Π° RFC ΠΏΡ€Π΅Π΄Π»Π°Π³Π° напълно Π΄Π° сС ΠΎΡ‚ΠΊΠ°ΠΆΠ°Ρ‚ ΠΎΡ‚ Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ Π² ΠΏΠΎΠ»Π·Π° Π½Π° спСциализирани сподСлСни Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‰ΠΈ SQLite. Π—Π° всСки Ρ‚ΠΈΠΏ ΠΆΡƒΡ€Π½Π°Π»ΠΈ сС създава ΠΎΡ‚Π΄Π΅Π»Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° с ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ C-интСрфСйс: liblastlog2, libbtmp2, libutmp2 ΠΈ libwtmp2. Всички Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ работят с Π‘Π”, чиято схСма Π²ΠΊΠ»ΡŽΡ‡Π²Π° 64-Π±ΠΈΡ‚ΠΎΠ²ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ (Ρ‚ΠΈΠΏ INTEGER) ΠΈ индСкси ΠΏΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΠΈ Π²Ρ€Π΅ΠΌΠ΅. Има Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° добавянС Π½Π° Π½ΠΎΠ²ΠΈ ΠΏΠΎΠ»Π΅Ρ‚Π° Π±Π΅Π· Π½Π°Ρ€ΡƒΡˆΠ°Π²Π°Π½Π΅ Π½Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚Ρ‚Π° (Ρ‡Ρ€Π΅Π· ALTER TABLE).

Π‘Ρ€Π΅Π΄ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π² ΠΏΠΎΠ»Π·Π° Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° SQLite сС спомСнава ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° 64-битовия Ρ‚ΠΈΠΏ INTEGER Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΅ΠΏΠΎΡ…Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅, Π°Π½Π³Π°ΠΆΠΈΡ€Π°Π½Π΅ Π½Π° индСкси Π·Π° намаляванС Π½Π° Π²Ρ…ΠΎΠ΄/ΠΈΠ·Ρ…ΠΎΠ΄Π° Ρ‡Ρ€Π΅Π· сСлСктивния Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ записи вмСсто пълно сканиранС, Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° добавянС Π½Π° Π½ΠΎΠ²ΠΈ ΠΏΠΎΠ»Π΅Ρ‚Π° Π±Π΅Π· промяна Π½Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈ записи, ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ACID Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Ρ€Π΅ΠΆΠΈΠΌ WAL (Write-Ahead Logging) Π·Π° ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π΅Π½ Π΄ΠΎΡΡ‚ΡŠΠΏ Π±Π΅Π· Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ, ΠΏΡ€ΠΈΠ·Π½Π°Ρ‚Π° надСТдност Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° с SQLite.

Π—Π° осигуряванС Π½Π° ΠΏΠ»Π°Π²Π΅Π½ ΠΏΡ€Π΅Ρ…ΠΎΠ΄ сС ΠΏΡ€Π΅Π΄Π»Π°Π³Π° стратСгия "Π΄Π²ΠΎΠΉΠ½ΠΎ записванС" (dual-write):

  • ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ записват Π² Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ (login, sshd, sudo, cron ΠΈ Π΄Ρ€.), сС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Ρ‚ Ρ‚Π°ΠΊΠ°, Ρ‡Π΅ Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ записи ΠΊΠ°ΠΊΡ‚ΠΎ Π² стария Π±ΠΈΠ½Π°Ρ€Π΅Π½ Ρ„Π°ΠΉΠ», Ρ‚Π°ΠΊΠ° ΠΈ Π² Π½ΠΎΠ²Π°Ρ‚Π° SQLite Π±Π°Π·Π° ΠΏΡ€Π΅Π· ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½Π°Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°.
  • Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ сС Π½ΠΎΠ²ΠΈ вСрсии Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΈ (last2, lastb2, who2, lastlog2), ΠΊΠΎΠΈΡ‚ΠΎ Ρ‡Π΅Ρ‚Π°Ρ‚ Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ SQLite Π±Π°Π·ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ индСкси Π·Π° Π±ΡŠΡ€Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°. Π‘Ρ‚Π°Ρ€ΠΈΡ‚Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΈ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°Ρ‚ Π΄Π° работят със ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.
  • Π‘Π»Π΅Π΄ няколко Π³ΠΎΠ΄ΠΈΠ½ΠΈ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ подавляващото мнозинство ΠΎΡ‚ систСмитС сС обновят, ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° записитС Π² старитС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π°, Π° старитС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΈ β€” обявСни Π·Π° остарСли.

Π’ΡŠΠΏΡ€ΠΎΡΠΈΡ‚Π΅, поставСни Π·Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ обсъТданС:

  • Π¦Π΅Π»Π΅ΡΡŠΠΎΠ±Ρ€Π°Π·Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° раздСлянСто Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ»ΠΈ ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π² Π΅Π΄Π½ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ libsession2).
  • Π˜Π·Π±ΠΎΡ€ Π½Π° ΠΈΠΌΠ΅Π½Π° Π·Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΈ (Π΄Π° запазят историчСскитС наимСнования ΠΈΠ»ΠΈ Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Ρ‚ към ΠΏΠΎ-ΠΎΠ±Ρ‰ΠΈ).
  • Π Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ( /var/lib/ ΠΊΠ°ΠΊΡ‚ΠΎ Π·Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° прилоТСнията ΠΈΠ»ΠΈ /var/log/ ΠΊΠ°ΠΊΡ‚ΠΎ Π·Π° Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅).
  • ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π·Π° вСрсия Π½Π° схСмата ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ.
  • ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π·Π° производитСлност Π½Π° SQLite Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ сцСнарии (ΡΡŠΡ€Π²ΡŠΡ€ΠΈ, Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ систСми).
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΡΠ½Π΅ Π½Π° fallback-Π±Π΅ΠΊΠ΅Π½Π΄, ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° ΠΆΡƒΡ€Π½Π°Π»ΠΈ Π² опростСн Π±ΠΈΠ½Π°Ρ€Π΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, Π·Π° систСми, Π² ΠΊΠΎΠΈΡ‚ΠΎ SQLite ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΠΊΠ°ΠΆΠ΅ излишСн (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ устройства с Ρ‚Π΅ΠΆΠΊΠΈ ограничСния Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°).

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster