Перейти к содержанию
Авторизация  

Настраиваем Iptables под геймсервер


Описание

Описание настроек Iptables для геймсервера на OS Linux

Правила для iptables для работы геймсервера

 

Написаны под OS CentOS 6.x

 

Под другие системы могут потребоваться незначительные корректировки, такие как путь к бинарнику iptables/

 

Логинимся под рутом и поехали.

 

1. Вырубаем из автозагрузки фаеры по дефолту

 

chkconfig iptables off

chkconfig ip6tables off

 

2. Создаем свой скрипт

 

touch /etc/init.d/rc.firewall

 

3. Редактируем

 

vi /etc/init.d/rc.firewall

 

Нажимаем INSERT пишем набор правил:

 

#!/bin/sh

 

###Определяем переменную iptables (может отличаться на других OS)

IPT="/sbin/iptables"

 

###Сбрасываем все правила

$IPT -F

$IPT -X

$IPT -Z

 

###Политика по умолчанию, рубим все кроме исходящих.

$IPT -P INPUT DROP

$IPT -P OUTPUT ACCEPT

$IPT -P FORWARD DROP

 

###Разрешаем локалхост

$IPT -A INPUT -i lo -j ACCEPT

 

###Если интерфейс не lo, то запрещаем входить в список его адресов.

$IPT -A INPUT -s 127.0.0.1/255.0.0.0 ! -i lo -j DROP

 

### Защита от спуфинга

$IPT -I INPUT -m state --state NEW,INVALID -p tcp --tcp-flags SYN,ACK SYN,ACK -j REJECT --reject-with tcp-reset

 

### Защита от попытки открыть входящее соединение TCP не через SYN

$IPT -I INPUT -m state --state NEW -p tcp ! --syn -j DROP

 

 

###Разрешаем уже установленные соединения

$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

 

###Разрешаем входящие коннекты MySQL только для себя и для IP сервера с вэбобвязкой (настоятельно не рекомендую держать открытым для всех)

###Где хх.ххх.хх.ххх - ip адрес для которого разрешить доступ, если у Вас динамический IP желательно указать в виде хх.ххх.хх.ххх/24 (с маской)

### Примеры 88.134.1.0/24 или 84.134.0.0/16 - в зависимости от сети Вашего провайдера

$IPT -A INPUT -p tcp -i eth0 -s хх.ххх.хх.ххх --dport 3306 -j ACCEPT

$IPT -A INPUT -p tcp -i eth0 -s ххх.ххх.хх.ххх --dport 3306 -j ACCEPT

 

 

 

 

###Рубим попытки побрутить логин порт и разрешаем входящие коннекты по данному порту

$IPT -A INPUT -p tcp --syn --dport 2106 -m recent --name radiator --set

$IPT -A INPUT -p tcp --syn --dport 2106 -m recent --name radiator --update --seconds 30 --hitcount 3 -j DROP

 

###Разрешаем логинпорт

$IPT -A INPUT -p tcp -i eth0 --dport 2106 -j ACCEPT

 

###Разрешаем геймпорт

$IPT -A INPUT -p tcp -i eth0 --dport 7777 -j ACCEPT

 

 

###Рубим попытки побрутить SSH порт

$IPT -A INPUT -p tcp --syn --dport 22 -m recent --name radiator --set

$IPT -A INPUT -p tcp --syn --dport 22 -m recent --name radiator --update --seconds 30 --hitcount 3 -j DROP

 

###Разрешаем SSH

$IPT -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT

 

 

###Рубим все остальное, что не подпало под правила выше

$IPT -A INPUT -j DROP

 

 

Выходим из редактора с сохранением нажатиями Esc и затем Shift+zz

 

5. Выставляем права на запуск

 

chmod +x /etc/init.d/rc.firewall

 

6. Прописываем в автозагрузку

 

vi /etc/rc.d/rc.local

 

Дописываем внизу

 

/etc/init.d/rc.firewall

 

Выходим с сохранением.

 

8. reboot

 

Теперь небольшой FAQ

 

eth0 - имя Вашего сетевого интерфейса, выудить можно командой ifconfig

 

2106, 7777 - логин и гейм порты, какие они у Вас такие и пишем.

 

Если предполагается дос атака придется изворачиваться, немного меняем сл. правила:

 

Вместо $IPT -A INPUT -p tcp -i eth0 --dport 2106 -j ACCEPT пишем $IPT -A INPUT -p tcp -i eth0 --dport 2106 -m connlimit --connlimit-above 10 -j DROP

 

Вместо $IPT -A INPUT -p tcp -i eth0 --dport 7777 -j ACCEPT пишем $IPT -A INPUT -p tcp -i eth0 --dport 7777 -m connlimit --connlimit-above 10 -j DROP

 

Этим мы ограничиваем число одновременных подключений с одного IP равным десяти.

 

Есть и намного эффективные методы.

 

Не забываем про SYSCTL настройки системы, если оставить их по дефолту никакой фаервол при досе Вас не спасет. Опишу отдельной статьей.

 

Да и еще, с данными правилами сервер не будет и не должен пинговаться. Почему? Потому что для работы геймсервера Вам не абсолютно незачем разрешать к себе ICMP протокол. Это же относится и к входящему UDP протоколу. Не думаю что Вам в процессе работы сервера будут полезны атаки посредством UDP наводнений и icmp флуда.

 

На этом пожалуй все.



Рекомендуемые комментарии

Комментариев нет

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...