- Не открываются порты на Debian, пожалуйста помогите.
- Как открыть порт в Linux и чем проверить уже открытые?
- Немного теории
- Сложности в работе
- Перечень наиболее популярных значений портов
- Как в Linux проверить открытые порты
- Как открыть порт в Linux
- Открытие портов в Linux
- Открываем порты в Linux
- Шаг 1: Установка Iptables и просмотр правил
- Шаг 2: Разрешение обмена данными
- Шаг 3: Открытие необходимых портов
Не открываются порты на Debian, пожалуйста помогите.
Уже битый час мучаюсь с открытием портов на Debian, на роутере они 100% проброшены, т.к. на Windows все работает. Вот лог iptables-save
Вроде все должно быть правильно, помогите.
вот это вот что?
Вообщем я убрал все лишнее, получилось вот:
Но 2ip.ru все равно утверждает, что порт 22 закрыт
такое? Откуда взялось?
Я не знаю, это само дописывается, изначально я прописываю это:
А затем при «iptables-save» появляется это:
iptables -A INPUT -p udp —dport 22 -j ACCEPT
iptables -A INPUT -p tcp —dport 22 -j ACCEPT
Здесь вроде норм всё.
Ок, попробуем с другой стороны. Открываешь на нужной машине терминал и вбиваешь telnet твой_ip 22. Начни проверять с локахоста. telnet 127.0.0.1 22 Если демон слушает и есть доступ то ты увидишь приветствие.
Вот типа такого
telnet 127.0.0.1 22
Trying 127.0.0.1.
Connected to 127.0.0.1.
Escape character is ‘^]’.
SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3
Хм, кстати из telnet не подключается к 127.0.0.1 через 22 порт, но через 135 подключается
Зачем ты прописываешь udp для ssh?
Ну и судя по :INPUT ACCEPT у тебя и так всё отрыто.
Так, уже что-то. Я правильно понимаю, что машина с линупсом? Если линупс, то тогда давай вывод типа такого
netstat -lpnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address >State PID/Program name
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 1393/smbd
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN 2194/dnsmasq
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 2191/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1703/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 11424/cupsd
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 1393/smbd
tcp 0 0 0.0.0.0:50724 0.0.0.0:* LISTEN 6430/skype
tcp 0 0 127.0.0.1:30666 0.0.0.0:* LISTEN 6460/Viber
tcp6 0 0 . 139 . * LISTEN 1393/smbd
tcp6 0 0 . 22 . * LISTEN 1703/sshd
tcp6 0 0 ::1:631 . * LISTEN 11424/cupsd
tcp6 0 0 . 445 . * LISTEN 1393/smbd
Зачем ты прописываешь udp для ssh?
Источник
Как открыть порт в 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.
Источник
Открытие портов в 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) и мы точно еще пригодимся вам.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Источник