squid - как внешний прокси
От: nen777w  
Дата: 18.06.12 10:44
Оценка:
Добрый час.
Помогите с настройкой 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: Перенесено модератором из 'О жизни' — Кодт
Re: squid - как внешний прокси
От: LLIMblrA Беларусь  
Дата: 18.06.12 11:01
Оценка:
Здравствуйте, 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)
Re[2]: squid - как внешний прокси
От: nen777w  
Дата: 18.06.12 11:20
Оценка:
LLI>Насколько я помню, надо указать прокси и в IE(даже если будешь использовать только FF)

Не, такой проблемы нету.
Сейчас например в качестве прокси я использую putty с поднятой в нем проксей SOCK5 на 1080 и все работает отлично в FF.
Но проблема в том что я хочу разрешить ещё пару человек ходить через мой сервер в интернет и сообщать им для этого доступ к серверу по ssh не хочу.
Потому хочется специальной утилиты.
Т.е. у этих людей уже есть интернет, но там не все доступно, зато в этой сети есть открытые порты 443,444 и т.п.
Вот и хочется что бы они через свой интернет подключились к моему серверу который бы выполнял функции прокси.
Вот как то так.
Re: squid - как внешний прокси
От: ДимДимыч Украина http://klug.org.ua
Дата: 18.06.12 13:34
Оценка:
Здравствуйте, nen777w, Вы писали:

N>Но если в браузере (фаерфокс) в качестве прокси указать эту машину и порт, то не работает.


Что в логах сквида?
Покажите весь конфиг. Может где-то выше http_access allow all срабатывает deny.
Ну и анализировать сниффером, что происходит при попытке соединения.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[2]: squid - как внешний прокси
От: nen777w  
Дата: 18.06.12 14:19
Оценка:
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.

Сделал поиск по конфигу раскоментаренная срочка которая разрешает все, только моя.

ДД>Ну и анализировать сниффером, что происходит при попытке соединения.

Я не админ к сожалению, но попробую разобраться.
Re[3]: squid - как внешний прокси
От: ДимДимыч Украина http://klug.org.ua
Дата: 18.06.12 14:46
Оценка:
Здравствуйте, nen777w, Вы писали:

N>Сделал поиск по конфигу раскоментаренная срочка которая разрешает все, только моя.


Закомментирована ли строчка из дефолтового конфига:
http_access deny CONNECT !SSL_ports

?

В моем конфиге сквида, который работает как reverse proxy, это единственное отличие от дефолтового.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[4]: squid - как внешний прокси
От: nen777w  
Дата: 18.06.12 14:57
Оценка:
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.

Re[3]: squid - как внешний прокси
От: ДимДимыч Украина http://klug.org.ua
Дата: 18.06.12 14:59
Оценка:
Здравствуйте, nen777w, Вы писали:

N>Не пустой только cache.log


Хотя если access.log пустой, то скорее всего причина в фаерволе.

N>Я не админ к сожалению, но попробую разобраться.


Для начала посмотреть, что происходит на входящем интерфейсе сервера со сквидом:
tcpdump -i eth0 tcp port 444

Где eth0 — интерфейс с внешним адресом, 444 — порт, на котором работает сквид.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[5]: squid - как внешний прокси
От: ДимДимыч Украина http://klug.org.ua
Дата: 18.06.12 15:08
Оценка:
Здравствуйте, 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.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[4]: squid - как внешний прокси
От: nen777w  
Дата: 18.06.12 15:12
Оценка:
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-сервер то с этой сети к нему можно подключиться без проблем. Т.е. если я правильно понимаю он не закрыт в этой сети.
Re[5]: squid - как внешний прокси
От: ДимДимыч Украина http://klug.org.ua
Дата: 18.06.12 15:32
Оценка:
Здравствуйте, 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-прокси.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[6]: squid - как внешний прокси
От: nen777w  
Дата: 18.06.12 15:40
Оценка:
N>>

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 порту то подключения не получается.
Re[7]: squid - как внешний прокси
От: ДимДимыч Украина http://klug.org.ua
Дата: 18.06.12 16:15
Оценка:
Здравствуйте, nen777w, Вы писали:

N>Та же фигня или lpacap отдельно запускать нужно?


Тогда странно. У меня тоже pppoe и траффик с ppp0 нормально дампися, указывая при этом:

listening on ppp0, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes.


Может tcpdump какой-то устаревший Если на сервере есть иксы, попробуйте wireshark.

N>Не, не вы меня не правильно поняли. Я о том что из этой сети (из которой я хочу сделать доступ) 21 порт открыт и на сервере (куда я хочу сделать доступ) открыт, т.е. если на сервере запустить ftp-сервер, то отсюда телнетом к нему подключение происходит.

N>А вот если запустить squid на 21 порту то подключения не получается.

netstat -ntpl (запускать под рутом) вообще squid показывает? Если да, то Local Address у него 0.0.0.0?
Локально, на одном и том же сервере соединиться телнетом со сквидом получается?
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[8]: squid - как внешний прокси
От: nen777w  
Дата: 18.06.12 19:12
Оценка:
N>>Та же фигня или lpacap отдельно запускать нужно?
ДД>Тогда странно. У меня тоже pppoe и траффик с ppp0 нормально дампися, указывая при этом:
ДД>

ДД>listening on ppp0, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes.

ДД>Может 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]$ netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:9091 0.0.0.0:* LISTEN 382/transmission-da
tcp 0 0 192.168.1.1:139 0.0.0.0:* LISTEN 376/smbd
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 214/httpd
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 531/(squid)
tcp 0 0 0.0.0.0:51413 0.0.0.0:* LISTEN 382/transmission-da
tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 221/dnsmasq
tcp 0 0 0.0.0.0:88 0.0.0.0:* LISTEN 319/udpxy
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 212/dropbear



ДД>Локально, на одном и том же сервере соединиться телнетом со сквидом получается?

Да.
  Скрытый текст

[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?
Re[9]: squid - как внешний прокси
От: ДимДимыч Украина http://klug.org.ua
Дата: 18.06.12 23:53
Оценка:
Здравствуйте, nen777w, Вы писали:

N>Может ещё каких-то открытых портов не хватает?


Нет, одного порта, который слушает сквид, должно быть достаточно.

N>И ещё вопрос. Я вот сейчас в домашней сети.


О, а из домашней сети браузер и телнет соединяются со сквидом?

N>Но надо как-то настраивать и тестировать этот squid, есть ли какой то сервис типа web-telneta?


Если дело не в фаерволе из-за привязки ко входящему интерфейсу, то достаточно из домашней сети соединяться на внешний адрес.
Из сервисов вот нагуглил ping.eu, наверно, и другие есть.

N>Да это собственно не полноценный сервер. Это роутер RT-N16, но в качестве домашнего сервера (wi-fi, iptv, torrent, samba, storage) вполне годится.


Для полноты картины все-таки нужно смотреть полный конфиг сквида и состояние iptables, в том числе таблицы nat.

Кстати, может быть вариант, что по умолчанию порт закрыт фаерволом, стартовые скрипты ftp и других штатных сервисов разрешают свой порт при запуске, а стартовый скрипт сквида этого не делает. Чтобы проверить, нужно сравнить состояние iptables когда запущен ftp и когда запушен squid.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[10]: squid - как внешний прокси
От: ДимДимыч Украина http://klug.org.ua
Дата: 18.06.12 23:55
Оценка:
ДД>Из сервисов вот нагуглил ping.eu, наверно, и другие есть.

Кстати, там есть и proxy checker.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.