Как закрыть порты на сервере?

Регистрация доменов
Домен RU - 99 руб
Домен РФ - 99 руб
www.

Ситуация такая: на моем сервере вдруг обнаружилась необычная активность, сайты стали падать раз в сутки без видимых причин, и часто даже ночью, когда посетителей почти нет.

Я написал хостеру, он ответил, что у меня увеличился трафик. Но откуда ему взяться? По моей статистике все оставалось почти так же. Но вот моя панель на хостинге показывала, что через мой сервер часто идет огромный трафик измеряемый в несколько мегабит!

как закрыть порты на сервереСейчас на скрине он нормальный, а был в тысячи раз больше. Откуда же он берется? Я запустил команду, чтобы узнать, что там ко мне присоединились?

tcpdump -npi eth0 port domain

И вот что показала мне эта команда:

08:06:28.927225 IP 46.8.19.20.33518 > 8.8.8.8.53: 31512+ A? torrents.empornium.me. (39)
08:06:28.948377 IP 8.8.8.8.53 > 46.8.19.20.33518: 31512 1/0/0 A 37.187.71.178 (55)
08:06:29.954971 IP 46.8.19.20.38343 > 8.8.8.8.53: 44472+ A? torrents.empornium.me. (39)
08:06:29.976711 IP 8.8.8.8.53 > 46.8.19.20.38343: 44472 1/0/0 A 37.187.71.178 (55)
08:06:29.977968 IP 46.8.19.20.38318 > 8.8.8.8.53: 15760+ A? torrents.empornium.me. (39)
08:06:29.977996 IP 46.8.19.20.38318 > 8.8.8.8.53: 24853+ AAAA? torrents.empornium.me. (39)
08:06:30.000435 IP 8.8.8.8.53 > 46.8.19.20.38318: 15760 1/0/0 A 37.187.71.178 (55)

Как видно, через меня кто то качает п@рно торренты с torrents.empornium.me. Как это происходит я пока не знаю, но чтобы заблокировать наглецов и весь такой торрент трафик можно просто быстро закрыть все порты кроме нужных.

Как закрыть порты на сервере?

Для начала нужно установить простенький фаервол ufw:

sudo apt-get install ufw

В Ubuntu он установлен по умолчанию, но не запущен. Запустим его:

sudo ufw enable

После этого ваши сайты не должны открываться, так как мы заблокировали ВСЕ! Теперь нужно просто открыт нужные нам порты простой командой:

sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 8080

Я открыл три порта: 22 ssh порт, 80 порт прокси сервера и 8080 порт веб сервера. После этого сайты стали нормально открываться. Чтобы проверить правила для ваших портов дайте команду:

netstat -anltp | grep "LISTEN"

У меня показало следующее:

tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1155/mysqld
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1315/varnishd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 980/sshd
tcp 0 0 127.0.0.1:6082 0.0.0.0:* LISTEN 1299/varnishd
tcp6 0 0 :::8080 :::* LISTEN 2379/apache2
tcp6 0 0 :::80 :::* LISTEN 1315/varnishd
tcp6 0 0 :::22 :::* LISTEN 980/sshd

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

Через 10 минут решил дописать немного статью, так как тех поддержка сказала, что это еще не все, порты на вход я закрыл, а на выход все разрешено. Решается все одной командой:

sudo ufw default deny outgoing

Теперь проверим все командой sudo ufw status verbose и смотрим:

To Action From
-- ------ ----
22 ALLOW IN Anywhere
80 ALLOW IN Anywhere
8080 ALLOW IN Anywhere
3306 ALLOW IN Anywhere
22 (v6) ALLOW IN Anywhere (v6)
80 (v6) ALLOW IN Anywhere (v6)
8080 (v6) ALLOW IN Anywhere (v6)
3306 (v6) ALLOW IN Anywhere (v6)

Правда остался открыт протокол шестой версии, но кажется это не критично.


Понравилась ИГРА? Возьми КОД, поставь себе на сайт и улучши поведенческие факторы!


5 комментариев
  1. Если вы работаете удаленно по ssh, прежде чем активировать ufw нужно разрешить порт 22, чтобы не получилось что вы обрубите сук на котором сидите. Вначале открываем затем активируем. В противном случае вам придется искать другие пути доступа к серверу.

  2. Кажется техподдержка была не права. По умолчанию ufw закрыты все на выход. Это видно если ввести команду sudo ufw status verbose. Я столкнуся с этим когда настраивал север видеоналюдения. После запуска ufw даже DNS запросы не проходили, пока не открыл на выход.

  3. Продолжая настраивать сервер видеонаблюдения понадобилось выяснять ip адрес роутера. Это было необходимо чтобы настроить DDNS. Провайдер выдает белые ip адреса, но эти адреса не статические. Один из вариантов смотреть на сайтах, но хотелось выяснять ip не покидая командную строку. На помощь пришла утилита wget. Вот несколько вариантов как узнать свой внешний ip:
    wget -qO- http://ipecho.net/plain ; echo
    wget -O - -q icanhazip.com
    Возможно кому-то пригодится.

Написать комментарий

Опубликовано © Блокнот вебмастера

СОВЕТ ВЕБМАСТЕРУ: Умение зарабатывать в интернете - это только пол дела, вторая половина - это умение ВЫГОДНО обналичивать электронные деньги. Вот список офшорных банковских карт, на которые можно выводить средства и потом снимать с них хрустящие купюры:

1. Epayments - можно открыть счет в долларах, евро и рублях. Формально банка нет, юридический адрес в Лондоне, но можно получить реквизиты банка в Латвии.

2. AdvCash - Офшорный банк находится в Белизе, можно открыть счет в долларах, евро, фунтах и рублях.

3. OkPay - Офшорная компания зарегистрирована на Британских Виргинских островах, можно открыть счет в долларах, евро и рублях.

4. Payeer - Штаб квартира этой платежной системы находится в Грузии, тут так же можно открыть счет в долларах, евро и рублях.

Во всех случаях можно заказать банковскую карту, которую пришлют вам по обычной почте. Активируете ее и идете снимать деньги банкомат! Тарифы смотрите на сайтах платежных систем.