Открытые порты Ubuntu

Открытые порты Ubuntu

Недавно я установил два сервера Ubuntu и хотел бы найти открытые порты на каждом из них.

Когда я запустил его nmapсо своей машины (Ubuntu 11.10), я заметил, что на обоих серверах есть

135/tcp  filtered msrpc
4444/tcp filtered krb524
4662/tcp filtered edonkey
5000/tcp filtered upnp
5631/tcp filtered pcanywheredata

Я никогда не открывал эти порты. Я только установил LAMP и SAMBA. Почему эти порты открыты?

Полный список открытых портов:

22/tcp  open  ssh
25/tcp  open  smtp
53/tcp  open  domain
80/tcp  open  http
110/tcp open  pop3
135/tcp  filtered msrpc
139/tcp  open     netbios-ssn
143/tcp  open     imap
445/tcp  open     microsoft-ds
993/tcp  open     imaps
995/tcp  open     pop3s
4444/tcp filtered krb524
4662/tcp filtered edonkey
5000/tcp filtered upnp
5631/tcp filtered pcanywheredata

Вопрос в том, почему открыты эти порты: 135/tcp filtered msrpc, 4444/tcp filtered krb524, 4662/tcp filtered edonkey. 5000/tcp filtered upnp, 5631/tcp filtered pcanywheredata. Я никогда не открывал эти порты. Я только установил LAMP и SAMBA.

Этот список кажется надежным?

решение1

Список портов можно получить из файла /etc/services.

cat /etc/services | grep 137 (example)

Пример

Какие порты должны быть открыты для связи с Samba

netbios-ns - 137 # NETBIOS Name Service

netbios-dgm - 138 # NETBIOS Datagram Service

netbios-ssn - 139 # NETBIOS session service

microsoft-ds - 445 # if you are using Active Directory

выполните эту командуnetstat -anltp | grep "LISTEN"

Типичный веб-сервер, на котором работают FTP, SSH и MySQL, будет выводить примерно следующее:

tcp     0   0 127.0.0.1:3306    0.0.0.0:*   LISTEN   21432/mysqld
tcp     0   0 0.0.0.0:80        0.0.0.0:*   LISTEN   4090/apache2
tcp     0   0 0.0.0.0:22        0.0.0.0:*   LISTEN   7213/sshd
tcp6    0   0 :::21             :::*        LISTEN   19023/proftpd
tcp6    0   0 :::22             :::*        LISTEN   7234/sshd

решение2

Ваш вопрос довольно обширен, а «безопасность» — понятие относительное.

Когда вы устанавливаете сервер и открываете порт, всегда будут потенциальные уязвимости.

Когда вы устанавливаете сервер (ssh, samba) и запускаете сервер (обычно они запускаются по умолчанию при загрузке), вы открываете порт.

Для каждого сервера (ssh, samba, http) существуют изменения конфигурации, которые можно внести для повышения безопасности.

для ssh это может включать использование ключей (и отключение паролей), tcpwrapper, брандмауэра и т. д.

При использовании брандмауэра есть 3 основные стратегии:

1) Разрешить все и внести в черный список плохо работающие IP. Примером этого может быть http. В общем случае вы запускаете http как публичный сервер, разрешаете все IP и вносите в черный список тех, кто спамит ваш сервер.

2) Запретить все и разрешить белый список. Примером этого может быть ssh.

3) Ограничение. Иногда вы ограничиваете скорость соединения или количество пингов в секунду.

Надеюсь, это поможет вам начать, возможно, вы захотите увидеть

https://help.ubuntu.com/11.10/serverguide/C/index.html

https://help.ubuntu.com/community/Безопасность

Или задайте конкретный вопрос о конкретном сервере.

решение3

«отфильтрованный» не обязательно означает открытый порт на целевом хосте.

На самом деле, это может вообще ничего не значить.

Например, если между вашим компьютером nmapи целью есть брандмауэр, и этот брандмауэр активно фильтрует порт 5000, то порт 5000 будет отображаться в вашем списке как «отфильтрованный», и целевой хост никогда не увидит никакого трафика на этот порт — поэтому то, открыт ли порт на цели, становится совершенно неважным.

Для получения точного списка открытых портов на сервере попробуйте:

sudo netstat -lnp --tcp --udp

-l : only show listening ports
-n : don't bother looking up DNS hostnames
-p : show which processes have the port open
--tcp : show tcp ports
--udp : show udp ports

Вы можете пропустить --tcpи , --udpно тогда вы получите довольно много ненужной информации о сокетах локальной файловой системы, которая недоступна по сети.

sudoтребуется для -pправильной работы, иначе он просто будет печатать -для любого процесса, не принадлежащего вашему пользователю.

решение4

Поскольку netstatон больше не устанавливается по умолчанию, в отличие от lsof, я подумал, что мог бы добавить опцию, которая работает «из коробки»:

sudo lsof -nP -iTCP -sTCP:LISTEN

Связанный контент