CentOS 5.x рдФрд░ Motion: рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдмрд╛рдж рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рджреЗрдЦреЗрдВ

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

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо Apache + IPTables рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХрд░реЗрдВрдЧреЗред

рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдореЛрд╢рди, рдЕрдкрд╛рдЪреЗ рдФрд░ рдЖрдИрдкреАрдЯреИрдмрд▓реНрд╕ рдкрд╣рд▓реЗ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реИрдВред рдЗрдВрдЯрд░рдиреЗрдЯ mysite.ru рдкрд░ рдПрдХ рд╕рд╛рдЗрдЯ рдЙрдкрд▓рдмреНрдз рд╣реИ

рдбрд┐рд╕реНрдХ рдкрд░ рднреМрддрд┐рдХ рд░реВрдк рд╕реЗ рдпрд╣ рд╕реНрдерд┐рдд рд╣реИ:

# # рдШрд░ / www / mysite.ru / cgi-bin
# # рдШрд░ / www / mysite.ru / www

рд╣рдореЗрдВ webcam.cgi рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕реЗ /home/www/mysite.ru/cgi-bin рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдбрд╛рд▓реЗрдВ рдФрд░ рдЗрд╕реЗ 775 рдПрдХреНрд╕реЗрд╕ рдЕрдзрд┐рдХрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ:

#touch /home/www/mysite.ru/cgi-bin/webcam.cgi
#chmod 755/home/www/mysite.ru/cgi-bin/webcam.cgi

Webcam.cgi рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА:

#!/usr/bin/perl $ENV{PATH} = "/usr/bin"; print "Content-type: text/html \n\n"; print <<HTML; <html> <head> <title>  -  </title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> </head> <body> <center> <img src="http://mysite.ru:8081"> </center> </body> </html> HTML 


рдЕрдм, рдпрджрд┐ рдЖрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ mysite.ru/cgi-bin/webcam.cgi рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдлрд╛рдЗрд▓ рдкреЛрд░реНрдЯ 8081 рдкрд░ рдореЛрд╢рди рджреЗрдиреЗ рд╡рд╛рд▓реА рд╕реНрдЯреНрд░реАрдо рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░реЗрдЧреАред

рдЕрдЧрд▓рд╛, рдЕрдкрд╛рдЪреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ, рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

#htpasswd -cb /home/www/mysite.ru/.htpasswd рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд░реЛрд▓

рдЕрдЧрд▓рд╛, .htaccess рдлрд╝рд╛рдЗрд▓ рдХреЛ /home/www/mysite.ru/cgi-bin рдореЗрдВ рдмрдирд╛рдПрдБ:

# рдереМрдЪ / рд╣реЙрдо / www./mysite.ru/cgi-bin/.htaccess

.Htaccess рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА:

 AuthType Basic AuthName "Monitor MySite.Ru" AuthUserFile /www/mysite.ru/.htpasswd require valid-user 


рдЕрдм, рдпрджрд┐ рдЖрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ mysite.ru/cgi-bin/webcam.cgi рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреИрдирд▓ рдЖрдкрдХреЗ рд▓реЙрдЧрд┐рди рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред

рдпрд╣ рд╕рдм рдЕрдЪреНрдЫрд╛ рд╣реИ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдПрдХ рд▓реЙрдЧрд┐рди рд╣реИ, рд▓реЗрдХрд┐рди рдзрд╛рд░рд╛ рдЕрднреА рднреА рдкреНрд░рддреНрдпрдХреНрд╖ рдкрддреЗ рдкрд░ рджреЗрдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИ mysite.ru : 8081 webcam.cgi рдХреЙрд▓ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкреГрд╖реНрда рдХреЛ рджрд░рдХрд┐рдирд╛рд░

рдЕрдм рдордЬрд╝реЗрджрд╛рд░ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд▓рд┐рдПред

Webcam_ipt.cgi рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ /home/www/mysite.ru/ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдбрд╛рд▓реЗрдВ

#touch /home/www/mysite.ru/webcam_ipt.cgi
#chmod 755 / home/www/mysite.ru/webcam_ipt.cgi

Webcam_ipt.cgi рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА:

 #!/usr/bin/perl $ENV{PATH} = "/usr/bin"; foreach $arg_ip (@ARGV){ if ($arg_ip =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/){ $arg_ip =~ /(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/; $ip_on = "$1.$2.$3.$4"; system("/sbin/iptables -A Motion-Port-INPUT -p tcp -m state -m tcp -s $ip_on --dport 8081 --state NEW -j ACCEPT"); } } 

рдЗрд╕рдХреЗ рдмрд╛рдж, рдЬрдм webcam.cgi рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ webcam_ipt.cgi рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рд╣рдо рдлрд╛рд░реНрдо рдореЗрдВ webcam.cgi рдлрд╝рд╛рдЗрд▓ рд▓рд╛рддреЗ рд╣реИрдВ:

 #!/usr/bin/perl $ENV{PATH} = "/usr/bin"; $ip_for_ipt = "$ENV{'REMOTE_ADDR'}"; system("/home/www/mysite.ru/webcam_ipt.cgi $ip_for_ipt"); print "Content-type: text/html \n\n"; print <<HTML; <html> <head> <title>  -  </title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> </head> <body> <center> <img src="http://mysite.ru:8081"> </center> </body> </html> HTML 


рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рдХреНрд╖реНрдп рдХреЗ рдХрд░реАрдм рд╣реЛ рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрд╡рд╢реНрдпрдХ рд╣реИред WEB рд╕реЗ рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░реНрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

#yum perl-suidperl рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

рдЪреЛрдореЙрдб 4755 file.cgi рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп UID рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ

рдпрд╛рдиреА рддрд╛рдХрд┐ рд╣рдорд╛рд░реА webcam_ipt.cgi рдлрд╝рд╛рдЗрд▓ рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛рдИ рдЬрд╛рдП, рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

#chmod 4755 / home/www/mysite.ru/webcam_ipt.cgi

рдореИрдВ рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдкрд░ рдпрд╣ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд╣рдо рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ , mysite.ru/cgi-bin/webcam.cgi рджрд░реНрдЬ рдХрд░реЗрдВ , рдПрдХ рдЕрдкрд╛рдЪреЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЕрдиреБрд░реЛрдз рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рджрд░реНрдЬ рдХрд░реЗрдВ рдпрджрд┐ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╡реЗрдмрдХреИрдо рдореЗрдВ рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд▓рд┐рдкрд┐

$ ip_for_ipt = "$ ENV {'REMOTE_ADDR'}"; # рдЖрдИрдкреА рдПрдбреНрд░реЗрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдкреНрд░рдгрд╛рд▓реА ("/ рдШрд░ / www / mysite.ru / webcam_ipt.cgi $ ip_for_ipt"); # webcam_ipt.cgi рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЖрдИрдкреА рдкрддрд╛ рд╣реИ

рдЗрд╕рдХреЗ рдмрд╛рдж, webcam_ipt.cgi рдлрд╝рд╛рдЗрд▓ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рд╛рдкреНрдд IP рдкрддреЗ рдХреЛ iptables рдХрдорд╛рдВрдб рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рд╛рдкреНрдд IP рдкрддреЗ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯ 8081 рдХреЛ рдЦреЛрд▓рддрд╛ рд╣реИред

рдирд┐рдпрдо рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкреЛрд░реНрдЯ рдЦреБрд▓рд╛ рд╣реИ, рдФрд░ webcam.cgi рдлрд╝рд╛рдЗрд▓ mysite.ru:8081 рд╕реЗ рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рдбреНрд░рд╛рдЗрд╡ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреА рд╣реИ

рдЕрдм рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдкреЛрд░реНрдЯ рдмрдВрдж рд╣реИред рд╣рдо рдЗрд╕реЗ рдмрд╕ рдФрд░ рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рдХрд░рддреЗ рд╣реИрдВ, рдПрдВрдЯреНрд░реА * * * * * рд░реВрдЯ / sbin / iptables -F Motion-Port-INPUT> / dev / null рдХреЛ crontab рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ

#echo "* * * * * рд░реВрдЯ / sbin / iptables -F Motion-Port-INPUT> / dev / null" >> >> / etc / crontab

рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ iptables рдХрдорд╛рдВрдб рдореЛрд╢рди-рдкреЛрд░реНрдЯ-INPUT рдЪреЗрди рдореЗрдВ рд╕рднреА рдЯреЗрдмрд▓ рдирд┐рдпрдореЛрдВ рдХреЛ рд╕рд╛рдл рдХрд░ рджреЗрдЧрд╛ рдФрд░ рдкреЛрд░реНрдЯ 8081 рдПрдХ рдорд┐рдирдЯ рдХреЗ рдмрд╛рдж рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдЬрдВрдЬреАрд░реЛрдВ рдХреЗ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдФрд░ рдЙрдирдореЗрдВ / etc / sysconfig / iptables рдХреЗ рдирд┐рдпрдо:

 *filter :FORWARD ACCEPT [0:0] :INPUT ACCEPT [0:0] :Motion-Port-INPUT - [0:0] :RH-Firewall-1-INPUT - [0:0] :OUTPUT ACCEPT [0:0] ###  Motion-Port-INPUT -A INPUT -j Motion-Port-INPUT ### ###  RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m tcp -m state --dport 21 --state NEW -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m tcp -m state --dport 22 --state NEW -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state -m tcp --dport 80 --state NEW -j ACCEPT -A INPUT -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -j REJECT ### COMMIT 

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


All Articles