вторник, 27 марта 2012 г.

Ноутбуки Asus и Ubuntu 10.04

Попался как то в руки такой себе замечательный ноут ASUS K50C.
Ubuntu 10.04 лягла на него "наура". Собсна, а что там такого?! Но без пост-исталяционных косяков не обошлось.

Поковырявшись в интернетах, обнаружил, что ASUS не дружит с UBUNTU. Т.е. даже на сайте производителя так и заявляют - бла, бла, бла только "mast die" поддерживается и все тут.

После установки ubuntu 10.04 поймал проблемы с видео и сетью.

Сеть как бы была... Интерфейс поднимался. Таблица маршрутизации рисовалась. Сам себя пинговал. Иногда, даже еще и к другим тазикам пинг пролазил. Но полноценной работы сети не наблюдалось.

С видео наблюдались такие глюки:
При загрузке, на моменте старта grup2, изображение начинало дрожать и прыгать. При появлении экрана приглашения в систему изображение стабилизировалось, но на грустном разрешении 800х600. При переключении в виртуальные консоли tty1...tty6 (ctrl+alt+f1...f6) - изображение опять хаотично дрожит и скачет ка при закрузке...

Проблемы с сетью лечатся так:

правим /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quite splash pci=nomsi"

Update`тим grup2 и ребутимся:
$sudo update-grub2
$sudo reboot

Урррра! Сеть появилась. Везде ходится свободно!



С видюхой пришлось поколдовать...

Баг с дрожанием изображения - "мечта эпилептика", лечится так:
$sudo bash
#echo blacklist vga16fb > /etc/modprobe.d/blacklist-vga16fb.conf
#update-initramfs -u
#reboot

Стало полегче - появились доступные виртуальные консоли!
Идем дальше...

Смотрим, что за видео адаптеры присутствуют в системе:
$lspci | grep VGA
на выхлопе имеем что то типа:
01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS] 771/671 PCIE VGA Display Adapter (rev 10)
Ога! Определились, что нам нужен sis`овский драйвер ([SiS] 771/671 PCIE)

Качаем от сюда драйвер под нашу ось... Распаковываем и добавляем в модуля:
$tar xzvf sis_drv_ubuntu1004_20100504.tar.gz
$cd sis_drv_ubuntu1004_20100504
$sudo cp sis_drv.* /usr/lib/xorg/modules

Драйвера подкинули. Генерим чистый конфиг Xorg`a:
переходим в виртуальную консоль - Ctrl+Alt+f1
$sudo service gdm stop
$sudo bash
#Xorg -configure
#mv xorg.conf.new /etc/X11/xorg.conf
Теперь правим этот конфиг под наши нужды. Просто добавим/поправим секцию Device так:
Section "Device"
     Identifier "Configured Video Device"
     Driver "sis"

     Option "UseTiming1366" "yes"
EndSection

Перезагружаемся. Вуаля!

Насладиться прелестями 3D эффектов к сожалению не удастся, ибо данный драйвер предназначен только для 2D, но прилично работать вполне позволяет.

вторник, 13 марта 2012 г.

Интернет сайт за NAT. Проброс сайта в локальной сети. Shorewall. Forwardings

Возникла такая вот задача:
Есть сервер в локальной сети (IP=192.168.0.1), на котором крутится интернет сайт. Есть шлюз в мир (eth0 IP=192.168.0.2), на котором установлен shorewall (настройка шлюза и shorewall), с постоянным IP-адресом (bb.bb.bb.bb) и зарезервированным доменным именем (www.mydomen.com). Необходимо: обеспечить возможность обращения к интернет сайту из "мира" и из локальной сети по доменному имени (www.mydomen.com).


С открытием и пробросом сайта в "мир" как бы проблем не возникло. Тут совсем все просто.
Разрешаем на shorewall`е интрент запросы:
 
$sudo mcedit /etc/shorewall/rules
 
ACCEPT              net          fw         tcp        www
or
WEB(ACCEPT)     net          fw 

И пробрасуем интернет запросы на наш сервер, где крутится сайт:
 
$sudo mcedit /etc/shorewall/rules
 
DNAT  net          loc:192.168.0.1         tcp        www

Собственно на этом все. Вуаля, доступ из мира разрешен!!!


А вот с доступом из локальной сети придется повозиться.
ВАЖНО!!! В интерфейсах необходимо добавить опцию routeback:
$sudo mcedit /etc/shorewall/interfaces
 
#ZONE INTERFACE BROADCAST OPTIONS
loc       eth0          detect         routeback  

Добавим правило маскарада:
$sudo mcedit /etc/shorewall/interfaces
 
#INTERFACE              SOURCE         ADDRESS          PROTO          PORT(S)
eth0:192.168.0.1       eth0              192.168.0.2      tcp               www

И, собственно, правило проброса в локальную сеть:
$sudo mcedit /etc/shorewall/rules
#ACTION     SOURCE       DEST             PROTO     DEST         SOURCE       ORIGINAL       RATE USER/ MARK
#                                                                    PORT         PORT (S)     DEST
DNAT          loc       loc:192.168.0.1      tcp         www           -               bb.bb.bb.bb

Если постоянный внешний IP-адрес отсутствует или по доменному имени резолвится несколько IP-адресов, то необходимо использовать параметры:
$sudo mcedit /etc/shorewall/params
 ETH1_IP=$(find_first_interface_address eth1) 
 
где eth1 - интерфейс, который смотрит в мир (ADSL например)

Тогда правило проброса будет выглядеть так:
$sudo mcedit /etc/shorewall/rules
#ACTION     SOURCE       DEST             PROTO     DEST         SOURCE       ORIGINAL       RATE USER/ MARK
#                                                                    PORT         PORT (S)     DEST
DNAT          loc       loc:192.168.0.1      tcp         www           -               $ETH1_IP


Теперь все ok! Mission complete :)

Более подробную инфу на буржуйском смотри тут:
http://shorewall.net/FAQ.htm#faq2
http://shorewall.net/FAQ.htm
http://shorewall.net/Documentation.html