28 марта 2009

Прозрачное проксирование для localhost

Прозрачное проксирование удобно тем, что нет необходимости изменять настройки браузера, особенно когда используется несколько браузеров. Также прозрачным проксированием удобно ограничивать посещение определенных сайтов. В этой заметке расскажу какие минимальные настройки необходимо сделать, чтобы организовать прозрачное проксирование на том же компьютере, где установлен прокси. В примере использована ОС Debian Etch, в качестве прокси используется Squid3.

Для начала необходимо установить Squid. Сделать это можно выполнив в командной строке:
sudo aptitude install squid3
После установки необходимо отредактировать кофигурационный файл Squid. Файл /etc/squid3/squid.conf для обеспечения прозрачного проксирования (режим transparent) на localhost минимально должен быть следующего содержания:
http_port 127.0.0.1:3128 transparent
icp_port 0
htcp_port 0
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
cache_dir ufs /var/spool/squid3 300 16 256
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

acl myip src <здесь ваш ip адрес>
http_access allow myip

http_access allow localhost
http_access deny all
http_reply_access allow all
icp_access deny all
htcp_access deny all
email_err_data off
error_directory /usr/share/squid3/errors/Russian-koi8-r
coredump_dir /var/spool/squid3
Жирным шрифтом выделены строки, которые обеспечат доступ с вашего IP адреса. Если IP адрес не указать, то получите сообщение о том, что доступ запрещен. Оригинальный конфиг Squid3 идет с коментариями и описаниями всех параметров, чтобы выделить уставноленные параметры в конфигурационном файле, нужно выполнить следующую команду:
grep -v "^#" /etc/squid3/squid.conf | sed -e '/^$/d'
После внесения изменений в конфигурационный файл Squid необходимо перезапустить Squid или указать Squid, чтобы он перечитал измененный файл. Для это нужно в командной строке выполнить:
sudo /etc/init.d/squid3 restart
или
sudo /etc/init.d/squid3 reload
На этом минимально необходимая настройка Squid в режиме transparent закончена. Теперь надо завернуть все обращения к порту http (tcp порт 80) на настроенный нами Squid (tcp порт 3128). Для этого надо внести изменения в таблицу nat утилиты iptables, выполнив в командной строке с привилегиями root:
iptables -t nat -A OUTPUT -p tcp --dport 80 -m owner ! --uid-owner proxy -j REDIRECT --to-port 3128
При установке Squid3 автоматически создается пользователь proxy. Прокси работает с правами этого пользователя. Мы указываем iptables перенаправлять все обращения на 80 порт от любого пользователя, кроме proxy на порт 3128. Теперь открываем браузер и пробуем выйти в интернет.

Чтобы убедится что вы работаете через Squid, посмотрите последние записи в его лог файле /var/log/squid3/access.log выполнив в командной строке c привилегиями root:
tail /var/log/squid3/access.log
Видим приблизительно следующий вывод:
1238221525.987 1513 172.25.55.195 TCP_MISS/200 3457 GET http://www.google.ru/ - DIRECT/72.14.203.104 text/html
Чтобы при пререзагрузке правило для iptables восстанавливалось автоматически, можно прописать его в файле /etc/rc.local. На этом минимальная настройка прозрачного проксирования закончена.

Читать дальше...

21 марта 2009

Работа Wi-Fi интерфейса в режиме Ad-Hoc c WPA

Режим Ad-Hoc позволяет взаимодействовать различным устройствам, через беспроводные интерфейсы, без наличия точки доступа (Access Point). Этот режим удобен например для организации домашней сети. В этой статье пойдет речь о том как настроить Wi-Fi интерфейс в режиме Ad-Hoc и обеспечить безопасность соединения используя WPA (Wi-Fi Protected Access) в среде Debian Lenny.

Сразу уточняю что настройки проводились на сетевой карте Intel Wireless 4965 AG. Если у вас другая wireless карта, то здесь вы можете найти информацию о необходимом драйвере для вашей карты.

Если вы не знаете какая wireless карта у вас, то чтобы это выяснить выполните в командной строке следующую команду:
lspci
Вывод команды покажет все PCI устройства в комьютере. Для карты на моем компьютере вывод команды следующий:
05:00.0 Network controller: Intel Corporation PRO/Wireless 4965 AG or AGN [Kedron] Network Connection (rev 61)
Если во время установки системы по каким-то причинам не был установлен драйвер для wireless карты, то это можно сделать выполнив следующую команду:
sudo aptitude install firmware-iwlwifi
Так как драйвер проприетарный то в /etc/apt/sources.list должна быть прописана секция non-free, т.е должна быть приблизительно такая строка:
deb http://ftp.de.debian.org/debian lenny main contrib non-free
После установки драйвера убеждаемся что он загружен, выполнив следующую команду:
lsmod | grep iwl
Наблюдаем следующий вывод:
iwl4965 92904 0
firmware_class 6816 2 pcmcia,iwl4965
iwlcore 23520 1 iwl4965
rfkill 5652 2 iwlcore
mac80211 139680 2 iwl4965,iwlcore
led_class 3908 1 iwlcore
cfg80211 21576 2 iwl4965,mac80211

Чтобы настроить wireless интерфейс надо установить пакеты wireless-tools и wpasupplicant, выполнив в командной строке:
sudo aptitude install wireless-tools wpasupplicant
После этого пропишем настройки Wi-Fi интерфейса со статическим IP адресом в /etc/network/interfaces следующим образом:
iface wlan0 inet static
address 172.16.0.1
netmask 255.255.255.0
wpa-ssid "HomeWireless"
wpa-mode 1
wpa-ap-scan 2
wpa-proto WPA
wpa-key-mgmt WPA-NONE
wpa-pairwise NONE
wpa-group TKIP
wpa-psk "supeRpasSworD"
Параметры wpa-ssid (идентификатор сети) и wpa-psk(ключ длиной от 8 до 63 ASCII символов ) указываете свои. Если не хотите чтобы ключ хранился открытым текстом, то можете сгенерировать шестнадцатеричный ключ выполнив в командной строке:
wpa_passphrase HomeWireless supeRpasSworD
получим следующий вывод:
network={
ssid="HomeWireless"
#psk="supeRpasSworD"
psk=ce041bd5192cd3e42aa6af59902d0236a51b0c40e7721705206d75e774aedf23
}
Полученной в предпоследней строке абракадаброй заменяем ключ прописанный открытым текстом, без кавычек.

После того как закончили настраивать интерфейс в /etc/network/interfaces, выполняем следующую команду:
sudo ifup wlan0
Теперь убедимся, что настройки вступили в силу выполнив следующую команду:
sudo iwconfig wlan0
Наблюдаем следующий вывод:
wlan0 IEEE 802.11 ESSID:"HomeWireless"
Mode:Ad-Hoc Frequency:2.412 GHz Cell: 82:F1:29:0D:52:F5
Tx-Power=15 dBm
Retry min limit:7 RTS thr:off Fragment thr=2352 B
Encryption key:CE04-1BD5-192C-D3E4-2AA6-AF59-902D-0236-A51B-0C40-E772-1705-A51B-0C40-E772-1705
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Настройки IP параметров для wireless интерфейса можно посмотреть выполнив следующую команду:
sudo ifconfig wlan0
и наблюдая такой вывод:
wlan0 Link encap:Ethernet HWaddr 00:13:e8:69:21:ed
inet addr:172.16.0.1 Bcast:172.16.0.255 Mask:255.255.255.0
inet6 addr: fe80::213:e8ff:fe69:21ed/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:21 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:2048 (2.0 KiB)
На этом настройка интерфейса закончена. Для взаимодействия с другими устройствами через wireless интерфейс, надо чтобы параметры wpa-ssid и wpa-psk на взаимодействующих устройствах были идентичные.

Читать дальше...

  © Blogger template Blue Surfing by Ourblogtemplates.com 2008

Наверх