Несколько дней назад я начал беспокоиться о безопасности своих данных, и в итоге nmap
я стал:nmap 127.0.0.1
Сюрприз, сюрприз, я много активных сервисов слушаю localhost:
$ nmap 127.0.0.1
Starting Nmap 5.21 ( http://nmap.org ) at 2013-05-05 00:19 WEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00025s latency).
Not shown: 993 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
111/tcp open rpcbind
139/tcp open netbios-ssn
445/tcp open microsoft-ds
631/tcp open ipp
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
Единственное, что я мог бы использовать ssh
(хотя, вероятно, он не очень хорошо настроен, я оставлю этот вопрос на другом вопросе).
Насколько я знаю, ipp
протокол используется CUPS для обмена моими принтерами, мне не нужно делиться ими, просто получай доступ к принтерам с сервера.
Это вывод netstat -lntup
пользователя root, удаляющий адреса localhost:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 497/sshd
tcp 0 0 0.0.0.0:17500 0.0.0.0:* LISTEN 2217/dropbox
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 892/smbd
tcp 0 0 0.0.0.0:50022 0.0.0.0:* LISTEN 1021/rpc.statd
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 892/smbd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 906/rpcbind
tcp6 0 0 :::22 :::* LISTEN 497/sshd
tcp6 0 0 :::42712 :::* LISTEN 1021/rpc.statd
tcp6 0 0 :::445 :::* LISTEN 892/smbd
tcp6 0 0 :::139 :::* LISTEN 892/smbd
tcp6 0 0 :::111 :::* LISTEN 906/rpcbind
udp 0 0 0.0.0.0:51566 0.0.0.0:* 615/avahi-daemon: r
udp 0 0 0.0.0.0:68 0.0.0.0:* 7362/dhclient
udp 0 0 0.0.0.0:111 0.0.0.0:* 906/rpcbind
udp 0 0 192.168.1.255:137 0.0.0.0:* 1782/nmbd
udp 0 0 192.168.1.67:137 0.0.0.0:* 1782/nmbd
udp 0 0 0.0.0.0:137 0.0.0.0:* 1782/nmbd
udp 0 0 192.168.1.255:138 0.0.0.0:* 1782/nmbd
udp 0 0 192.168.1.67:138 0.0.0.0:* 1782/nmbd
udp 0 0 0.0.0.0:138 0.0.0.0:* 1782/nmbd
udp 0 0 0.0.0.0:655 0.0.0.0:* 906/rpcbind
udp 0 0 0.0.0.0:17500 0.0.0.0:* 2217/dropbox
udp 0 0 0.0.0.0:5353 0.0.0.0:* 615/avahi-daemon: r
udp 0 0 0.0.0.0:34805 0.0.0.0:* 1021/rpc.statd
udp6 0 0 :::40192 :::* 1021/rpc.statd
udp6 0 0 :::111 :::* 906/rpcbind
udp6 0 0 :::655 :::* 906/rpcbind
udp6 0 0 :::5353 :::* 615/avahi-daemon: r
udp6 0 0 :::42629 :::* 615/avahi-daemon: r
Как мне настроить эти сервисы, чтобы они слушали внешний мир только тогда, когда я на самом деле их использую?
netstat -lntup
-l = listen -n = number -t = tcp -u = udp -p = pid. Показывает, какие процессы у вас запущены и какие порты они предоставляют. Все, что открыто для 127.0.0.1, недоступно для Интернета.eth0
,?), Добавивsmb.conf
две директивыbind interfaces only = yes
иinterfaces = eth0
.Ответы:
Определите вашу экспозицию
Если взять ваш вывод из
netstat
команды, то, что выглядит как множество сервисов, на самом деле очень короткий список:Приступая к земле
Глядя на этот список, есть несколько услуг, которые я бы оставил в покое.
Начните уменьшать его - отключите Samba
Вероятно, вы можете сразу отключить Samba, на него приходится 2 из вышеперечисленных сервисов,
nmbd
иsmbd
. Сомнительно, что вам действительно нужно, чтобы он работал на ноутбуке, будь то локальный хост или ваш IP, обращенный к вашей сети.Чтобы проверить, что они работают, вы можете использовать следующую команду
status
:Отключение сервисов может привести к путанице во всем, что происходит с upstart, /etc/rc.d, бизнесом, поэтому может быть трудно определить, какой сервис и под какой технологией. Для Samba вы можете использовать
service
команду:Теперь они выключены:
Держать их подальше ... навсегда
Чтобы заставить их остаться в стороне, я использовал этот инструмент,
sysv-rc-conf
чтобы управлять сервисами из консоли, он работает лучше, чем большинство. Это позволяет вам проверить, какие службы вы хотите запустить и на каком уровне запуска они должны быть запущены / остановлены:Отключение всего остального, что НЕ нужно
Так что теперь Samba выключен, мы остались со следующим:
Для остальных 3 вы можете сделать то же самое, что мы сделали для Samba, чтобы отключить их.
CUPS?
Чтобы отключить CUPS, который, кстати, вам не нужен, вы можете выполнить тот же танец: отключить службу, а затем отключить ее запуск. Чтобы иметь возможность печатать, вам нужно настроить каждый принтер отдельно в вашей системе. Вы можете сделать это через
system-config-printer
графический интерфейс.Делать эти услуги по запросу?
Это действительно суть вашего вопроса, но на самом деле нет решения «серебряной пули» для того, чтобы сделать эти сервисы «умными», чтобы они работали, когда они используются, а не постоянно.
# 1 - системный против выскочкиЧастично это текущее разделение между systemd и upstart . Там есть обзор хороший из 2 конкурирующих технологий здесь .
Обе технологии пытаются сделать немного разные вещи, IMO, учитывая их наборы функций, systemd, похоже, больше ориентирован на серверы, тогда как upstart больше ориентирован на настольные ПК. Со временем это сработает, IMO, и оба сервиса будут стабильными и многофункциональными.
В конце концов обе услуги будут предлагаться по требованию, начиная и останавливаясь по всем направлениям для всех услуг, которыми они управляют. Такие функции, как
№ 2 - сервисная поддержкаStopWhenUnneeded=yes
уже существуют,systemd
например, так что это только вопрос времени, когда эти возможности будут реализованы.Некоторые службы не поддерживают остановку / запуск очень хорошо, если вообще. Такие службы, как
sshd
кажется, не имеют смысла работать по требованию, особенно если они интенсивно используются. Также некоторые сервисы, такие как Apache, предоставляют внутри себя механизмы, позволяющие более или менее раскручивать своих собственных слушателей, управляющих собой. Поэтому неясно, как по требованию предоставляютсяsystemd
илиupstart
собираются интегрироваться с этими типами услуг.Это действительно необходимо?
С обеих сторон вы услышите, что это излишне или что вы должны использовать минималистский подход, устанавливая только то, что вам абсолютно необходимо, но это действительно личный выбор. Понимание того, что эти сервисы есть и что они делают, действительно важно. В конце концов, компьютер - это инструмент, и, используя систему Unix, вы уже говорите, что готовы заглянуть за кулисы и понять, что заставляет ваш компьютер работать.
Я бы сказал, что этот тип вопросов - именно тот тип мышления, к которому следует стремиться при работе с компьютерами и Unix в целом.
Ссылки
systemd - википедия
[10: http://tech.cueup.com/blog/2013/03/08/running-daemons/
источник
127.0.0.1 - это не «внешний мир», он смотрит вокруг дома.
Проверьте конфигурацию вашего брандмауэра (iptables в Linux сегодня), большинство из них не должно быть доступно с другой стороны.
Не запускайте сервисы, которые вам не нужны. Удалите все ненужные программы.
Сменить пароли, чтобы быть сильнее. Проверьте свое использование системы, не гонитесь за любыми интересными веб-сайтами наугад. Проверьте настройки браузера на антифишинг, анти-скрипты и т. Д. Пересмотрите использование SSH и su / sudo.
Но больше всего чрезмерная паранойя контрпродуктивна. Не попадайтесь в ловушку блеска технологий .
источник
Хотя вы можете «закрывать» отдельные службы - возможно, вам будет проще настроить брандмауэр. Почти все распространенные дистрибутивы (Ubuntu, Debian, Centos и т. Д.) Имеют встроенную поддержку iptables.
Простой набор правил для начала: (вы можете просто ввести их в командной строке; чтобы сделать их постоянными, добавить их в сценарии запуска или сообщить нам, какой дистрибутив вы используете. На Centos, например: system-config -firewall - хороший интерфейс для настройки правил iptables)
В основном - разрешить входящий ssh; Отбрось все остальное.
Ваша цепочка INPUT теперь выглядит так:
Позже, скажем, вы хотите разрешить 'samba' (общий доступ к файлам Windows): вы можете запустить
В
-I
Добавляет и правило в списке;-A
добавляет правило. Итак, ваша цепочка теперь выглядит так:INPUT
Цепь относится к пакетам , предназначенным для вашей системы. Другие цепочки предназначеныOUTPUT
для пакетов с вашего компьютера, для выхода в Интернет иFORWARD
для пакетов, которые маршрутизируются через ваш компьютер (то есть пакеты, которые «проходят» через ваш компьютер, как транзитная зона аэропорта - вещи, которые неINPUT
потому, что они не входят в ваш компьютер). ).В качестве напутствия: nmap'ing 127.0.0.1 не очень полезен; многие сервисы доступны только с 127.0.0.1 и без другого адреса. Если у вас нет другой машины, с которой вы можете запустить nmap - попробуйте использовать Shield UP от Gibson Research! ( https://www.grc.com/shieldsup ) - это бесплатный онлайн nmap-lite. Или добавьте комментарий с вашим IP / адресом электронной почты, и я вам nmap :)
источник