Настройка соединения виртуальной машины FreeBSD с интернетом через squid proxy

Статья описывает какие сделать настройки, чтобы виртуальная машина FreeBSD( VmWare) ходила в инет, если винда, на которой стоит фришка ходит в инет через squid proxy сервер(т.е. кроме самого proxy надо прописывать и выданный для инета логин и пароль).

Входные данные из Windows:

a)ipconfig \all
DNS = 10.1.5.228
b)Берем настройки из Vmware
Вкладка NAT
Записываем
Gateway IP adress =192.168.254.2
это маршрутизатор defaultrouter ( для /etc/rc.conf)
c)Получить адрес прокси сервера( это я получила из сохраненных паролей в мозиле — Инструменты -Настройка — Защита — Сохраненные пароли
http://10.1.5.249:3128)

Настройки Freebsd 7,0 (виртуальная машина)

Практически все конфигурационные файлы FreeBSD хранятся в папке /etc/

1. В файле /etc/rc.conf/ настраиваем IP-адрес, который хотим получать и адрес маршрутизатора
Прописываем IP-адрес в строчке ifconfig_le0="inet 192.168.254.3 netmask 255.255.255.0"
Прописываем адрес маршрутизатора в строчке defaultrouter="192.168.254.2".
defaultrouter и netmask получаем из значений:

IP адрес какой хотим получать , например, прибавляем к defaultrouter 1.
Получаем примерно следующее:

# cat ./rc.conf
hostname="freeserver"
ifconfig_le0="inet 192.168.254.3 netmask 255.255.255.0"
defaultrouter="192.168.254.2"
gateway_enable="YES"
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_msp_queue_enable="NO"
inetd_enable="NO"
keymap="ru.koi8-r"
linux_enable="YES"
sshd_enable="YES"
moused_enable="YES"
apache22_enable="YES"
mysql_enable="YES"

2. Задаем список серверов имен в файле /etc/resolv.conf
В этом файле необходимо в качестве серверов имен (nameserver) прописать те сервера, которые выдает в винде команда ipconfig \all.
Далее выполнить команду (для своего DNS сервера) :

# echo "nameserver 10.1.5.228" >> /etc/resolv.conf

Поправить строчку в /etc/resolv.conf "search localdomain" на "search domainname.ru", где domainname.ru - имя вашего домена (например, domain.com).
Получаем примерно следующее:

# cat ./resolv.conf
search domainname.ru
nameserver 192.168.254.2
nameserver 10.1.5.228

3. В файле /etc/hosts сопоставляем IP-адрес виртуальной машины с её доменным именем.
Делаем навсякий случай копию:

# cp /etc/hosts /etc/hosts_11092008

Как выглядит исходное сопоставление IP-адресов и имен хостов :

::1 localhost localhost.my.domain
127.0.0.1 localhost localhost.my.domain
192.168.138.3 freeserver freeserver.my.domain

Нам надо заменить везде my.domain на domainname.ru (на ВАШЕ доменное имя)
Должно получиться следующее:

# cat ./hosts
...
#
::1 localhost localhost.domainname.ru
127.0.0.1 localhost localhost.domainname.ru
192.168.138.3 freeserver freeserver.domainname.ru
#
...

4. Теперь настраиваем параметры доступа к прокси серверу. Необходимо добавить следующие переменные окружения в файл /root/.cshrc— для чтобы переменные окружения после перезагрузки были корректными:

setenv HTTP_PROXY http://login:password@10.1.5.249:3128
setenv http_proxy http://login:password@10.1.5.249:3128
setenv FTP_PROXY http://login:password@10.1.5.249:3128
setenv ftp_proxy http://login:password@10.1.5.249:3128
setenv NO_PROXY http://login:password@10.1.5.249:3128
setenv no_proxy http://login:password@10.1.5.249:3128
setenv FETCH_CMD "/usr/bin/fetch -ARrvp -T 10"

где login и password — логин и пароль для входа в инет через прокси сервер, а в конце IP - адрес этого прокси сервера( к примеру его я нашла в мозиле как описано выше).

5. Настраиваем профили /root/.profile и /etc/profile
Навсякий случай также прописываем переменные окружения в профилях своего пользователя.Добавляю следующие строчки в конец:

HTTP_PROXY=http://login:password@10.1.5.249:3128
export HTTP_PROXY
http_proxy=http://login:password@10.1.5.249:3128
export http_proxy
FTP_PROXY=http://login:password@10.1.5.249:3128
export FTP_PROXY
ftp_proxy=http://login:password@10.1.5.249:3128
export ftp_proxy
NO_PROXY=http://login:password@10.1.5.249:3128
export NO_PROXY
no_proxy=http://login:password@10.1.5.249:3128
export no_proxy

6. Проверяем конфигурацию ftp (/usr/bin/ftp):

# ftp
ftp> set
anonpass root@
ftp_proxy http://login:password@10.1.5.249:3128
http_proxy http://login:password@10.1.5.249:3128
no_proxy http://login:password@10.1.5.249:3128
pager more
prompt ftp>
rprompt
ftp>

Проверка пингов
ping 10.1.5.151 — пропинговать виндовую машину(на которой Vmware c FreeBSD)
ping 10.1.5.249 — пропинговать прокси сервер
если все нормально рестартоваться

7. Рестарт FreeBSD

# shutdown -r now

8. Проверка, что инет появился на следующих примерах:

# cd /usr/ports/misc/mc; make install
# fetch http://www.indostan.ru/indiya/foto-video/2855/4123_1.jpg
# fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/ISO-IMAGES/7.0/CHECKSUM.MD5
# ftp ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/7.0/CHECKSUM.MD5
# perl -MCPAN -e 'install «GD»'

PS
Бывает по какой-то причине wget не работает и закачка модулей с помощью CPAN тоже. Ниже следует пример, как заставить работать CPAN через curl, а не через wget.
Настройка CPAN чтобы быстро устанавливались модули
Устанавливаем модуль Curl:

# cd usr/ports;make search name="curl"
# cd /usr/ports/ftp/curl;make install clean

Создаем файл /root/.curlrc. В него прописываем:

# cat /root/.curlrc
-x 10.1.5.249:3128
-U login:pass
#

В папке /root/.cpan/ создаем файл CPAN/MyConfig.pm и прописываем туда :

# cat /root/.cpan/CPAN/MyConfig.pm
$CPAN::Config = {
'wget' => q[/usr/local/bin/curl],
};
1;
__END__
#

Меняем файлу /usr/local/lib/perl5/5.8.8/CPAN.pm атрибуты командой chmod 755 чтобы в него можно было записывать. Находим строчку(командой :/wget) и меняем её:

...
} elsif ($f eq "wget"){
$src_switch = "";#before: $src_switch = " -O -";
}
....

После этого на всякий случай еще раз сделала обновление конфигурации (все подхватилось корректно и wget тоже):

# perl -MCPAN -e "shell"
cpan> o conf init
...
Where is your wget program? [/usr/local/bin/curl]
....

После этого перезагрузилась и загрузка модулей пошла.