Советы по защите от атак со сканированием портов, которые вы должны знать
Есть ряд действия, которые вы можете принять во внимание, чтобы избежать атак на ваши порты и поддерживать максимальную безопасность. Вот несколько советов, которые вам очень помогут:
Вот несколько советов, которые вам очень помогут:
Используйте необходимые порты
Это может показаться очевидным, но многие не принимают это во внимание. Хакер всегда попробует сканировать с помощью робота и грубой силы
Имейте в виду, что большинство атак автоматизированы, поэтому лучший способ избежать атак этого типа — работа только с нужными портами.
Работает с нестандартными портами
В идеале — усложнить работу злоумышленников, поэтому рекомендуется, насколько это возможно. использовать нестандартные порты. Например, когда кто-то хочет собрать информацию из системы, он может сделать это через стандартные порты, такие как 1521 для Oracle или 8081 для maven антифабрика. Точно так же это не является 100% безопасной мерой само по себе. Но это действительно помогает, если вы хотите создать резервную копию своих сетей и устройств.
Защищает доступ ко всему, что должно быть ограничено, и его подключения
Если вы должны предложить услугу пользователю или компании, но эта услуга рискует подвергнуться атаке, идеальным вариантом будет защитить его с помощью систем аутентификации. Используйте этот тип стратегии, и вы защитите свои порты от атак.
Воспользуйтесь профилактическими методами
Всегда лучше перестраховаться, чем сожалеть, так что профилактические методы будут очень полезны. Этот совет — один из самых важных, поэтому вы должны реализовать его как можно скорее.
Когда у вас есть общественная служба, вы должны иметь профилактические системы которые эффективно реагируют на атаки. На данный момент IDS и межсетевые экраны. В случае IDS, Он действует запрограммированным образом и соответствует правилам, определенным пользователем и которые могут быть динамическими. Со своей стороны, использование брандмауэр это хорошо известно, и вы получите много очень эффективных программных и аппаратных опций. Примените его как можно скорее!
Скрыть информацию
В злоумышленники стремятся получить вашу информацию любого рода при входе в систему, поэтому спрятав его или усложнив доступ, вы можете спасти.
Вот некоторые действия, которые помогут вам:
- Отключить информационные баннеры любой услуги.
- Фальсифицировать след сваи TCP / IP давать ложные подсказки в случае ошибки и таким образом вводить в заблуждение системы обнаружения отпечатков пальцев.
Держите программное обеспечение в актуальном состоянии
Важно, чтобы обновляйте программное обеспечение, так как с каждой новой версией ошибок и багов уязвимость. Без сомнения, важно поддерживать свой обновленное программное обеспечение
Будьте в курсе последних улучшений безопасности
Механизмы безопасности постоянно обновляются, поэтому всегда полезно быть в курсе этих тем. Помните, что кибератаки становятся все лучше и лучше, и идея в том, чтобы быть на шаг впереди них. Таким образом, вы можете защитить себя.
Как проверить открытые порты в Linux с соответствующим сервисом-процессом?
Существуют различные способы, с помощью которых можно определить открытые порты прослушивания на Linux.
1. Проверка открытых портов в Linux с помощью команды NETSTAT
В основной форме команда NetStat выводит на экран или печатает информацию о сетевых подключениях и таблицу маршрутизации и т.д. Однако та же команда вместе с параметром ниже может быть использована для проверки открытых портов в Linux.
Команда:
netstat -tulpn | grep LISTEN
Вывод:
# netstat -tulpn | grep LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 904/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 866/master tcp6 0 0 :::80 :::* LISTEN 1086/httpd tcp6 0 0 :::22 :::* LISTEN 904/sshd tcp6 0 0 ::1:25 :::* LISTEN 866/master #
Вот команда выше отображает все выходные TCP, а также порты UDP. В случае, если вы хотите отфильтровать его дальше, допустим, вы хотите узнать, процесс или услугу, используемую по порту 80, следуют использовать команду ниже.
# netstat -tulpn | grep LISTEN|grep 80 tcp6 0 0 :::80 :::* LISTEN 1086/httpd #
В приведенной выше командной порт используется HTTPd службы с PID 1086.
2. Проверка открытых портов в Linux с помощью утилиты lsof
Утилита lsof в основном отображает список открытых файлов. Однако с некоторыми настройками параметров мы можем в состоянии также проверить открытые порты в Linux. По умолчанию она не установлена в системе, пожалуйста, следуйте ниже набором команд для установки в соответствии с дистрибутивом Linux.
Для RHEL и CentOS OS #yum install lsof Для Debian и Ubuntu OS #apt install lsof
Команда:
#lsof -i -P -n
Вывод:
# lsof -i -P -n COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME chronyd 513 chrony 1u IPv4 14330 0t0 UDP 127.0.0.1:323 chronyd 513 chrony 2u IPv6 14331 0t0 UDP :323 dhclient 548 root 6u IPv4 15326 0t0 UDP *:68 dhclient 548 root 20u IPv4 15315 0t0 UDP *:41668 dhclient 548 root 21u IPv6 15316 0t0 UDP *:23435 master 866 root 13u IPv4 16678 0t0 TCP 127.0.0.1:25 (LISTEN) master 866 root 14u IPv6 16679 0t0 TCP :25 (LISTEN) sshd 904 root 3u IPv4 17424 0t0 TCP *:22 (LISTEN) sshd 904 root 4u IPv6 17426 0t0 TCP *:22 (LISTEN) sshd 951 root 3u IPv4 17884 0t0 TCP 172.31.22.4:22->103.211.42.2:59572 (ESTABLISHED) sshd 954 ec2-user 3u IPv4 17884 0t0 TCP 172.31.22.4:22->103.211.42.2:59572 (ESTABLISHED) httpd 1086 root 4u IPv6 19036 0t0 TCP *:80 (LISTEN) httpd 1088 apache 4u IPv6 19036 0t0 TCP *:80 (LISTEN) httpd 1089 apache 4u IPv6 19036 0t0 TCP *:80 (LISTEN) httpd 1090 apache 4u IPv6 19036 0t0 TCP *:80 (LISTEN) httpd 1091 apache 4u IPv6 19036 0t0 TCP *:80 (LISTEN) httpd 1092 apache 4u IPv6 19036 0t0 TCP *:80 (LISTEN)
В случае, если вы хотите получить более подробную информацию о порте 80 можно использовать следующую команду:
# lsof -i :80 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME httpd 1056 root 4u IPv6 19036 0t0 TCP *:http (LISTEN) httpd 1057 apache 4u IPv6 19036 0t0 TCP *:http (LISTEN) httpd 1058 apache 4u IPv6 19036 0t0 TCP *:http (LISTEN) httpd 1059 apache 4u IPv6 19036 0t0 TCP *:http (LISTEN) httpd 1060 apache 4u IPv6 19036 0t0 TCP *:http (LISTEN) httpd 1061 apache 4u IPv6 19036 0t0 TCP *:http (LISTEN)
Здесь, в этом выводе вы можете четко отметить, что порт 80 используется службой HTTP, имеющей PID 1056.
3. Проверка открытых портов в Linux с помощью nmap
Nmap является инструментом сканирования порта, используемый в Linux. Он не установлен на системах Linux по умолчанию. Вам необходимо установить его с помощью следующей команды.
yum install nmap
После того, как он установиться, используется команда для проверки открытых портов в Linux.
Команда:
# nmap -sT -O localhost
Вывод:
# nmap -sT -O localhost Starting Nmap 6.40 ( http://nmap.org ) at 2017-09-15 13:59 UTC RTTVAR has grown to over 2.3 seconds, decreasing to 2.0 RTTVAR has grown to over 2.3 seconds, decreasing to 2.0 RTTVAR has grown to over 2.3 seconds, decreasing to 2.0 RTTVAR has grown to over 2.3 seconds, decreasing to 2.0 RTTVAR has grown to over 2.3 seconds, decreasing to 2.0 RTTVAR has grown to over 2.3 seconds, decreasing to 2.0 RTTVAR has grown to over 2.3 seconds, decreasing to 2.0 Nmap scan report for localhost (127.0.0.1) Host is up (0.00023s latency). Other addresses for localhost (not scanned): 127.0.0.1 Not shown: 997 closed ports PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 80/tcp open http Device type: general purpose Running: Linux 3.X OS CPE: cpe:/o:linux:linux_kernel:3 OS details: Linux 3.7 - 3.9 Network Distance: 0 hops OS detection performed. Please report any incorrect results at http://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 1.66 seconds #
В выводе выше мы можем в состоянии очень легко проверить открытые порты.
В случае, если Вы хотите изучить больше о сетевых команд в Linux следуйте этой статье.
Netstat
Netstat – это мощная утилита, которая может выводить сетевые соединения, таблицы маршрутизации, статистику интерфейсов, маскарадить соединения и т.д.
Мы будем использовать его для достижения целей этого руководства.
Установка Netstat
В системах на основе Debian и Debian, таких как Ubuntu, используйте apt.
В системах на базе Red Hat Enterprise Linux и Red Hat используйте yum,
В системах на основе Arch используйте pacman.
Просмотр сетевых процессов
Во-первых, давайте рассмотрим процессы.
Для этого введите следующую команду:
В этой команде t отображает TCP-соединения, u отображает UDP-соединения, l показывает только прослушивающие сокеты, p показывает программу, к которой принадлежит соединение, e показывает расширенную информацию, а n представляет адреса, пользователей и порты в числовом виде.
При рассмотрении модели клиент-сервер, на которой основано большинство сетевого программного обеспечения, процессы можно рассматривать как программное обеспечение, работающее в «серверном» режиме
У каждого процесса вы можете увидеть используемый протокол, локальный адрес и порт, который он слушает, пользователя, под которым он работает, и имя PID/программы.
Здесь следует отметить одно важное отличие.
Для подключений tcp4/udp4 (просто перечисленных как tcp и udp), где локальный адрес указан как 0.0.0.0, процесс прослушивает соединения с любого компьютера, который может подключиться к нему по сети, тогда как когда он указан как 127.0 .0.1 он только прослушивает соединения на локальном хосте (машине, на которой он запущен или сам) и не может быть подключен к другим компьютерам в сети. Такое же различие справедливо для tcp6/udp6 при сравнении локального адреса : : (обращенного к сети) и ::1 (только localhost).
Теперь давайте посмотрим на все текущие сетевые подключения.
Для этого введите следующую команду, которая похожа на предыдущую, за исключением того, что мы используем -a для просмотра всех сокетов вместо -l, чтобы просто просмотреть прослушивающие сокеты.
Эта команда не только показывает нам, какое программное обеспечение прослушивает соединения в качестве «серверов», но также показывает нам установленные в настоящее время соединения с этим программным обеспечением и любые установленные сетевые соединения, которые мы используем с использованием программного обеспечения, выступающего в качестве «клиента», такого как веб-браузер.
Просмотр установленных подключений
Вы можете оказаться в ситуации, когда хотите просмотреть только соединения с типом ESTABLISHED.
ss
Команда netstat долгое время была фаворитом у системных администраторов, однако недавно ее заменила команда ss, которая может похвастаться тем, что работает быстрее, проще и удобочитаемее, чем netstat.
Давайте посмотрим, как выполнить те же действия, что и выше, с помощью ss.
Ss также имеет параметр -e для просмотра расширенной информации, но этот параметр был опущен в приведенных ниже примерах, поскольку он дает дополнительную информацию, которая может привести к менее читаемому выводу.
Просмотр процессов
Для просмотра всех процессов введите следующее:
В этой команде t отображает TCP-соединения, l показывает только прослушивающие сокеты, u отображает UDP-соединения, n представляет адреса, пользователей и порты в числовом виде, а p показывает программу, к которой принадлежит соединение.
Просмотреть все сетевые подключения
Чтобы просмотреть все сетевые соединения, введите следующее, где a заменяет l и показывает все сетевые сокеты, а не только слушающие.
Просмотр установленных подключений
Если -a или -l не включены, то ss покажет только установленные соединения.
Для просмотра только установленных соединений введите следующее.
lsof
На случай, если вам не хватило netstat и ss, мы представляем lsof. Lsof используется для вывода списка открытых файлов.
GNU/Linux унаследовал принцип проектирования UNIX, согласно которому все является файлом; это включает в себя и сетевые подключения.
В результате lsof можно использовать для просмотра сетевой активности аналогично вышеупомянутым командам.
Операции с портами
Для открытия/закрытия портов также используется команды Allow/Deny, в зависимости от требований администратора. Синтаксис выглядит следующим образом:
sudo ufw
Расшифровка:
1. action — одно из двух действий: разрешить (Allow) или запретить (Deny);2. port — цифровое имя порта, для которого применяется правило;3. name_protocol — наименование протокола.
Если требуется указать перечень портов, используем двоеточие между начальной и конечной точкой. Альтернативный вариант — использовать имя службы, для которой создается запись. Например, откроем порт для сервиса HTTP:
sudo ufw allow http
Важно! UFW разрешает стандартный порт, который закреплен за службой. Если значение отличается от общепринятых, то создавать правило по имени сервиса нельзя — оно не активируется
Открываем порты в Linux
Хоть во многих дистрибутивах по умолчанию присутствует встроенный инструмент по управлению сетями, все же такие решения часто не позволяют в полной мере осуществить настройку открытия портов. Инструкции данной статьи будут основаны на дополнительном приложении под названием Iptables — решение для редактирования параметров межсетевого экрана с использованием прав суперпользователя. Во всех сборках ОС на Линуксе она работает одинаково, разве что отличается команда для установки, но об этом мы поговорим ниже.
Подробнее: Просмотр открытых портов в Ubuntu
Шаг 1: Установка Iptables и просмотр правил
Утилита Iptables изначально не входит в состав операционной системы, из-за чего ее нужно самостоятельно инсталлировать из официального репозитория, а уже потом работать с правилами и всячески изменять их. Установка не занимает много времени и выполняется через стандартную консоль.
- Откройте меню и запустите «Терминал». Сделать это также можно, используя стандартную горячую клавишу Ctrl + Alt + T.
В дистрибутивах на базе Debian или Ubuntu пропишите для запуска установки, а в сборках, основанных на Fedora — . После ввода нажмите на клавишу Enter.
Активируйте права суперпользователя, написав пароль от своей учетной записи. Обратите внимание, что символы во время ввода не отображаются, сделано это для обеспечения безопасности.
Ожидайте завершения инсталляции и можете убедиться в активности работы инструмента, просмотрев стандартный список правил, задействовав .
Как видите, в дистрибутиве теперь появилась команда , отвечающая за управление одноименной утилитой. Еще раз напомним, что работает этот инструмент от прав суперпользователя, поэтому в строке обязательно должна содержаться приставка , а уже потом остальные значения и аргументы.
Шаг 2: Разрешение обмена данными
Никакие порты не будут нормально функционировать, если утилита запрещает обмен информацией на уровне собственных правил межсетевого экрана. Кроме всего, отсутствие необходимых правил в дальнейшем может вызывать появление различных ошибок при пробросе, поэтому мы настоятельно советуем выполнить следующие действия:
- Убедитесь, что в конфигурационном файле отсутствуют какие-либо правила. Лучше сразу же прописать команду для их удаления, а выглядит она так: .
Теперь добавляем правило для вводимых данных на локальном компьютере, вставив строку .
Примерно такая же команда — — отвечает за новое правило для отправки информации.
Осталось только обеспечить нормальное взаимодействие указанных выше правил, чтобы сервер смог отправлять обратно пакеты. Для этого нужно запретить новые соединения, а старые — разрешить. Производится это через .
Благодаря указанным выше параметрам вы обеспечили корректную отправку и прием данных, что позволит без проблем взаимодействовать с сервером или другим компьютером. Осталось только открыть порты, через которые и будет осуществляться то самое взаимодействие.
Шаг 3: Открытие необходимых портов
Вы уже ознакомлены с тем, по какому принципу добавляются новые правила в конфигурацию Iptables. Существуют и несколько аргументов, позволяющих открыть определенные порты. Давайте разберем эту процедуру на примере популярных портов под номерами 22 и 80.
- Запустите консоль и введите туда две следующие команды поочередно:
.
Теперь проверьте список правил, чтобы убедиться в том, что порты были успешно проброшены. Используется для этого уже знакомая команда .
Придать ей читабельный вид и вывести все детали можно с помощью дополнительного аргумента, тогда строка будет такой: .
Поменяйте политику на стандартную через и можете смело приступать к работе между узлами.
В случае когда уже администратор компьютера внес свои правила в инструмент, организовал сброс пакетов при подходе к точке, например, через , вам нужно использовать другую команду sudo iptables: , где 1924 — номер порта. Она добавляет необходимый порт в начало цепи, и тогда пакеты не сбрасываются.
Далее вы можете прописать все ту же строку и убедиться в том, что все настроено корректно.
Теперь вы знаете, как пробрасываются порты в операционных системах Linux на примере дополнительной утилиты Iptables. Советуем обязательно следить за появляющимися строками в консоли при вводе команд, это поможет вовремя обнаружить какие-либо ошибки и оперативно устранить их.
Опишите, что у вас не получилось.
Наши специалисты постараются ответить максимально быстро.
Настройка UFW Ubuntu
1. Как включить UFW
Сначала нужно отметить, что в серверной версии Ubuntu UFW по умолчанию включён, а в версии для рабочего стола он отключён. Поэтому сначала смотрим состояние фаервола:
Если он не включён, то его необходимо включить:
Затем вы можете снова посмотреть состояние:
Обратите внимание, что если вы работаете по SSH, то перед тем, как включать брандмауэр, нужно добавить правило, разрешающее работу по SSH, иначе у вас не будет доступа к серверу. Подождите с включением до пункта 3
2. Политика по умолчанию
Перед тем, как мы перейдём к добавлению правил, необходимо указать политику по умолчанию. Какие действия будут применяться к пакетам, если они не подпадают под созданные правила ufw. Все входящие пакеты будем отклонять:
А все исходящие разрешим:
3. Добавление правил UFW
Чтобы создать разрешающее правило, используется команда allow. Вместо allow могут использоваться и запрещающие правила ufw — deny и reject. Они отличаются тем, что для deny компьютер отсылает отправителю пакет с уведомлением об ошибке, а для reject просто отбрасывает пакет и ничего не отсылает. Для добавления правил можно использовать простой синтаксис:
$ ufw allow имя_службы$ ufw allow порт$ ufw allow порт/протокол
Например, чтобы открыть порт ufw для SSH, можно добавить одно из этих правил:
Первое и второе правила разрешают входящие и исходящие подключения к порту 22 для любого протокола, третье правило разрешает входящие и исходящие подключения для порта 22 только по протоколу tcp.
Посмотреть доступные имена приложений можно с помощью команды:
Можно также указать направление следования трафика с помощью слов out для исходящего и in для входящего.
$ ufw allow направление порт
Например, разрешим только исходящий трафик на порт 80, а входящий запретим:
Также можно использовать более полный синтаксис добавления правил:
$ ufw allow proto протокол from ip_источника to ip_назначения port порт_назначения
В качестве ip_источника может использоваться также и адрес подсети. Например, разрешим доступ со всех IP-адресов для интерфейса eth0 по протоколу tcp к нашему IP-адресу и порту 3318:
4. Правила limit ufw
С помощью правил limit можно ограничить количество подключений к определённому порту с одного IP-адреса, это может быть полезно для защиты от атак перебора паролей. По умолчанию подключения блокируются, если пользователь пытается создать шесть и больше подключений за 30 секунд:
К сожалению, настроить время и количество запросов можно только через iptables.
5. Просмотр состояния UFW
Посмотреть состояние и действующие на данный момент правила можно командой status:
Чтобы получить более подробную информацию, используйте параметр verbose:
С помощью команды show можно посмотреть разные отчеты:
- raw — все активные правила в формате iptables;
- builtins — правила, добавленные по умолчанию;
- before-rules — правила, которые выполняются перед принятием пакета;
- user-rules — правила, добавленные пользователем;
- after-rules — правила, которые выполняются после принятия пакета;
- logging-rules — правила логгирования пакетов;
- listening — отображает все прослушиваемые порты и правила для них;
- added — недавно добавленные правила;
Например, посмотрим список всех правил iptables:
Посмотрим все прослушиваемые порты:
Или недавно добавленные правила:
Чтобы удалить правило ufw, используется команда delete. Например, удалим ранее созданные правила для порта 80:
7. Логгирование в ufw
Чтобы отлаживать работу ufw, могут понадобится журналы работы брандмауэра. Для включения журналирования используется команда logging:
Также этой командой можно изменить уровень логгирования:
- low — минимальный, только заблокированные пакеты;
- medium — средний, заблокированные и разрешённые пакеты;
- high — высокий.
Лог сохраняется в папке /var/log/ufw. Каждая строчка лога имеет такой синтаксис:
В качестве действия приводится то, что UFW сделал с пакетом, например ALLOW, BLOCK или AUDIT. Благодаря анализу лога настройка UFW Ubuntu станет гораздо проще.
8. Отключение UFW
Если вы хотите полностью отключить UFW, для этого достаточно использовать команду disable:
Также, если вы что-то испортили в настройках и не знаете как исправить, можно использовать команду reset для сброса настроек до состояния по умолчанию:
Как выполнить проброс портов в Ubuntu Server
Термин «проброс портов» активно используют в своей терминологии профессионалы, а для новичков подобный жаргон часто остаётся непонятным. Это технология, которая позволяет работать с компьютером в локальной сети из интернета.
При этом в локальной сети может находиться маршрутизатор, который использует преобразование сетевых адресов. Таким образом, происходит перенаправление трафика с определённых портов по внешнему адресу на определённый адрес ПК во внутренней сети.
С Ubuntu проброс портов достаточно несложен в исполнении.
Проброс портов может понадобиться при организации пиринговой сети.
Подход проброса портов часто используется, когда нужно организовать на локальном компьютере сервер с доступом из любой точки мира, создать пиринговую сеть, или же использовать такое соединение для игр с большим количеством реальных игроков. Мы рассмотрим несколько основных способов реализации такой функции.
Средствами маршрутизатора
На некоторых маршрутизаторах есть возможность быстро включить поддержку проброса. Допустим, на устройствах D-Link она носит название «виртуальный сервер». Как правило, такая настройка выполняется через web-оболочку.
- Откройте браузер. В адресной строке наберите 192.168.0.1.
- Введите имя пользователя и пароль.
- Если на вашем маршрутизаторе есть Мастер настройки, запустите его и выберите задачу «Настройка виртуального сервера». Или же попробуйте найти такую функцию в разделах настроек «Межсетевой экран (Брандмауэр, firewall).
- В появившихся окнах задайте все необходимые параметры сервера. Как правило, это:
- Интерфейс. Здесь нужно выбрать соединение для связи между компьютерами.
- Внутренний IP. Это адрес сервера в местной сети.
- Внешний (удалённый) IP. Адрес сервера, с которого будет осуществляться доступ.
- Имя настройки. Имя для набора параметров.
- Сохраните введённые настройки.
Такой подход позволяет создать перенаправление средствами роутера. Он применим к любой операционной системе, в том числе, к Убунту Сервер.
С использованием hamachi
Этот способ ориентирован именно на Ubuntu, где проброс портов будет выполняться с помощью Hamachi. Хамачи позволяет построить VPN. Другими словами — это программа для работы с виртуальными частными сетями.
Допустим, в разных сетях существует группа удалённых друг от друга ПК, а связь в сети выполняется через VPN Hamachi. Сама программа должна быть установлена на сервере. После этого можно настраивать проброс портов.
Идея в том, что ПК из других локальных сетей будут обращаться напрямую только к серверу. Он, в свою очередь, будет перенаправлять их на нужный ПК внутри сети, на котором будет находиться необходимый порт.
Для выполнения инструкций потребуется компьютер с установленной Ubuntu Server.
Установка Хамачи. Для начала, загрузите пакет с официального сайта:
wget https://secure.logmein.com/labs/logmein-hamachi_2.1.0.119-1_amd64.deb
Инсталлируйте нужный пакет:
sudo apt-get install lsb
Теперь проведите сборку пакета, который был загружен:
dpkg -i logmein-hamachi_2.1.0.119-1_amd64.deb
Можно запустить соответствующую службу, а также саму программу:
service logmein-hamachi starthamachi login
Присвойте личному компьютеру имя в Хамачи. После этого подключитесь к нужной сети:
hamachi set-nick $NAME.hamachi join $NAME_NETWORK
Введите все нужные данные для доступа к сети.
sudo apt-get install rinetd
Теперь в файлы конфигурации потребуется внести изменения:
nano /etc/rinetd.conf
Сам файл, открываем при помощи редактора nano. В конце документа нужно добавить строчку:
(IP-интерфейса сервера) (прослушиваемый порт) (адрес внешнего ПК) (порт внешнего ПК)
Вставлять значения нужно без скобок, с пробелами. Для каждого подключения нужно добавить свою строку, по порядку. Теперь нужно выполнить перезапуск службы:
service rinetd restart
Теперь потребуется отключить межсетевой экран:
sudo ufw disable
Вот и всё. В завершение процесса нужно перезагрузить сервер, после чего можно проверить подключения. Проброшенный трафик можно будет контролировать при помощи дополнительных утилит.
С использованием squid
Squid — это прокси-сервер для Ubuntu. Мы уже рассматривали, как прокинуть порт на Ubuntu Сервер, Squid — также хороший инструмент для этого. Он поможет, когда необходим максимальный контроль сетевого трафика. Squid можно установить по команде:
sudo apt-get install squid3
Настройка программы выполняется правкой директив, расположенных в файле:
/etc/squid/squid.conf
О других особенностях использования Squid вы сможете узнать на официальном сайте.
Что такое Nmap в Python?
С технической точки зрения nmap-это инструмент, который используется для аудита безопасности и обнаружения сети. Способ работы nmap заключается в отправке необработанных IP-пакетов для определения того, доступен ли целевой хост в сети, какие услуги предоставляет целевой хост, какой тип брандмауэров используется, какие версии операционной системы запущены и множество других характеристик.
Мы сделаем все это с помощью python. Хотя существует инструмент GUI, самое интересное происходит только при использовании командной строки или скриптов python.
Синтаксис Python Nmap –
Чтобы использовать модуль nmap в python, нам сначала нужно установить href=”https://nmap.org/download.html”>онлайн-инструмент. После его установки нам нужно установить модуль nmap с помощью pip install python-nmap. href=”https://nmap.org/download.html”>онлайн-инструмент. После его установки нам нужно установить модуль nmap с помощью pip install python-nmap.
Обратите внимание, что мы не можем нацеливаться на какой-либо веб-сайт или IP-адрес, поскольку это незаконно, поэтому мы будем использовать локальный хост, т. е
127.0.0.1
Как собрать банеры служб
Если служба запущена на нестандартном порту, то получается, что по номеру порта невозможно определить что это за служба. Тем не менее при попытке подключения служба может вывести достаточно информации, чтобы раскрыть себя. Именно этим пользуются сборщики банеров — инициализируют самое начало процесса подключения и смотрят, что им прислала служба. В nmap есть скрипт (NSE) который называется banner, чтобы он использовался, добавьте две опции к вашей команде -sV —script=banner.
Можно собирать банеры как для всех портов, так и для одного или нескольких.
Пример команды:
sudo nmap -p 25,53,80,81,135,137,138,139,445,1121,1122,2921,2980,2988,4949,5554,9306,9312 -sV --script=banner 88.99.152.33
Пример вывода:
Используя команду netcat
Утилита netcat позволяет передавать/принимать данные через TCP/UDP соединения.
Шаблон вызова утилиты
Откроем прием (ключ -l) данных на порте 1234 с подробным выводом информации (ключ -v) и продолжением работы после разрыва соединения (ключ -k), по-умолчанию nc разрывает соединение после первого дисконекта.
Подключаемся к открытому порту и отправим import antigravity
Пример более полезного использования nc – передача файла. На принимающей стороне
На отправляющей стороне
Или можно отдавать файл любому подключившемуся. На передающей стороне
На принимающей стороне
Пример открытия shell’а на определенном порте (источник). На стороне, где нужно открыть шел
Еще один полезный пример с netcat – запуск процесса, с возможностью отслеживания его работы через сеть
Как скрыть порт iptables?
Закрыть порт, это очень хорошо, но что если он нужен нам открытым и желательно, чтобы для других этот же порт был недоступен. Существует такая технология, как Port Knocking, которая позволяет открывать нужный порт только для определенного ip адреса и только после обращения его к нужному порту. Например, нам нужно защитить SSH от перебора паролей и несанкционированного доступа. Для этого все пакеты, которые будут приходить на порт 22, 111 и 112 мы будем перенаправлять в цепочку SSH.
Как вы уже догадались, порт 22 нам непосредственно нужен, на порты 111 и 112 будут включать его и отключать соответственно. Когда пользователь обратится к порту 111 мы укажем системе, что нужно присвоить всем его пакетам имя ssh, при обращении к порту 112 уберем этот флаг. А если пользователь решит зайти на 22 порт, то проверим присвоено ли этому пакету имя SSH, если да, то пропустим, в противном случае — отбросим.
Сначала создаем цепочку SSH:
Перенаправляем пакеты:
При обращении к порту 111 присваиваем IP адресу имя, сам пакет дальше не пускаем:
При обращении к 112 убираем имя у IP:
И нам осталось только проверить имеет ли наш пакет, который пытается обратиться к 22 порту имя SSH и если да, то мы его одобряем:
Вот и все. Теперь для того чтобы открыть наш SSH порт будет достаточно попытаться подключиться к порту 111 с помощью telnet. Утилита сообщит, что произошла ошибка во время подключения, поскольку мы отбросили пакет:
Но зато теперь вы можете получить доступ к сервису SSH на порту 22. Чтобы снова закрыть порт выполните:
Даже при открытии, этот порт доступен только вашему ip адресу и больше никому другому. Но нужно заметить, что это не панацея. Кто-либо может случайно запросить порт, который предназначен для активации, и таким образом, открыть себе доступ к службе SSH. Так что надежные пароли и ключи шифрования это не отменяет.
Используя команду ss
Утилита ss – это современная альтернатива для команды netstat. В отличие от netstat, которая берет информацию из каталога /proc, утилита ss напрямую связывается со специальной подсистемой ядра Linux, поэтому работает быстрее и её данные более точные, если вы хотите выполнить просмотр открытых портов это не имеет большого значения.
Утилита ss позволяет просматривать информацию об используемых сокетах в системе. Эта команда обладает схожим функционалом к netstat, но есть и уникальные возможности. Например можно фильтровать вывод по установленным соединениям с определенным портом.
Список процессов, использующие соединения в данный момент
Список сокетов в режиме прослушивания
Пример фильтра – список всех соединений к порту 80
Каковы наиболее явные признаки того, что мы стали жертвами сканера портов?
Прежде всего, вы должны знать, что когда порт открыт, может принимать и распознавать все пакеты UDP и TCP которые выходят или входят через него. Наоборот, когда порт закрыт на маршрутизаторе или заблокирован брандмауэр, этот порт не будет получать никакой связи с внешним миром, и любой трафик, который пытается проникнуть будет отклонено.
В этом смысле, наиболее распространенная практика безопасности в этих случаях — просто закрыть порты по умолчанию, и открывать только те, с которыми вы работаете. Это предотвратит доступ к ним пиратов. Однако вы можете поддержать себя сделать полное сканирование ваших портов с помощью инструментов.
Некоторые из самых популярных инструментов сканирования портов:
Скачать Angry IPScan для MacOS
С их помощью Вы узнаете информацию о своих портах например, если в сети открыт порт, чтобы приложения могли без проблем подключаться к Интернету. Или проведите полное сканирование, чтобы выяснить возможные способы доступа к хакерам. Так, вы можете определить, страдаете ли вы от атаки сканера портов. Обычно это задача, которую выполняют многие агентства компьютерной безопасности, но вы тоже можете справиться с ней без проблем.