Меню Рубрики

Установка ком портов в линуксе

Настраиваем виртуальный компорт в Ubuntu

Удобно работать с виртуальной машиной XPSP3 в VirtualBox’е: когда надо включаешь её, когда не надо – выключаешь, всё очень быстро, и вирусы прочно экранируются. Но вот понадобилось внести изменения в отлаживаемую «виндовую» программу, работающую со старыми добрыми компортами. И тут обнаруживается: не работает компорт виртуальной машины. В ЛОРе нет хорошего ответа. Всё сводится к рекомендации создания новой машины, а это время. Западные пользователи на форумах тоже дают немало пустых советов. А на самом деле всё не так уж и сложно.

Сначала надо установить утилиту настройки аппаратного компорта хост-машины. Называется она setserial, в дистрибутивах Ubuntu её нет, но зато она есть в репозиториях, поэтому воспользуемся командой терминала:

sudo apt-get install setserial

И, конечно, запустим эту утилиту, чтобы посмотреть, присутствует ли на материнской плате, что собой представляет и как настроен аппаратный порт хозяйки (далее в примере исследуем COM1):

sudo setserial -g /dev/ttyS0

Учтите, что ttyS0 соответствует COM1, ttyS1 соответствует COM2 и т.д. согласно терминологии Линукса. Подставьте нужное. После ввода пароля суперпользователя в норме должен быть получен ответ:

/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4

Иначе компорт отсутствует или отключен на уровне BIOS’а хост-машины. Выключенный порт включаем. В случае отсутствия на материнской плате аппаратного компорта придётся поставить «костыль» из дополнительной PCI-платы расширения и добавить модуль его драйвера из прилагаемого к ней диска. Проверено: для Линукса драйверы раюотоспособны, но уточните номер появившегося компорта командой терминала

При необходимости параметры настройки коммуникационного порта можно откорректировать ( как именно – см. терминальной командой man setserial).

Настраиваем проключение виртуального COMn в аппаратный COMn, то бишь в файл ttySn+1. Для этого запускаем VirtualBox, НЕ ЗАПУСКАЯ ВИРТУАЛЬНУЮ МАШИНУ, и настраиваем параметры её компорта, как показано на этом скриншоте:

Здесь важно, чтобы номер порта, номер прерывания и адрес ввода-вывода совпадали бы с теми, которые проиндицировала утилита setserial. Если не совпадают, то утилита setserial поможет перенастроить параметры аппаратного компорта.

Но если вы сейчас попытаетесь запустить виртуальную машину, то с очень большой вероятностью получите ошибку. А всего-то надо сделать ещё две вещи.

Во-первых, вы, хотя и являетесь «главным администратором», не обязательно автоматически являетесь членом группы пользователей виртуальной машины. Удивительно? Но бывает нередко. Впрочем, эта нелепость устраняется легко. Чтобы не заморачиваться с CLI, установите с помощью эмулятора терминала великолепную утилиту gnome-system-tools (она есть в репозиториях) командой

sudo apt-get install gnome-system-tools

Данную утилиту рекомендую для многократного употребления, поэтому скопируйте из папки /usr/share/applications значок «Пользователи и группы» на рабочий стол и запустите эту утилиту из рабочего стола. Откроется окно «Параметры пользователей». Жмите кнопку «Управление группами», в открывшемся окне «Параметры групп» скроллингом отыщите группу vboxusers, выберите её и дважды щёлкните по ней. Откроется окно «Свойства группы vboxusers». Внутри панели «Члены группы» пометьте чекбокс напротив своего имени, отражающего вас, как пользователя системы.

Во вторых, реальному порту следует присвоить права «666», что означает разрешение дуплексного обмена через компорт на уровнях владельца, членов его группы и остальных пользователей. Делается это командой

Вместо ttyS0 подставьте обозначение нужного аппаратного компорта хост-машины. Вcё, теперь можно смело запускать виртуальную машину, включать привычный «виндовый» гипертерминал и с помощью виртуальной Windows настраивать модемы, управлять программаторами и т.д. Словом, делать всё то, как будто бы вы работали с реальной Windows XP или «семёркой». Успехов!

источник

Федоренко на связи

Заметки на полях

Проверка COM порта под linux

В этой заметке я расскажу про то, как можно проверить COM порт в Linux.

Для этого нам понадобятся:

  • права на чтение и запись в COM порт
  • программа minicom
  • кусок толстого многожильного кабеля
Права доступа

проверяем какие у нас в системе есть COM порты, а также наши права на них:

/dev/ttyS0 это первый COM порт
/dev/ttyS1 соответственно второй COM порт
/dev/ttyUSB0 специальный кабель-переходник из USB в COM (Gembird UAS111)

Как мы видим для работы с COM портом необходимы права root либо пользователь должен входить в группу dialout

Читайте также:  Установки для бурения скважин реферат
Провод для связи

Берём многожильный кабель в оплётке длиной 4-6 см, и соединяем 2 и 3 выводы COM порта перемычкой из этого кусочка провода. Оплётка будет удерживать провод на контактах, а металлические жилы внутри будут проводниками.
Для любителей паять можно предложить спаять полный loop-back тестер. В нём соединить не только контакты приёма передачи, но и аппаратный контроль потока и готовность терминала.

Работа с программой minicom

Для начала необходимо настроить программу minicom

Выбираем «Настройка последовательного порта»

Если нужно, меняем СОМ порт, нажимая «A»
Отключаем аппаратное управление потоком, нажимая «F»
Выходим из настроек «Enter»
Сохраняем настройки по умолчанию «Сохранить настройки как dfl»
Выходим из minicom

Собственно проверка СОМ порта

Запускаем minicom без параметров.

Пробуем нажимать на клавиши. В ответ на экране должны появляться символы.
Проверка COM порта под linux завершена.

Эта запись была сделана 21.12.2010, 13:50 под рубрикой Разное. Вы можете подписаться на эту запись с помощью RSS 2.0. Responses are currently closed, but you can trackback from your own site.

5 комментариев (and 3 trackbacks)

#1 by Евгений on 02.05.2012 — 12:50

А как им управлять через PHP скрипт? Спасибо за статью!

источник

unixforum.org

Форум для пользователей UNIX-подобных систем

Настройка COM портов в Ubuntu (проблема с контроллером)

Настройка COM портов в Ubuntu

Сообщение azgaz » 04.08.2011 17:34

Re: Настройка COM портов в Ubuntu

Сообщение sash-kan » 04.08.2011 18:29

Re: Настройка COM портов в Ubuntu

Сообщение azgaz » 04.08.2011 19:03

Re: Настройка COM портов в Ubuntu

Сообщение sash-kan » 04.08.2011 21:36

где-нибудь после udev-овского скрипта, для надёжности·
например, в keyboard-setup·
команду поместите внутри основного case-а сразу после варинта «start»·
пример (кусочек из файла /etc/init.d/keyboard-setup):

Re: Настройка COM портов в Ubuntu

Сообщение sash-kan » 04.08.2011 21:41

Re: Настройка COM портов в Ubuntu

Сообщение DjSpike » 05.08.2011 00:12

Re: Настройка COM портов в Ubuntu

Сообщение azgaz » 05.08.2011 00:18

Re: Настройка COM портов в Ubuntu

Сообщение sash-kan » 05.08.2011 04:33

azgaz
насчёт upstart-а ничего не подскажу…
смотрите документацию·
в принципе, всё что вам нужно — это выполнить команду поближе к началу инициализации системы·
вот только не уверен насчёт udev-а… подозреваю, что только после его отработки можно заниматься настройкой устройств·

кстати, можно и через udev пойти — собственное правило добавить·
но я бы рекомендовал всё-таки найти подходящий инициализационный скрипт и вклиниться в него·
в конце концов, можете хоть методом научного тыка вычислить, с каким всё заработает·

Re: Настройка COM портов в Ubuntu

Сообщение azgaz » 05.08.2011 08:26

Re: Настройка COM портов в Ubuntu

Сообщение azgaz » 05.08.2011 11:46

Re: Настройка COM портов в Ubuntu

Сообщение sash-kan » 05.08.2011 19:11

Re: Настройка COM портов в Ubuntu

Сообщение azgaz » 05.08.2011 20:10

Re: Настройка COM портов в Ubuntu

Сообщение warlomak » 05.08.2011 21:17

Re: Настройка COM портов в Ubuntu

Сообщение sash-kan » 05.08.2011 23:18

Re: Настройка COM портов в Ubuntu

Сообщение DjSpike » 05.08.2011 23:47

А есть рецепт как починить данный контролер в Ubuntu 11.04 ?

Re: Настройка COM портов в Ubuntu

Сообщение warlomak » 06.08.2011 01:01

А есть рецепт как починить данный контролер в Ubuntu 11.04 ?

Re: Настройка COM портов в Ubuntu

Сообщение azgaz » 06.08.2011 11:17

Re: Настройка COM портов в Ubuntu

а lsof|grep /dev/ttyS что пишет?

Re: Настройка COM портов в Ubuntu

Сообщение azgaz » 06.08.2011 13:56

$ lsof|grep /dev/ttyS
sokolov@server:

$ sudo lsof|grep /dev/ttyS
[sudo] password for sokolov:
lsof: WARNING: can’t stat() fuse.gvfs-fuse-daemon file system /home/sokolov/.gvfs
Output information may be incomplete.

$ sudo lsof|grep /dev/ttyS1
lsof: WARNING: can’t stat() fuse.gvfs-fuse-daemon file system /home/sokolov/.gvfs
Output information may be incomplete.
sokolov@server:

$ sudo lsof|grep /dev/ttyS2
lsof: WARNING: can’t stat() fuse.gvfs-fuse-daemon file system /home/sokolov/.gvfs
Output information may be incomplete.

Re: Настройка COM портов в Ubuntu

Re: Настройка COM портов в Ubuntu

Сообщение azgaz » 06.08.2011 14:37

Читайте также:  Установка линзы на уаз патриот

$ stty -F /dev/ttyS1 -a
speed 57600 baud;stty: /dev/ttyS1: Ошибка ввода/вывода

$ ls /dev/ttyS*
/dev/ttyS0 /dev/ttyS1 /dev/ttyS2 /dev/ttyS3

/etc/inittab нету такого файла
grub.cfg

Re: Настройка COM портов в Ubuntu

Re: Настройка COM портов в Ubuntu

Сообщение azgaz » 06.08.2011 15:29

Re: Настройка COM портов в Ubuntu

Сообщение warlomak » 06.08.2011 15:32

Re: Настройка COM портов в Ubuntu

Сообщение azgaz » 06.08.2011 15:34

Re: Настройка COM портов в Ubuntu

Сообщение azgaz » 06.08.2011 21:42

Re: Настройка COM портов в Ubuntu

Сообщение azgaz » 08.08.2011 11:54

Re: Настройка COM портов в Ubuntu

Сообщение azgaz » 08.08.2011 21:12

поменял карту на MCS9865 порты COM работают нормально до установки драйверов, после установки драйверов при чтении данных зависает компьютер
Ставлю драйвера того чтоб работал LPT порт. LPT настраивать не умею и информации не нашел для этого. В какую сторону копать?
настраивал по http://www.linuxforen.de/forums/archive/in. p/t-268926.html

$ setserial -bg /dev/ttyD*
/dev/ttyD0 at 0xe480 (irq = 17) is a 16550A
/dev/ttyD1 at 0xe800 (irq = 18) is a 16550A

$ setserial -bg /dev/ttyS*
/dev/ttyS0 at 0x03f8 (irq = 4) is a 16550A
/dev/ttyS1 at 0xe480 (irq = 17) is a 16550A
/dev/ttyS2 at 0xe800 (irq = 18) is a 16550A

05:01.0 Serial controller: NetMos Technology PCI 9865 Multi-I/O Controller (prog-if 02)
Subsystem: Device a000:1000
Flags: bus master, medium devsel, latency 64, IRQ 17
I/O ports at e480 [size=8]
Memory at febfb000 (32-bit, non-prefetchable) [size=4K]
Memory at febfa000 (32-bit, non-prefetchable) [size=4K]
Capabilities:
Kernel driver in use: mcs9865-serial

05:01.1 Serial controller: NetMos Technology PCI 9865 Multi-I/O Controller (prog-if 02)
Subsystem: Device a000:1000
Flags: bus master, medium devsel, latency 64, IRQ 18
I/O ports at e800 [size=8]
Memory at febfd000 (32-bit, non-prefetchable) [size=4K]
Memory at febfc000 (32-bit, non-prefetchable) [size=4K]
Capabilities:
Kernel driver in use: mcs9865-serial

05:01.2 Parallel controller: NetMos Technology PCI 9865 Multi-I/O Controller (prog-if 03)
Subsystem: Device a000:2000
Flags: bus master, medium devsel, latency 64, IRQ 5
I/O ports at ec00 [size=8]
I/O ports at e880 [size=8]
Memory at febff000 (32-bit, non-prefetchable) [size=4K]
Memory at febfe000 (32-bit, non-prefetchable) [size=4K]
Capabilities:

источник

Открытые порты Ubuntu

В современных операционных системах не обойтись без взаимодействия программ с внешней средой и интернетом. Для этого используется специальные механизмы — порты.

Но порты представляют определённую угрозу. Если в программе есть какая-либо уязвимость, то любой пользователь локальной сети сможет получить доступ к вашему компьютеру, а в некоторых случаях даже к вашей информации. Поэтому нужно быть очень осторожным с открытыми портами. В этой статье мы разберёмся, как посмотреть открытые порты Ubuntu.

Что такое порты и зачем они нужны?

Порты — это более широкое понятие, чем просто возможность подключится к удалённому компьютеру через сеть. Когда процесс хочет обратиться к серверу, ему нужно каким-либо образом идентифицировать, к какому серверу он хочет подключиться. Если мы знаем 32 битный IP-адрес сервера, то мы можем без проблем к нему подключиться.

Но как указать программу, к которой нужно обратиться? Для решения этой проблемы оба протокола UDP и TCP поддерживают систему портов. Порт — это целое число от 1024 до 65535. Все номера до 1024 зарезервированы и используются только определёнными службами, например, 22 — ssh, http — 80, FTP — 21 и так далее.

Таким образом, процесс прослушивает определённый порт на сервере, а клиент, который хочет к нему обратиться, должен знать этот порт. Вся обработка прав доступа к портам в большинстве случаев ложится на процесс, поэтому если в его коде есть уязвимости, то это может стать серьёзной проблемой безопасности.

Открытые порты Ubuntu

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

В Linux существует несколько утилит, которые можно использовать, чтобы посмотреть открытые порты. Одни из них полноценные сетевые сканеры, другие — локальные утилиты, отображающие всю доступную информацию. Рассмотрим основные из них.

Читайте также:  Установка notepadqq в debian

netstat

Это одна из самых старых и популярных утилит для просмотра открытых портов. Мы описывали её в отдельной статье, а сейчас просто кратко рассмотрим, как с ней работать. Чтобы посмотреть открытые порты, выполните такую команду:

netstat -ntlp | grep LISTEN

Опция -l сообщает, что нужно посмотреть прослушиваемые порты, -p показывает имя программы, -t и -u — отображают TCP и UDP порты, а -n показывает ip адреса в числовом виде. Дальше нужно выбрать только те строки, где встречается слово LISTEN, чтобы найти только прослушиваемые порты.

Здесь в первом столбце отображается протокол, затем два столбца — это данные, которые нам ничего полезного не говорят, а за ними уже идут локальный и внешний адреса. Если локальный адрес — 127.0.0.1, то это значит, что сервис доступен только на этом компьютере, а значение 0.0.0.0 или :: означает любой адрес, к таким сервисам могут подключаться из сети. В нашем примере это Apache и systemd-resolvd.

Утилита lsof тоже предназначена для просмотра открытых соединений. Основная ее функция — просмотр открытых файлов, но с её помощью можно посмотреть открытые порты Ubuntu. Используйте такие параметры:

sudo lsof -nP -i | grep LISTEN

Опции -n и -P указывают, что необходимо отображать не только цифровые имена портов и ip-адреса, но и имена доменов и сервисов. Опция -i отображает все сетевые подключения, а с помощью grep мы фильтруем только те, которые находятся в состоянии прослушивания.

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

Команда ss — это улучшенная версия netstat. Точно так, как для замены ifconfig была придумана утилита ip, ss разработали для замены netstat. Команда будет выглядеть следующим образом:

Все данные здесь выводятся почти так же, как и в netstat, поэтому вы легко во всём разберётесь. В дополнение к выше перечисленным командам: возможно, вам нужно будет посмотреть на правила брандмауэра iptables, чтобы понять, какие порты закрыты с его помощью:

В нашем примере нет никаких ограничений. Политика по умолчанию — ACCEPT. На промышленных серверах может применяться политика DENY, а нужные порты будут разрешены с помощью правил.

Сетевой сканер nmap позволяет проверить список портов Ubuntu так, как бы это делал злоумышленник при попытке атаки на вашу систему. Здесь вы будете видеть все порты, которые видны снаружи. Но для сканирования нужно использовать внешний ip-адрес. Не сетевой ip-адрес провайдера, а адрес вашего компьютера, например, в локальной сети чаще всего используется 192.168.1.2. Посмотреть ip вашего сетевого интерфейса можно с помощью команды ifconfig:

Чтобы просто просканировать открытые порты Ubuntu, будет достаточно выполнить:

Также можно выполнить комплексное сканирование всех уязвимостей. Важно отметить, что команда не находит все уязвимости, а проверяет только самые простые. Для активации этого режима используется опция -A:

Как пользоваться nmap, читайте в отдельной статье.

Выводы

В этой статье мы рассмотрели, как проверить порты Ubuntu с помощью нескольких утилит. Все они выводят подробную информацию, но для каждого отдельного случая может лучше подойти только одна из них. Например, проверять какие порты видят другие компьютеры извне лучше с помощью nmap. А чтобы посмотреть, какие службы или сокеты доступны локально, лучше применять netstat или ss.

Проверяйте, какие порты открыты, и если они не нужны, то закройте их в брандмауэре или просто отключите сервис. Иначе они ставят под угрозу безопасность вашей системы. Например, у меня на ноутбуке открыт порт SSH, и я не раз наблюдал в логах попытки перебрать пароль от каких-то роутеров из локальной сети. И если даже вас некому ломать, это могут сделать вирусы. Так что будьте осторожны, и не оставляйте открытые порты, если в этом нет необходимости.

источник