ื•ื•ื™ื™ึทื˜ ืžืึธื ื™ื˜ืึธืจื™ื ื’ ืื•ืŸ ืงืึธื ื˜ืจืึธืœ ืคื•ืŸ Lunix / OpenWrt / Lede ื‘ืื–ื™ืจื˜ ื“ืขื•ื•ื™ืกืขืก ื“ื•ืจืš ืคึผืึธืจื˜ 80 ...

ื”ืขืœื ืึทืœืขืžืขืŸ, ื“ืึธืก ืื™ื– ืžื™ื™ืŸ ืขืจืฉื˜ืขืจ ื“ืขืจืคืึทืจื•ื ื’ ืื•ื™ืฃ Habrรฉ. ืื™ืš ื•ื•ื™ืœืŸ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ื•ื•ืขื’ืŸ ื•ื•ื™ ืฆื• ืคื™ืจืŸ ื ืขืฅ ื•ื™ืกืจื™ื›ื˜ ืื•ื™ืฃ ืึท ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ื ืขืฅ ืื™ืŸ ืึท ื ื™ื˜-ื ืึธืจืžืึทืœ ื•ื•ืขื’. ื•ื•ืึธืก ื˜ื•ื˜ ื ื™ื˜-ื ืึธืจืžืึทืœ ืžื™ื™ื ืขืŸ: ืื™ืŸ ืจื•ื‘ึฟ ืงืึทืกืขืก, ืฆื• ืคื™ืจืŸ ื•ื™ืกืจื™ื›ื˜ ืื•ื™ืฃ ืึท ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ื ืขืฅ ืื™ืจ ื“ืึทืจืคึฟืŸ:

  • ืฆื™ื‘ื•ืจ IP ืึทื“ืจืขืก. ื ื•, ืึธื“ืขืจ ืื•ื™ื‘ ื“ื™ ื•ื™ืกืจื™ื›ื˜ ืื™ื– ื”ื™ื ื˜ืขืจ ืขืžืขืฆืขืจ ืก NAT, ื“ืขืžืึธืœื˜ ืึท ืขืคื ื˜ืœืขืš IP ืื•ืŸ ืึท "ืคืึธืจื•ื•ืขืจื“ื™ื“" ืคึผืึธืจื˜.
  • ื˜ื•ื ืขืœ (PPTP/OpenVPN/L2TP+IPSec, ืืื–"ื• ื•) ืฆื• ื“ื™ ื”ื•ื™ืคื˜ ื ืึธื“ืข ื“ื•ืจืš ื•ื•ืึธืก ืขืก ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ืฆื•ื˜ืจื™ื˜ืœืขืš.

ื“ืขืจื™ื‘ืขืจ, ืื™ืจ ื•ื•ืขื˜ ื“ืึทืจืคึฟืŸ "ืžื™ื™ืŸ ื‘ื™ื™ืง" ื•ื•ืขืŸ ื ืึธืจืžืึทืœ ืžืขื˜ื”ืึธื“ืก ื˜ืึธืŸ ื ื™ื˜ ืคึผืึทืกืŸ ืื™ืจ, ืœืžืฉืœ:

  1. ื“ื™ ื•ื™ืกืจื™ื›ื˜ ืื™ื– ืœื™ื’ืŸ ื”ื™ื ื˜ืขืจ NAT ืื•ืŸ, ืึทื—ื•ืฅ ืคึฟืึทืจ ื“ื™ ื’ืขื•ื•ื™ื™ื ื˜ืœืขืš http (ืคึผืึธืจื˜ 80), ืึทืœืฅ ืื™ื– ืคึฟืึทืจืžืึทื›ื˜. ื“ืึธืก ืื™ื– ืึท ื’ืึธืจ ื ืึธืจืžืึทืœ ืกื™ื˜ื•ืึทืฆื™ืข ืคึฟืึทืจ ื’ืจื•ื™ืก ืคืขื“ืขืจืืœืข ืคึฟื™ืจืžืข ื ืขื˜ื•ื•ืึธืจืงืก. ื–ื™ื™ ืงืขื ืขืŸ ืคืึทืจืฉืจื™ื™ึทื‘ืŸ ืคึผืึธืจืฅ, ืึธื‘ืขืจ ื ื™ืฉื˜ ื’ืœื™ื™ืš, ื ื™ืฉื˜ ื’ืขืฉื•ื•ื™ื ื“ ืื•ืŸ ื ื™ืฉื˜ ืคึฟืึทืจ ืื™ืจ.
  2. ืึทื ืกื˜ื™ื™ื‘ืึทืœ ืื•ืŸ / ืึธื“ืขืจ "ืขื ื’" ืงืึธืžื•ื ื™ืงืึทืฆื™ืข ืงืึทื ืึทืœ. ื ื™ื“ืขืจื™ืง ื’ื™ื›ืงื™ื™ึทื˜, ืงืขืกื™ื™ื“ืขืจื“ื™ืง ืœืึธืกืกืขืก. ื•ื•ื™ื™ื˜ื™ืง ืื•ืŸ ืคืจืึทืกื˜ืจื™ื™ืฉืึทืŸ ื•ื•ืขืŸ ื˜ืจื™ื™ื ื’ ืฆื• ืึธืจื’ืึทื ื™ื–ื™ืจืŸ ืึท ื˜ื•ื ืขืœ.
  3. ืึท ื˜ื™ื™ึทืขืจ ืงืึธืžื•ื ื™ืงืึทืฆื™ืข ืงืึทื ืึทืœ, ื•ื•ื• ืžืžืฉ ื™ืขื“ืขืจ ืžืขื’ืื‘ื™ื™ื˜ ืงืึทื•ื ืฅ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืกืึทื˜ืขืœื™ื˜ ืงืึธืžื•ื ื™ืงืึทืฆื™ืข. ืคึผืœื•ืก ืœืึทื ื’ ื“ื™ืœื™ื™ื– ืื•ืŸ ืึท "ืขื ื’" ื‘ืึทื ื“.
  4. ื ืกื™ื˜ื•ืึทืฆื™ืข ื•ื•ืขืŸ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• "ื“ื–ืฉืึทื’ืึทืœ" ืึท ื’ืจื•ื™ืก ื ื•ืžืขืจ ืคื•ืŸ ืงืœื™ื™ืŸ ืจืึธื•ื˜ืขืจืก, ืื•ื™ืฃ ื•ื•ืึธืก, ืื•ื™ืฃ ื“ื™ ืื™ื™ืŸ ื”ืึทื ื˜, OpenWrt / Lede ืื™ื– ืื™ื ืกื˜ืึทืœื™ืจืŸ ืฆื• ื™ืงืกืคึผืึทื ื“ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื–, ืื•ืŸ ืื•ื™ืฃ ื“ื™ ืื ื“ืขืจืข ื”ืึทื ื˜, ื“ื™ ืจืขืกื•ืจืกืŸ (ื–ื™ืงืึธืจืŸ) ืคื•ืŸ ื“ื™ ืจืึทื•ื˜ืขืจ ื–ืขื ืขืŸ ื ื™ืฉื˜ ื’ืขื ื•ื’. ืคึฟืึทืจ ืึทืœืฅ.

ื‘ืึทืžืขืจืงื•ื ื’ ื ื•ืžืขืจ ืžืืœ ื•ื•ืึธืก ืคึผืจื™ื•ื•ืขื ืฅ ืื™ืจ ืฆื• ื™ื ืกื˜ืึทืœื™ืจืŸ ืึท ื‘ืœื™ืฅ ืคืึธืจ ืื™ืŸ ื“ื™ ื•ืกื‘ ืคึผืึธืจื˜ ืคื•ืŸ ื“ื™ ืจืึทื•ื˜ืขืจ ืื•ืŸ ื™ืงืกืคึผืึทื ื“ ื“ื™ ื–ื›ึผืจื•ืŸ ืคื•ืŸ ื“ื™ ืจืึทื•ื˜ืขืจ?

ืจื•ื‘ึฟ ืึธืคื˜, ื“ื™ ืจืขืงื•ื•ื™ืจืขืžืขื ืฅ ื–ืขื ืขืŸ ืคึฟืึทืจ ื“ื™ ืคึผืจื™ื™ึทื– ืคื•ืŸ ื“ื™ ืœื™ื™ื–ื•ื ื’ ื•ื•ื™ ืึท ื’ืึทื ืฅ, ืึธื‘ืขืจ ืžืืœ ื“ื™ ืคืึธืจืขื ืคืึทืงื˜ืึธืจ ืื•ื™ืš ืคื™ืขืกืขืก ืึท ืฉืœื™ืกืœ ืจืึธืœืข. ืฆื•ื ื‘ื™ื™ืฉืคึผื™ืœ, ืขืก ืื™ื– ืึท TP-Link ML3020 ืื•ื™ืฃ ื“ืขื ืคึผืœืึทืฅ, ื–ื™ื™ืŸ ื‘ืœื•ื™ื– ื•ืกื‘ ืคึผืึธืจื˜ ืื™ื– ื’ืขื ื™ืฆื˜ ืคึฟืึทืจ ืึท 2G/3G ืžืึธื“ืขื, ืึทืœืข ื“ืขื ืื™ื– ืืœื ื’ืขื•ื•ื™ืงืœื˜ ืื™ืŸ ืึท ืงืœื™ื™ืŸ ืคึผืœืึทืกื˜ื™ืง ืคืึทืœ ืื•ืŸ ื’ืขืฉื˜ืขืœื˜ ืขืจื’ืขืฅ ื”ื•ื™ืš, ื”ื•ื™ืš (ืื•ื™ืฃ ื“ื™ ืžืึทืกื˜ื‘ื•ื™ื), ื•ื•ื™ื™ึทื˜, ื•ื•ื™ื™ึทื˜ ืึทื•ื•ืขืง (ืื™ืŸ ืคืขืœื“, 30 ืงื™ืœืืžืขื˜ืขืจ ืคื•ืŸ ื“ื™ ื ื™ืจืึทืกื˜ ืจื™ืจืขื•ื•ื“ื™ืง ืึธืคึผืขืจืึทื˜ืึธืจ ื‘ืึทื–ืข ืกื˜ืึทื ืฆื™ืข). ื™ืึธ, ืื™ืจ ืงืขื ืขืŸ ืฆืึทืคึผืŸ ืึท ื•ืกื‘ ื›ืึทื‘ ืื•ืŸ ื™ืงืกืคึผืึทื ื“ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืคึผืึธืจืฅ, ืึธื‘ืขืจ ื“ืขืจืคืึทืจื•ื ื’ ื•ื•ื™ื™ื–ื˜ ืึทื– ื“ืึธืก ืื™ื– ืงืึทืžื‘ืขืจืกืึทื ืื•ืŸ ืึทื ืจื™ืœื™ื™ืึทื‘ืึทืœ.

ืึทื–ื•ื™, ืื™ืš ื’ืขืคืจื•ื•ื•ื˜ ืฆื• ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ืฆื• ืื™ืจ ืžื™ื™ืŸ ื˜ื™ืคึผื™ืฉ ืกื™ื˜ื•ืึทืฆื™ืข: "ืขืจื’ืขืฅ ื•ื•ื™ื™ึทื˜, ื•ื•ื™ื™ึทื˜ ืึทื•ื•ืขืง, ืขืก ืื™ื– ืึท ื–ื™ื™ืขืจ ื•ื•ื™ื›ื˜ื™ืง, ืขืœื ื˜ ืื•ืŸ ืงืœื™ื™ืŸ ืจืึทื•ื˜ืขืจ ืคืœื™ืกื ื“ื™ืง ืœื™ื ื•ืงืก. ืขืก ืื™ื– ื•ื•ื™ื›ื˜ื™ืง ืฆื• ื•ื•ื™ืกืŸ ื‘ื™ื™ึท ืžื™ื ื“ืกื˜ืขืจ ืึทืžืึธืœ ืึท ื˜ืึธื’ ืึทื– ืขืจ ืื™ื– "ืœืขื‘ืขื“ื™ืง" ืื•ืŸ, ืื•ื™ื‘ ื ื™ื™ื˜ื™ืง, ืงืึทืžืึทื ื“ื– ื–ืขื ืขืŸ ื’ืขืฉื™ืงื˜ ืฆื• ืื™ื, ืœืžืฉืœ, "ื”ืึธื ื™ืง, ืจืขื‘ืึธืึธื˜!"

ืœืึธืžื™ืจ ื’ื™ื™ืŸ ืฆื• ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ:

1) ืื•ื™ืฃ ื“ื™ ืจืึทื•ื˜ืขืจ ื–ื™ื™ึทื˜, ื“ื•ืจืš Cron, ื™ืขื“ืขืจ 5/10/1440 ืžื™ื ื•ื˜, ืึธื“ืขืจ ื•ื•ืขืŸ ืื™ืจ ื“ืึทืจืคึฟืŸ, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืฉื™ืงืŸ ืึท ื”ื˜ื˜ืคึผ ื‘ืขื˜ืŸ ืฆื• ื“ื™ ืกืขืจื•ื•ืขืจ ื ื™ืฆืŸ wget, ืจืึทื˜ืขื•ื•ืขืŸ ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ื“ื™ ื‘ืขื˜ืŸ ืฆื• ืึท ื˜ืขืงืข, ืžืึทื›ืŸ ื“ื™ ื˜ืขืงืข ืขืงืกืขืงื•ื˜ืึทื‘ืœืข , ืื•ืŸ ื•ื™ืกืคื™ืจืŸ ืขืก.

ืžื™ื™ืŸ ืงืจื•ืŸ ืฉื•ืจื” ืงื•ืงื˜ ืขืคึผืขืก ื•ื•ื™ ื“ืึธืก:

ื˜ืขืงืข /etc/crontabs/root:

  */5 * * * * wget "http://xn--80abgfbdwanb2akugdrd3a2e5gsbj.xn--p1ai/a.php?u=user&p=password" -O /tmp/wa.sh && chmod 777 /tmp/wa.sh && /tmp/wa.sh

ื•ื•ืื•:
xn--80abgfbdwanb2akugdrd3a2e5gsbj.xn--p1ai ืื™ื– ื“ื™ ืคืขืœื“ ืคื•ืŸ ืžื™ื™ืŸ ืกืขืจื•ื•ืขืจ. ืื™ืš ื•ื•ืขืœ ื’ืœื™ื™ืš ื‘ืืžืขืจืงืŸ: ื™ืึธ, ืื™ืจ ืงืขื ืขืŸ ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ืึท ืกืคึผืขืฆื™ืคื™ืฉ IP ืึทื“ืจืขืก ืคื•ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ, ืžื™ืจ ื’ืขื•ื•ื™ื™ื ื˜ ืฆื• ื˜ืึธืŸ ื“ืึธืก ื‘ื™ื– ืื•ื ื“ื–ืขืจ ืฉื˜ืึทื˜, ืื™ืŸ ืึท ืฆื“ื™ืง ืฉื˜ื•ืคึผ ืคื•ืŸ ื’ืขืจืึทื ื’ืœ, ืื™ืš ื•ื•ืขืœ ื–ืึธื’ืŸ, ืื™ืš ื˜ืึธืŸ ื ื™ื˜, ื‘ืœืึทืงื˜ ืึทืงืกืขืก ืฆื• ื“ืขืจ ืœื™ื™ื‘ ืก ื˜ื™ื™ืœืŸ ืคื•ืŸ ื“ื™ ื“ื™ื’ื™ื˜ืึทืœ ืึธืกืขืึทืŸ ืื•ืŸ ืึทืžืึทื–ืึธืŸ "ื•ื•ืึธืœืงืŸ". ืื•ื™ื‘ ืื™ืจ ื ื•ืฆืŸ ืึท ืกื™ืžื‘ืึธืœื™ืฉ ืคืขืœื“, ืื•ื™ื‘ ืึทื–ืึท ืึท ืื™ื ืฆื™ื“ืขื ื˜ ืึทืงืขืจื–, ืื™ืจ ืงืขื ืขืŸ ืœื™ื™ื›ื˜ ื›ืึทืคึผืŸ ืึท ื‘ืึทืงืึทืคึผ ื•ื•ืึธืœืงืŸ, ืจื™ื“ืขืจืขืงื˜ ื“ื™ ืคืขืœื“ ืฆื• ืขืก ืื•ืŸ ื•ืžืงืขืจืŸ ื“ื™ ืžืึธื ื™ื˜ืึธืจื™ื ื’ ืคื•ืŸ ื“ื™ ืžื™ื˜ืœ.

a.php ืื™ื– ื“ืขืจ ื ืึธืžืขืŸ ืคื•ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ ื–ื™ื™ึทื˜ ืฉืจื™ืคื˜. ื™ื, ืื™ืš ื•ื•ื™ื™ืก ืื– ืขืก ืื™ื– ืคืืœืฉ ืฆื• ื ืขืžืขืŸ ื•ื•ืขืจื™ืึทื‘ืึทืœื– ืื•ืŸ ื˜ืขืงืข ื ืขืžืขืŸ ืžื™ื˜ ื“ื™ ื–ืขืœื‘ืข ื‘ืจื™ื•ื•... ืื™ืš ืคึฟืึธืจืฉืœืึธื’ืŸ ืึทื– ืึทื–ื•ื™ ืžื™ืจ ืจืึทื˜ืขื•ื•ืขืŸ ืึท ื‘ื™ืกืœ ื‘ื™ื˜ืขืก ื•ื•ืขืŸ ืฉื™ืงืŸ ืึท ื‘ืงืฉื” :)
u - ื ืืžืขืŸ, ื™ื™ึทื–ื ื•ื•ืึทืจื’ ืœืึธื’ื™ืŸ
ืคึผ - ืคึผืึทืจืึธืœ
"-O /tmp/wa.sh" ืื™ื– ืึท ื˜ืขืงืข ืื•ื™ืฃ ื“ื™ ื•ื•ื™ื™ึทื˜ ืจืึทื•ื˜ืขืจ ื•ื•ื• ื“ื™ ืกืขืจื•ื•ืขืจ ืขื ื˜ืคืขืจ, ืœืžืฉืœ ื“ื™ ืจืขื‘ืึธืึธื˜ ื‘ืึทืคึฟืขืœ, ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขืจืื˜ืขื•ื•ืขื˜.

ื‘ืึทืžืขืจืงื•ื ื’ ื ื•ืžืขืจ ืฆื•ื•ื™ื™: ืื”ื”ื”, ืคืืจื•ื•ืืก ื ื•ืฆืŸ ืžื™ืจ wget ืื•ืŸ ื ื™ืฉื˜ ืงืขืจืœ, ื•ื•ื™ื™ึทืœ ื“ื•ืจืš ืงืขืจืœ ืื™ืจ ืงืขื ืขืŸ ืฉื™ืงืŸ https ืจื™ืงื•ื•ืขืก ื ื™ืฉื˜ ืžื™ื˜ GET, ืึธื‘ืขืจ ืžื™ื˜ POST? ืื”ื”ื” ื•ื•ื™ื™ืœ ื•ื•ื™ ืื™ืŸ ื“ืขืจ ืืœื˜ืขืจ ื•ื•ื™ืฅ "ื ืข ืงืจื™ื›ื˜ ืืจื™ื™ืŸ ืื™ืŸ ืกืœื•ื™!" ืงืขืจืœ ื›ื•ืœืœ ืขื ืงืจื™ืคึผืฉืึทืŸ ืœื™ื™ื‘ืจืขืจื™ื– ืคื•ืŸ ื•ื•ืขื’ืŸ 2 ืžื‘ ืื™ืŸ ื’ืจื™ื™ืก, ืื•ืŸ ื•ื•ื™ื™ึทืœ ืคื•ืŸ ื“ืขื ืขืก ืื™ื– ืึทื ืœื™ื™ืงืœื™ ืึทื– ืื™ืจ ืงืขื ืขืŸ ืึทืกืขืžื‘ืึทืœ ืึท ื‘ื™ืœื“ ืคึฟืึทืจ ืึท ืงืœื™ื™ืŸ TP-LINK ML3020, ืœืžืฉืœ. ืื•ืŸ ืžื™ื˜ ื•ื’ื˜ - ื‘ื™ื˜ืข.

2) ืื•ื™ืฃ ื“ื™ ืกืขืจื•ื•ืขืจ ื–ื™ื™ึทื˜ (ืื™ืš ื”ืึธื‘ืŸ ื•ื‘ื•ื ื˜ื•) ืžื™ืจ ื•ื•ืขืœืŸ ื ื•ืฆืŸ Zabbix. ืคืืจื•ื•ืืก: ืื™ืš ื•ื•ื™ืœืŸ ืขืก ืฆื• ื–ื™ื™ืŸ ืฉื™ื™ืŸ (ืžื™ื˜ ื’ืจืึทืคืก) ืื•ืŸ ื‘ืึทืงื•ื•ืขื (ืฉื™ืงืŸ ืงืึทืžืึทื ื“ื– ื“ื•ืจืš ื“ื™ ืงืึธื ื˜ืขืงืกื˜ ืžืขื ื™ื•). ื–ืึทื‘ื‘ื™ืงืก ื”ืื˜ ืึทื–ืึท ืึท ื•ื•ื•ื ื“ืขืจืœืขืš ื–ืึทืš ื•ื•ื™ ื“ื™ ื–ืึทื‘ื‘ื™ืงืก ืึทื’ืขื ื˜. ื“ื•ืจืš ื“ืขื ืึทื’ืขื ื˜, ืžื™ืจ ื•ื•ืขืœืŸ ืจื•ืคืŸ ืึท PHP ืฉืจื™ืคื˜ ืื•ื™ืฃ ื“ื™ ืกืขืจื•ื•ืขืจ, ื•ื•ืึธืก ื•ื•ืขื˜ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ืฆื™ ืื•ื ื“ื–ืขืจ ืจืึทื•ื˜ืขืจ ืื™ื– ืจืขื’ื™ืกื˜ืจื™ืจื˜ ืื™ืŸ ื“ื™ ืคืืจืœืื ื’ื˜ ืฆื™ื™ื˜. ืฆื• ืงืจืึธื ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ืจืขื’ื™ืกื˜ืจืึทืฆื™ืข ืฆื™ื™ื˜, ืงืึทืžืึทื ื“ื– ืคึฟืึทืจ ื“ืขื•ื•ื™ืกืขืก, ืื™ืš ื ื•ืฆืŸ MySQL, ืึท ื‘ืึทื–ื•ื ื“ืขืจ ื˜ื™ืฉ ื™ื•ื–ืขืจื– ืžื™ื˜ ื‘ืขืขืจืขืš ื“ื™ ืคืืœื’ืขื ื“ืข ืคืขืœื“ืขืจ:

		CREATE TABLE `users` (
		  `id` varchar(25) NOT NULL,
		  `passwd` varchar(25) NOT NULL,
		  `description` varchar(150) NOT NULL,
		  `category` varchar(30) NOT NULL,
		  `status` varchar(10) NOT NULL,
		  `last_time` varchar(20) NOT NULL, // ะฒั€ะตะผั ะฟะพัะปะตะดะฝะตะณะพ ัะพะตะดะธะฝะตะฝะธั
		  `last_ip` varchar(20) NOT NULL, // IP ะฟะพัะปะตะดะฝะตะณะพ ัะพะตะดะธะฝะตะฝะธั 
		  `last_port` int(11) NOT NULL, // ะฟะพั€ั‚ ะฟะพัะปะตะดะฝะตะณะพ ัะพะตะดะธะฝะตะฝะธั
		  `task` text NOT NULL, // ะทะฐะดะฐั‡ะฐ ะบะพั‚ะพั€ัƒัŽ ะฟะพะปัƒั‡ะฐะตั‚ ั€ะพัƒั‚ะตั€
		  `reg_task` varchar(150) NOT NULL, // "ั€ะตะณัƒะปัั€ะฝะฐั" ะทะฐะดะฐั‡ะฐ, ะตัะปะธ ะผั‹ ะทะฐั…ะพั‚ะธะผ ั‡ั‚ะพะฑั‹ ะทะฐะดะฐั‡ะฐ ะฒั‹ะฟะพะปะฝัะปะฐััŒ ะฒัะตะณะดะฐ ะฟั€ะธ ั€ะตะณะธัั‚ั€ะฐั†ะธะธ
		  `last_task` text NOT NULL, // ะปะพะณ ะทะฐะดะฐั‡
		  `response` text NOT NULL, // ััŽะดะฐ ะฟะธัˆะตั‚ัั ะพั‚ะฒะตั‚ ัƒัั‚ั€ะพะนัั‚ะฒะฐ
		  `seq` int(11) NOT NULL
		) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ื›ืœ ืงื•ื•ืืœืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื“ืึทื•ื ืœืึธื•ื“ื™ื“ ืคื•ืŸ ื“ื™ Git ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ื‘ื™ื™ึท: https://github.com/BazDen/iotnet.online.git
ืื™ืฆื˜ PHP ืกืงืจื™ืคึผืก ื’ืขืฉื˜ืขืœื˜ ืื•ื™ืฃ ื“ื™ ืกืขืจื•ื•ืขืจ ื–ื™ื™ึทื˜ (ืคึฟืึทืจ ืงืึทื ื•ื•ื™ื ื™ืึทื ืก, ื–ื™ื™ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขืฉื˜ืขืœื˜ ืื™ืŸ ื“ื™ /usr/share/zabbix/ ื˜ืขืงืข):

a.php ื˜ืขืงืข:

<?php
// ะŸะพะปัƒั‡ะฐะตะผ ะฒั…ะพะดะฝั‹ะต ะฟะฐั€ะฐะผะตั‚ั€ั‹: ะธะผั ะฟะพะปัŒะทะพะฒะฐั‚ะตะปั, ะฟะฐั€ะพะปัŒ ะธ ัะพะพะฑั‰ะตะฝะธะต ะพั‚ ัƒะดะฐะปะตะฝะฝะพะณะพ ั€ะพัƒั‚ะตั€ะฐ
// ะ—ะฐั‡ะตะผ ะฝัƒะถะตะฝ message ? ะญั‚ะพ ัะฟะพัะพะฑ ะพั‚ะฒะตั‚ะฐ ั€ะพัƒั‚ะตั€ะฐ, ะฝะฐะฟั€ะธะผะตั€ ะตัะปะธ ะฒั‹ ะทะฐั…ะพั‚ะธั‚ะต ะฟะพัะผะพั‚ั€ะตั‚ัŒ ัะพะดะตั€ะถะธะผะพะต ั„ะฐะนะปะฐ ั€ะพัƒั‚ะตั€ะฐ
	$user=$_REQUEST['u'];
	$password=$_REQUEST['p'];
	$message=$_REQUEST['m'];
	
	// ะŸะพะดะบะปัŽั‡ะฐะตะผัั ะบ ะฝะฐัˆะตะน ะฑะฐะทะต ะดะฐะฝะฝั‹ั… (MySQL)
	$conn=new mysqli("localhost","db_login","db_password","DB_name");
	if (mysqli_connect_errno()) {
		exit();
	}
	$conn->set_charset("utf8");
	// ะทะดะตััŒ ะธั‰ะตะผ ะฝะฐัˆ ั€ะพัƒั‚ะตั€ ะฒ ั‚ะฐะฑะปะธั†ะต ะฑะฐะทั‹ ะดะฐะฝะฝั‹ั…
	$sql_users=$conn->prepare("SELECT task, reg_task, response, last_time FROM users WHERE id=? AND passwd=? AND status='active';");
	$sql_users->bind_param('ss', $user, $password);
	$sql_users->bind_result($task, $reg_task, $response, $last_time);
	$sql_users->execute();
	$sql_users->store_result();
	if (($sql_users->num_rows)==1){
		$sql_users->fetch();
		// ะทะดะตััŒ ะผั‹ ั€ะพัƒั‚ะตั€ัƒ ะพั‚ะฟั€ะฐะฒะปัะตะผ ะตะณะพ ะทะฐะดะฐั‡ะธ
		echo $task;
		echo "n";
		echo $reg_task;
		// ะฒะพั‚ ะทะดะตััŒ ะผั‹ ะฟะธัˆะตะผ ะฒั€ะตะผั ะพั‚ะฒะตั‚ะฐ ะธ ัะฐะผ ะพั‚ะฒะตั‚ ั€ะพัƒั‚ะตั€ะฐ
		$response_history="[".date("Y-m-d H:i")."] ".$message;
		// ะทะฐะดะฐั‡ัƒ ะพั‚ะฟั€ะฐะฒะธะปะธ, ั‚ะตะฟะตั€ัŒ ะฝะฐะดะพ ะตะต ัƒะดะฐะปะธั‚ัŒ,ะฐ ะฟะพัะปะต ัƒะดะฐะปะตะฝะธั ะพั‚ะผะตั‚ะธั‚ัŒ ะฒ ะปะพะณะฐั…, ั‡ั‚ะพ ั‚ะฐะบะฐั-ั‚ะพ ะทะฐะดะฐั‡ะฐ ะฒั‹ะฟะพะปะฝะตะฝะฐ
		$last_ip=$_SERVER["REMOTE_ADDR"];
		$last_port=$_SERVER["REMOTE_PORT"];
		$ts_last_conn_time=$last_time;
		$sql_users=$conn->prepare("UPDATE users SET task='', seq=1 WHERE (id=?);");
		$sql_users->bind_param('s', $user);
		$sql_users->execute();
		if (strlen($message)>1){
			$sql_users=$conn->prepare("UPDATE users SET response=?, seq=1 WHERE (id=?);");
			$sql_users->bind_param('ss', $response_history, $user);
			$sql_users->execute();
		}
		// ั‚ะตะฟะตั€ัŒ ะฝะฐะดะพ ัะพั…ั€ะฐะฝะธั‚ัŒ ะฒั€ะตะผั ั€ะตะณะธัั‚ั€ะฐั†ะธะธ ะฟะพะปัŒะทะพะฒะฐั‚ะตะปั, ะตะณะพ ะฐะนะฟะธ ะธ ัะพะพะฑั‰ะตะฝะธะต ะพั‚ ะฝะตะณะพ. ะŸะพะบะฐ ั‚ะพะปัŒะบะพ ัะพะพะฑั‰ะตะฝะธะต
		$ts_now=time();
		$sql_users=$conn->prepare("UPDATE users SET last_time=?, last_ip=?, last_port=? WHERE (id=?);");
		$sql_users->bind_param('ssss', $ts_now, $last_ip, $last_port, $user);
		$sql_users->execute();
	}
	// ะตัะปะธ ะผั‹ ะฝะต ะฝะฐัˆะปะธ ั€ะพัƒั‚ะตั€ ะฒ ะฝะฐัˆะตะน ะฑะฐะทะต ะดะฐะฝะฝั‹ั…, ะธะปะธ ะตะณะพ ัั‚ะฐั‚ัƒั "ะฝะตะฐะบั‚ะธะฒะฝั‹ะน", ั‚ะพ ะตะผัƒ ... ะฑัƒะดะตั‚ ะพั‚ะฟั€ะฐะฒะปะตะฝะฐ ะบะพะผะฐะฝะดะฐ reboot....
	// ะŸะพั‡ะตะผัƒ ั‚ะฐะบ ะถะตัั‚ะพะบะพ ? ะŸะพั‚ะพะผัƒ ั‡ั‚ะพ ั€ะพัƒั‚ะตั€ั‹ ะธะฝะพะณะดะฐ ะฟั€ะพะฟะฐะดะฐัŽั‚, ะฐ ัั‚ะพ ะผะฐะปะตะฝัŒะบะธะน ัะฟะพัะพะฑ ะฟั€ะพัƒั‡ะธั‚ัŒ "ะฝะพะฒั‹ั… ะฒะปะฐะดะตะปัŒั†ะตะฒ". 
	else
	{
	echo "reboot";
	}
	$sql_users->close();
	?>

Agent.php ื˜ืขืงืข (ื“ืึธืก ืื™ื– ื“ืขืจ ืฉืจื™ืคื˜ ืคื•ืŸ ื“ื™ ื–ืึทื‘ื‘ื™ืงืก ืึทื’ืขื ื˜ ื’ืขืจื•ืคืŸ):

<?php
	// ั„ะฐะนะป ะฐะณะตะฝั‚ะฐ Zabbix. ะ”ะฐะฝะฝั‹ะน ัะบั€ะธะฟั‚ ะพะฑั€ะฐั‰ะฐะตั‚ัั ะบ ั‚ะฐะฑะปะธั†ะต users ะธ ะฟะพะปัƒั‡ะฐะตั‚ "1" ะตัะปะธ ัƒัั‚ั€ะพะนัั‚ะฒะพ ั€ะตะณะธัั‚ั€ะธั€ะพะฒะฐะปะพััŒ ั ะผะพะผะตะฝั‚ะฐ ะฟะพัะปะตะดะฝะตะณะพ ะพะฑั€ะฐั‰ะตะฝะธั
	// user ะธ password - ัƒั‡ะตั‚ะฝั‹ะต ะดะฐะฝะฝั‹ะต ะพะฑะพั€ัƒะดะพะฒะฐะฝะธั
	$user = $argv[1];
	$password = $argv[2];
	
	// ะฟะพะดะบะปัŽั‡ะฐะตะผัั ะบ ะฝะฐัˆะตะน ะฑะฐะทะต ะดะฐะฝะฝั‹ั…
	$conn=new mysqli("localhost","db_user","db_password","db_name");
	if (mysqli_connect_errno()) {
		exit();
		}
	$conn->set_charset("utf8");
	$sql_users=$conn->prepare("SELECT seq FROM users WHERE id=? AND passwd=? AND status='active';");
	$sql_users->bind_param('ss', $user, $password);
	$sql_users->bind_result($seq);
	$sql_users->execute();
	$sql_users->store_result();
	// ะพะฑะผะตะฝ ะดะฐะฝะฝั‹ะผะธ ะฟั€ะพะธัั…ะพะดะธั‚ ั‡ะตั€ะตะท ะฟะพะปะต seq. ะŸั€ะธ ั€ะตะณะธัั‚ั€ะฐั†ะธะธ ะถะตะปะตะทะบะฐ ัั‚ะฐะฒะธั‚ ะดะฐะฝะฝะพะต ะฟะพะปะต ะฒ "1"
	if (($sql_users->num_rows)==1){
		$sql_users->fetch();
		echo $seq;
	}
		
	// ะพะฑะฝัƒะปัะตะผ $seq. 
	$sql_users=$conn->prepare("UPDATE users SET seq=0 WHERE id=? AND passwd=? AND status='active';");
	$sql_users->bind_param('ss', $user, $password);
	$sql_users->execute();
	$sql_users->close();
?>		

ื ื•, ื“ื™ ืœืขืฆื˜ ื‘ื™ื ืข: ืจืขื“ื–ืฉื™ืกื˜ืขืจื™ื ื’ ืึทืŸ ืึทื’ืขื ื˜ ืื•ืŸ ืึทื“ื™ื ื’ ืกืงืขื“ื–ืฉื•ืœื–.

ืื•ื™ื‘ ืื™ืจ ื”ืึธื˜ ื ื™ืฉื˜ ื ืึธืš ืื™ื ืกื˜ืึทืœื™ืจืŸ ื“ื™ ื–ืึทื‘ื‘ื™ืงืก ืึทื’ืขื ื˜, ื“ืขืžืึธืœื˜:

apt-get install zabbix-agent

ืจืขื“ืึทื’ื™ืจืŸ ื“ื™ ื˜ืขืงืข /etc/zabbix/zabbix_agentd.conf.

ืœื™ื™ื’ ื“ื™ ืฉื•ืจื”:

UserParameter=test,php /usr/share/zabbix/agent.php user password

ื•ื•ืื•:
ืคึผืจื•ื‘ื™ืจืŸ ืื™ื– ื“ืขืจ ื ืึธืžืขืŸ ืคื•ืŸ ืื•ื ื“ื–ืขืจ ืึทื’ืขื ื˜
"php /usr/share/zabbix/agent.php ื‘ืึทื ื™ืฆืขืจ ืคึผืึทืจืึธืœ" - ืึท ื’ืขืจื•ืคึฟืŸ ืฉืจื™ืคื˜ ื•ื•ืึธืก ื™ื ื“ื™ืงื™ื™ืฅ ื“ื™ ืจืขื’ื™ืกื˜ืจืึทืฆื™ืข ื“ืึทื˜ืŸ ืคื•ืŸ ื“ื™ ืžื™ื˜ืœ.

ืึทื“ื™ื ื’ ื˜ืฉืึทืจืฅ: ืขืคึฟืขื ืขืŸ ื“ื™ zabbix ื•ื•ืขื‘ ืฆื•ื‘ื™ื ื“, ืกืขืœืขืงื˜ื™ืจืŸ ืคึฟื•ืŸ ื“ื™ ืžืขื ื™ื•:
ืกืขื˜ื˜ื™ื ื’ืก -> ื ืขืฅ ื ืึธื•ื“ื– -> ืฉืึทืคึฟืŸ ืึท ื ืขืฅ ื ืึธื“ืข. ื“ืึธ ืขืก ืื™ื– ื’ืขื ื•ื’ ืฆื• ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ื“ื™ ื ืึธืžืขืŸ ืคื•ืŸ ื“ื™ ื ืขืฅ ื‘ืึทืœืขื‘ืึธืก, ื–ื™ื™ึทืŸ ื’ืจื•ืคึผืข ืื•ืŸ ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ืึทื’ืขื ื˜ ืฆื•ื‘ื™ื ื“:

ื•ื•ื™ื™ึทื˜ ืžืึธื ื™ื˜ืึธืจื™ื ื’ ืื•ืŸ ืงืึธื ื˜ืจืึธืœ ืคื•ืŸ Lunix / OpenWrt / Lede ื‘ืื–ื™ืจื˜ ื“ืขื•ื•ื™ืกืขืก ื“ื•ืจืš ืคึผืึธืจื˜ 80 ...

ืื™ืฆื˜ ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืœื™ื™ื’ืŸ ืึท ื“ืึทื˜ืŸ ืขืœืขืžืขื ื˜ ืคึฟืึทืจ ื“ืขื ื ืขืฅ ื ืึธื“ืข. ื‘ืึทืฆืึธืœืŸ ื•ืคืžืขืจืงื–ืึทืžืงื™ื™ื˜ ืฆื• ืฆื•ื•ื™ื™ ืคืขืœื“ืขืจ: "ืฉืœื™ืกืœ" - ื“ืึธืก ืื™ื– ืคึผื•ื ืงื˜ ื“ืขืจ ืคึผืึทืจืึทืžืขื˜ืขืจ ื•ื•ืึธืก ืžื™ืจ ื’ืขืฉืจื™ื‘ืŸ ืื™ืŸ ื“ื™ /etc/zabbix/zabbix_agentd.conf ื˜ืขืงืข (ืื™ืŸ ืื•ื ื“ื–ืขืจ ืคืึทืœ ืขืก ืื™ื– ืึท ืคึผืจืึธื‘ืข), ืื•ืŸ "ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืžืขื”ืึทืœืขืš" - ืื™ืš ืฉื˜ืขืœืŸ ืขืก ืฆื• 5 ืžื™ื ื•ื˜ , ื•ื•ื™ื™ึทืœ ืื•ืŸ ื“ื™ ื•ื™ืกืจื™ื›ื˜ ืื™ื– ืื•ื™ืš ืจืขื’ื™ืกื˜ืจื™ืจื˜ ืื•ื™ืฃ ื“ื™ ืกืขืจื•ื•ืขืจ ืึทืžืึธืœ ื™ืขื“ืขืจ ืคื™ื ืฃ ืžื™ื ื•ื˜.

ื•ื•ื™ื™ึทื˜ ืžืึธื ื™ื˜ืึธืจื™ื ื’ ืื•ืŸ ืงืึธื ื˜ืจืึธืœ ืคื•ืŸ Lunix / OpenWrt / Lede ื‘ืื–ื™ืจื˜ ื“ืขื•ื•ื™ืกืขืก ื“ื•ืจืš ืคึผืึธืจื˜ 80 ...

ื ื•, ืœืึธืžื™ืจ ืœื™ื™ื’ืŸ ืึท ื’ืจืึทืคื™ืง. ืื™ืš ืจืขืงืึธืžืขื ื“ื™ืจืŸ ื˜ืฉื•ื–ื™ื ื’ "ืคื™ืœืŸ" ื•ื•ื™ ื“ื™ ืจืขื ื“ืขืจื™ื ื’ ื ื•ืกื—.

ื•ื•ื™ื™ึทื˜ ืžืึธื ื™ื˜ืึธืจื™ื ื’ ืื•ืŸ ืงืึธื ื˜ืจืึธืœ ืคื•ืŸ Lunix / OpenWrt / Lede ื‘ืื–ื™ืจื˜ ื“ืขื•ื•ื™ืกืขืก ื“ื•ืจืš ืคึผืึธืจื˜ 80 ...

ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ืื™ื– ืขืคึผืขืก ื–ื™ื™ืขืจ ืœืึทืงืึทื ื™ืง, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ ื•ื•ื™ ื“ืึธืก:

ื•ื•ื™ื™ึทื˜ ืžืึธื ื™ื˜ืึธืจื™ื ื’ ืื•ืŸ ืงืึธื ื˜ืจืึธืœ ืคื•ืŸ Lunix / OpenWrt / Lede ื‘ืื–ื™ืจื˜ ื“ืขื•ื•ื™ืกืขืก ื“ื•ืจืš ืคึผืึธืจื˜ 80 ...

ืฆื• ื“ื™ ื’ืœื™ื™ึทืš ืงืฉื™ื: "ืื™ื– ืขืก ื•ื•ืขืจื˜ ืขืก?", ืื™ืš ื•ื•ืขืœ ืขื ื˜ืคึฟืขืจืŸ: ื ื•, ืคื•ืŸ ืงื•ืจืก, ื–ืขืŸ ื“ื™ "ืกื™ื‘ื•ืช ืฆื• ืฉืึทืคึฟืŸ ืึท ื•ื•ืขืœืึธืกื™ืคึผืขื“" ืื™ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ.

ืื•ื™ื‘ ืžื™ื™ืŸ ืขืจืฉื˜ืขืจ ื’ืจืึทืคืึธืžืึทื ื™ืึทืง ื“ืขืจืคืึทืจื•ื ื’ ืึทืคืขืงืฅ ื“ื™ ืื™ื ื˜ืขืจืขืก ืคื•ืŸ ืœื™ื™ืขื ืขืจ, ืื™ืš ื•ื•ื™ืœืŸ ืฆื• ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ืื™ืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ืึทืจื˜ื™ืงืœืขืŸ ื•ื•ื™ ืฆื• ืฉื™ืงืŸ ืงืึทืžืึทื ื“ื– ืฆื• ื•ื•ื™ื™ึทื˜ ื•ื™ืกืจื™ื›ื˜. ืžื™ืจ ืื•ื™ืš ื’ืขืจืื˜ืŸ ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ื“ื™ ื’ืื ืฆืข ืกื›ืขืžืข ืคึฟืึทืจ ื“ืขื•ื•ื™ืกืขืก ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ RouterOS (Mikrotik).

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’