ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° систСмнитС Π»ΠΎΠ³ΠΎΠ²Π΅ 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 Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ сцСнарии (ΡΡŠΡ€Π²ΡŠΡ€ΠΈ, Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ систСми).
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΡΠ½Π΅ Π½Π° Ρ€Π΅Π·Π΅Ρ€Π²Π΅Π½ Π±Π΅ΠΊΠ΅Π½Π΄, ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° ΠΆΡƒΡ€Π½Π°Π»ΠΈ Π² опростСн Π±ΠΈΠ½Π°Ρ€Π΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, Π·Π° систСми, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ SQLite ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ излишСн (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ устройства с строг ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚).

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

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