Брандмауэр для сервиса рендеринга Splash javascript
Я установил Splash на капле Digital Ocean Docker. Я хотел использовать туннель SSH для отправки запросов и получения результатов. Я не хочу, чтобы эта услуга была доступна кому-либо еще.
Я следовал инструкциям Splash, чтобы установить Splash. Это устанавливает брандмауэр UFW на сервере со всеми заблокированными портами, кроме 22 (SSH), 80 (http) и 443 (https). Я запустил UFW, чтобы запретить доступ на 80, 443, 8050 и 5023. Результаты статуса UFW приведены ниже:
К действию от 22 LIMIT Anywhere
2375 / tcp ALLOW Anywhere
2376 / tcp ALLOW Anywhere
80 DENY везде
443 ДЕНИ Везде
8050 DENY Anywhere
22 (v6) LIMIT Anywhere (v6)
2375 / tcp (v6) ALLOW Anywhere (v6)
2376 / tcp (v6) ALLOW Anywhere (v6)
80 (v6) DENY Anywhere (v6)
443 (v6) DENY Anywhere (v6)
8050 (v6) DENY Anywhere (v6)
Когда я захожу в браузер на рабочем столе и введите:
http: //: 8050 / render.html? url = http://yahoo.com/
Сервис возвращает обработанную веб-страницу.
Почему это не заблокировано?
РЕДАКТИРОВАТЬ Я нашел ответ. Docker вносит изменения непосредственно в ваши iptables, которые не отображаются со статусом ufw.
Согласно документам Splash, Splash можно запустить с помощью команды:
запуск докера -p 8050:8050 -p 5023:5023 скребок / брызг
Однако, если вы начнете с:
Docker run -p 127.0.0.1:8050:8050 -p 127.0.0.1:5023:5023 scrapinghub/splash
Теперь он доступен только локально. Для получения дополнительной информации см. Несложный межсетевой экран (UFW) ничего не блокирует при использовании Docker.