Вскоре я попытаюсь развернуть свое первое веб-приложение, поэтому мне не хватает опыта. Я помню, как где-то читал, что сканирование портов ботами происходит в течение нескольких минут после того, как они попадают в Интернет (возможно, именно столько времени требуется для взлома системы Windows 95, прошло много времени с тех пор, как я прочитал эту статью). Этот конкретный сервер работает под управлением серверной версии Ubuntu 9.10 на amd64.
Само веб-приложение должно быть полностью через https, согласно этому вопросу Я только что спросил здесь. Кроме того, на веб-сайте есть раздел загрузки файлов, который теперь выполняется через http-сообщение, и этот файл в конечном итоге передается через отдельный (к сожалению, беспроводной) интерфейс другому компьютеру для обработки фактической обработки.
Итак, в реальном сетевом интерфейсе, доступном миру, я думаю, что должны быть открыты порты 80 и 443, и ничего больше. Как я уже сказал, 80 должен перенаправить на 443. Это нормально? Есть что-то еще, чего я не знаю, какой-то другой порт, который мне нужно активировать? Файлы перемещаются в систему обработки с использованием ruby DRb через порты 9000 и 9001, поэтому они также должны быть открыты, но только на втором интерфейсе.
Кроме того, какой брандмауэр мне следует использовать для обработки двух подобных сетевых интерфейсов? Есть несколько перечисленных здесь, но я не уверен, что подходит для обслуживания веб-страниц, и даже если это вообще особый случай.
звучит правильно, если вы обслуживаете только https, то это тот, который вам нужно оставить открытым. однако только приложение, запущенное с учетной записью root, может прослушивать порты ниже 1024, поэтому у вас есть два варианта здесь:
ниже показано, как вы выполняете переадресацию портов (например, вы можете сделать то же самое с 80 на 8080):
iptables -t nat -A PREROUTING -i $EXT_IF -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8443
кроме этого, нет необходимости открывать какие-либо другие порты в Интернет, просто убедитесь, что вы оставили открытым ssh на другом интерфейсе, чтобы вы могли получить доступ к серверу и управлять им.
Что касается приложения брандмауэра, iptables поставляется с ubuntu и просто используйте его, я бы сказал, что нет необходимости в каких-либо дополнительных инструментах.
Вы правы в том, что открывать нужно только порты 80/443. Все остальное нужно закрыть. Вам понадобится ваш брандмауэр, чтобы делать несколько вещей.
Это некоторые мысли. Однако конкретных рекомендаций по программному обеспечению у меня нет. Может читать LARTC может помочь.