1

Как я могу получить список прослушиваемых портов и имя пользователя, который их связал (в linux)?

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

Я не мог понять, как это сделать, но, похоже, если бы у меня была правильная комбинация bash-fu, я мог бы получить вышеупомянутый список и периодически проверять, какие пользователи привязаны к каким портам и, если есть, пользователи должны быть заблокированы за использование портов, которым они не были назначены.

2 ответа2

0

Как насчет использования IPTABLES для разрешения доступа только к тем портам, к которым ваши пользователи должны иметь доступ: например, разрешить порт 80:

/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT

остальные другие порты по умолчанию отклонены (нужно немного больше записей, чтобы указать поведение по умолчанию). Та же концепция объясняется здесь

Кроме того, если в будущем вы захотите разрешить любому пользователю доступ к какому-либо конкретному порту, вы можете добавить запись в IPTABLE с параметрами -m owner --uid-owner {USERNAME} для конкретного пользователя.

0

Вы можете получить ответ, используя netstat, однако я всегда использовал lsof, который обычно устанавливаю на серверах. lsof отлично подходит для изучения процессов linux, а также файлов и сокетов, которые они используют. Например, lsof -i -P выдаст такой тип вывода:

# lsof -i -P
COMMAND     PID    USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
sshd       1468    root    3u  IPv4   599160      0t0  TCP *:22 (LISTEN)
mysqld     1718   mysql   10u  IPv4   599883      0t0  TCP *:3306 (LISTEN)
dovecot    1776    root    5u  IPv4   599934      0t0  TCP *:993 (LISTEN)
spamd      1789    root    5u  IPv4   600861      0t0  TCP localhost.localdomain:783 (LISTEN)

Объедините это с cut, grep, sed и т.д., И вы сможете составить сценарий решения, предоставляющего вам отчет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .