рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХреБрдЫ рдХрд░рд┐рдпреЛ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЕрд░реНрдерд╛рддреН рдкреНрд░рд╛рдзрд┐рдХрд░рдг
рдкрд╛рд░рджрд░реНрд╢реА рдореЛрдб рдореЗрдВ рд╕реНрдХреНрд╡реАрдб рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ред рдпрд╣ рдХрд╛рдлреА рд╕рд░рд▓ рдФрд░ рд╣реИ
рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХрдИ рд▓реЗрдЦ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╛рд░рджрд░реНрд╢реА рдореЛрдб рдореЗрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдереА
(рдкрд╛рд░рджрд░реНрд╢реА рдкреНрд░реЙрдХреНрд╕реА) рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ
рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдореИрдВрдиреЗ рдкрд╛рд░рджрд░реНрд╢реА рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдореИрдВрдиреЗ рд╕рднреА рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рд╡рд╣ рдпрд╣ рд╣реИред
рд▓реЗрдХрд┐рди рдЬрдм рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рдХрдВрдкреНрдпреВрдЯрд░ рд╣реИрдВ рдФрд░ рд╕рднреА рдХреЛ рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдкрдВрдЬреАрдХреГрдд рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ
рдЕрд╡рд╕рд░ / рд╕рдордп, рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рд╕рдорд╛рдзрд╛рди рддрд▓рд╛рд╢рдирд╛ рд╣реИред рдПрдХ рд╕рдорд╛рдзрд╛рди рд╕реНрдХреНрд╡рд┐рдб + PHP + NAT рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реИред
рдЬрд┐рд╕ рдкреНрд░рдгрд╛рд▓реА рдкрд░ рдпрд╣ рд╕рдм рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдмрд╛рдж рдореЗрдВ рдЙрдмрдВрдЯреВ 11.04 рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ред
рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ: MySQL, PHP5, Apache2, iptables, рд╡рд┐рджреНрд░реВрдк
apt-get install squid mysql-server mysql-client php5 apache2
рд╕реНрдХреНрд╡реАрдб рдореЗрдВ рдкрд╛рд░рджрд░реНрд╢реА рдореЛрдб рдЪрд╛рд▓реВ рдХрд░реЗрдВ:
nano /etc/squid/squid.conf
# NETWORK OPTIONS
http_port 192.168.0.1:3128 transparent
рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ:
echo "1" > /proc/sys/net/ipv4/ip_forward
IPtables рдореЗрдВ NAT рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
рд╣рдо рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдореЗрдВ рдкреЛрд░реНрдЯ 80 рд▓рдкреЗрдЯрддреЗ рд╣реИрдВ:
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.1:80
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ /etc/php5/apache2/php.ini рдЬреЛрдбрд╝реЗрдВ:
extension=pdo.so
extension=pdo_mysql.so
рдЕрдЧрд▓рд╛, рд╣рдо рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдБ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣рдорд╛рд░реЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрдВрдЧреЗ
mysql -u root -p
CREATE DATABASE authphp CHARACTER SET utf8;
рд╣рдо рдирдП рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВ:
\r authphp
рд▓реЙрдЧрд┐рди рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдлрд╝реАрд▓реНрдб рдХреЗ рд╕рд╛рде рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдВ
CREATE TABLE User (login CHAR(20), password CHAR(20));
рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдЬреЛрдбрд╝реЗрдВ
INSERT INTO User VALUES ('user','qwerty');
Mysql рдХрдВрд╕реЛрд▓ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ
\q
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдордиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдпрд╛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛" рдХреЛ рдкрд╛рд╕рд╡рд░реНрдб "рдХреНрд╡рд░реНрдЯреА" рдХреЗ рд╕рд╛рде рдкреЗрд╢ рдХрд┐рдпрд╛
рдЗрд╕рдХреЗ рдмрд╛рдж рдЦреБрдж php рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдмрд╛рд░реА рдЖрдИ, рдЬреЛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдПрдЧреА
рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ RedBeanPHP рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬрд┐рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯIndex.php рдлрд╝рд╛рдЗрд▓ рд╕рд╛рдордЧреНрд░реА
<?php
require('rb.php');
$ip = getenv ("REMOTE_ADDR");
R::setup('mysql:host=localhost;dbname=authphp','root','qwerty');
if( $user = R::findOne('User',' login = ? and password = ?',
array( $_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'] ) )
)
{
header('Location: next.html');
system("sudo iptables -t nat -D PREROUTING -s 192.168.0.0/24 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.1:80");
system("sudo iptables -t nat -D PREROUTING -s $ip -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128");
system("sudo iptables -t nat -A PREROUTING -s $ip -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128");
system("sudo iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.1:80");
exit(0);
}
$title = "Squid Server";
{
header('WWW-Authenticate: Basic realm="'.$title.'"');
header('HTTP/1.0 401 Unauthorized');
die("Otkaz");
}
?>
Hext.html рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА
META HTTP-EQUIV="Refresh" CONTENT="0; URL=http://google.ru"
META "<" рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ URL = http: //google.ru ""> "
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рддрдХ рдкрд╣реБрдВрдЪ рдЪрд╛рд╣рддрд╛ рд╣реИ, рд╢реБрд░реБрдЖрдд рд╕реЗ рдПрдХ рд╕рд░реНрд╡рд░ рдкрд░ рд▓рдкреЗрдЯрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ
php рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдЕрдкрдирд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рджрд░реНрдЬ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдирд┐рдпрдо рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВ
iptables рдореЗрдВ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреЛрд░реНрдЯ 80 рдкреЛрд░реНрдЯ 3128 рдкрд░ рд╕реНрдХреНрд╡реАрдб рдореЗрдВ рд▓рдкреЗрдЯрд╛ рдЧрдпрд╛ рд╣реИ
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╕рдм рд╣реИ, рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЖрдк рд╕реБрдВрджрд░рддрд╛ рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ
рдХреЗрд░рд┐рдпреЛ рдХреЗ рд╕рдорд╛рди, рдЖрдк рдПрдХ рдШрдВрдЯреЗ рдХреЗ рдмрд╛рдж рдХрдиреЗрдХреНрд╢рди рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ
рдФрд░ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреА рдорд╛рдВрдЧ рдХреАред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд░рдЪрдирд╛рддреНрдордХрддрд╛ рдХреЗ рд▓рд┐рдП рдХреНрд╖реЗрддреНрд░ рд╣реИрдВред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛, рд╕реМрднрд╛рдЧреНрдпред