Как открыть tcp порт linux

Открытие портов в Linux

Безопасное соединение узлов сети и обмен информацией между ними напрямую связан с открытыми портами. Подключение и передача трафика производится именно через определенный порт, а если в системе он закрыт, выполнить такой процесс не представится возможным. Из-за этого некоторые пользователи заинтересованы в пробросе одного или нескольких номеров для наладки взаимодействия устройств. Сегодня мы покажем, как выполняется поставленная задача в операционных системах, основанных на ядре Linux.

Открываем порты в Linux

Хоть во многих дистрибутивах по умолчанию присутствует встроенный инструмент по управлению сетями, все же такие решения часто не позволяют в полной мере осуществить настройку открытия портов. Инструкции данной статьи будут основаны на дополнительном приложении под названием Iptables — решение для редактирования параметров межсетевого экрана с использованием прав суперпользователя. Во всех сборках ОС на Линуксе она работает одинаково, разве что отличается команда для установки, но об этом мы поговорим ниже.

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

Шаг 1: Установка Iptables и просмотр правил

Утилита Iptables изначально не входит в состав операционной системы, из-за чего ее нужно самостоятельно инсталлировать из официального репозитория, а уже потом работать с правилами и всячески изменять их. Установка не занимает много времени и выполняется через стандартную консоль.

    Откройте меню и запустите «Терминал». Сделать это также можно, используя стандартную горячую клавишу Ctrl + Alt + T.

Активируйте права суперпользователя, написав пароль от своей учетной записи. Обратите внимание, что символы во время ввода не отображаются, сделано это для обеспечения безопасности.

Ожидайте завершения инсталляции и можете убедиться в активности работы инструмента, просмотрев стандартный список правил, задействовав sudo iptables -L .

Как видите, в дистрибутиве теперь появилась команда iptables , отвечающая за управление одноименной утилитой. Еще раз напомним, что работает этот инструмент от прав суперпользователя, поэтому в строке обязательно должна содержаться приставка sudo , а уже потом остальные значения и аргументы.

Шаг 2: Разрешение обмена данными

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

    Убедитесь, что в конфигурационном файле отсутствуют какие-либо правила. Лучше сразу же прописать команду для их удаления, а выглядит она так: sudo iptables -F .

Теперь добавляем правило для вводимых данных на локальном компьютере, вставив строку sudo iptables -A INPUT -i lo -j ACCEPT .

Примерно такая же команда — sudo iptables -A OUTPUT -o lo -j ACCEPT — отвечает за новое правило для отправки информации.

Осталось только обеспечить нормальное взаимодействие указанных выше правил, чтобы сервер смог отправлять обратно пакеты. Для этого нужно запретить новые соединения, а старые — разрешить. Производится это через sudo iptables -A INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT .

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

Шаг 3: Открытие необходимых портов

Вы уже ознакомлены с тем, по какому принципу добавляются новые правила в конфигурацию Iptables. Существуют и несколько аргументов, позволяющих открыть определенные порты. Давайте разберем эту процедуру на примере популярных портов под номерами 22 и 80.

    Запустите консоль и введите туда две следующие команды поочередно:

sudo iptables -A INPUT -p tcp —dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp —dport 80 -j ACCEPT .

Теперь проверьте список правил, чтобы убедиться в том, что порты были успешно проброшены. Используется для этого уже знакомая команда sudo iptables -L .

Придать ей читабельный вид и вывести все детали можно с помощью дополнительного аргумента, тогда строка будет такой: sudo iptables -nvL .

Поменяйте политику на стандартную через sudo iptables -P INPUT DROP и можете смело приступать к работе между узлами.

В случае когда уже администратор компьютера внес свои правила в инструмент, организовал сброс пакетов при подходе к точке, например, через sudo iptables -A INPUT -j DROP , вам нужно использовать другую команду sudo iptables: -I INPUT -p tcp —dport 1924 -j ACCEPT , где 1924 — номер порта. Она добавляет необходимый порт в начало цепи, и тогда пакеты не сбрасываются.

Далее вы можете прописать все ту же строку sudo iptables -L и убедиться в том, что все настроено корректно.

Теперь вы знаете, как пробрасываются порты в операционных системах Linux на примере дополнительной утилиты Iptables. Советуем обязательно следить за появляющимися строками в консоли при вводе команд, это поможет вовремя обнаружить какие-либо ошибки и оперативно устранить их.

Помимо этой статьи, на сайте еще 12353 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Как открыть порт Ubuntu

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

На промышленных серверах брандмауэр запрещает подключение к большинству из них, оставляя только необходимые. В этой статье мы рассмотрим как открыть порт iptables и закрыть все остальные. Хотя в большинстве дистрибутивов существуют специальные утилиты для настройки брандмауэра,мы будем использовать iptables, чтобы вы смогли понять процесс на самом низком уровне.

Просмотр правил Iptables

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

sudo iptables -L

Здесь мы видим три цепочки OUTPUT, INPUT и FORWARD, за открытые порты отвечает цепочка INPUT, именно через нее проходят все входящие пакеты. Сейчас политика по умолчанию — ACCEPT, это значит, что подключение ко всем портам разрешено. Здесь нам нужно настроить все самим и это будет проще если бы какая-либо программа уже создала свои настройки, но этот вариант мы тоже рассмотрим ниже.

Как открыть порт iptables с нуля

Если в iptables уже есть какие-либо правила и вы хотите их удалить просто выполните:

sudo iptables -F

Теперь нам нужно добавить правила, которые разрешат обмен данными между любыми портами на локальном интерфейсе lo, это нужно чтобы не вызвать системных ошибок:

sudo iptables -A INPUT -i lo -j ACCEPT
$ sudo iptables -A OUTPUT -o lo -j ACCEPT

Если кратко, то здесь добавляется два правила в цепочки INPUT и OUTPUT, разрешающие отправку и прием данных из интерфейса lo. Еще одно интересное и важное правило, которое многие упускают. Нужно запрещать только новые соединения, а пакеты для уже открытых нужно разрешать. Иначе получится, что мы отправляем серверу запрос (цепочка OUTPUT открыта), соединение открывается, но сервер не может нам ответить, потому что все пакеты отбрасываются в INPUT. Поэтому нужно разрешить все пакеты с состоянием ESTABLISHED и RELATED. Для этого есть модуль state:

sudo iptables -A INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT

Теперь самое интересное, рассмотрим как открыть порт 22 и 80 для протокола TCP:

sudo iptables -A INPUT -p tcp —dport 22 -j ACCEPT
$ sudo iptables -A INPUT -p tcp —dport 80 -j ACCEPT

Опция -A сообщает, что нужно добавить пакет в конец цепочки, -p — указывает протокол, а —dport или Destination Port (порт назначения) указывает из какого порта пакеты нужно принимать. Теперь вы можете снова посмотреть список правил:

sudo iptables -L

Вывод очень упрощен и понять здесь что-то сложно, например, может показаться что у нас два одинаковых правила, хотя это не так. Чтобы отобразить более подробную информацию используйте:

sudo iptables -nvL

Чтобы все это в действительности заработало, осталось поменять политику по умолчанию на DROP:

sudo iptables -P INPUT DROP

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

Как открыть порт, если уже есть правила

Довольно часто возникает ситуация, когда вам нужно открыть порт Linux, а iptables уже содержит набор правил, запрещающих доступ к портам. Иногда вы добавляете правило, все как нужно, с помощью описанной выше команды, но не замечаете никакого эффекта. Рассмотрим почему так происходит.

Допустим, программа или предыдущий администратор для надежности добавили в конец цепочки правило такого вида:

sudo iptables -A INPUT -j DROP

Как вы понимаете, это значит, что все пакеты, которые до него доходят, будут отброшены. Ваше правило добавляется в конец цепочки, уже после этого. Естественно, что к нему уже никакие пакеты не дойдут, потому что они были отброшены ранее. Чтобы обойти эту проблему нужно использовать опцию -I (INSERT) вместо -A (ADD), она добавляет правило в начало цепочки и все будет работать. Осталось открыть порты Linux:

sudo iptables -I INPUT -p tcp —dport 1924 -j ACCEPT

Теперь смотрим список правил и проверяем:

sudo iptables -L

Выводы

В этой статье мы рассмотрели как открыть порт Ubuntu 16.04 или в любом другом Linux дистрибутиве, а также закрыть ненужные порты. Это повысит безопасность вашей системы. Только на первый взгляд кажется, что с iptables сложно работать. Если разобраться, то все будет достаточно просто. Надеюсь, эта информация была полезной для вас.

Как открыть порт в Linux и чем проверить уже открытые?

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

Немного теории

Порт выражается числом от 0 до 65535. Многие значения зарегистрированы для служебных нужд, некоторые можно использовать произвольно. Порт определяет собой своеобразное уточнение адреса. К примеру, некоторый ресурс имеет запущенный у себя веб-сервер.

Чтобы знать, куда конкретно обратиться, компьютер, запрашивающий с него информацию, должен знать как минимум IP. Но если на ресурсе есть несколько различных служб, как понять, куда именно нужно переслать запрос? Вот тут и пригодится порт. Зная его номер, компьютер, используя IP-адрес и порт, сможет точно послать запрос на сервер.

Сложности в работе

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

Перечень наиболее популярных значений портов

Диапазон номеров от 0 до 1023 служит для использования системными программами и приложениями:

  • 21 — используется протоколом передачи данных FTP;
  • 22 — служба безопасной оболочки SSH;
  • 23 — Telnet;
  • 25 — протокол для передачи почтовых сообщений;
  • 80 — передача HTTP трафика. Используется веб-серверами;
  • 110 — POP3 (еще один почтовый протокол).

Данные значения зарезервированы и используются системой по умолчанию. Многие из оставшихся портов можно задействовать по своему усмотрению.

Как в Linux проверить открытые порты

Для этого имеются встроенные инструменты. Они показывают, какие порты в Linux открыты. Первый из них — netstat.

Пример его использования: sudo netstat -ntulp

Следующий за самой командой набор ключей представляет собой дополнительные параметры:

  • -l. Означает, что нужно показать только те порты, которые в данный момент прослушиваются;
  • -p. Более подробное отражение информации о приложении, использующем порт. В частности, отобразятся его название и ID процесса;
  • -t. Включить в список TCP порты;
  • -u. То же самое, только с UDP;
  • -n. Означает что адреса IP будут показаны в виде чисел.

Как открыть порт в Linux

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

Для открытия используется утилита iptables. Чтобы проверить, имеется ли она вообще в системе, нужно набрать в консоли команду: iptables —list

В результате отобразится вывод, говорящий о том, что утилита работает и присутствует в системе. Теперь осталось открыть порт в Linux. Для этого применяется команда:

iptables -A INPUT -p tcp -m tcp —dport 53 -j ACCEPT

Здесь ключ А означает, что нужно добавить новое правило в существующую цепочку. INPUT показывает, что открытый порт будет входящим. Ключ -p говорит, что дальше указывается тип протокола, в данном случае TCP. Dport означает порт назначения, здесь — 53. Ну и ACCEPT — разрешающие соединения.

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


источники:

http://losst.ru/kak-otkryt-port-ubuntu

http://fb.ru/article/325133/kak-otkryit-port-v-linux-i-chem-proverit-uje-otkryityie