Назад | Перейти на главную страницу

Как определить, что блокирует мой входящий трафик в Ubuntu 14.04 LTS, если это НЕ iptables и НЕ группа безопасности EC2?

У меня есть root-доступ по SSH к экземпляру EC2.

Это Ubuntu 14.04 LTS.

у меня есть nginx веб-сервер прослушивает все интерфейсы на порту 80 TCP. Он доступен с этого сервера, но не извне.

По-видимому, весь мой входящий трафик, кроме 22 TCP, заблокирован - другие порты TCP, все UDP и ICMP.

Все же мой iptables на этом сервере пусто:

root@ip-x-x-x-x:~# iptables -v -L
Chain INPUT (policy ACCEPT 3162 packets, 1472K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 4203 packets, 674K bytes)
 pkts bytes target     prot opt in     out     source               destination  

Вот nmap сканировать вывод с моего локального компьютера:

grzegorz@MacBook-Pro-Grzegorz:~$ sudo nmap -v -Pn -p 22,80 x.x.x.x

Starting Nmap 6.47 ( http://nmap.org ) at 2015-01-31 20:40 CET
Initiating Parallel DNS resolution of 1 host. at 20:40
Completed Parallel DNS resolution of 1 host. at 20:40, 0.16s elapsed
Initiating SYN Stealth Scan at 20:40
Scanning ec2-x-x-x-x.eu-central-1.compute.amazonaws.com (x.x.x.x) [2 ports]
Discovered open port 22/tcp on 54.93.91.112
Completed SYN Stealth Scan at 20:40, 1.38s elapsed (2 total ports)
Nmap scan report for ec2-x-x-x-x.eu-central-1.compute.amazonaws.com (x.x.x.x)
Host is up (0.035s latency).
PORT   STATE    SERVICE
22/tcp open     ssh
80/tcp filtered http

Read data files from: /usr/local/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 1.58 seconds
           Raw packets sent: 3 (132B) | Rcvd: 1 (44B)

.. так что какой-то брандмауэр является блокирует мой трафик.

Предположим, что это НЕ Группа безопасности EC2.

Что еще может блокировать мой трафик? Что-то, что работает на самом VPS? Что-то в ядре или что-то в пользовательском пространстве?


ОБНОВИТЬ:

Я тестировал аппармор:

root@ip-x-x-x-x:~# apparmor_status --verbose
apparmor module is loaded.
4 profiles are loaded.
4 profiles are in enforce mode.
   /sbin/dhclient
   /usr/lib/NetworkManager/nm-dhcp-client.action
   /usr/lib/connman/scripts/dhclient-script
   /usr/sbin/tcpdump
0 profiles are in complain mode.
1 processes have profiles defined.
1 processes are in enforce mode.
   /sbin/dhclient (607) 
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.

..и я интерпретирую этот вывод как не имеющий никакого отношения к фильтрации, но я все равно отключил его:

root@ip-x-x-x-x:~# service apparmor stop
 * Clearing AppArmor profiles cache
   ...done.
All profile caches have been cleared, but no profiles have been unloaded.
Unloading profiles will leave already running processes permanently
unconfined, which can lead to unexpected situations.

To set a process to complain mode, use the command line tool
'aa-complain'. To really tear down all profiles, run the init script
with the 'teardown' option."
root@ip-x-x-x-x:~# service apparmor teardown
 * Unloading AppArmor profiles
   ...done.

..но это не помогло. nmap все еще показывает filtered TCP 80, nginx все еще недоступен.

Возможно, у хостинг-провайдера есть служба брандмауэра, по умолчанию разрешающая только ssh-трафик на сервер. Целью такого значения по умолчанию может быть ограничение уязвимости сервера до тех пор, пока у вас не будет времени установить все обновления безопасности, усилить вашу конфигурацию и в целом убедиться, что ваш сервер готов к работе.

Если такая служба существует, вероятно, будет существовать веб-интерфейс, через который ее можно будет настроить. Также должно быть место для его полного отключения.

Я бы рекомендовал следующие шаги:

  1. Прочтите документацию хостинг-провайдера, чтобы узнать, работает ли служба межсетевого экрана, подобная описанной выше.
  2. Используйте инструменты, чтобы сузить список любых фильтров, для которых вы не нашли документации.
  3. Спросите у провайдера

Что вы можете сделать, чтобы сузить расположение фильтров, так это использовать traceroute команда. Ubuntu 14.04 имеет traceroute команда с флагами, которые могут отправлять пакеты с определенным протоколом и номером порта. Таким образом, вы можете, например, сравнить выходные данные, полученные от трассировки, с портами 22 и 80.

traceroute -n -T -p 22 server

Обратите внимание, что разные traceroute реализации существуют. Если по какой-то причине флаги не работают, попробуйте traceroute.db, что должно дать вам версию с поддержкой указанной выше комбинации флагов.

По-видимому, в Linux нет другого брандмауэра, который фактически не использует iptables/netfilter. Также простой SYN-тест - это правильный способ проверить, фильтруется ли ваш трафик брандмауэром. Вы правы в том, что поиск «восходящего» межсетевого экрана, группы безопасности этого экземпляра EC2 в этом примере, является единственным разумным способом решить эту проблему. Спасибо за ваш вклад, который привел к этому ответу.