рдереЛрдбрд╝реЗ рд╕реЗ рдЯреНрд╡рд┐рд╕реНрдЯ рдХреЗ рд╕рд╛рде рдлреНрд░реА рд╡рд╛рдИрдлрд╛рдИ

рдпрд╣ рд▓реЗрдЦ рдореБрдлреНрдд рд╡рд╛рдИ-рдлрд╛рдИ рдиреЗрдЯрд╡рд░реНрдХ рдХреА рдПрдХ рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ, рдореБрдЦреНрдп рддрдХрдиреАрдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдФрд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рд▓рдХреНрд╖реНрдп рдХреЗрд╡рд▓ рдПрдХ рдореВрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рд╣реИред

рдПрдХ рд╕рд╛рд▓ рд╕реЗ рднреА рдХрдо рд╕рдордп рдкрд╣рд▓реЗ, рдореЗрд░реЗ рдиреЗрддреГрддреНрд╡ рдиреЗ рд╕рдВрдЧрдарди рдХреЗ рдХреНрд╖реЗрддреНрд░ рдкрд░ рдЖрдЧрдВрддреБрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрдлреНрдд рд╡рд╛рдИ-рдлрд╛рдИ рдиреЗрдЯрд╡рд░реНрдХ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рдФрд░ рд╕рдореГрджреНрдз рд╣реЛрдЧрд╛, рдпрджрд┐ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдкрд╣реБрдВрдЪрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЙрд╕реЗ рд╣рдорд╛рд░реЗ "рд╡рд┐рдЬреНрдЮрд╛рдкрди" рдХреЗ рд╕рд╛рде рд╕реВрдЪрдирд╛ рдкреГрд╖реНрда рдкрд░ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛ред

рдереЛрдбрд╝рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪреЗ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдЕрд▓рдЧ рдЧреЗрдЯрд╡реЗ рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рд▓рд┐рдирдХреНрд╕ рдкрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдХрдо рд╕реЗ рдХрдо рдЗрд╕реА рддрд░рд╣ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╡рд┐рдХрд╛рд╕ / рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрдВрдкрдирд┐рдпреЛрдВ рдХреЛ рднреЗрдЬреЗ рдЧрдП рдХрд╛рд░реНрдп рдХреЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд TOR рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдмрд╛рд╣рд░реА рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЖрджреЗрд╢ рджреЗрддреЗ рд╕рдордп, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд▓рд╛рдЧрдд рдЖрд╕рдорд╛рди рдЫреВ рдЬрд╛рдПрдЧреАред

рд╡рд┐рд╖рдп рдкрд░ рдмрд╣реБрдд рд╡рд┐рдЪрд╛рд░-рд╡рд┐рдорд░реНрд╢ рдФрд░ рдХрд▓реНрдкрдирд╛рдУрдВ рдХреЗ рдмрд╛рдж: рдЗрд╕реЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП (рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреА рдЧрд╣рд░рд╛рдИ рдореЗрдВ рд╡рд┐рд╕рд░реНрдЬрди рдХреЗ рд╕рд╛рде, рдФрд░ рджрд░реНрдЬрдиреЛрдВ рдХрд╛рдореБрдХ рдХрд▓реНрдкрдирд╛рдПрдВ рдХрд┐ рдкреИрдХреЗрдЬреЛрдВ, рд╣реЗрдбрд░ рдЖрджрд┐ рдХреЛ рдХреИрд╕реЗ рдмрджрд▓рд╛ рдЬрд╛рдП), рдПрдХ рд╕рд░рд▓ рдФрд░ рддрд╛рд░реНрдХрд┐рдХ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ред

рд╢рд╛рдирджрд╛рд░ - рдмрд╕



рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рд┐рджреНрдзрд╛рдВрдд:
  1. рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рдирд┐рдпрдорд┐рдд dhcp рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЖрдИрдкреА рдкрддрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ, рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЧреЗрдЯрд╡реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  2. рдбрд┐рдлрд╝реЙрд▓реНрдЯ iptables рдирд┐рдпрдо рд╕рд░реНрд╡рд░ рдкрд░ рдкрдВрдЬреАрдХреГрдд рд╣реИ:

    [root@wifi ~]# iptables -L -t nat
    Chain PREROUTING (policy ACCEPT)
    target prot opt source destination
    REDIRECT tcp -- anywhere !192.168.143.1
    DROP udp -- anywhere !192.168.143.1 udp dpt:!domain

    рдЗрд╕рдХреЗ рдХрд╛рд░рдг, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рд╕рднреА рдЕрдиреБрд░реЛрдз (DNS рдкреИрдХреЗрдЯ рдХреЛ рдЫреЛрдбрд╝рдХрд░) рд╕реНрдерд╛рдиреАрдп рд╕рд░реНрд╡рд░ рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
  3. рдкрд╣рд▓реА рдмрд╛рд░ рдЬрдм рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕реА рд╡реЗрдм рдкреЗрдЬ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рд╕реНрдерд╛рдиреАрдп nginx рд╕рд░реНрд╡рд░ рдкрд░ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЙрд╕реЗ рдПрдХ html рдкреГрд╖реНрда рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реЛрддреА рд╣реИ:
    <?php
    $run = "ts /usr/share/nginx/html/script.sh {$_SERVER['REMOTE_ADDR']}";
    exec($run);
    ?>

  4. рдФрд░ рдпрд╣рд╛рдБ рдордЬрд╝рд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ! рдпрд╣ рдкреГрд╖реНрда рд╕рд░реНрд╡рд░ рдкрд░ рдкрдбрд╝реА рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИ (рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдЖрдИрдкреА рдкрддреЗ рдХреЛ рд╕реНрдЯрд╛рд░реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ):

    #!/bin/sh
    LOG_FILE=/var/log/script_log
    {
    date | tr "\n" " "
    echo -n '|IP:'
    echo -n $1
    echo -n '|MAC:'
    /sbin/arp $1 -n | grep $1 | tr -s ' ' | cut -d ' ' -f 3 | tr "\n" " "
    mac=`/sbin/arp $1 -n | grep $1 | tr -s ' ' | cut -d ' ' -f 3 | tr "\n" " "`
    if ( sudo /sbin/iptables -n -L -t nat --line-numbers | grep $1 > /dev/null )
    then
    echo '|Rule exists!!'
    else
    echo -n '|Add rule '
    sudo /sbin/iptables -t nat --insert PREROUTING -s $1 -j ACCEPT
    echo -n '|Creat shedule:'
    echo "sudo /sbin/iptables -t nat -D PREROUTING -s $1 -j ACCEPT " | at -m now + 45 minutes
    sudo /usr/bin/python /usr/share/nginx/html/stat.py ${mac}
    fi
    } >> $LOG_FILE 2>&1


    рдЬреЛ рджреЛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ: iptables рдореЗрдВ рдПрдХ рдирд┐рдпрдо рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рдПрдХ рд▓рдВрдмрд┐рдд рдХрд╛рд░реНрдп рдмрдирд╛рддрд╛ рд╣реИред

    рд╢рд╛рд╕рди:

    sudo /sbin/iptables -t nat --insert PREROUTING -s $1 -j ACCEPT

    рдЗрд╕реЗ PREROUTING рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдирд┐рдпрдо рд╕реНрдерд┐рдд рд╣реИрдВред рдирддреАрдЬрддрди, рдЗрд╕ рдкрддреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рддрдХ рдкреВрд░реНрдг рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИред

    рджреВрд╕рд░реА рдореБрдЦреНрдп рдХреНрд░рд┐рдпрд╛, рдЗрд╕рдореЗрдВ рдПрдХ рдирд┐рдпрдо рдмрдирд╛рдирд╛:
    echo "sudo /sbin/iptables -t nat -D PREROUTING -s $1 -j ACCEPT " | at -m now + 45

    рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рддреНрд░ рдХреЛ 45 рдорд┐рдирдЯ рддрдХ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдирд┐рдпрдо рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред


рд╕рд░реНрдХрд┐рдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛, рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╕рд╛рдмрд┐рдд рд╣реБрдЖред

рдпрд╣ рд╢рд╛рдпрдж рдХрд╣рд╛рдиреА рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди "рдП рд▓рд┐рдЯрд┐рд▓ рд▓реЗрд╕ рдерд╛рди рдП рдИрдпрд░" рдХреЗ рд▓рд┐рдП, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрдиреЗ, рдЫреЛрдЯреЗ рдЬрд╛рдо рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдФрд░ рдХрд╛рдлреА рдореВрд▓ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдорд╛рдирд╕рд┐рдХрддрд╛



рдкрд╣рд▓реА рд╕рдорд╕реНрдпрд╛ рдЬреЛ рдЙрддреНрдкрдиреНрди рд╣реБрдИ рд╡рд╣ рдереА "рдЕрдкрдорд╛рдирдЬрдирдХред" рдпрд╣ рджреЗрдЦрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рд▓реЛрдЧ рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореБрдлреНрдд рдореЗрдВ рдкреНрдпрд╛рд╕реЗ рд╣реИрдВ, рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдЕрдзрд┐рдХ рд╕рдордп рддрдХ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдРрд╕реА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдВрдХрдбрд╝реЗ рд░рдЦрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рднреА рдмрд┐рд▓рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо (рдпрд╛ рдЖрдБрдХрдбрд╝реЛрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдореЙрдбреНрдпреВрд▓) рдпрд╛ рддреЛ рд▓реЙрдЧрд┐рди рдпрд╛ рдЖрдИрдкреА рдкрддреЗ рдХреЛ рдореВрд▓ рддрддреНрд╡ рдорд╛рдирддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд╣рд▓рд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рджреВрд╕рд░реЗ рд╕реЗ рдирд╣реАрдВ рдЬреБрдбрд╝ рд╕рдХрддреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдИрдкреА тАЛтАЛрдкрддреЗ рд╕реНрдерд┐рд░ рдирд╣реАрдВ рд╣реИрдВред рдЖрд╡рд╢реНрдпрдХ рдЖрдБрдХрдбрд╝реЗ рдореИрдХ рдкрддреЗ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдереЗред рдмрд╣реБрдд рдЦреЛрдЬрдмреАрди рдХреЗ рдмрд╛рдж рднреА рдХреЛрдИ рдЙрдЪрд┐рдд рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдЗрд╕рд▓рд┐рдП, рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдмрд╛рдЗрдХ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред рдЪреВрдВрдХрд┐ рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдФрд░ рдкрд░реНрдпрд╛рдкреНрдд рдерд╛, рдпрд╣ рдореИрдХ рдкрддреЗ рджреНрд╡рд╛рд░рд╛ рдЖрдпреЛрдЬрд┐рдд рд╕рддреНрд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдерд╛, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЕрдЬрдЧрд░ рдХреА рдкрдЯрдХрдерд╛ рд▓рд┐рдЦреА рдЧрдИ рдереА (рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдмреИрд╢ рдХрд╛ рдореЗрд░рд╛ рдЬреНрдЮрд╛рди рдЗрд╕ рдХрд╛рд░реНрдп рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛):

import sys
file = open('/var/log/stat.file','r')
line = file.readlines()
line2 = ''
i = 0
while len(line) > i :
line2 = str(line[i])
line2 = line2.rstrip()
line2 = line2.split()
if line2[0] == str(sys.argv[1]) :
line2[1] = str(int(line2[1])+1 )
del line[i]
line.insert(i,line2[0]+' '+line2[1]+'\n')
break
i = i + 1
else :
line.append(str(sys.argv[1])+' '+'1'+'\n')
###########
file.close()
file = open('/var/log/stat.file','w')
file.writelines(line)
file.close()


рдЬрд┐рд╕реЗ рдореБрдЦреНрдп рд▓рд┐рдкрд┐ рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдПрдХ рд╕рдкреНрддрд╛рд╣ рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд╕рд╛рде рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦрдВрдб рдХреЛ рд▓реЙрдЧреЛрдЯреЗрдЯ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ рджреЛ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ "рдирд┐рдпрдорд┐рдд рдЧреНрд░рд╛рд╣рдХреЛрдВ" рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧреА рдЬрд┐рдирдХреЗ рдореИрдХ рдкрддреЗ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рдордиреЗ рд╕реНрдерд╛рдкрд┐рдд рд╕реНрд╡рд┐рдЪ рдкрд░ рдмреНрд▓реИрдХ рд▓рд┐рд╕реНрдЯ рдХрд┐рдП рдЧрдП рдереЗред

рд╕рд╛рдЗрдХрд┐рд▓ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛!



рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд╕реНрдпрд╛ рдЕрдзрд┐рдХ рдореВрд▓ рдереА: рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рджреМрд░рд╛рди, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдиреЗ iptables рддреНрд░реБрдЯрд┐ ("iptables: рдЕрдЬреНрдЮрд╛рдд рддреНрд░реБрдЯрд┐ 4294967295" рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕реЗ) рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдлреЗрдВрдХ рджрд┐рдпрд╛ред рдпрджрд┐ рдпрд╣ рдирд┐рдпрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдереА, рддреЛ рдХреБрдЫ рднреА рднрдпрд╛рдирдХ рдирд╣реАрдВ рд╣реБрдЖ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдХреЗрд╡рд▓ рдкреГрд╖реНрда рдХреЛ рд░реАрдлреНрд░реЗрд╢ рдХрд┐рдпрд╛ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдпрд╛, рдпрджрд┐ рд╡рд╣ рдлрд┐рд░ рд╕реЗ рдЙрд╕реА рд▓реЙрдиреНрдЪ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛, рддреЛ рд▓реЙрдЧреНрд╕ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдПрдХ рдмрд╛рд░ рдЦрд░рд╛рдм рд╕рд╛рдереА рдмрд╣реБрдд рдЕрд╢реБрдн рдерд╛, рдФрд░ рд╡рд╣ 5 рдмрд╛рд░ рдПрдХ рд╕рд╛рде рджреМрдбрд╝рдиреЗ рдХреЛ рдорд┐рд▓рд╛)ред
рдпрджрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде, рдирд┐рдпрдо рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдХреНрд░реИрд╢ рд╣реЛ рдЧрдпрд╛, рддреЛ рдЖрдИрдкреА рдкрддреЗ рд╕реВрдЪрд┐рдпреЛрдВ рдореЗрдВ рдмрдиреЗ рд░рд╣реЗ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рд╕рд░реНрдлрд┐рдВрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЕрд╢реБрджреНрдзрддрд╛ рдХреЗ рд╕рд╛рдеред

рдкрд╣рд▓рд╛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрд╛ рдЬрд┐рд╕рдореЗрдВ рдЖрдИрдкреАрдЯреИрдмрд▓реНрд╕ рдФрд░ рдЯрд╛рд╕реНрдХ рдкреВрд▓ рдореЗрдВ рдкрддреЛрдВ рдХреА рд╕реВрдЪреА рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ:

#!/bin/bash
LOG_FILE=/var/log/script_log
{
echo -n "Checking rules: "
date | tr "\n" " "
ar_ip=(`sudo iptables -L -t nat -n | grep ACCEPT | grep -v policy | cut -d ' ' -f 10 | tr '\n' ' '`)
ar_at=(`grep 168.143. /var/spool/at/* | cut -d ' ' -f 9 | tr '\n' ' '`)
count=${#ar_ip[@]}
for ((i=0; i <= count ; i++ ))
do
for h in "${ar_at[@]}"
do
if [[ ${ar_ip[$i]} == $h ]]
then
unset ar_ip[$i]
continue 2
fi
done
done
echo -n "|Delete rules: "
for i in ${!ar_ip[*]}
do
sudo /sbin/iptables -t nat -D PREROUTING -s ${ar_ip[$i]} -j ACCEPT
echo -n ${ar_ip[$i]} " "
done
echo "|Checking done"
} >> $LOG_FILE 2>&1


рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ /etc/cron.hourly рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ iptables рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╕рдорд╛рдзрд╛рди рдкрд░реНрдпрд╛рдкреНрдд рдерд╛, рд▓реЗрдХрд┐рди "рдкреВрд░реНрдгрддрд╛ рдХреА рдХреЛрдИ рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реИ" рдФрд░ рдореИрдВрдиреЗ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдЕрд╕реАрдо рд╡рд┐рд╕реНрддрд╛рд░ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рдФрд░ рдпрд╣ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред "рдЖрд░рд╛рдорджрд╛рдпрдХ" рд▓рд╛рдЗрдирдХреНрд╕ рдордВрдЪреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ, рдорд╛рд╕реНрдЯреЛрдбреЛрди рдореЗрдВ рд╕реЗ рдПрдХ рдиреЗ рдореБрдЭреЗ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд┐рдпрд╛



рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ, рдЙрдиреНрд╣реЗрдВ рдПрдХ рдкреВрд▓ рдореЗрдВ рд░рдЦрдиреЗ рдФрд░ рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рд╕рдЦреНрдд рдХреНрд░рдо рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╡рд┐рдХрд╛рд╕ рд╣реИред
рд╡реЗрдм рдкреЗрдЬ рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЙрдиреНрдЪ рд▓рд╛рдЗрди рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

ts /usr/share/nginx/html/script.sh {$_SERVER['REMOTE_ADDR']}

рдФрд░ iptables рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдЧрд╛рдпрдм рд╣реЛ рдЧрдИрдВред

рддреАрд╕рд░реА рд╕рдорд╕реНрдпрд╛, рдпрд╛ рдореИрдВрдиреЗ рдХреИрд╕реЗ рдУрдкрди-рд╕реЛрд░реНрд╕ рд╕рдореБрджрд╛рдп рдХреА рдорджрдж рдХреА



рдЬрдм рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рдЧрднрдЧ рдЖрдзреЗ рд╕рд╛рд▓ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣реА рдереА, рдФрд░ рд▓реЛрдЧреЛрдВ рдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд╕реАрдЦрд╛ рдерд╛, рддреЛ рдПрдХ рдФрд░ рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛ рд╕рд╛рдордиреЗ рдЖрдИ: рдПрдХреНрд╕реЗрд╕ рдкреЙрдЗрдВрдЯреНрд╕ (Lynksys wap54g) рдиреЗ рдЕрдирд╛рдпрд╛рд╕ / рд▓рдЯрдХрд╛ / рд░рд┐рдмреВрдЯ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдкрд╣рд▓реА рдмрд╛рдд рдЬреЛ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрдИ рд╡рд╣ рдереА рд▓реЙрдЧ рдХреЛ рджреЗрдЦрдирд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛, Lynksys рд╡реНрдпрд░реНрде рдореЗрдВ "рдШрд░" рдЦрдВрдб рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЧреГрд╣рд┐рдгрд┐рдпреЛрдВ рдХреЛ рд▓реЙрдЧ рдкрдврд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЙрдЧ рдореЗрдВ рдирд┐рд╣рд┐рдд рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рд╣реИ рдЬрдм рдореИрдХ рдПрдбреНрд░реЗрд╕ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд▓реЙрдЧ рдкреНрд░рд╛рд░реВрдк рдЕрджреНрд╡рд┐рддреАрдп рдерд╛ рдФрд░ рдирд┐рдпрдорд┐рдд syslog рд╕рд░реНрд╡рд░ рдиреЗ рдЗрд╕реЗ рдирд╣реАрдВ рд╕рдордЭрд╛ред рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, Lynksys рдиреЗ рдЕрдкрдиреЗ рдирд╛рдо рдореЗрдВ рдХреБрдЫ рдЬрд╛рджреБрдИ рдпреБрдХреНрдд рд╕рдВрджрд┐рдЧреНрдз рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреА рдкреЗрд╢рдХрд╢ рдХреА, рдЬреЛ рдХрд┐ рдЖрдкрдХреЗ рдШрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдФрд░ рддреБрд░рдВрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЕрдзреНрдпрдпрди рдХреЗ рдмрд╛рдж, рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рд╛ рдЧрдпрд╛ рдХрд┐ рдпрд╣ рдЕрдиреБрдкрдпреБрдХреНрдд рдерд╛, рдФрд░ рд╡рд┐рд╢рд╛рд▓ рд╡рд┐рд╕реНрддрд╛рд░ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдПрдХ рд▓рдВрдмреА рдпрд╛рддреНрд░рд╛ рд╢реБрд░реВ рд╣реБрдИред рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдЕрдВрддрд╣реАрди рдХрджрдореЛрдВ рдореЗрдВ sf.net рдкрд░ 2009 рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЭреБрдХ рдЧрдпрд╛ (http://sourceforge.net/projects/wap54g-log/) рдЬреЛ рдмрд┐рдВрджреБ рд▓реЙрдЧ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдХреЛ рд╕рдордЭрддрд╛ рдерд╛ рдФрд░ рдЬрд╛рдирддрд╛ рдерд╛ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдлрд╛рдЗрд▓ рдореЗрдВ рдХреИрд╕реЗ рд░рдЦрд╛ рдЬрд╛рдПред "рдФрд░ рд╣рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ!" ┬й

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╡реЗ рдЬрд▓реНрджреА рдЦреБрд╢ рдереЗред рд▓реЙрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреА:

May 20 12:04:42 /usr/local/bin/wap54g-log[17544] Wireless PC connected 00:26:C7:61:BB:26

рдФрд░ рдпрд╣ рд╕рдордЭрдирд╛ рдЕрд╕рдВрднрд╡ рдерд╛ рдХрд┐ рдЧреНрд░рд╛рд╣рдХ рдХрд┐рд╕ рдмрд┐рдВрджреБ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИред рдФрд░ рдЗрд╕рд▓рд┐рдП, рднрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рдирд╛, рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдЕрдиреБрдЪрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕рдмрд╕реЗ рд╕рдВрднрд╛рд╡рд┐рдд рдХрд╛рд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВред
рдФрд░ рдлрд┐рд░ рдореБрдЭреЗ рдПрд╕ рдпрд╛рдж рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдпрд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдлрд┐рд░ рд╕реЗ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рджреГрд╢реНрдп рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рд╕рдВрд╕реНрдерд╛рди рдореЗрдВ рджреВрд╕рд░реЗ рд╡рд░реНрд╖ рдореЗрдВ рдЬреЛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рд╡рд╣ рдХреЗрд╡рд▓ рдЗрд╕ рдЫреЛрдЯреА рд╕реА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдХреЛрдб рдЬреИрд╕рд╛ рдерд╛

рдПрдХ рд╡рд┐рдЪрд╛рд░рд╢реАрд▓ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, theiraddr рд╕рдВрд░рдЪрдирд╛ рдХреА рдЦреЛрдЬ рдХреА рдЧрдИ, рдЬреЛ рдкреНрд░рдХрд╛рд░ sockaddr _in (рдпреВрдирд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕реЙрдХреЗрдЯ) рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдФрд░ in_addr рд╕рдВрд░рдЪрдирд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдПрдХрд▓ рдЪрд░ s_addr рдкреНрд░рдХрд╛рд░__addr_t рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИред "рдПрдХ рдЕрдВрдбрд╛ рдПрдХ рдмрддрдЦ рдореЗрдВ, рдПрдХ рдмрддреНрддрдЦ рдХрд╛ рдмрдЪреНрдЪрд╛, рдПрдХ рдЭрдЯрдХреЗ рдореЗрдВ рдПрдХ рдЦрд░рдЧреЛрд╢" ┬йред рд╕рдмрд╕реЗ рдордЬреЗрджрд╛рд░ рдЯрд┐рдкреНрдкрдгреА рдереА "рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рди рдХреЗрд╡рд▓_рджрд╛рджрд░_рдЯреА рдЬреИрд╕рд╛ рдПрдХ рдЪрд░, рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдЖ рд╣реИред"

рдЧрд╣рд░рд╛рдИ рд╕реЗ рдФрд░ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЬрд╛рдиреЗ рдкрд░, рдкреБрд╕реНрддрдХрд╛рд▓рдп <arpa / inet.h> (рдУрд╣ рдорд╛рдп рдЧреЙрдб! рдПрдХ рдЕрд░рдкрд╛ рдХрд╛ рднреВрдд!) рдЗрди рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдпреБрдХреНрдд рдерд╛ред Inet_ntoa (strcu) рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдХреЗ рдФрд░ рдЗрд╕ рд╕рднреА рдХреЛ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдбрд╛рд▓рдХрд░, рдЗрд╕рдиреЗ рдХреБрдЫ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд┐рдпрд╛:

May 20 12:23:38 192.168.143.114 /usr/local/bin/wap54g-log[17544] Wireless PC connected 00:26:C7:61:BB:26

рдореБрдЦреНрдп рдЕрдВрддрд░ рдПрдХ рдмрд┐рдВрджреБ рдкрддреЗ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рд╣реИред рдпрд╛рдиреА рдЕрдм рдЖрдк рд▓реЛрдб рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд╡рд┐рддрд░рдг рдХрд╛ рдиреНрдпрд╛рдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдЕрдВрддрд░реНрдЬреНрдЮрд╛рди / рддрд░реНрдХ / 5 рд╡реАрдВ рдмрд╛рдд рдирд┐рдХрд▓рд╛, рдореИрдВрдиреЗ рдирд┐рд░рд╛рд╢ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдФрд░ рдЫреЛрдЯреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдмрд╛рдж, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ WAP54g 30 рдПрдХ рд╕рд╛рде рдЬреБрдбрд╝реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рднреА рдЦрдбрд╝рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЕрднреА рддрдХ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред рдЕрдм рддрдХ, рдореБрдЭреЗ рдХреБрдЫ рдФрд░ "рдФрджреНрдпреЛрдЧрд┐рдХ" рдХреЗ рд╕рд╛рде рдЕрдВрдХреЛрдВ рдХреА рдЬрдЧрд╣ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╡рд┐рдХрд▓реНрдк рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред рдкреНрд░рдмрдВрдзрди рддрдп рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдПрдХ рдзрдиреНрдпрд╡рд╛рдж рдкрддреНрд░ рднреЗрдЬрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рд╕рдВрд╢реЛрдзрди рдХреЗ рд▓рд┐рдП рд╕реБрдЭрд╛рд╡ред

рдЫреЛрдЯреА рд╕рдорд╕реНрдпрд╛рдПрдВ рднреА рдереАрдВ: рдирд╛рдЬрд╝рд┐рдирдХреНрд╕ рдиреЗ 404 рдкреГрд╖реНрда рд▓реМрдЯрд╛рдП, рдпрджрд┐ рд╡рд╣ рдкрддрд╛ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рд╣реБрдЖ, рдЙрд╕рдореЗрдВ рдкреГрд╖реНрда рдХрд╛ рдирд╛рдо рдФрд░ рдкрддрд╛ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдПрдХ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рд╡рд░реНрдЪреБрдЕрд▓ рд╕рд░реНрд╡рд░ рдХреЙрдиреНрдлрд┐рдЧрд░ рдореЗрдВ рдПрдХ рд▓рд╛рдЗрди "рд░рд┐рдЕрд░рд╛рдИрдЯ ^ / (ред *) / рдЗрдВрдбреЗрдХреНрд╕.рдлреИрдк рд▓рд╛рд╕реНрдЯ?" рдХреЗ рд╕рд╛рде рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдпрд╣рд╛рдВ рдРрд╕реА рддрд┐рдкрд╣рд┐рдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рд╡реЗ рд╕рдм рдХреЗ рд╕рдм рдмрд╛рдВрдХреЗ рдФрд░ рд░реЛрдЬ рд╣реИрдВред

рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрдЬрд╛рдп



рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдЕрдВрддрд┐рдо рдирд┐рд░реНрдгрдп рдХреБрдЫ рд▓реЗрдЦ "рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рдХ рдХреИрд╕реЗ рдмрдиреЗрдВ - рд╢реБрд░реБрдЖрддреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрд╛рдЗрдб" рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рдЕрдиреБрдореЛрджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВ рдЦреБрдж рдХреЛ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЧреБрд░реБ рдирд╣реАрдВ рдорд╛рдирддрд╛, рдореИрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рд▓рд┐рдирдХреНрд╕ рдХрд╛ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рдХ рд╣реВрдВ- рдордзреНрдп рд╣рд╛рде рдХрд╛ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реВрдВред рдпрд╣ рд▓реЗрдЦ рдЬреНрдЮрд╛рди рдХреА рдорд╛рддреНрд░рд╛ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╣рд┐рд╕реНрд╕рд╛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬреЛ рд░реЛрдЬрдорд░реНрд░рд╛ рдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдмрд╕ html, bash, python, рдФрд░ C. рдЬреНрдЮрд╛рди рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЬреНрдЮрд╛рди, рдПрдХ рдЕрдирд┐рд╡рд╛рд░реНрдп рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ: рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЬреНрдЮрд╛рди (IT рдХрд╛, рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП), рдФрд░ OS (рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ, рд╕рд┐рд╕реНрдЯрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди) рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдкрдХреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЬреЛрдбрд╝ рд╣реЛрдЧрд╛ред

Source: https://habr.com/ru/post/In119695/


All Articles