Добрый час.
Помогите с настройкой squid в режиме внешнего прокси.
Т.е. есть сервер который имеет доступ в интернет, внешний IP и доменное имя.
Хочется установить на этом сервере squid что бы в настройках интернет браузера из любой другой в сети можно было указать этот сервер как проксю и ходить в интернет через него.
Пока что установил squid.
Открыл 444 порт.
iptables -I INPUT -p tcp --dport 444 -j ACCEPT
В конфиге squid.conf написал:
http_port 444
http_access allow all
Проверил порт из другой сети — открыт.
Но если в браузере (фаерфокс) в качестве прокси указать эту машину и порт, то не работает.
Хотелось бы сделать это быстро и один раз, конфиги очень долго читать, но если ответа не найду придется потратить на это время.
19.06.12 09:45: Перенесено модератором из 'О жизни' — Кодт
Здравствуйте, nen777w, Вы писали:
N>Добрый час. N>Помогите с настройкой squid в режиме внешнего прокси. N>Т.е. есть сервер который имеет доступ в интернет, внешний IP и доменное имя. N>Хочется установить на этом сервере squid что бы в настройках интернет браузера из любой другой в сети можно было указать этот сервер как проксю и ходить в интернет через него. N>Пока что установил squid. N>Открыл 444 порт. N>
N>iptables -I INPUT -p tcp --dport 444 -j ACCEPT
N>В конфиге squid.conf написал:
N>
N>http_port 444
N>http_access allow all
N>Проверил порт из другой сети — открыт. N>Но если в браузере (фаерфокс) в качестве прокси указать эту машину и порт, то не работает.
N>Хотелось бы сделать это быстро и один раз, конфиги очень долго читать, но если ответа не найду придется потратить на это время.
Насколько я помню, надо указать прокси и в IE(даже если будешь использовать только FF)
LLI>Насколько я помню, надо указать прокси и в IE(даже если будешь использовать только FF)
Не, такой проблемы нету.
Сейчас например в качестве прокси я использую putty с поднятой в нем проксей SOCK5 на 1080 и все работает отлично в FF.
Но проблема в том что я хочу разрешить ещё пару человек ходить через мой сервер в интернет и сообщать им для этого доступ к серверу по ssh не хочу.
Потому хочется специальной утилиты.
Т.е. у этих людей уже есть интернет, но там не все доступно, зато в этой сети есть открытые порты 443,444 и т.п.
Вот и хочется что бы они через свой интернет подключились к моему серверу который бы выполнял функции прокси.
Вот как то так.
Здравствуйте, nen777w, Вы писали:
N>Но если в браузере (фаерфокс) в качестве прокси указать эту машину и порт, то не работает.
Что в логах сквида?
Покажите весь конфиг. Может где-то выше http_access allow all срабатывает deny.
Ну и анализировать сниффером, что происходит при попытке соединения.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
N>>Но если в браузере (фаерфокс) в качестве прокси указать эту машину и порт, то не работает. ДД>Что в логах сквида?
Не пустой только cache.log Я сейчас для проверки запустил squid на 21 порту, потому что он 100% открыт из этой сети.
Скрытый текст
[q]
cache.log 2338/2338 100%
2012/06/18 17:12:45| Starting Squid Cache version 2.7.STABLE9 for mipsel-unknown-linux-gnu...
2012/06/18 17:12:45| Process ID 443
2012/06/18 17:12:45| With 1024 file descriptors available
2012/06/18 17:12:45| Using poll for the IO loop
2012/06/18 17:12:45| Performing DNS Tests...
2012/06/18 17:12:45| Successful DNS name lookup tests...
2012/06/18 17:12:45| DNS Socket created at 0.0.0.0, port 45079, FD 6
2012/06/18 17:12:45| Adding nameserver 193.22.84.7 from /etc/resolv.conf
2012/06/18 17:12:45| Adding nameserver 193.22.84.3 from /etc/resolv.conf
2012/06/18 17:12:45| logfileOpen: opening log /opt/var/squid/logs/access.log
2012/06/18 17:12:45| Unlinkd pipe opened on FD 11
2012/06/18 17:12:45| Swap maxSize 102400 + 8192 KB, estimated 8507 objects
2012/06/18 17:12:45| Target number of buckets: 425
2012/06/18 17:12:45| Using 8192 Store buckets
2012/06/18 17:12:45| Max Mem size: 8192 KB
2012/06/18 17:12:45| Max Swap size: 102400 KB
2012/06/18 17:12:45| logfileOpen: opening log /opt/var/squid/logs/store.log
2012/06/18 17:12:45| Rebuilding storage in /opt/var/squid/cache (DIRTY)
2012/06/18 17:12:45| Using Least Load store dir selection
2012/06/18 17:12:45| Set Current Directory to /opt/var/squid/cache
2012/06/18 17:12:45| Loaded Icons.
2012/06/18 17:12:45| Accepting proxy HTTP connections at 0.0.0.0, port 21, FD 13.
2012/06/18 17:12:45| Accepting ICP messages at 0.0.0.0, port 3130, FD 14.
2012/06/18 17:12:45| WCCP Disabled.
2012/06/18 17:12:45| Ready to serve requests.
2012/06/18 17:12:47| Done reading /opt/var/squid/cache swaplog (0 entries)
2012/06/18 17:12:47| Finished rebuilding storage from disk.
2012/06/18 17:12:47| 0 Entries scanned
2012/06/18 17:12:47| 0 Invalid entries.
2012/06/18 17:12:47| 0 With invalid flags.
2012/06/18 17:12:47| 0 Objects loaded.
2012/06/18 17:12:47| 0 Objects expired.
2012/06/18 17:12:47| 0 Objects cancelled.
2012/06/18 17:12:47| 0 Duplicate URLs purged.
2012/06/18 17:12:47| 0 Swapfile clashes avoided.
2012/06/18 17:12:47| Took 1.5 seconds ( 0.0 objects/sec).
2012/06/18 17:12:47| Beginning Validation Procedure
2012/06/18 17:12:47| Completed Validation Procedure
2012/06/18 17:12:47| Validated 0 Entries
2012/06/18 17:12:47| store_swap_size = 0k
2012/06/18 17:12:48| storeLateRelease: released 0 objects
[q]
ДД>Покажите весь конфиг. Может где-то выше http_access allow all срабатывает deny.
Сделал поиск по конфигу раскоментаренная срочка которая разрешает все, только моя. ДД>Ну и анализировать сниффером, что происходит при попытке соединения.
Я не админ к сожалению, но попробую разобраться.
N>>Сделал поиск по конфигу раскоментаренная срочка которая разрешает все, только моя.
ДД>Закомментирована ли строчка из дефолтового конфига: ДД>
ДД>http_access deny CONNECT !SSL_ports
ДД>
ДД>?
Да.
ДД>В моем конфиге сквида, который работает как reverse proxy, это единственное отличие от дефолтового.
Т.е. у вас он работает также как и я хочу что бы он работал у меня?
Этот режим называется reverse proxy ?
Может запускать его как-то нужно по особенному?
Меня смущает вот это в его логе:
2012/06/18 17:12:45| Accepting proxy HTTP connections at 0.0.0.0, port 21, FD 13.
2012/06/18 17:12:45| Accepting ICP messages at 0.0.0.0, port 3130, FD 14.
Здравствуйте, nen777w, Вы писали:
N>Т.е. у вас он работает также как и я хочу что бы он работал у меня?
Да, поднимал его, чтобы иметь возможность извне заходить на внутренние сайты.
N>Этот режим называется reverse proxy ?
Не совсем, но близко. Точного определения термина сам не особо знаю
N>Может запускать его как-то нужно по особенному?
Да нет, стандартным способом.
N>Меня смущает вот это в его логе: N>
N>2012/06/18 17:12:45| Accepting proxy HTTP connections at 0.0.0.0, port 21, FD 13.
Здесь все нормально.
N>
N>2012/06/18 17:12:45| Accepting ICP messages at 0.0.0.0, port 3130, FD 14.
Это для взаимодействия с другими прокси. В принципе, в данной ситуации не нужно, но и мешать не должно. Чтобы отключить, нужно закомментировать icp_port или поставить icp_port 0.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
N>>Не пустой только cache.log ДД>Хотя если access.log пустой, то скорее всего причина в фаерволе.
ДД>Для начала посмотреть, что происходит на входящем интерфейсе сервера со сквидом: ДД>
ДД>tcpdump -i eth0 tcp port 444
ДД>
ДД>Где eth0 — интерфейс с внешним адресом, 444 — порт, на котором работает сквид.
Зашел на свой роутер. Глянул через ifconfig -a внешний ip имеет ppp0
[root@RTN16 root]$ tcpdump -i ppp0 tcp port 21
tcpdump: packet printing is not supported for link type LINUX_SLL: use -w
[root@RTN16 root]$ tcpdump -w ppp0 tcp port 21
tcpdump: WARNING: eth0: no IPv4 address assigned
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
пробовал ещё так:
[root@RTN16 root]$ tcpdump -i eth0 tcp port 21
tcpdump: WARNING: eth0: no IPv4 address assigned
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
И больше ничего нету. Если попробовать с этой сети подключиться telnet-ом к моему серверу к 21 порту,
то тоже ничего не происходит а telnet просто не подключается.
Повторюсь на всякий сл. Сейчас для испытаний выбрал 21 порт так как если запустить на сервере ftp-сервер то с этой сети к нему можно подключиться без проблем. Т.е. если я правильно понимаю он не закрыт в этой сети.
Здравствуйте, nen777w, Вы писали:
N>[q] N>[root@RTN16 root]$ tcpdump -i ppp0 tcp port 21 N>tcpdump: packet printing is not supported for link type LINUX_SLL: use -w
libpcap не установлена. С ней должно работать.
N>И больше ничего нету. Если попробовать с этой сети подключиться telnet-ом к моему серверу к 21 порту, N>то тоже ничего не происходит а telnet просто не подключается.
N>Повторюсь на всякий сл. Сейчас для испытаний выбрал 21 порт так как если запустить на сервере ftp-сервер то с этой сети к нему можно подключиться без проблем. Т.е. если я правильно понимаю он не закрыт в этой сети.
Т.е. ftp-клиент подключается успешно, а telnet — нет? Это странно. Возможно, где-то стоит прозначный ftp-прокси.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
N>>[root@RTN16 root]$ tcpdump -i ppp0 tcp port 21
N>>tcpdump: packet printing is not supported for link type LINUX_SLL: use -w
ДД>libpcap не установлена. С ней должно работать.
Только что доустановил.
Та же фигня или lpacap отдельно запускать нужно?
N>>И больше ничего нету. Если попробовать с этой сети подключиться telnet-ом к моему серверу к 21 порту, N>>то тоже ничего не происходит а telnet просто не подключается.
N>>Повторюсь на всякий сл. Сейчас для испытаний выбрал 21 порт так как если запустить на сервере ftp-сервер то с этой сети к нему можно подключиться без проблем. Т.е. если я правильно понимаю он не закрыт в этой сети.
ДД>Т.е. ftp-клиент подключается успешно, а telnet — нет? Это странно. Возможно, где-то стоит прозначный ftp-прокси.
Не, не вы меня не правильно поняли. Я о том что из этой сети (из которой я хочу сделать доступ) 21 порт открыт и на сервере (куда я хочу сделать доступ) открыт, т.е. если на сервере запустить ftp-сервер, то отсюда телнетом к нему подключение происходит.
А вот если запустить squid на 21 порту то подключения не получается.
Может tcpdump какой-то устаревший Если на сервере есть иксы, попробуйте wireshark.
N>Не, не вы меня не правильно поняли. Я о том что из этой сети (из которой я хочу сделать доступ) 21 порт открыт и на сервере (куда я хочу сделать доступ) открыт, т.е. если на сервере запустить ftp-сервер, то отсюда телнетом к нему подключение происходит. N>А вот если запустить squid на 21 порту то подключения не получается.
netstat -ntpl (запускать под рутом) вообще squid показывает? Если да, то Local Address у него 0.0.0.0?
Локально, на одном и том же сервере соединиться телнетом со сквидом получается?
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
ДД>Может tcpdump какой-то устаревший Если на сервере есть иксы, попробуйте wireshark.
Да это собственно не полноценный сервер. Это роутер RT-N16, но в качестве домашнего сервера (wi-fi, iptv, torrent, samba, storage) вполне годится.
N>>Не, не вы меня не правильно поняли. Я о том что из этой сети (из которой я хочу сделать доступ) 21 порт открыт и на сервере (куда я хочу сделать доступ) открыт, т.е. если на сервере запустить ftp-сервер, то отсюда телнетом к нему подключение происходит. N>>А вот если запустить squid на 21 порту то подключения не получается. ДД>netstat -ntpl (запускать под рутом) вообще squid показывает? Если да, то Local Address у него 0.0.0.0?
Похоже да.
ДД>Локально, на одном и том же сервере соединиться телнетом со сквидом получается?
Да.
Скрытый текст
[root@RTN16 root]$ telnet 46.33.35.38 21
blah blah blah
HTTP/1.0 400 Bad Request
Server: squid/2.7.STABLE9
Date: Mon, 18 Jun 2012 19:08:58 GMT
Content-Type: text/html
Content-Length: 1177
X-Squid-Error: ERR_INVALID_REQ 0
X-Cache: MISS from RTN16
Via: 1.0 RTN16:21 (squid/2.7.STABLE9)
Connection: close
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>ERROR: The requested URL could not be retrieved</TITLE>
<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
</HEAD><BODY>
<H1>ERROR</H1>
<H2>The requested URL could not be retrieved</H2>
<HR noshade size="1px">
<P>
While trying to process the request:
<PRE>
blah blah blah
</PRE>
<P>
The following error was encountered:
<UL>
<LI>
<STRONG>
Invalid Request
</STRONG>
</UL>
<P>
Some aspect of the HTTP Request is invalid. Possible problems:
<UL>
<LI>Missing or unknown request method
<LI>Missing URL
<LI>Missing HTTP Identifier (HTTP/1.0)
<LI>Request is too large
<LI>Content-Length missing for POST or PUT requests
<LI>Illegal character in hostname; underscores are not allowed
</UL>
<P>Your cache administrator is <A HREF="mailto:webmaster">webmaster</A>.
<BR clear="all">
<HR noshade size="1px">
<ADDRESS>
Generated Mon, 18 Jun 2012 19:08:58 GMT by RTN16 (squid/2.7.STABLE9)
</ADDRESS>
</BODY></HTML>
Connection closed by foreign host
Может ещё каких-то открытых портов не хватает?
И ещё вопрос. Я вот сейчас в домашней сети. Но надо как-то настраивать и тестировать этот squid, есть ли какой то сервис типа web-telneta?
Здравствуйте, nen777w, Вы писали:
N>Может ещё каких-то открытых портов не хватает?
Нет, одного порта, который слушает сквид, должно быть достаточно.
N>И ещё вопрос. Я вот сейчас в домашней сети.
О, а из домашней сети браузер и телнет соединяются со сквидом?
N>Но надо как-то настраивать и тестировать этот squid, есть ли какой то сервис типа web-telneta?
Если дело не в фаерволе из-за привязки ко входящему интерфейсу, то достаточно из домашней сети соединяться на внешний адрес.
Из сервисов вот нагуглил ping.eu, наверно, и другие есть.
N>Да это собственно не полноценный сервер. Это роутер RT-N16, но в качестве домашнего сервера (wi-fi, iptv, torrent, samba, storage) вполне годится.
Для полноты картины все-таки нужно смотреть полный конфиг сквида и состояние iptables, в том числе таблицы nat.
Кстати, может быть вариант, что по умолчанию порт закрыт фаерволом, стартовые скрипты ftp и других штатных сервисов разрешают свой порт при запуске, а стартовый скрипт сквида этого не делает. Чтобы проверить, нужно сравнить состояние iptables когда запущен ftp и когда запушен squid.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)