Ситуация такая: на моем сервере вдруг обнаружилась необычная активность, сайты стали падать раз в сутки без видимых причин, и часто даже ночью, когда посетителей почти нет.
Я написал хостеру, он ответил, что у меня увеличился трафик. Но откуда ему взяться? По моей статистике все оставалось почти так же. Но вот моя панель на хостинге показывала, что через мой сервер часто идет огромный трафик измеряемый в несколько мегабит!
tcpdump -npi eth0 port domain
И вот что показала мне эта команда:
1 2 3 4 5 6 7 |
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:
1 |
sudo apt-get install ufw |
В Ubuntu он установлен по умолчанию, но не запущен. Запустим его:
1 |
sudo ufw enable |
После этого ваши сайты не должны открываться, так как мы заблокировали ВСЕ! Теперь нужно просто открыт нужные нам порты простой командой:
1 2 3 |
sudo ufw allow 22 sudo ufw allow 80 sudo ufw allow 8080 |
Я открыл три порта: 22 ssh порт, 80 порт прокси сервера и 8080 порт веб сервера. После этого сайты стали нормально открываться. Чтобы проверить правила для ваших портов дайте команду:
1 |
netstat -anltp | grep "LISTEN" |
У меня показало следующее:
1 2 3 4 5 6 7 |
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 минут решил дописать немного статью, так как тех поддержка сказала, что это еще не все, порты на вход я закрыл, а на выход все разрешено. Решается все одной командой:
1 |
sudo ufw default deny outgoing |
Теперь проверим все командой sudo ufw status verbose и смотрим:
1 2 3 4 5 6 7 8 9 10 |
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) |
Правда остался открыт протокол шестой версии, но кажется это не критично.
Если вы работаете удаленно по ssh, прежде чем активировать ufw нужно разрешить порт 22, чтобы не получилось что вы обрубите сук на котором сидите. Вначале открываем затем активируем. В противном случае вам придется искать другие пути доступа к серверу.
Если вы работаете удаленно по ssh, прежде чем активировать ufw нужно разрешить порт 22, чтобы не получилось что вы обрубите сук на котором сидите. Вначале открываем затем активируем. В противном случае вам придется искать другие пути доступа к серверу.
Кажется техподдержка была не права. По умолчанию ufw закрыты все на выход. Это видно если ввести команду sudo ufw status verbose. Я столкнуся с этим когда настраивал север видеоналюдения. После запуска ufw даже DNS запросы не проходили, пока не открыл на выход.
Кажется техподдержка была не права. По умолчанию ufw закрыты все на выход. Это видно если ввести команду sudo ufw status verbose. Я столкнуся с этим когда настраивал север видеоналюдения. После запуска ufw даже DNS запросы не проходили, пока не открыл на выход.
Продолжая настраивать сервер видеонаблюдения понадобилось выяснять ip адрес роутера. Это было необходимо чтобы настроить DDNS. Провайдер выдает белые ip адреса, но эти адреса не статические. Один из вариантов смотреть на сайтах, но хотелось выяснять ip не покидая командную строку. На помощь пришла утилита wget. Вот несколько вариантов как узнать свой внешний ip:
wget -qO- http://ipecho.net/plain ; echo
wget -O — -q icanhazip.com
Возможно кому-то пригодится.
Продолжая настраивать сервер видеонаблюдения понадобилось выяснять ip адрес роутера. Это было необходимо чтобы настроить DDNS. Провайдер выдает белые ip адреса, но эти адреса не статические. Один из вариантов смотреть на сайтах, но хотелось выяснять ip не покидая командную строку. На помощь пришла утилита wget. Вот несколько вариантов как узнать свой внешний ip:
wget -qO- http://ipecho.net/plain ; echo
wget -O — -q icanhazip.com
Возможно кому-то пригодится.
Как закрить порт 80????
Как закрить порт 80????
Как закрить порт 80????
Зачем его закрывать?
Зачем его закрывать?
Зачем его закрывать?