Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Правила Iptables
#1
Я тут пособирал по интернету не которые сам написал, но мне кажеться что я перестарался, подскажите может что-то надо убрать или подправить:
Код:
$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



Подскажите может я переборщил и этот список можно уменьшить!
Ответ
#2
Мягко говоря бред. Да еще и не работающий бред
Ответ
#3
Смысл использовать connlimit и iplimit вместе? Да и толку от правил с использованием connlimit будет не так много.
Ответ
#4
и главное - какой смысл писать что-то после безусловного ACCEPT?
Ответ
#5
Код:
$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
Ответ
#6
Нет, не будет. Читаем вики по иптаблес, читаем... Там написано как это все работает
Ответ
#7
Зачем усложнять жизнь мне этого хватает:

Код:
$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 # Всех остальных не пускаем
Это подойдёт?
Ответ
#8
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

Свою ошибку выделил зелёным!
Подскажите где не првильно, пожайлуста!
Ответ
#9
PHP код:
<?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
Ответ
#10
Блин у меня была тупая ошибка
Я записал так:
$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) сервера вообще должны быть закрыты?
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  IPtables открытие портов. ~AID~ 2 2,323 10-16-2011, 10:22 AM
Последний пост: ~AID~

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)