- Linux Mint открытие портов
- Как открыть порт iptables в операционной системе Linux
- Как открыть один порт
- Открытие нескольких портов сразу
- Как проверить статус порта
- Заключение
- Как открыть порт в Linux и чем проверить уже открытые?
- Немного теории
- Сложности в работе
- Перечень наиболее популярных значений портов
- Как в Linux проверить открытые порты
- Как открыть порт в Linux
- Как открыть порт iptables
- Как открыть порт с помощью iptables
- 1. Один порт
- 2. Диапазон портов
- 3. Входящее и исходящее соединения
- 4. Состояние соединения
- Как закрыть порт iptables
- Проверка открыт ли порт
- Выводы
Linux Mint открытие портов
Я тут поискал и вписал:
Начнём с того, что настройки фаервола от рута правятся.
ну от рута сделал и нечего не написало и что то я не пойму не открылся вроде как!
А с каких пор вывод вообще должен быть? В большинстве случаев вывода нет именно потому, что все прошло успешно.
К сети как подключен? Доступность порта как проверяешь?
Правило добавилось успешно.
Похоже, что проблема где-то в другом месте.
Например, с настройками сервиса, промежуточным фаерволом или маршрутизацией.
С безграмотностью. Линуксы это не терпят.
У меня стоит Linux Mint 17.2 KDE
Тему с начала и до конца прочитай. Все твои проблемы решили. Как выполнить iptables, как посмотреть результат выполнения. А для чего это?, что ты хочешь от этого получить?, кто же знает.
Судя по порту, сервачок контровский завести он хотит
Источник
Как открыть порт iptables в операционной системе Linux
Имея дело с программно-аппаратным элементом Linux, пользователю нередко приходится выполнять функции открытия и закрытия портов на сетевом интерфейсе.
Открытый порт предлагает доступ к нему, а закрытие порта служит так называемой блокировкой соединения локального компьютера с программным обеспечением. Неопытные владельцы Линукс часто нуждаются в пошаговых инструкциях и подсказках, когда речь заходит о непривычных или новых задачах, стоящих перед ними. В этом нет ничего зазорного. Самое главное – непоколебимое желание учиться.
В данном материале мы разберем все основные нюансы, связанные с открытием порта iptables.
Для начала следует прояснить простым языком, что такое порт в локальном или удаленном устройстве. Его можно сравнить с квартирой в жилом доме, в которой прописано определенное количество людей. А если быть точнее, то порт – это номер квартиры, IP адрес – номер дома, а жилец – это софт, использующий свою «квартиру».
Открытие порта в Linux осуществляется через iptables. При этом существует 2 типа протокола (tcp и udp), которые используют понятие «порт». Основная путаница для новичка заключается в том, что для разных протоколов доступны идентичные номера портов, а сами номера могут означать различные квартиры в разных зданиях и районах. Имя протокола служит этим самым «микрорайоном».
Важно!В некоторых случаях на устройстве Linux может использоваться политика iptables, именуемая как «DROP». Это означает, что порты блокируются автоматически. В обратном случае рассматривается политика iptables, именуемая как «ACCEPT». Это означает, что все существующие порты уже открыты по умолчанию. Если так и есть, то пользователю необходимо всего лишь закрыть те порты, которые предлагают доступ для внешних устройств.
Как открыть один порт
Рассмотрим синтаксис команды.
iptables -t таблица действие цепочка параметры
На практике аргумент -t опускается. Для первого примера откроем 80 port для протокола tcp.
Открываем 80 порт tcp.
# iptables -A INPUT -p tcp —dport 80 -j ACCEPT
- -A — добавить новое правило в цепочку;
- -p — протокол tcp;
- ACCEPT — разрешить.
После этого все внешние устройства смогут установить связь по порту 80 (для примера). Теперь сделаем тоже самое, только для протокола udp
Открываем 80 порт udp.
# iptables -A INPUT -p udp —dport 80 -j ACCEPT
При необходимости открыть порт для определенного устройства, пользователю нужно уточнить адрес внешнего устройства. В развернутом и конкретизированном виде эта команда будет выглядеть так:
# iptables -A INPUT -p tcp -s 192.168.200.0/24 —dport 8080 -j ACCEPT
После выполнения данного действия порт с указанным номером откроется на вашем ПК.
Открытие нескольких портов сразу
Для примера откроем диапазон портов с 18060:18071.
# iptables -t filter -A INPUT -p tcp —dport 18060:18071 -j ACCEPT
Что получится в результате? Теперь возможен прием входящих пакетов, передаваемых по протоколу на локальный ПК. Порты 18060-18071 открылись одновременно.
ВАЖНО! Входящие пакеты, передаваемые из вне на конкретное устройство, условно делятся на два типа: приходящие на указанный узел и отправленные этим узлом. И хотя узлы разные, для них часто используется общий интерфейс. Входящие и исходящие соединения реализуются по разным правилам. Первые размещены в цепочках под названием PREROUTING, INPUT. Вторые находятся в цепочках под названием POSTROUTING, OUTPUT.
Далее мы рассмотрим пример команды, которая позволит разрешить прием пакетов через выбранный порт iptables. То есть, команду для входящего типа соединения. Для этого потребуется задать:
iptables -t filter -A INPUT -p tcp —dport 8081 -j ACCEPT
Теперь перейдем к настройкам исходящего коннекта. Пользователю нужно задать команду аналогичного вида. Единственная разница будет заключаться в изменении «INPUT» на «OUTPUT». Во всем остальном указанная схема остается без изменений.
Примечание: новичку не стоит пугаться схожести в правилах для входящих и исходящих соединений. Они выглядят практически одинаково, но это не мешает привязывать к ним различное смысловое значение. У каждого соединения существует свой статус. Он может быть абсолютно новым и иметь значение «NEW».
Как проверить статус порта
На практике очень часто бывает так, что введенная команда не работает. Чтобы не попасть в такую ситуацию, необходимо проверить состояния порта. Для этих целей используется telnet.
Проверка порта осуществляется таким образом:
$ telnet 192.168.200.1. 8080
Как видно по заданной команде, система проверит порт под номером 8080 у компьютера с указанным IP-адресом. А теперь представим ситуацию, что порт 445 на удаленном устройстве открыт для входящего коннекта, а порт 445 на локальном устройстве открыт для исходящего коннекта. При таких условиях на экран будет выведено сообщение данного вида: «Connection closed by foreign host». В обратном случае выведенное сообщение будет носить иной характер. И это можно воспринять, как невозможность дальнейшего соединения.
ВАЖНО! Telnet считается эффективным инструментом, хорошо справляющимся со своими прямыми задачами. Однако скорость выдачи результатов при проверке статуса портов довольно низкая. Это значит, что пользователю придется подождать какое-то время.
Заключение
Открытие порта iptables на локальном устройстве вызывает множество различных трудностей у новичков. Внимательно следуя рекомендациям в данной статье, можно быстро приучиться к новшествам системы Линукс и решить все незакрытые вопросы. Воспользуйтесь подсказками, если вам потребуется открыть один или сразу несколько портов на своём ПК, закрыть его или проверить актуальный статус портов на нескольких машинах. Создайте новый коннект («NEW») или отточите своё мастерство при работе с уже установленными коннектами.
Источник
Как открыть порт в 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.
Источник
Как открыть порт iptables
Самой распространенной операцией при работе с межсетевым экраном, по моему мнению, является операция закрытия и открытия портов на сетевом интерфейсе. Порт открывается для того чтобы к нему можно было получить доступ из вне. Закрывают же порт чтобы запретить устанавливать соединение с программой на вашем устройстве, работающей по этому порту. В этой статье мы рассмотрим как открыть порт iptables на примере Debian Linux.
Порт — это, грубо говоря, номер квартиры в многоквартирном доме, за которым проживают известные (или не очень) жильцы. IP адрес — это номер многоквартирного дома, в котором множество квартир. Жилец — это программа, использующая данный номер порта. Этот пример работает в том случае, когда целью является открытие и закрытие доступа программам на том же самом компьютере, который подключен к сети Интернет.
Как открыть порт с помощью iptables
В iptables для создания нового правила или блока правил используется команда:
sudo iptables [ -t таблица ] -A [ цепочка ] спецификации_правила
sudo iptables -t filter -A INPUT -p tcp -s 8.8.8.8 —sport 53 -d 192.168.1.1 -j ACCEPT
Рассмотрим подробно случай открытия порта с помощью iptables. Следует заметить, что понятие порт используется в протоколах tcp и udp, поэтому для разных протоколов доступны одинаковые номера портов, но при этом эти номера, говоря на языке нашего примера, означают разные квартиры в разных домах в разных микрорайонах, где за микрорайон можно принять наименование протокола.
Примечание: Существуют таблицы общепринятых номеров портов для распространённых программ и типов программ по функциональному назначению. Остальные порты являются свободно используемыми. Рассмотрение таблиц портов выходит за рамки данной статьи. Вернемся к простой задаче закрыть один порт.
Примечание: Если вы собираетесь открыть порт, убедитесь, что политика iptables по умолчанию блокировать всё соединения к портам (DROP). Если же используется политика по умолчанию ACCEPT, то ничего открывать не надо, все порты уже открыты, а вам нужно только закрыть те, которые должны быть недоступны из вне. Подробнее в статье как пользоваться iptables.
1. Один порт
Чтобы открыть порт iptables debian используется следующая команда:
sudo iptables [ -t таблица ] -A [ цепочка ] -p протокол [ —sport порт_отправителя ] [ —dport порт_назначения ] -j [ действие ]
sudo iptables -t filter -A INPUT -p tcp —dport 8081 -j ACCEPT
В данном случае мы открыли в таблице filter в цепочке INPUT протокола tcp порт назначения 8081 с помощью действия ACCEPT (принять). Таким образом для всех внешних машин, пытающихся установить соединение по данному порту, данный порт будет теперь доступен. Если мы хотим открыть порт для конкретной машины следует использовать следующую команду:
sudo iptables -t filter -A INPUT -p tcp -s 10.0.0.1/32 —dport 8080 -j ACCEPT
Мы открыли порт 8080 на нашем компьютере для внешней машины с адресом 10.0.0.1.
2. Диапазон портов
Чтобы открыть диапазон портов iptables используется команда:
sudo iptables [ -t таблица ] -A [ цепочка ] -p протокол [ —sport начальный_порт_отправителя:конечный_порт_отправителя ] [ —dport начальный_порт_назначения:конечный_порт_назначения ] -j [ действие ]
sudo iptables -t filter -A INPUT -p tcp —dport 18070:18081 -j ACCEPT
Данной командой мы открыли порты 18070-18081 для входящих пакетов, адресованных именно этому компьютеру, передаваемых по протоколу TCP.
3. Входящее и исходящее соединения
Все пакеты можно разделить на два типа: пакеты, приходящие на данный узел и пакеты, отправляемые данным узлом. В самом распространенном случае и для исходящих, и для входящих пакетов будет использоваться один и тот же сетевой интерфейс (физическое или логическое устройство, отвечающее за преобразование пакетов в сигналы и передачу сигналов в сеть).
Так вот, входящие пакеты будут создавать входящие соединения по определенным правилам для конкретных программ, и исходящие пакеты будут создавать исходящие соединения по определенным правилам для конкретных программ. При этом для каждой программы, нуждающейся в установлении связи с через сеть, чаще всего будут функционировать два соединения: входящее и исходящее, так как программе одновременно требуется в течении работы получать и отправлять данные.
Правила для входящих соединений будут в большинстве случаев расположены в цепочках PREROUTING, INPUT. Правила для исходящих соединений будут в большинстве случаев расположены в цепочках POSTROUTING, OUTPUT.
Чтобы разрешить порт iptables для входящего соединения:
sudo iptables -t filter -A INPUT -p tcp —dport 8080 -j ACCEPT
Пример для исходящего соединения:
sudo iptables -t filter -A OUTPUT -p tcp —dport 8080 -j ACCEPT
Примечание: В данном случае правила выглядят очень похоже, но смысловое значение у них будет абсолютно противоположное. В первом случае мы имеем дело с пакетом ВХОДЯЩИМ, который должен поступить на порт назначения 8080 НАШЕГО компьютера. Во втором случае мы имеем дело с пакетом ИСХОДЯЩИМ, который должен поступить на порт назначения 8080 УДАЛЕННОГО компьютера. Следует также заметить, что программа не использует на нашем компьютере и удаленном компьютере одинаковый номер порта для одной программы. Порты будут различаться.
4. Состояние соединения
Существует возможность формировать правила фильтрации пакетов по совпадению с определенными шаблонами дополнительной спецификации правил Netfilter. За это отвечают параметры -m и -j. Мы рассмотрим использование параметра -m, который может использовать множество различных шаблонов, из которых мы рассмотрим один: —state состояние. Этот шаблон может принимать следующие значения:
- NEW — пакет открыл новое соединение или иным образом связан с соединением, в рамках которого ещё не было пакетов в обоих направлениях (входящем и исходящем);
- ESTABLISHED — пакет связан с соединением, которое видело пакеты в обоих направлениях;
- RELATED — пакет открывает новое соединение, но связан с уже существующим соединением, например, передача данных FTP или ошибка протокола ICMP;
- INVALID — пакет, связанный с неизвестным соединением.
Открытие портов iptables для новых соединений:
sudo iptables -t filter -A INPUT -p tcp -s 192.168.1.0/24 —dport 445 -m state —state NEW -j DROP
В этом примере в таблицу filter в цепочку INPUT для протокола tcp, от компьютера из подсети 192.168.1.0/24, на порт назначения 445 (так как цепочка входящая, то порт назначения находится на данном компьютере) для пакетов, открывающих новое соединение, применить действие ACCEPT (принять пакет).
А такая команда позволяет добавить порт iptables для уже установленных соединений:
sudo iptables -t filter -A INPUT -p tcp -s 192.168.2.0/24 —dport 445 -m state —state ESTABLISHED -j ACCEPT
В данном случае в таблицу filter в цепочку INPUT для протокола tcp, от компьютера из подсети 192.168.2.0/24, на порт назначения 445 (так как цепочка входящая, то порт назначения находится на данном компьютере) для пакетов, поступающих в рамках уже открытого соединения, применить действие ACCEPT (принять пакет).
Как закрыть порт iptables
Если вы открыли порт с помощью описанных выше правил и политика брандмауэра по умолчанию DROP, то достаточно это правило удалить. Если же у вас стоит политика по умолчанию ACCEPT, то чтобы закрыть порт надо использовать действие DROP.
sudo iptables -t filter -A INPUT -p tcp -s 192.168.3.0/24 —dport 445 -m state —state ESTABLISHED -j DROP
Эта команда в таблицу filter в цепочку INPUT запишет правило для протокола TCP, от компьютера из подсети 192.168.3.0/24, на порт назначения 445 (так как цепочка входящая, то порт назначения находится на данном компьютере) для пакетов, поступающих в рамках уже открытого соединения, применять действие DROP (отбросить пакет).
Для правил, запрещающих прием пакета, применимо всё сказанное выше для закрытия порта (одиночный порт, диапазон портов, входящие и исходящие соединения, действия для установленных соединений и новых соединений). Про закрытие портов в iptables читайте более подробно в отдельной статье.
Проверка открыт ли порт
Когда мы настроили все правила, закрывающие и открывающие порты, нам необходимо проверить корректность примененных настроек. Для этого можно использовать приложение telnet. Telnet — приложение, позволяющее установить двунаправленное соединение между двумя компьютерами с помощью протокола telnet. В рамках нашей задачи попытка установления соединения между двумя машинами в сети используется как тест правил Netfilter. Выполняем команду следующего вида:
$ telnet ip-адрес порт
telnet 192.168.1.5 443
В данной команде будет проверен 443 порт у машины с ip-адресом 192.168.1.5. Если на порту 443 на удаленной машине разрешено входящее соединение и правила на локальной машине разрешают исходящее соединение на порту 443, то получим сообщение:
Connection closed by foreign host.
Или неожиданно можем получить приглашение доступа к данной машине, если на этом порте ожидает подключения серверная часть telnet.
Если же правила запрещают входящее соединение на удаленной машине, или исходящее соединение на нашей локальной машине на порту 443, то получим сообщение:
telnet: Unable to connect to remote host: Connection timed out
Примечание: Чтобы получить результаты необходимо подождать довольно продолжительное время, чтобы telnet получил результат попытки соединения по указанному порту.
Выводы
Итак, сегодня мы рассмотрели как открыть порт 80 iptables или любой другой на локальной машине. Теперь мы знаем, как открыть (или закрыть) конкретный порт, диапазон портов, в чем разница между входящими и исходящими соединениями, как работать с новыми и уже установленными соединениями.
Источник