вторник, 26 ноября 2013 г.

Как передать настройки PuTTy на другую Windows машину

PuTTy это приложение, эмулирующее работу терминала, которое может использоваться как клиент для SSH, Telnet, rlogin и некоторых других компьютерных протоколов. Вы можете использовать PuTTy для удаленного подключения или контроля вашими роутерами через  последовательное подключение.
По умолчанию PuTTy хранит настройки сессий в реестре на компьютерах под управлением Windows. Если вы имеете несколько настроенных подлючений на лаптопе и хотели бы передать их на другой компьютер, вам необходимо  передать ветку реестра HKEY_CURRENT_USER\Software\SimonTatham и её значения. Экспорт ветки реестра PuTTy c исходной машины
Нажмите на  Start -> Run -> и введите следующую команду реестра в диалоговое окно. Данная команда поместит значение ветки в рег-файл. Обратите внимание на имя ветки рееста (Simon Thatham) - это автор PuTTy.
regedit /e "%userprofile%\desktop\putty-registry.reg" HKEY_CURRENT_USER\Software\Simontatham Данную операцию вы можете сделать и не из командной строки, экспортировав ветку реестра как показано ниже. Нажмите  Start -> Run -> regedit -> Click File menu -> Click Export menu-item -> Enter --> Наберитен HKEY_CURRENT_USER\Software\Simontatham в строке "Selected branch" -> Сохраните как  putty-registry.reg.
Импортируем ветку реестра на машине назначения Передайте файл putty-registry.reg на нужный вам компьютер. Нажмите правой кнопкной на .reg файл и выберите Merge, как показано ниже. Подтвердите импорт, нажав "Yes".
Запустите putty для проверки что все соединения передались успешно. Импортирование рег-файла не удаляет существующие настройки PuTTy. Вместо этого, происходит добавление эскпортированных соединений к уже существующим.

четверг, 21 ноября 2013 г.

Tcpdump usage examples

In most cases you will need root permission to be able to capture packets on an interface. Using tcpdump (with root) to capture the packets and saving them to a file to analyze with Wireshark (using a regular account) is recommended over using Wireshark with a root account to capture packets on an "untrusted" interface. See the Wireshark security advisories for reasons why.
See the list of interfaces on which tcpdump can listen:
tcpdump -D
Listen on interface eth0:
tcpdump -i eth0
Listen on any available interface (cannot be done in promiscuous mode. Requires Linux kernel 2.2 or greater):
tcpdump -i any
Be verbose while capturing packets:
tcpdump -v
Be more verbose while capturing packets:
tcpdump -vv
Be very verbose while capturing packets:
tcpdump -vvv
Be less verbose (than the default) while capturing packets:
tcpdump -q
Limit the capture to 100 packets:
tcpdump -c 100
Record the packet capture to a file called capture.cap:
tcpdump -w capture.cap
Record the packet capture to a file called capture.cap but display on-screen how many packets have been captured in real-time:
tcpdump -v -w capture.cap
Display the packets of a file called capture.cap:
tcpdump -r capture.cap
Display the packets using maximum detail of a file called capture.cap:
tcpdump -vvv -r capture.cap
Display IP addresses and port numbers instead of domain and service names when capturing packets:
tcpdump -n
Capture any packets where the destination host is 192.168.1.1. Display IP addresses and port numbers:
tcpdump -n dst host 192.168.1.1
Capture any packets where the source host is 192.168.1.1. Display IP addresses and port numbers:
tcpdump -n src host 192.168.1.1
Capture any packets where the source or destination host is 192.168.1.1. Display IP addresses and port numbers:
tcpdump -n host 192.168.1.1
Capture any packets where the destination network is 192.168.1.0/24. Display IP addresses and port numbers:
tcpdump -n dst net 192.168.1.0/24
Capture any packets where the source network is 192.168.1.0/24. Display IP addresses and port numbers:
tcpdump -n src net 192.168.1.0/24
Capture any packets where the source or destination network is 192.168.1.0/24. Display IP addresses and port numbers:
tcpdump -n net 192.168.1.0/24
Capture any packets where the destination port is 23. Display IP addresses and port numbers:
tcpdump -n dst port 23
Capture any packets where the destination port is is between 1 and 1023 inclusive. Display IP addresses and port numbers:
tcpdump -n dst portrange 1-1023
Capture only TCP packets where the destination port is is between 1 and 1023 inclusive. Display IP addresses and port numbers:
tcpdump -n tcp dst portrange 1-1023
Capture only UDP packets where the destination port is is between 1 and 1023 inclusive. Display IP addresses and port numbers:
tcpdump -n udp dst portrange 1-1023
Capture any packets with destination IP 192.168.1.1 and destination port 23. Display IP addresses and port numbers:
tcpdump -n "dst host 192.168.1.1 and dst port 23"
Capture any packets with destination IP 192.168.1.1 and destination port 80 or 443. Display IP addresses and port numbers:
tcpdump -n "dst host 192.168.1.1 and (dst port 80 or dst port 443)"
Capture any ICMP packets:
tcpdump -v icmp
Capture any ARP packets:
tcpdump -v arp
Capture either ICMP or ARP packets:
tcpdump -v "icmp or arp"
Capture any packets that are broadcast or multicast:
tcpdump -n "broadcast or multicast"
Capture 500 bytes of data for each packet rather than the default of 68 bytes:
tcpdump -s 500
Capture all bytes of data within the packet:
tcpdump -s 0

Как послать snmptrap

snmptrap -v 1 -c <community string> <target ip> ‘enterprise-oid‘ ‘simulated agent ip’ generic-trap specific-trap ‘up-time’ [oid type value]
где:
  • community string - строка сообщества (простейший “пароль”)
  • target ip - адресс хоста на который мы отправляем трап
  • enterprise-oid - оид события который мы хотим симулировать
  • simulated agent ip – ip-адрес с которого мы симулируем отправку события
  • generic-trap – общий тип сгенерированного трапа
  • specific-trap – подтип сгенерированного трапа (поле TRAP-TYPE в описании миба)
  • up-time – аптайм
  • oid - обычный оид – информация которую мы хотим передать snmp-демону
  • type – идентификатор типа данных – i – Integer, s – String остальное описано там
  • value – непосредственно данные по оиду
причем пар generic и specific трапов может быть несколько
пример:
snmptrap -v 1 -c public 127.0.0.1 ’1.2.3.4.5.6′ ’192.192.192.192′ 6 99 ’55′ 1.11.12.13.14.15 s “teststring”
UPDATE 02.10.2013
Если необходимо выслать какой то определенный трап к команде выше необходимо добавить путь к миб-файлам, после чего можно использовать символьное описание трапа. Для теста подойдут события, описанные в стандартном мибе, поставляющемся с библиотекой net-snmp – NET-SNMP-EXAMPLES-MIB.
snmptrap -M /path-to-net-snmp-folder/mibs -mAll -v1 -c public <target-ip> NET-SNMP-EXAMPLES-MIB::netSnmpExampleNotification “” 6 17 “” SNMPv2-MIB::sysLocation.0 s “sample of trap message

Организация приема SNMP trap’ов и их отправки на коммутаторах DLink

В рамках поставленной задачи (узнавать о появлении новых MAC-адресов на портах
коммутаторов DLink) понадобилось организовать настройку SNMP-trap'ов на
коммутационном оборудовании с последующим приемом их на сервере и дальнейшей
обработкой в зависимости от пришедшего события.

Для начала надо установить и настроить демон, который будет принимать трапы от
оборудования и при нужном MIB вызывать наш обработчик. Установка net-snmp -
тема отдельная, выполняется из пактов или портов, и особых трудностей не вызывает.

Собственно приемом трапов занимается snmptrapd. Для обработки заданного трапа
пишем в snmptrapd.conf:

    traphandle 1.3.6.1.4.1.171.11.63.6.2.20.0.2 /scripts/trap.php

Теперь после рестарта демона snmptrapd, он начнет принимать приходящие трапы и
при наличии трапа с заданным MIB (1.3.6.1.4.1.171.11.63.6.2.20.0.2 - в нашем
случае), будет вызывать наш обработчик, который уже будет совершать необходимые
нам действия.
Обработчик SNMP-трапов

Принимать SNMP trap-ы на самом деле достаточно просто. Вот пример простого
обработчика SNMP-трапов на PHP:

      #!/usr/bin/php -q
      <?php
      $message = "";
      $fd = fopen("php://stdin", "r");
      while (!feof($fd)) $message .= fread($fd, 1024);
      ?>

Все что делает этот скрипт - получает в переменную $message текст, который
передается демоном snmptrapd. Текст приходит разделенный знаками конца строки.
Первая строка - это всегда имя хоста (который прислал трап), вторая - IP-адрес
этого хоста, третья - его uptime, четвертая - MIB пришедшего трапа. Остальные
строки в сообщении - это детальная информация касательно пришедшего трапа, если
она предусмотрена.


Для отправки Trap-ов на коммутаторе исполняем такие команды:

    create snmp community trap_com view CommunityView read_only
    create snmp host x.x.x.x v2c trap_com

Где х.х.х.х - IP-адрес сервера, котоырй будет принимать SNMP traps.

Далее надо включить опцию дабы коммутатор отсылал трап при появлении на порту
нового мака. Делается это через SNMP

    snmpset -v2c -c write_commenity switch_ip 1.3.6.1.4.1.171.11.63.6.2.1.2.19.0 i 3

Выключить эту опцию можно так

    snmpset -v2c -c write_commenity switch_ip 1.3.6.1.4.1.171.11.63.6.2.1.2.19.0 i 2

Узнать текущее состояние опции можно так

    snmpwalk -v2c -c read_commenity switch_ip 1.3.6.1.4.1.171.11.63.6.2.1.2.19


Вся информация справедлива для коммутаторов 3028. Для других моделей MIB-ы
могут сильно отличаться - к сожалению, DLink любит менять их от серии к серии.
Надо заметить, что опция отправки трапа при появлении нового мака на порту
доступна далеко не на всех моделях DLink-овых коммутаторов - например, 3010
такой возможности не поддерживает.

Tcpdump usage examples

In most cases you will need root permission to be able to capture packets on an interface. Using tcpdump (with root) to capture the packets and saving them to a file to analyze with Wireshark (using a regular account) is recommended over using Wireshark with a root account to capture packets on an "untrusted" interface. See the Wireshark security advisories for reasons why.
See the list of interfaces on which tcpdump can listen:
tcpdump -D
Listen on interface eth0:
tcpdump -i eth0
Listen on any available interface (cannot be done in promiscuous mode. Requires Linux kernel 2.2 or greater):
tcpdump -i any
Be verbose while capturing packets:
tcpdump -v
Be more verbose while capturing packets:
tcpdump -vv
Be very verbose while capturing packets:
tcpdump -vvv
Be less verbose (than the default) while capturing packets:
tcpdump -q
Limit the capture to 100 packets:
tcpdump -c 100
Record the packet capture to a file called capture.cap:
tcpdump -w capture.cap
Record the packet capture to a file called capture.cap but display on-screen how many packets have been captured in real-time:
tcpdump -v -w capture.cap
Display the packets of a file called capture.cap:
tcpdump -r capture.cap
Display the packets using maximum detail of a file called capture.cap:
tcpdump -vvv -r capture.cap
Display IP addresses and port numbers instead of domain and service names when capturing packets:
tcpdump -n
Capture any packets where the destination host is 192.168.1.1. Display IP addresses and port numbers:
tcpdump -n dst host 192.168.1.1
Capture any packets where the source host is 192.168.1.1. Display IP addresses and port numbers:
tcpdump -n src host 192.168.1.1
Capture any packets where the source or destination host is 192.168.1.1. Display IP addresses and port numbers:
tcpdump -n host 192.168.1.1
Capture any packets where the destination network is 192.168.1.0/24. Display IP addresses and port numbers:
tcpdump -n dst net 192.168.1.0/24
Capture any packets where the source network is 192.168.1.0/24. Display IP addresses and port numbers:
tcpdump -n src net 192.168.1.0/24
Capture any packets where the source or destination network is 192.168.1.0/24. Display IP addresses and port numbers:
tcpdump -n net 192.168.1.0/24
Capture any packets where the destination port is 23. Display IP addresses and port numbers:
tcpdump -n dst port 23
Capture any packets where the destination port is is between 1 and 1023 inclusive. Display IP addresses and port numbers:
tcpdump -n dst portrange 1-1023
Capture only TCP packets where the destination port is is between 1 and 1023 inclusive. Display IP addresses and port numbers:
tcpdump -n tcp dst portrange 1-1023
Capture only UDP packets where the destination port is is between 1 and 1023 inclusive. Display IP addresses and port numbers:
tcpdump -n udp dst portrange 1-1023
Capture any packets with destination IP 192.168.1.1 and destination port 23. Display IP addresses and port numbers:
tcpdump -n "dst host 192.168.1.1 and dst port 23"
Capture any packets with destination IP 192.168.1.1 and destination port 80 or 443. Display IP addresses and port numbers:
tcpdump -n "dst host 192.168.1.1 and (dst port 80 or dst port 443)"
Capture any ICMP packets:
tcpdump -v icmp
Capture any ARP packets:
tcpdump -v arp
Capture either ICMP or ARP packets:
tcpdump -v "icmp or arp"
Capture any packets that are broadcast or multicast:
tcpdump -n "broadcast or multicast"
Capture 500 bytes of data for each packet rather than the default of 68 bytes:
tcpdump -s 500
Capture all bytes of data within the packet:
tcpdump -s 0

Debian, exim4. Настраиваем SMTP сервер для нашего веб-сервера

данной статье я рассмотрю один из самых быстрых способов настройки smtp-демона для нашего вебсервера. Если вам нужен сервер, который ещё и должен принимать почту — проходите мимо. Эта статья подойдёт для тех, кто принимает почту гуглом или яндексом (на своём домене, само собой), но не хочет дергать их SMTP серверы, чтобы слать письма.
Внимание! Этот мануал описывает то, как настроить SMTP сервер (сервер отправки писем), отправить письмо через который можно только с того же сервера (то есть с localhost). При этом не будет требоваться никакой авторизации для «доверенных» доменов! Будьте внимательны.
lamp-server:~# aptitude install exim4
lamp-server:~# dpkg-reconfigure exim4-config

Отвечаем на вопросы:
General type of mail configuration: internet site; mail is sent and received directly using SMTP
System mail name: желательно вписываем сюда обратную зону для вашего IP интерфейса eth0. Либо просто full hostname сервера (mail.debian.pro, например)
IP-addresses to listen on for incoming SMTP connections: 127.0.0.1 (нам же не нужен open relay?)
Other destinations for which mail is accepted: вписываем через пробел домены, от имени которых нам нужно отправлять письма с этого сервера.
Domains to relay mail for: если не знаете зачем оно, то оставляйте пустое поле
Machines to relay mail for: аналогично, если не знаем — оставляем пустым
Keep number of DNS-queries minimal (Dial-on-Demand)? No
Delivery method for local mail: Maildir
Split configuration into small files? По желанию. Я ставлю No.
Ещё могут спросить, кому перенаправлять почту локального админа. Я пишу root и не парюсь.
Теперь вы можете отправлять письма при помощи апача (чуть позже опишу как настроить) или командой вида echo «Testing Exim» | mail -s Test vlad@debian.pro
Ну и да — не стоит спамить ;)
Так же не используйте этот метод для тех случаев, когда доступ к серверу по ssh (или даже по ftp в каталоги, доступные по http) имеют доступ люди, которые могут начать спамить.

вторник, 19 ноября 2013 г.

Централизованный сбор, хранение и просмотр Syslog в Debian Linux

В качестве стандартного syslog-сервиса в Debian используется rsyslog. Дальше рассказывается, как отправлять копии журналов на сервер, сохранять их в SQL-базе и просматривать через удобный Веб-интерфейс.



Отправка с клиентских машин на центральный сервер


Создаём файл /etc/rsyslog.d/send2server.conf со строкой:
*.* @hostname-или-fqdn-или-ip-адрес-сервера
Например:
*.* @netlog.lan
Чтобы не собирать отладочный мусор, можно заменить "*.*" на "*.notice" или "*.warning".
Перечитываем настройки: /etc/init.d/rsyslog restart

Протокол доставки


  • по умолчанию используется udp/514
  • если указать "@@" вместо "@", то вместо стандартного UDP станет использоваться TCP (нестандартное расширение!).
  • если нужна 100% надёжность доставки, вместо udp/tcp следует использовать модули omrelp на клиенте и imrelp на сервере.


Приём на сервере


В /etc/rsyslog.conf должны быть раскомментированы строки:
$ModLoad imudp
$UDPServerRun 514

$ModLoad imtcp
$InputTCPServerRun 514

Перечитываем настройки: /etc/init.d/rsyslog restart

Хранение в MySQL


  • apt-get install rsyslog-mysql
  • аккуратно отвечаем на все задаваемые вопросы,
  • если не считать паролей, достаточно подтверждать предлагаемые значения,
  • настройки сохраняются в /etc/rsyslog.d/mysql.conf


Просмотр в LogAnalyzer


  • Страница скачивания: loganalyzer.adiscon.com/downloads (в пакетах Debian отсутствует)
  • Установка зависимостей: apt-get install libapache2-mod-php5
  • Из архива с исходными текстами внутрь /var/www требуется скопировать папку ./src и переименовать её в «loganalyzer».
  • Рекомендуемое исправление для ./include/functions_common.php, чтобы убрать предупреждения из логов Apache:
    --- loganalyzer/include/functions_common.php.orig 2011-11-14 14:32:32.000000000 +0200
    +++ loganalyzer/include/functions_common.php 2011-11-16 02:05:58.982834986 +0200
    @@ -1163 +1163,2 @@
    - $content['EXTRA_METATAGS'] .= '/>';
    + if (array_key_exists($content['HeaderDefaultEncoding']))
    + $content['EXTRA_METATAGS'] .= '/>';
  • Создание пустого файла конфигурации, будет заполнен инсталлятором:
    touch config.php
    chmod 666 config.php


Подготовка SQL-баз для LogAnalyzer



SQL-таблицу Syslog.SystemEvents стандартного формата LogAnalyzer автоматически дополняет собственными столбцами, но для этого потребуется давать ему слишком большие привилегии. Чтобы разрешить ему только SELECT, создадим столбцы вручную:
ALTER TABLE `SystemEvents` ADD `processid` varchar(60) NOT NULL DEFAULT '';
ALTER TABLE `SystemEvents` ADD `checksum` int(11) UNSIGNED NOT NULL DEFAULT '0';



Настройка LogAnalyzer


  • Открываем netlog.lan/loganalyzer/install.php и проходим все шаги.
  • Формат syslog-базы = MonitorWare.
  • Имя базы Syslog и таблицы SystemEvents являются регистрозависимыми.

После завершения установки:
chmod 644 config.php
rm install.php

Первый пользователь имеет права администратора.
Рекомендуется зайти в «Admin Center / Users» и зарегистрировать гостя с флагом «ReadOnly User».

понедельник, 11 ноября 2013 г.

Как конвертировать видео G2M3/G2M4

В комплект GoToMeeting, входит необходимый кодек, для кодирования в Windows Media формат.

Итак начнем по порядку.

У вас есть файл video.
wmv, кодированный в G2M3/G2M4 формате.

1. Необходимо скачать и установить кодек, это можно сделать на странице разработчика этого кодека
www.gotomeeting.com/codec
Нажимаем  кнопку "
Install GoToMeeting Codec" и следуем инструкциям.
2. После установки открываем содержимое директории  C:\Program
Files\Citrix\GoToMeeting\1082
, где 1082 - номер установленной версии GoToMeeting, у вас это может быть другое число.

3. Затем, копируем содержимое папки в отдельный каталог.
Например,
D:\test

4. Копируем в этот же каталог нашу видео запись.
Осторожно!!! Рекомендую работать с копией, а не с оригиналом, так как файл будет перезаписан!!!

5. Открываем терминал (коммандную строку).
Для этого нажимаем
Win+R, в окне "выполнить" вводим cmd и нажимаем ENTER.

6. Переходим в каталог
D:\test\
Для этого выполним команду
D:
D:\cd test
 
7. Запускаем процесс конвертирования, выполнив команду
ВНИМАНИЕ!!! Исходный файл будет перезаписан!!!

D:\test\g2mtranscoder.exe source=d:\test\video.wmv

Вот и все!!! Откроется маленькое окошко с кнопкой
Cancel и начнется конвертация видео.

пятница, 8 ноября 2013 г.

Восстановление пароля root

Для смены пароля root, не зная его, делаем следующее:
Получив физический доступ к компьютеру, нажимаем Ctrl + Alt + Del (возможно дважды) - система уходит в перезагрузку.

1 вариант)
  • Попробовать загрузиться в однопользовательском режиме (single mode). Для этого в меню загрузчика (Grub или Lilo - всё равно) отредактировать вариант, начинающийся со слова kernel - добавить в конец 1 или слово single, заменив также режим монтирования диска (если указан) с ro на rw (чтобы можно было сохранить новый пароль).
  • Если при загрузке запрашивает пароль root'a, то нужно перезагрузиться и изменить команду загрузчика по другому, добавив вместо single параметр init=/bin/bash, заменив также режим монтирования диска (если указан) с ro на rw

2 вариант)
  • Входим в интерактивный режим загрузчика (см выше) и указываем ему опцию:
linux init=/bin/bash
  • После загрузки оболочки необходимо перемонтировать корневой раздел в режим RW:
mount -o remount,rw /
  • Меняем пароль:
passwd
  • Сбросим данные из кеша на диск. Для этого достаточно просто перемонтировать корневой раздел обратно в режим только для чтения:
mount -o remount,ro /
  • Теперь можно перезагрузить компьютер в обычный режим. Не забывайте, что скрипты инициализации для нашего сеанса /bash не работают.

понедельник, 4 ноября 2013 г.

Настройка VLAN в Linux

1. Модуль ядра для работы с VLAN
Для работы в Linux с VLAN необходимо загрузить модуль ядра: 8021q
# modprobe 8021q
Для этого, ядро должно быть сконфигурировано с поддержкой стандарта IEEE 802.1Q (включается при конфигурировании ядра: в kernel/net/8021q включить 802.1Q VLAN Support или в Network options / 802.1Q VLAN Support). Во многих современных дистрибутивах Linux (Debian, CentOS, openSUSE и т.д) такая поддержка уже включена в ядре и модуль можно загружать.

 2. Использование утилиты vconfig для настройки VLAN
Что бы настроить на интерфейсе необходимые VLAN, можно воспользоваться утилитой vconfig она находится в пакете vlan либо в пакете vconfig, в зависимости от дистрибутива Linux.
vconfig имеет следующие опции:
 add [interface-name] [vlan_id] — добавить VLAN с номером vlan_id (от 0 до 4095) на интерфейсе interface-name
 rem [vlan-name] — удалить VLAN, именованый как vlan-name (имя vlan-name зависит от того, какой тип именования выбран см. ниже)
 set_flag [interface-name] [flag-num] [0 | 1] — указывает следует ли делать перестановку (reorder) заголовка Ethernet кадра. Если значение 1 — перестановка включена, и трафик в снифферах (tcpdump и т.д)  будет выглядеть как трафик обычного сетевого устройства без тегов VLAN. Если значение - перестановка отключена, и трафик видится с тегами VLAN. Значение по умолчанию: 0.
 set_egress_map [vlan-name] [skb_priority] [vlan_qos- указывает, что для исходящих пакетов через vlan-name с определённым приоритетом буфера сокетов (sk_buff) skb_priority, должна выполняться маркировка приоритета VLAN в значение vlan_qos (3-х битное значение в VLAN заголовке). По умолчанию значение приоритета VLAN vlan_qos: 0.
 set_ingress_map [vlan-name] [skb_priority] [vlan_qos- указывает, что входящие пакеты через vlan-name с определённым приоритетом VLAN vlan_qos, должны помещаться в очередь буфера сокетов с приоритетом  skb_priority. Значение по умолчанию приоритета очереди буфера сокетов skb_priority: 0.
 set_name_type [name-type] - задаёт тип именования VLAN интерфейсов, при их добавлении. Возможные значения name-type:
    VLAN_PLUS_VID — имя vlan-name будет вида  vlan0020
    VLAN_PLUS_VID_NO_PAD - имя vlan-name будет вида vlan20
    DEV_PLUS_VID - имя vlan-name будет вида eth0.0020
    DEV_PLUS_VID_NO_PAD - имя vlan-name будет вида eth0.20
 Пример добавление VLAN 100 и VLAN 200 на интерфейсе eth0:
#
# modprobe 8021q
# vconfig add eth0 100
    Added VLAN with VID == 100 to IF -:eth0:-
# vconfig add eth0 200
    Added VLAN with VID == 200 to IF -:eth0:-
#
Посмотреть существующие VLAN можно в файле "/proc/net/vlan/config"
# cat /proc/net/vlan/config
   VLAN Dev name | VLAN ID
   Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD
   eth0.100 | 100 | eth0
   eth0.200 | 200 | eth0
#
Задать IP адрес на  VLAN интерфейсах и включить их, можно командой ifconfig:
#
# ifconfig eth0.100 192.168.100.1 netmask 255.255.255.0 up
# ifconfig eth0.200 192.168.200.1 netmask 255.255.255.0 up
#

 3. Сохранение конфигурации VLAN интерфейсов при перезагрузке системы 
Создание VLAN через vconfig и их настройка через ifconfig позволяет сохранить настройки до перезагрузки системы, что бы настройка применялась при загрузке операционной системы, необходимо создать специальные файлы конфигурации для VLAN интерфейсов.
Конфигурация VLAN интерфейсов зависит от того, какие скрипты инициализации сети используется в дистрибутиве Linux (initscripts, sysconfig или interfaces). Что бы узнать, какая система инициализации сети у Вас, следует:
  — Выполнить команду "rpm -qf /sbin/ifup" на экране отобразится название пакета, название начинается на "initscripts" либо на "sysconfig". Этот пакет и предоставляет скрипты инициализации сети.
  - Если в директории "/etc/network" присутствует файл "interfaces", то в Вашей системе используется interfaces для инициализации сети
 Рассмотрим примеры настройки для всех трёх типов инициализации сети.

Настройка VLAN в Linux с использованием initscripts
Примером дистрибутивов Linux, использующих для настройки сети initscripts, являются RedHat, CentOS, Fedora и пр.
Файлы описания (конфигурации) для VLAN интерфейсов следует создавать в "/etc/sysconfig/network-scripts/". Имя файла должно быть вида: ifcfg-ethX.Y, либо вида ifcfg-vlanY (тогда в самом файле ifcfg-vlanY необходимо задать соответствующее значение параметра VLAN_NAME_TYPE ), где X — номер сетевого интерфейса, Y — идентификатор (номер) VLAN (VID)
Для примера, на интерфейсе eth0 добавим два VLAN 100 и 200. Что бы рассмотреть пример обоих файлов, создадим в "/etc/sysconfig/network-scripts/" один файл ifcfg-eth0.100 (описание для VLAN 100) и второй ifcfg-vlan200 (описание для VLAN 200).
 Содержание файла "ifcfg-eth0.100":
VLAN=yes
DEVICE=eth0.100
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.100.1
NETMASK=255.255.255.0
 Содержание файла "ifcfg-vlan200":
VLAN=yes
VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD
DEVICE=vlan200
PHYSDEV=eth0
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.200.1
С такими файлами, после перезагрузки системы, на интерфейсе eth0 будут присутствовать два VLAN 100 и 200. Модуль ядра 8021q, при этом, загрузился автоматически.
Проверка:
#
# lsmod | grep 8021q
    8021q 20355 0
    garp 5703 1 8021q
#
# cat /proc/net/vlan/config
     VLAN Dev name | VLAN ID
     Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD
     eth0.100 | 100 | eth0
     vlan200  | 200 | eth0
#
#
# ifconfig eth0.100
   eth0.100 Link encap:Ethernet HWaddr 00:0C:29:64:7F:04
            inet addr:192.168.100.1 Bcast:192.168.100.255 Mask:255.255.255.0
            inet6 addr: fe80::20c:29ff:fe64:7f04/64 Scope:Link
            UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
            RX packets:0 errors:0 dropped:0 overruns:0 frame:0
            TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
            collisions:0 txqueuelen:0
            RX bytes:0 (0.0 b) TX bytes:768 (768.0 b)

# ifconfig vlan200
   vlan200 Link encap:Ethernet HWaddr 00:0C:29:64:7F:04
           inet addr:192.168.200.1 Bcast:192.168.200.255 Mask:255.255.255.0
           inet6 addr: fe80::20c:29ff:fe64:7f04/64 Scope:Link
           UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
           TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0
           RX bytes:0 (0.0 b) TX bytes:768 (768.0 b)
#
 Видно, что модуль ядра 8021q загружен, созданы VLAN 100 и 200, подняты соответствующие им интерфейсы с заданными IP адресами. (Значение RX равно 0, так как на интерфейс ещё не подан транк со стороны коммутатора).

Настройка VLAN в Linux с использованием sysconfig
Одним из примеров дистрибутива Linux, использующего для настройки сети sysconfig, является SuSE Linux.
Нужно создать в директории "/etc/sysconfig/network/" файлы для конфигурации необходимых VLAN. Имя файла имеет вид: ifcfg-vlanX, где X — номер VLAN (VID)
В содержание файла, помимо настроек сети (IP адрес, маска сети и т.д.), необходимо добавить параметры: ETHERDEVICE и VLAN

Пример создания двух VLAN 100 и 200 на интерфейсе eth0:
Создаем в "/etc/sysconfig/network/" два файла, первый с именем  ifcfg-vlan100 и второй с именем ifcfg-vlan200
Содержание файла "ifcfg-vlan100":
ETHERDEVICE="eth0"
IPADDR="192.168.100.2"
NETMASK="255.255.255.0"
NETWORK="192.168.100.0"
BROADCAST="192.168.100.255"
STARTMODE="onboot"
VLAN="YES"
Содержание файла "ifcfg-vlan200":
ETHERDEVICE="eth0"
IPADDR="192.168.200.2"
NETMASK="255.255.255.0"
NETWORK="192.168.200.0"
BROADCAST="192.168.200.255"
STARTMODE="onboot"
VLAN="YES"
После перезагрузки системы или выполнения команды "/etc/init.d/network restart", на интерфейсе eth0 появятся два VLAN 100 и 200, а VLAN интерфейсы vlan100 и vlan200 будут подняты с заданной настройкой IP адреса и маской сети. Так же модуль ядра 8021q будет загружен автоматически.
Проверить результат можно таким же способом, как описано в случае с initscripts ("lsmod | grep 8021q", "cat /proc/net/vlan/config","ifconfig")

Настройка VLAN в Linux с использованием interfaces (ifupdown)
Примером дистрибутивов Linux, использующих для настройки сети interfaces, являются Debian, Ubuntu и пр.
Настройка производится в файле: "/etc/network/interfaces", в который необходимо добавить дополнительные строки, описывающие VLAN интерфейсы и их настройку.

Пример создания двух vlan 100 и 200 на интерфейсе eth0:
Добавить в файл "/etc/network/interfaces" строки:
auto eth0.100
iface eth0.100 inet static
   address 192.168.100.3
   netmask 255.255.255.0
   vlan_raw_device eth0

auto eth0.200
iface eth0.200 inet static
   address 192.168.200.3
   netmask 255.255.255.0
   vlan_raw_device eth0

После перезагрузки, или после выполнения команд "# ifup eth0.100″ и "# ifup eth0.200″, на интерфейсе eth0 появятся два VLAN 100 и 200, интерфейсы eth0.100 и eth0.200 будут подняты с заданными сетевыми настройками. Так же модуль ядра 8021q будет автоматически загружен.
Проверить результат можно таким же способом, как описано в случае с initscripts ("lsmod | grep 8021q", "cat /proc/net/vlan/config","ifconfig")