Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Работа со скриптами (https://forum.zone-game.info/forumdisplay.php?f=37)
-   -   Правила Iptables (https://forum.zone-game.info/showthread.php?t=15305)

GameOff 31.07.2011 14:10

Правила Iptables
 
Я тут пособирал по интернету не которые сам написал, но мне кажеться что я перестарался, подскажите может что-то надо убрать или подправить:
Код:

$IPT -I INPUT -p tcp --dport ЛС -j ACCEPT
$IPT -I INPUT -i eth0 -p tcp --dport ЛС -m connlimit --connlimit-above 5 -j DROP
$IPT -A INPUT -p tcp -m state --state NEW --dport ЛС -m recent --update --seconds 5 -j DROP
$IPT -A INPUT -p tcp -m state --state NEW --dport ЛС -m recent --set -j ACCEPT
$IPT -I INPUT -p tcp --syn --dport ЛС -j DROP -m connlimit --connlimit-above 10
$IPT -A INPUT-p tcp --dport ЛС -m iplimit --iplimit-above 7 -j REJECT
$IPT -I INPUT -p tcp --dport ГС -j ACCEPT
$IPT -I INPUT -i eth0 -p tcp --dport ГС -m connlimit --connlimit-above 7 -j DROP
$IPT -A INPUT -p tcp -m state --state NEW --dport ГС -m recent --update --seconds 5 -j DROP
$IPT -A INPUT -p tcp -m state --state NEW --dport ГС -m recent --set -j ACCEPT
$IPT -I INPUT -p tcp --syn --dport ГС -j DROP -m connlimit --connlimit-above 20
$IPT -A INPUT-p tcp --dport ГС -m iplimit --iplimit-above 30 -j REJECT



Подскажите может я переборщил и этот список можно уменьшить!

Azagthtot 31.07.2011 14:14

Re: Правила Iptables
 
Мягко говоря бред. Да еще и не работающий бред

Bupyc 31.07.2011 14:17

Re: Правила Iptables
 
Смысл использовать connlimit и iplimit вместе? Да и толку от правил с использованием connlimit будет не так много.

Azagthtot 31.07.2011 14:26

Re: Правила Iptables
 
и главное - какой смысл писать что-то после безусловного ACCEPT?

GameOff 31.07.2011 14:27

Re: Правила Iptables
 
Код:

$IPT -I INPUT -p tcp --dport ЛС -j ACCEPT
$IPT -I INPUT -i eth0 -p tcp --dport ЛС -m connlimit --connlimit-above 5 -j DROP
$IPT -A INPUT -p tcp -m state --state NEW --dport ЛС -m recent --update --seconds 5 -j DROP
$IPT -A INPUT -p tcp -m state --state NEW --dport ЛС -m recent --set -j ACCEPT
$IPT -I INPUT -p tcp --syn --dport ЛС -j DROP -m connlimit --connlimit-above 10
$IPT -I INPUT -p tcp --dport ГС -j ACCEPT
$IPT -I INPUT -i eth0 -p tcp --dport ГС -m connlimit --connlimit-above 7 -j DROP
$IPT -A INPUT -p tcp -m state --state NEW --dport ГС -m recent --update --seconds 5 -j DROP
$IPT -A INPUT -p tcp -m state --state NEW --dport ГС -m recent --set -j ACCEPT
$IPT -I INPUT -p tcp --syn --dport ГС -j DROP -m connlimit --connlimit-above 20

Хорошо, подскажите, а так будет работать.

Или может лучше заменить это всё
Код:

iptables -A INPUT -p tcp -m tcp --dport ГС -m state --state NEW -m hashlimit --hashlimit 1/hour --hashlimit-burst 50 --hashlimit-mode srcip --hashlimit-name GS --hashlimit-htable-expire 60000 -j ACCEPT
Код:

iptables -A INPUT -p tcp -m tcp --dport ЛС -m state --state NEW -m hashlimit --hashlimit 1/hour --hashlimit-burst 50 --hashlimit-mode srcip --hashlimit-name LS --hashlimit-htable-expire 60000 -j ACCEPT

Azagthtot 31.07.2011 14:32

Re: Правила Iptables
 
Нет, не будет. Читаем вики по иптаблес, читаем... Там написано как это все работает

xGoooDx 31.07.2011 14:34

Re: Правила Iptables
 
Зачем усложнять жизнь мне этого хватает:

Код:

$IPT -I INPUT -p tcp --dport 2106 -j ACCEPT
$IPT -I INPUT -i eth0 -p tcp --dport 2106 -m connlimit --connlimit-above 2 -j DROP
$IPT -I INPUT -p tcp --dport 7777 -j ACCEPT
$IPT -I INPUT -i eth0 -p tcp --dport 7777 -m connlimit --connlimit-above 5 -j DROP



Добавлено через 7 минут
Код:

ВОт что я нашёл:

iptables -F INPUT # Очищаем цепочку INPUT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # Пропускаем все, что идет по уже установленным соединениям
# Вводим ограничения для новых подключений по ГС и по ЛС
iptables -A INPUT -m conntrack --ctstate NEW -p tcp -m multiport --dport 3306,7777 -m hashlimit --hashlimit-upto 1/min --hashlimit-mode srcip,dstport --hashlimit-name logingamehash -j ACCEPT
iptables -P INPUT DROP # Всех остальных не пускаем

Это подойдёт?

GameOff 31.07.2011 14:48

Re: Правила Iptables
 
INPUT -p tcp --syn --dport ЛС -m connlimit --connlimit-above 10 -j DROP

$IPT -I INPUT -p tcp --dport ЛС -j ACCEPT
$IPT -I INPUT -i eth0 -p tcp --dport ЛС -m connlimit --connlimit-above 5 -j DROP
$IPT -A INPUT -p tcp -m state --state NEW --dport ЛС -m recent --update --seconds 5 -j DROP
$IPT -A INPUT -p tcp -m state --state NEW --dport ЛС -m recent --set -j ACCEPT
$IPT -A INPUT -p tcp --syn --dport ЛС -m connlimit --connlimit-above 10 -j DROP
$IPT -I INPUT -p tcp --dport ГС -j ACCEPT
$IPT -I INPUT -i eth0 -p tcp --dport ГС -m connlimit --connlimit-above 7 -j DROP
$IPT -A INPUT -p tcp -m state --state NEW --dport ГС -m recent --update --seconds 5 -j DROP
$IPT -A INPUT -p tcp -m state --state NEW --dport ГС -m recent --set -j ACCEPT
$IPT -I INPUT -p tcp --syn --dport ЛС -m connlimit --connlimit-above 30 -j DROP

Свою ошибку выделил зелёным!
Подскажите где не првильно, пожайлуста!

Bupyc 31.07.2011 14:51

Re: Правила Iptables
 
PHP код:

#!/bin/bash

# Очищаем правила
/sbin/iptables -F
/sbin/iptables -t nat -F
/sbin/iptables -t mangle -F

# Лимит на 30 запросов в секунду для интерфейса eth0
/sbin/iptables --new-chain lim1
/sbin/iptables --insert OUTPUT 1 -p tcp --destination-port 7777 -o eth0 --jump lim1
/sbin/iptables --insert OUTPUT 1 -p tcp --destination-port 2106 -o eth0 --jump lim1
/sbin/iptables --append lim1 -m limit --limit 30/sec --jump RETURN
/
sbin/iptables --append lim1 --jump DROP

# Блокируем ICMP траффик
/sbin/iptables -A INPUT  -p icmp -j DROP

# Открываем порт логина
/sbin/iptables -A INPUT -p tcp --dport 2106 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --syn --dport 2106 -j DROP -m connlimit --connlimit-above 10
/sbin/iptables -A INPUT -p tcp -m state --state NEW --dport 2106 -m recent --update --seconds 2 -j DROP
/sbin/iptables -A INPUT -p tcp -m state --state NEW --dport 2106 -m recent --set -j ACCEPT

# Открываем порт гейма
/sbin/iptables -A INPUT -p tcp --dport 7777 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --syn --dport 7777 -j DROP -m connlimit --connlimit-above 20
/sbin/iptables -A INPUT -p tcp -m state --state NEW --dport 7777 -m recent --update --seconds 2 -j DROP
/sbin/iptables -A INPUT -p tcp -m state --state NEW --dport 7777 -m recent --set -j ACCEPT

# MySQL
/sbin/iptables -I INPUT -p tcp -s ВАШ_IP --dport 3306 -j ACCEPT
/sbin/iptables -I INPUT -p tcp -s IP_САЙТА --dport 3306 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 3306 -j DROP

# SSH (Рекомендую перенести с 22 порта)
/sbin/iptables -A INPUT -p tcp --dport 22 -s ВАШ_IP -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 22 -j DROP

# Все остальное дропим
/sbin/iptables -A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,ACK SYN -j REJECT --reject-with icmp-port-unreachable
/sbin/iptables -A FORWARD -o eth0 -p tcp -j DROP 

Добавлено через 6 минут
В идеале было бы переписать логин сервер, который после успешной авторизации будет открывать порт гейма. Так же связать его с ipset

GameOff 31.07.2011 15:02

Re: Правила Iptables
 
Блин у меня была тупая ошибка
Я записал так:
$IPT -I INPUT -i eth0 -p tcp --dport ЛС -m connlimit --connlimit-above 5 -j DROP
$IPT -A INPUT -p tcp --syn --dport ЛС -m connlimit --connlimit-above 10 -j DROP


А надо было так:
/sbin/iptables -I INPUT -p tcp --syn --dport 7777 -j DROP -m connlimit --connlimit-above 20

Только в этом отличаеться мой код от Вашего. Просто это я только кусочек моих правил вылажил, а всё остальное у меня настроенно как у Вас.

Добавлено через 3 минуты
Цитата:

Сообщение от Bupyc (Сообщение 133461)
В идеале было бы переписать логин сервер, который после успешной авторизации будет открывать порт гейма. Так же связать его с ipset

Уже давно сделал, спасибо!

Добавлено через 37 минут
слушайте у меня стоит Port-knock(от Николая на порте 2108).
И так же у меня есть такая вещь как:
# Если игрок не вошол на логин сервер доступ к ГС ему закрыт.

Так походу у меня вообще порты ЛС(2108) и ГС(7777) сервера вообще должны быть закрыты?


Текущее время: 21:43. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot