Много тем было создано о портах SQ, много слёз было пролито Сегодня я расскажу вам как закрыть порты SQ и не только.
Для начала определим какую систему инициализации использует ваша ОС. Выполним следующую команду:
ps -p 1 -o comm=
Ответ этой команды, укажет вам путь к правильному спойлеру ;)
У Вас systemd. Итак, продолжим сей тернистый путь...
Начнем с обновления индексов репозиториев и установки iptables-persistent
sudo apt update && sudo apt install iptables-persistent
Будет предложено сохранить правила ipv4 & ipv6, соглашаемся.
Открываем блокнотом файл rules.v4 (рассмотрим вариант с консоли, а вы можете в winscp редактировать)
nano /etc/iptables/rules.v4
Удаляем содержимое и копируем и вставляем текст из спойлера
Код:# Generated by iptables-save v1.4.21 on Tue Feb 7 13:31:28 2017 *filter :INPUT DROP [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j DROP -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP -A INPUT -m state --state RELATED,ESTABLISHED -m comment --comment "enable IN connections" -j ACCEPT # SSH Port -A INPUT -p tcp -m state --state NEW,RELATED,ESTABLISHED --dport 22 -m comment --comment "Allow SSH" -j ACCEPT # TCP Ports & Uncomment and open your preferred ports #-A INPUT -p tcp -m state --state NEW -m multiport --dports 8087,8088 -j ACCEPT # UDP Ports & Uncomment and open your preferred ports #-A INPUT -p udp -m state --state NEW -m multiport --dports 8768,10999,27015 -j ACCEPT # Web Ports connection limit & http and https ports included -A INPUT -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcp -m multiport --dports 80,443 -m connlimit --connlimit-above 10 --connlimit-mask 32 -m comment --comment "nginx drop connlimit" -j REJECT --reject-with icmp-port-unreachable -A INPUT -p tcp -m tcp -m multiport --dports 80,443 -m state --state NEW -m comment --comment nginx -j ACCEPT # TeamSpeak 3 exploit rules -A INPUT -p udp -m multiport --dports 9987:9999 -m comment --comment "TeamSpeak3 Voice" -j ACCEPT -A INPUT -p udp -m udp -m multiport --ports 9987:9999 -m length --length 300:400 -m string --hex-string "|545333494e495431|" --algo kmp -m comment --comment "TS3 sploit" -j DROP -A INPUT -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 30033 -m comment --comment "TeamSpeak3 Files" -j ACCEPT # GameTracker & Teamspeak-Server.org monitoring accept -A INPUT -p tcp --destination-port 10011 -m iprange --src-range 208.167.225.11-208.167.225.13 -m comment --comment "gametracker.com monitoring" -j ACCEPT -A INPUT -p tcp --destination-port 10011 -m iprange --src-range 208.167.241.183-208.167.241.190 -m comment --comment "gametracker.com monitoring" -j ACCEPT -A INPUT -p tcp --destination-port 10011 -m iprange --src-range 108.61.78.147-108.61.78.150 -m comment --comment "gametracker.com monitoring" -j ACCEPT -A INPUT -s 37.187.252.194 -p tcp -m tcp --dport 10011 -m comment --comment "teamspeak-servers.org monitoring" -j ACCEPT -A INPUT -s 94.23.153.152 -p tcp -m tcp --dport 10011 -m comment --comment "teamspeak-servers.org monitoring" -j ACCEPT # Uncomment for allow ping (ICMP) -A INPUT -p icmp --icmp-type 0 -j ACCEPT -A INPUT -p icmp --icmp-type 8 -j ACCEPT COMMIT # Completed on Tue Feb 7 13:31:28 2017
Примечание #1: Под строкой SSH Port, установлен стандартный порт для SSH: 22, смените его на свой, если вы ранее меняли порт SSH. Иначе рискуете потерять доступ к серверу.
Примечание #2: Перед тем как сохраниться, обратите внимание на строки под TCP Ports и UDP Ports, они закомментированы. Если вам нужно открыть какой либо порт, выясните какой тип порта вам нужен (TCP или UDP). Раскомментируйте нужное правило, добавлять порты нужно через запятые, как указано в примере.
Запомните!
По умолчанию открыты порты:
SSH - 22
TeamSpeak - 9987 по 9999 для вирт. серверов, 30033, 10011 только для сервисов мониторинга GameTracker и Teamspeak-Servers.org!
Web порты - 80 и 443
Тоже самое делаем для IPv6, блокнотом открываем файл rules.v6
nano /etc/iptables/rules.v6
Удаляем содержимое и копируем и вставляем текст из спойлера
Код:# Generated by ip6tables-save v1.4.21 on Tue Feb 7 13:20:45 2017 *filter :INPUT DROP [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -i lo -j ACCEPT COMMIT # Completed on Tue Feb 7 13:20:45 2017
Правило разрешает все локальные подключения, а INPUT запрещаем.
Сохраняем CTRL+O, CTRL + X.
Итак, мы добавили необходимые порты и сохранили правила. Настало время их применить.
sudo systemctl restart netfilter-persistent.service
Не сработала ни одна команда? Тогда старый дедовский способ!
iptables-restore < /etc/iptables/rules.v4
ip6tables-restore < /etc/iptables/rules.v6
Важно! После выполнения этой команды правила применятся! Не закрывайте текущую сессию в консоли. Лучше открыть новую сессию и проверить, есть ли доступ к серверу по SSH. И все ли вы сделали правильно. Если подключение есть, значит вы справились!
Теперь посмотрим выводiptables -vnL --line-numbers
Вывод должен быть примерно такого вида
Ура, вы это сделали. Порты SQ закрыты, для вас тоже ;) Что бы открыть для себя порт SQ, добавьте в конец раздела # GameTracker & Teamspeak-Server.org monitoring accept
И примените правила еще раз.Код:-A INPUT -s ваш_IP -p tcp -m tcp --dport 10011 -j ACCEPT
Рассмотрим ситуацию, если у вас ничего не получилось и новая сессия не открывается. Но старая сессия, которую вы не должны были закрывать работает. Возвращаем доступ к серверу.
Устанавливаем открытую политику iptables для INPUT
iptables -P INPUT ACCEPT
Сбрасываем правила iptables
iptables -F
Пробуем все сначала. Удачи.
У вас init. Итак, продолжим сей тернистый путь...
Начнем с обновления индексов репозиториев и установки iptables-persistent
sudo apt-get update && sudo apt-get install iptables-persistent
Будет предложено сохранить правила ipv4 & ipv6, соглашаемся.
Открываем блокнотом файл rules.v4 (рассмотрим вариант с консоли, а вы можете в winscp редактировать)
nano /etc/iptables/rules.v4
Удаляем содержимое и копируем и вставляем текст из спойлера
Код:# Generated by iptables-save v1.4.21 on Tue Feb 7 13:31:28 2017 *filter :INPUT DROP [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j DROP -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP -A INPUT -m state --state RELATED,ESTABLISHED -m comment --comment "enable IN connections" -j ACCEPT # SSH Port -A INPUT -p tcp -m state --state NEW,RELATED,ESTABLISHED --dport 22 -m comment --comment "Allow SSH" -j ACCEPT # TCP Ports & Uncomment and open your preferred ports #-A INPUT -p tcp -m state --state NEW -m multiport --dports 8087,8088 -j ACCEPT # UDP Ports & Uncomment and open your preferred ports #-A INPUT -p udp -m state --state NEW -m multiport --dports 8768,10999,27015 -j ACCEPT # Web Ports connection limit & http and https ports included -A INPUT -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcp -m multiport --dports 80,443 -m connlimit --connlimit-above 10 --connlimit-mask 32 -m comment --comment "nginx drop connlimit" -j REJECT --reject-with icmp-port-unreachable -A INPUT -p tcp -m tcp -m multiport --dports 80,443 -m state --state NEW -m comment --comment nginx -j ACCEPT # TeamSpeak 3 exploit rules -A INPUT -p udp -m multiport --dports 9987:9999 -m comment --comment "TeamSpeak3 Voice" -j ACCEPT -A INPUT -p udp -m udp -m multiport --ports 9987:9999 -m length --length 300:400 -m string --hex-string "|545333494e495431|" --algo kmp -m comment --comment "TS3 sploit" -j DROP -A INPUT -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 30033 -m comment --comment "TeamSpeak3 Files" -j ACCEPT # GameTracker & Teamspeak-Server.org monitoring accept -A INPUT -p tcp --destination-port 10011 -m iprange --src-range 208.167.225.11-208.167.225.13 -m comment --comment "gametracker.com monitoring" -j ACCEPT -A INPUT -p tcp --destination-port 10011 -m iprange --src-range 208.167.241.183-208.167.241.190 -m comment --comment "gametracker.com monitoring" -j ACCEPT -A INPUT -p tcp --destination-port 10011 -m iprange --src-range 108.61.78.147-108.61.78.150 -m comment --comment "gametracker.com monitoring" -j ACCEPT -A INPUT -s 37.187.252.194 -p tcp -m tcp --dport 10011 -m comment --comment "teamspeak-servers.org monitoring" -j ACCEPT -A INPUT -s 94.23.153.152 -p tcp -m tcp --dport 10011 -m comment --comment "teamspeak-servers.org monitoring" -j ACCEPT # Uncomment for allow ping (ICMP) -A INPUT -p icmp --icmp-type 0 -j ACCEPT -A INPUT -p icmp --icmp-type 8 -j ACCEPT COMMIT # Completed on Tue Feb 7 13:31:28 2017
Примечание #1: Под строкой SSH Port, установлен стандартный порт для SSH: 22, смените его на свой, если вы ранее меняли порт SSH. Иначе рискуете потерять доступ к серверу.
Примечание #2: Перед тем как сохраниться, обратите внимание на строки под TCP Ports и UDP Ports, они закомментированы. Если вам нужно открыть какой либо порт, выясните какой тип порта вам нужен (TCP или UDP). Раскомментируйте нужное правило, добавлять порты нужно через запятые, как указано в примере.
Запомните!
По умолчанию открыты порты:
SSH - 22
TeamSpeak - 9987 по 9999 для вирт. серверов, 30033, 10011 только для сервисов мониторинга GameTracker и Teamspeak-Servers.org!
Web порты - 80 и 443
Тоже самое делаем для IPv6, блокнотом открываем файл rules.v6
nano /etc/iptables/rules.v6
Удаляем содержимое и копируем и вставляем текст из спойлера
Код:# Generated by ip6tables-save v1.4.21 on Tue Feb 7 13:20:45 2017 *filter :INPUT DROP [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -i lo -j ACCEPT COMMIT # Completed on Tue Feb 7 13:20:45 2017
Правило разрешает все локальные подключения, а INPUT запрещаем.
Сохраняем CTRL+O, CTRL + X.
Итак, мы добавили необходимые порты и сохранили правила. Настало время их применить.
sudo service iptables-persistent reload
или
sudo service iptables-persistent restart
Не сработала ни одна команда? Тогда старый дедовский способ!
iptables-restore < /etc/iptables/rules.v4
ip6tables-restore < /etc/iptables/rules.v6
Важно! После выполнения этой команды правила применятся! Не закрывайте текущую сессию в консоли. Лучше открыть новую сессию и проверить, есть ли доступ к серверу по SSH. И все ли вы сделали правильно. Если подключение есть, значит вы справились!
Теперь посмотрим выводiptables -vnL --line-numbers
Вывод должен быть примерно такого вида
Ура, вы это сделали. Порты SQ закрыты, для вас тоже ;) Что бы открыть для себя порт SQ, добавьте в конец раздела # GameTracker & Teamspeak-Server.org monitoring accept
И примените правила еще раз.Код:-A INPUT -s ваш_IP -p tcp -m tcp --dport 10011 -j ACCEPT
Рассмотрим ситуацию, если у вас ничего не получилось и новая сессия не открывается. Но старая сессия, которую вы не должны были закрывать работает. Возвращаем доступ к серверу.
Устанавливаем открытую политику iptables для INPUT
iptables -P INPUT ACCEPT
Сбрасываем правила iptables
iptables -F
Пробуем все сначала. Удачи.
Я как автор данной темы, рекомендую выполнять настройку iptables при покупке нового сервера. Т.к многие новички могут потерять доступ к серверу из за "прямоты" своих рук. Переустановить новый сервер без потери данных не очень то обидно, чем уже готовый сервер с данными ;)
Благодарить @VJean за правила iptables и @Gho$t за тесты правил и статью
Нашли ошибку? Сообщите о ней в личку!
-
Скрыть объявление
Рады видеть Вас на русскоязычном форуме TeamSpeak!
У нас Вы можете скачать последнюю версию:
- Клиент TeamSpeak 3;
- Русификатор TeamSpeak 3;
- Сервер TeamSpeak 3;
- Найти много всего интересного
Перед регистрацией рекомендуем ознакомиться
Присоединяйтесь! Учите и обучайтесь!
-
Новая группа "Новичок" на нашем форуме!
Новые пользователи будут попадать в группу "Новичок".
Это сделано для того чтобы "Новички" ознакомились с форумом, так как в большинстве случаев проблема с которой вы хотите обратиться уже обсуждалась.
Перейти в тему обсуждения
Быстрый переход в группу Пользователь -
VPS/VDS и дедикейт сервера в аренду с DDoS защитой
- Низкий пинг
- Действующий SLA
- Рублевые цены без привязки к курсу валют
Бесплатный тестовый период VPS-OpenVZ
Попробовать
Как закрыть порты SQ и не только (Debian/Ubuntu)
Закрываем порты с помощью iptables