Создание простого маршрутизатора на базе GNU/Linux.

Недавно столкнулся с проблемой настройки маршрутизатора на базе GNU/Linux, так как iptables я знаю довольно плохо. Итак немного почитав о этом фаерволе я таки нашёл несколько строчек с помощью которых можно реализовать выход клиентов через шлюз в глобальную сеть и сеть провайдера.
1.Итак, для начала необходимо установить GNU/Linux систему, я выбрал Ubuntu server. На этом этапе заострять внимание я не буду, так как эта тема хорошо освещена на многих ресурсах.

2.Настроить соединения с локальной сетью и VPN сервером (актуально для моей сети, но не критично для других типов подключения).
Желательно все настройки вводить непосредственно в конфигурационные файлы, для Ubuntu этот файл распологается тут : /etc/network/interfaces


auto lo
iface lo inet loopback

auto eth1
iface eth1 inet dhcp

auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0

lo – интерфейс локального лупбека, eth1 – интерфейс смотрящий в локальную сеть провайдера (настраивается по DHCP), eth0 – интерфейс смотрящий в вашу сеть (домашнюю или корпоративную).

3. Редактируем файл /etc/rc.local, дабавляем в него строки:


iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

Итак тут вам нужно поменять лишь имена ваших интерфейсов, в моём варианте происходит НАТинг всей локальной сети провайдера и VPN в мою локальную сеть (192.168.0.0/24).

4.Итак впринципе маршрутизатор готов к работе, но для улучшения быстродействия и удобства пользователей можете настроить кэширующий DNS сервер bind9. Итак установим сам демон:


sudo apt-get install bind9

5. 5.Правим файл /etc/resolv.conf и добавляем туда свои DNS


nameserver X.X.X.X
nameserver X.X.X.X

Перезагружаем сервер. Итак сервер готов к работе.

Для забывчивых людей Tasque и Remember the Milk

Так как я просто мега забывчивый человек, мне нужна была утилита, в которую можно было бы записывать, что мне нужно сделать и в какой день, причем с возможность использования не только дома, но и на работе. Для этого как нельзя лучше подошла утилита Tasque и онлайн планировщик Remember the Milk.

rtm Tasque

Tasque может записывать планируемые задачи в отдельный файл на системе, либо синхронизироваться с Remember the Milk и Evolution.

Установка в ubuntu
sudo aptitude install tasque

Чтобы не забывал ее запускать, добавил программу в автозагрузку. Теперь постоянно висит в трее и при каждом включении системы выдает, что мне нужно не забыть сегодня сделать.

Как узнать внешний IP из командной строки Linux

Если вы хотите узнать внешний IP адрес, полученный вашим роутером, из командной строки Linux, то достаточно найти в интернете сайт, который вернёт его на ваш запрос. Пример:

wget -O - -q icanhazip.com

Источник (eng).

Настройка шрифтов tkabber в ubuntu

После установки tkabber шрифты в нем отображается ужасно. Для исправления достаточно начать использовать Tk 8.5 вместо 8.4.

Установим tcl8.5 и tk8.5
sudo aptitude install tcl8.5 tk8.5
Затем выберем, что использовать, указав цифрой wish8.5
sudo update-alternatives --config wish
Есть 2 альтернатив, которые предоставляют `wish'.
Выбор Альтернатива
-----------------------------------------------
*+ 1 /usr/bin/wish8.4
2 /usr/bin/wish8.5
Нажмите enter, чтобы сохранить значение по умолчанию[*], или введите выбранное число: 2
Используется `/usr/bin/wish8.5' для предоставления `wish'.

Теперь можно перезапустить tkabber.

найдено на sovety.blogspot.com

Настройка IPTV Corbina.

Итак, есть сервер раздающий интернет. Для работы IPTV при включенном VPN соединении вам нужно прописать роутинг:


route add -net 172.16.16.0 netmask 255.255.255.0 gw (!ВАШ ШЛЮЗ!)
route add -net 224.0.0.0 netmask 240.0.0.0 dev (!АДАПТЕР ПОДКЛЮЧЁННЫЙ К СЕТИ КОРБИНА!)

Для того что-бы IPTV работал на компьютерах-«клиентах» находящихся за сервером вам понадобится igmpproxy.

Устанавливаем igmpproxy :

sudo apt-get install igmpproxy

Редактируем конфигурационный файл :

sudo nano /etc/igmpproxy.conf

Должно получиться примерно так :


##——————————————————
## Lan interface
##——————————————————
phyint eth0 upstream ratelimit 0 threshold 1
altnet 192.168.0.0/24
# altnet 10.0.0.0/8
# altnet 233.0.0.0/24
##——————————————————
## Corbina interface
##—————————————————–
phyint eth1 downstream ratelimit 0 threshold 1

Меняем название своих девайсов и подсеть для локалки.

И последний штрих , добавляем igmpproxy в автозагрузку удобным для вас способом, лично я добавил в rc.local строчку «igmpproxy».

Установка sulci бота в ubuntu 9.04

Sulci — это jabber бот от ermine. В настоящее время один из самых распространенных в конференциях jabber. Список команд можно просмотреть здесь.

Так как на официальном сайте sulci не доступен, можно скачать отсюда.

Первоначально для сборки потребуется установить некоторые пакеты (~35mb)

sudo aptitude install ocaml-native-compilers ocaml-findlib libocamlnet-ocaml libocamlnet-ocaml-dev ocaml-ulex libssl-ocaml-dev libcryptokit-ocaml-dev libgdbm-dev libsqlite3-ocaml-dev

Распаковываем бота, заходим в директорию с sulci и собираем

cd sulci.r318.src
make

Для работы бота потребуется словарь Mueller24.koi. Качаем его, например, отсюда

Директорию dict можно распаковать в папку с ботом, т.е. sulci.r318.src/sulci/

Затем переименуем файл sulci.conf.example в sulci.conf и настроим по своему усмотрению. Для того, чтоб бот запустился нужно не забыть изменить в sulci.conf путь до словаря /path/to/Mueller24.koi на dict/Mueller24.koi, т.е. указать именно тот путь путь куда поместили словарь.

Запускается бот так

cd sulci
./sulci

Если бот не запустился, то открываем report.log и смотрим, что ему мешает.

Windows Mobile PDA и Ubuntu 9.04

Итак имеем ubuntu 9.04, usb крэдл, кпк FSC LOOX N560 с прошивкой на WM6.0.

Задача заставить работать как можно больше =)

Подключаем реп для synce
Добавляем в /etc/apt/sources.list
deb http://ppa.launchpad.net/synce/ubuntu jaunty main
deb-src http://ppa.launchpad.net/synce/ubuntu jaunty main

Установим ключ
wget -q 'http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0xB152F042D246C25D' -O- | sudo apt-key add -

Для начала ставим synce-hal чтобы устройство определялось hal-oм и прочие утилиты для работы
sudo apt-get install synce-hal librra0-tools librapi2-tools

Ставим треевскую иконку
sudo apt-get install synce-trayicon

И расширение gvfs
sudo apt-get install synce-gvfs

Релогинимся. =)

Значок в трее показывает что девайс определился.
Файловый манагер работает.
Инфа о девайсе тоже.
http://smages.com/1c/68/1c68ea7899a248f41f918e67210cd92e.png.htm

Установка VMWare Server 2.0.1 в Ubuntu 9.04 x64

Рассмотрим виртуализацию на основе Vmware server 2.0.1.

Примечание.
Не работает одновременно с kvm.

Качаем его отсюда (требуется регистрация).
https://www.vmware.com/freedownload/p/download.php?product=server20

Там же берем серийный номер.

Распаковываем
tar xvfz VMware-server-2.0.1-156745.x86_64.tar.gz
Затем качаем патч
http://codebin.cotescu.com/vmware/vmware-server-install-script.tar.gz
Извлекаем содержимое в папку где лежит распакованный архив.
Собственно патч исправляет то что не собирался модуль vsock.

В качестве админа я добавил своего пользователя.

Подключаюсь к https://127.0.0.1:8333
Захожу под своим пользователем.
Описываю новые datastore
HDD — для хранения образов и машин.
CD — место где лежат образы ОС.

Дальше работаем.

Интернет так, как он есть на самом деле. Или web в консоли.

Не секрет для многих (я надеюсь), что всемирная сеть Internet предназначена в первую очередь для отображения, передачи и хранения информации. Ну и для общения. То, что мы сейчас наблюдаем в виде красивых картинок и всяческих флеш-баннеров — не более чем завлекаловка, обычно несущая в себе мало информации.
Не секрет, что многие отключают показ картинок, ограничивают показ рекламы и т.п., лишь бы не видеть всего это красочного разнообразия и сосредоточится на чтении того, что им действительно важно. И тут, как ни странно (а странно ли?), GNU/Linux снова предоставляет множество разнообразных вариантов решения. В частности, вместо громоздких программ для чтения www-страниц, почты и общалок, существует великое множество не менее функциональных консольных программ. Их использование также позволит убить еще одного зайца — потребление памяти.
Итак, краткий обзор тех, программ, которые я сам более менее активно использую:
1. Браузер. В Ubuntu использую elinks. Ставится и запускается очень просто sudo aptitude install elinks
elinks
На запрос адреса можно нажать Esc и потом «O», откроется окно настроек. Ну а дальше, как говорится, «сахар и молоко по вкусу».
2. Почта и новостник. Я лично использую web-интерфейс, предоставляемый сервисами Google, но никто не мешает мне использовать Alpine, почтовый клиент с поддержкой pop, smtp и nntp. Ставит и запускается так sudo aptitude install alpine
alpine

3. Ну и наконец одно и самых популярных — мессенжер. И тут вырывается…. да-да, тот самый Pidgin 🙂 Ну не совсем конечно, но близко. Программа называется Finch и она по функциональности полностью соответствует Pidgin и даже использует его настройки. Ставится и запускается также просто sudo aptitude install finch
finch

Сам я сейчас пользуюсь ею постоянно для общения. В том числе и открыв несколько конференций. Даже приведу пример для наглядности:

Внешний вид Finch
Внешний вид Finch
Читать далее «Интернет так, как он есть на самом деле. Или web в консоли.»

Linux & Lotus. Единство великих. Продолжение.

Вдохновившись статьей Скрипт автостарта в Ubuntu, я решил немного развить тему Linux & Lotus. Единство великих. и настроить автозагрузку сервера Domino при загрузке системы.
Ничего особо нового не придумаю, потому просто опишу кратко, что нужно сделать, чтобы сервер Lotus Domino запускался автоматически при загрузке системы в screen-сессии. Итак, начнем:
1 шаг: сделаем скрипт автозапуска, как в теме Скрипт автостарта в Ubuntu;
sudo nano /etc/init.d/autostart.script
2 шаг: вставим в него следующие строки
#!/bin/bash
screen -A -m -d -S domino su - notes -c "cd ~ && /opt/ibm/lotus/bin/server"

Данный скрипт запустит из-под рута сессию screen под названием «domino», зайдет по пользователем «notes» и выполнит запуск сервера.
3 шаг: сделаем исполняеемым файл скрипта и добавим его в автозагрузку
sudo chmod +x /etc/init.d/autostart.script
sudo update-rc.d autostart.script defaults 95

Вуаля, как говорят французы.
В итоге мы получаем ситуацию, при которой при загрузке системы автоматически запустится сервер. Сессия screen при этом запустится от имени рута, потому чтобы посмотреть результат запуска (там будет консоль сервера), то следует набрать команду sudo screen -r
P.S.: если кто подскажет, как правильно запустить сессию screen от имени локального пользователя, то буду благодарен.
Доб. 09.08.2009 г.
В результате опытной эксплуатации удалось выявить, что данный способ работает отлично в Ubuntu, но не срабатывает в OpenSUSE 10. В первую очередь из-за отсутствия утилиты update-rc, во-вторую — из-за несколько другого механизма автозагрузки. Итак, если у кого нужно сделать автозагрузку сервер Domino в OpenSUSE, то для Вас шаг № 3 будет выглядеть так: su
chmod +x /etc/init.d/autostart.script
ln -s /etc/init.d/autostart.script /etc/init.d/rc5.d/S95autostart.script