Открыть порт Linux и посмотреть открытые средствами самой системы

В ОС Linux понятие открытие порта немного звучит некорректно. Можно, конечно закрыть сначала все соединения и потом открыть порт Linux, который необходим.

Но это задача для опытных пользователей. Операционная система и установленные программы используют множество портов для своей работы, обновлений и т.д. При таком подходе можно просто заработать много проблем.

Сначала нужно посмотреть открытые порты Linux в системе. Для этого можно воспользоваться утилитой netstat. В большинстве популярных дистрибутивов Linux она установлена по умолчанию, если нет, то ее следует установить.

После установки достаточно ввести в консоль команду

netstat -ltupn

и в выводе можно увидеть все открытые порты, ip адреса и имена процессов, которым принадлежат соединения.

Файрволл iptables есть во всех дистрибутивах Linux, его правила одинаковы везде, будь то Ubuntu, Gentoo или Fedora, а вот настройка и запуск различны. Но есть один универсальный способ. Профессионалы вряд ли его применят, но для простых пользователей самое то.

Открыть порт Linux средствами самой системы


Для проверки, установлен ли iptables в системе следует выполнить в консоли команду

iptables -list

результатом ее выполнения будет вывод информации об отсутствии этой команды в системе или текущих настроек программы.

Оптимально будет закрыть все порты, открыть нужные системе, а потом, добавляя правила, открыть порты Linux нужные для игр, передачи файлов, web-серфинга.

Для этого, убедившись, что iptables установлен, создаем с правами суперпользователя файл /etc/iptables.sh с таким содержимым

#!/bin/bash
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# закрываем все соединения
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# разрешаем трафик loopback, нужен обязательно
iptables -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# разрешаем инициированные программами, системой и их дочерние соединения.
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
#отбрасываем все пакеты без статуса.
## далее команды чтобы открыть порт Linux:
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 80 -j ACCEPT
# открываем порты для посещения сайтов
iptables -A INPUT -i eth0 -p tcp --dport «номер нужного входящего порта» -j ACCEPT
iptables -A OUTPUT -i eth0 -p tcp --dport «номер нужного исходящего порта» -j ACCEPT
# добавляем еще, которые нам нужны, в список открытых портов Linux

Разбор синтаксиса при открытии портов Linux


Необходимо пояснить синтаксис:

  • ACCEPT — разрешающие соединения
  • DROP — запрещающие
  • OUTPUT и INPUT — входящие и исходящие
  • eth0 — сетевой интерфейс, его номер может быть другим.

Сохраняем файл, закрываем, делаем его исполняемым командой в консоли

chmod +x /etc/iptables.sh

и помещаем его команду для запуска в файл /etc/rc.local до строчки exit 0.

Запускаем файл — sh /etc/iptables.sh, проверяем netstat открытые порты, если надо закрыть какой-либо порт, добавляем еще строчку в файл и снова запускаем программу.

Все действия по созданию, запуску и изменению файлов для того чтобы открыть порт Linux нужно выполнять с правами суперпользователя.

2 комментария

lodiur
root@lodiur-PK:/home/lodiur# sudo sh /etc/iptables.sh
iptables v1.6.0: Can't use -i with OUTPUT

Try `iptables -h' or 'iptables --help' for more information.
root@lodiur-PK:/home/lodiur#
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.