
У меня есть несколько общих вопросов о брандмауэрах, и я подумал, что местное сообщество может мне помочь.
1) Так вот, я недавно установил Ubuntu server barebones. Я проверил открытые порты, ни один не был открыт, что было здорово. Это потому что был установлен брандмауэр или потому что не было установлено никаких приложений?
2) Я установил несколько приложений (Apache, postgres, ssh, Java app и еще несколько). В итоге я открыл несколько портов (~10). Теперь у меня есть список всех портов, которые мне нужно открыть. Итак, как мне их защитить? [Это правильный вопрос? Процесс выглядит так: Установить брандмауэр -> Разрешить указанные необходимые порты -> Запретить остальные с помощью правил IPtables]
Это будет открыто для интернета. Хостинг сайтов электронной коммерции с низким трафиком.
3) Как вы думаете, какой самый простой способ для меня квазизащитить сервер, [низкие затраты на обслуживание/простота. Есть ли какое-нибудь открытое "программное обеспечение", которое может облегчить мне жизнь?]
4) Наконец, из указанных открытых портов [2], у меня есть 2 порта, которые мне нужно закрыть, потому что это порты telnet. Могу ли я закрыть эти порты без установки "брандмауэра"
Спасибо всем за помощь и счастливого Рождества!!!!!!!
решение1
- У вас не было портов прослушивания, потому что у вас не было процессов прослушивания. Ubuntu хорошо справляется с этой задачей при установке по умолчанию. Те процессы, которым требуется порт прослушивания, обычно используют localhost (127.0.0.1) по умолчанию. Это предотвращает прямой доступ с удаленных систем.
- Такие приложения, как Apache и SSH-сервер, должны прослушивать соединения с удаленных серверов. Apache имеет собственные списки ACL для защиты доступа. SSH-сервер можно защитить с помощью файлов hosts.allow и hosts.deny в дополнение к его конфигурации. Приложения MySQL и PostressSQL должны прослушивать localhost по умолчанию. Если вам нужен доступ из другой системы, вам нужно будет изменить их конфигурацию прослушивателя. Обычно они имеют один или несколько механизмов для защиты доступа.
- Используйте hosts.allow/hosts.deny для приложений, которые поддерживают этот механизм. Использование конструктора брандмауэра, напримерБереговая стенадля создания безопасного брандмауэра помогает. Понимание собственных механизмов безопасности каждого приложения помогает углубить ваши механизмы. Такой инструмент, как logcheck, может отслеживать ваши журналы и уведомлять вас о некоторых событиях, которые вам может потребоваться проверить. Я использую Munin для мониторинга своих систем и в некоторых случаях предупреждает меня о проблемах. Это заменяет предыдущее использование Nagion и MRTG для мониторинга и построения графиков использования системы.
- Если у вас запущен telnet, вы можете закрыть порты, остановив службу. Если вам это действительно не нужно, удалите пакет telnet и замените его на ssh-server. Большинство серверов telnet поддерживают использование hosts.allow/hosts.deny для ограничения доступа. Это также относится к приложениям, работающим под управлением inetd или xinetd. MySQL и PostgreSQL должны прослушивать только 127.0.0.1, что защищено от прямого доступа извне вашего сервера.
Моя обычная конфигурация брандмауэра Shorewall начинается с примера конфигурации для количества интерфейсов на сервере (или зон доступа: NET, LAN, DMZ). Обратите внимание, что если зоны совместно используют интерфейсы и/или маршрутизаторы, они могут быть менее безопасны, чем могли бы быть. Затем я настраиваю правила по мере необходимости.
Я часто отключаю любые политики исходящего доступа по умолчанию. Они заменяются правилами, разрешающими исходящий доступ на требуемых портах (DNS, NTP, SMTP и т. д.).
решение2
1.) Вы всегда можете это проверитьiptables-Lэтот вывод означает отсутствие брандмауэра:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
2.) Да, просто разрешите порты во входной цепочке на вашем интерфейсе (например, eth0) и отключите все остальное.
Вам также следует сделать некоторые другие вещи, например:
- НУЛЕВОЙ
- рождество (SYN+FIN+ACK)
- СИН-ФИН
и не забудьте установить важные параметры sysctl
3.) простые способы:
- брандмауэр:http://easyfwgen.morizot.net/gen/
- инструмент анализа логов, который информирует вас об угрозах
- другие инструменты, которые выполняют проактивные проверки (например, fail2ban)
- инструменты мониторинга, которые информируют вас о состоянии ваших машин (например, zabbix, nagios)
4.) введите следующую команду
root@host:~# netstat -npl | grep LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1417/telnet
интересный номер - 1417 (номер процесса) после telnet. убейте его с помощьюубить -9 1417
но будьте осторожны с тем, что убиваете!
Если вы не хотите его убивать, вы можете просто запретить использование этого порта с помощью брандмауэра...
решение3
1) Вы можете (проверить себя) установить ssh и попробовать посмотреть, показывает ли nmap порт 22 открытым на другом компьютере. 2) Это большой ответ. Вы должны точно знать, какую защиту вы хотите дать своим службам... 3) ? 4) закрыть службу inetd