- Открытие портов в Linux
- Открываем порты в Linux
- Шаг 1: Установка Iptables и просмотр правил
- Шаг 2: Разрешение обмена данными
- Шаг 3: Открытие необходимых портов
- Как открыть внешнее UDP и TCP соединения на порте
- Как открыть порт в Linux и чем проверить уже открытые?
- Немного теории
- Сложности в работе
- Перечень наиболее популярных значений портов
- Как в Linux проверить открытые порты
- Как открыть порт в 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. Советуем обязательно следить за появляющимися строками в консоли при вводе команд, это поможет вовремя обнаружить какие-либо ошибки и оперативно устранить их.
Помимо этой статьи, на сайте еще 12315 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Источник
Как открыть внешнее UDP и TCP соединения на порте
Здравствуйте! Взял себе VDS чтобы запихать туда сервер по CSS. В ходе переноса сервера с хостинга на VDS с такой проблемой: для работы веб-скрипта SourceBans необходимы открытые TCP и UDP соединения на порте сервера (27018), и вот вопрос: как их открыть? Уже дня 3 не могу найти ответа, в итоге из всей информации сумел выудить лишь то, что открытие осуществляется посредством правил iptables. Но проблема в том, что нужный «код», для открытия соединений на этом порте, найти не могу. Просьба написать этот код! Заранее спасибо.
Если это VDS, то нужные тебе порты и так «открыты», скорее всего, то есть — не заблокированы. А вообще, для чистоты эксперимента покажи вывод iptables-save (только не забудь про www.linux.org.ru/wiki/en/Lorcode)
если у тебя centos/redhat/fedora/etc весь конфиг iptables хранится в /etc/sysconfig/iptables
у тебя там уже есть открытые порты(как минимум 22-ой).
возьми и скопируй строку, заменив номер порта и протокол.
Вроде как по коду похоже что порты открыты, но я чекаю тут, то видна такая картинка
Насчёт чекалки, то да, я это знаю. А так же я знаю, что отследить UDP соединение (по той же схемы что и TCP) — нельзя. Так что, как говорится, «что имеем».
А вот результат
А зачем эти все правила, если input/output accept?
У провайдера нет отдельного фаервала в админке? Сервер слушает 0.0.0.0 или внешний ip, а не например 127.0.0.1?
Честно говоря вообще не понимаю о чём речь. Просто нужно открыть порт 27018 для внешнего UDP и TCP соединения. Как — не знаю, вот и написал сюда
Он его не слушает. Порт и так открыт.
Еще бы настроить сервисы слушать только локалхост, если доступ из инета не нужен. Типа exim4, mysqld, dovecot.
О чём речь вообще? То что порт открыт я и так знаю. Мне нужно открыть соединения на этом порте
Я нихрена не понял, что вам нужно. Соединение возникает между двумя программами, одна слушает порт, другая туда подключается. Вам нужно настроить какой-то процесс, чтобы он слушал порт 27018. Ну запустите:
netstat -t -l 27018
а с другой машины подключайтесь telnet’ом на этот адрес и порт 27018.
Можно вместо ″-t″ указывать ″-u″, тогда nc будет слушать udp и с помощью nc, с другой машины можно под udp отправлять пакет.
У тебя сервер css слушает соединения только на 127.0.0.1, но не на внешнем ip. Настраивай конфиг css.
В общем вообще ничего не понятно. Что значит «Настраивай конфиг css»?
Источник
Как открыть порт в 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.
Источник