Открытие портов в 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) и мы точно еще пригодимся вам.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Источник
Kali linux port opening
First use netstat -lnt to check the current open ports of Kali. If port 22 is not open, we need to manually open port 22.
The first step: open kail remote ssh, open method is as follows:
1. Configure SSH parameters
Modify the sshd_config file, the command is: vim /etc/ssh/sshd_config
Note: Press i to start editing
Remove the comment of #PasswordAuthentication no, and change NO to YES //The default in Kali is yes
Change PermitRootLogin without-password to PermitRootLogin yes
Then, after pressing the esc key, enter: wq to save and exit vim
Step 2: Start the SSH service
The command is: /etc/init.d/ssh start
Or service ssh start
Check whether the SSH service status is running normally, the command is:
service ssh status
Running indicates successful startup.
Step 3: Set the system to automatically start the SSH service
update-rc.d ssh enable //The system automatically starts the SSH service
update-rc.d ssh disabled // Close the system and automatically start the SSH service
Execute the netstat -lnt command again and see that port 22 is successfully started
Источник
Статья Первый шаг к взлому (nmap сканирование портов)
Информация, содержащаяся в данном руководстве для образовательных и информационных целей, используйте её на свой страх и риск. Мы не несем никакой ответственность за ваши действия.
Требования
- Backtrack 5 or Kali Linux
- Терпение
Это будет первый учебник по серии, который даст основное представление что такое пентест. Есть много инструментов на Kali linux дистрибутиве, которые не будут охвачены в этих серии, но если у читателей есть какие-либо вопросы о других инструментов, напишите сообщение. Это первая часть нацелена на сбор информации и имеет название как (nmap сканирование портов). Она будет сосредоточена на поиске живых хостов в сети, а также на просмотра их версий программного обеспечения и на их работающих портах.
Для этого упражнения мы будем использовать следующие инструменты: Nmap
На протяжении многих лет у Nmap было добавлено много разных функции, один из более поздних является уязвимость проверки модулей. Если вы не знаете, о них, перейдите на Google и исследуйте их.
Одна вещь, об этом учебнике : научиться использовать Google, чтобы выполнить свое собственное исследование, так что будут некоторые шаги, которые я расскажу вам по своему усмотрению.
Первое, что мы хотим сделать, это найти живых хостов в сети, это может быть достигнуто за счет использования Nmap. С помощью этой команды мы также можем проверять службу и версию для каждого открытого порта. Есть много других команд, которые встроенны в Nmap, которые могут быть найдены с помощью команды Nmap -h или просто набрав
Мы в сети как 192.168.1.1
nmap -sV 192.168.1.1/24
Эта команда будет проверять все 254 хостов в сети и перечислять открытые порты вместе с версией программного обеспечения, работающего на этом хосте. Я использую только 2 машины в своей сети и я сделал это, чтобы сократить учебник. Вот результаты:
Если бы мы имели большую сеть, коммутатор -p может использоваться для четкого указания какие порты искать. Так:
nmap -sV 192.168.1.1/24 -p 21,80,445
Одна вещь, которую я рекомендую: чтобы всегда, я имею в виду всегда сканировать сеть в режиме UDP и искать открытые порты SNMP. Старые версии SNMP уязвимы для атак, поскольку они используют строки государственного и частного для входа в систему. Если вы не знаете, какие порты SNMP или SNMP являются, Google является вашим другом.
Для выполнения такого рода сбора информации вы должны использовать команду -Su. Дабы сказать Nmap сканировать UDP-порты. Наша команда должна будет выглядеть так:
nmap -sU 192.168.1.1/24 -p161, 162
Мы указываем порты 161 и 162, так как они являются портами где SNMP работает.
Когда работает UDP сканирование запомните, что Протокол UDP не проверяет соединение так что это хорошая идея, чтобы проверить если порт на самом деле открыт для соединения с Netcat.
Пока что давайте совершим прыжок к скриптам, которые могут быть использованы для проверки на наличие уязвимостей. Чтобы получить помощь с конкретным скриптом, вы просто вводите:
nmap —script-help script name
Это команда покажет вам скрипт и то, что он делает.
Первые скрипты которые мы будем использовать это SMB скрипты, так как у нас SMB-порт 445 открыт.
Это еще не все! у Nmap есть еще пару прекрасных команд.
nmap -sS —script ftp-anon 192.168.1.2 192.168.1.14
Эта команда будет проверять если включен анонимный FTP логин на целевой машине.
nmap -A 192.168.1.2
Эта команда позволит запускать все скрипты и много других вариантов, вот описание из меню справки: Enable OS detection, version detection, script scanning, and traceroute.
Вы также можете добавить различные типы сканирования на начинающийся линии вот так:
Nmap -sS -А 192.168.1.2
Есть также способы, чтобы добавить другие аргументы в скрипты, и даже создавать свои собственные.
Теперь мы собрали список машин в сети и информацию об открытых портах! Давайте перейдем к следующему действию. Мы хотим убедиться, что порты, на самом деле открыты. Причина этого заключается в том, что иногда машины дают ложные результаты, особенно у UDP портов.
Следующий инструмент который мы будем использовать один из моих любимых это Netcat. Если мы откроем терминал и введем nc. Мы увидим меню справки Netcat. Далее мы будет работать через порты и попытаться соединиться с основными командами NetCat:
NC -v 192.168.1.2 445.
Это приведет к запуску программе и подключиться к порту 445.
Вам возможно, придется нажать кнопку ввода пару раз, чтобы получить от порта ответ. Вы не должны видеть порт закрытым на удаленным хосте. Если это так и порт закрыт, то есть много вещей, которые могут закрыть его. Будьте уверены и проверьте еще раз машину на все открытые порты.
Источник