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

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Lineage II (https://forum.zone-game.info/forumdisplay.php?f=34)
-   -   iptables (https://forum.zone-game.info/showthread.php?t=3163)

BlickBoy 03.03.2009 23:43

iptables
 
пытаюсь настроить iptables для Ubuntu Server 8.10 что бы закрыть все порты кроме тех что нужны серверу и сайта для доступа к бд. почитал разных мануалов по созданию и попытался написать скрипт для iptables.
В одном мануальчике нашел еще и какую то защиту=)
оч прошу тех кто разбирается помочь в создании (исправить ошибки в моем, или этот совсем не правильный)
в общем вот:
Код:

#!/bin/sh

#переменные:
# Переменная, задающая путь к файлу запуска iptables.
IPT="/sbin/iptables"

#сетевой интерфейс. Это нужно, чтобы не писать в правилах одно и тоже.
INET_IFACE="ppp0"

# Номера непривилегированных портов #что это не понял=)
UNPRIPORTS="1024:65535"            #для серва можно ли сделать так UNPRIPORTS="2106,3106,7777"?

start_fw()
{
    # Включить перенаправление пакетов через ядро.#кто может объясните что дает это=)
    echo 1 > /proc/sys/net/ipv4/ip_forward
   
    # Сбросить правила и удалить цепочки.
    $IPT -F
    $IPT -X
   
    # Политики по умолчанию.
    $IPT -P INPUT DROP
    $IPT -P FORWARD DROP
    $IPT -P OUTPUT DROP


    # Прописываем порты, которые открыты в системе, но которые не должны быть открыты на сетевых интерфейсах:
    # мб стоит здесь вписать порт по которому коннектятся друг с другом ГС и ЛС?
    # $IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE -j DROP --dports №порта



    # Открываем некоторые порты:
   
    # L2server LS
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 2106 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 2106 -j ACCEPT ! --syn
    # L2server GS
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 7777 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 7777 -j ACCEPT ! --syn
    # MySQL (для сайта)
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 3106 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 3106 -j ACCEPT ! --syn
    # VNC (удаленное управление ) учился вот по этому мануальчику (_http://www.debianadmin.com/remote-desktop-sharing-in-ubuntu.html)
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 0 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 0 -j ACCEPT ! --syn

#если на сайте будет управление сервером  то здесь надо будет вписать  еще и порт на котором Telnet?

}

case "$1" in
start)    echo -n "Starting firewall: iptables"
    start_fw
        echo "."
;;
stop)    echo -n "Stopping firewall: iptables"
    iptables -F
    iptables -X
        echo "."
      ;;
save)    echo -n "Saving firewall: iptables"
    iptables-save > /etc/rules-save
    echo "."
;;   
restart) echo -n "Restarting firewall: iptables"
    iptables -F
    iptables -X
    cat /etc/rules-save | iptables-restore
        echo "."
      ;;
reload|force-reload) echo -n "Reloading configuration files for firewall: iptables"
        echo "."
      ;;
*)    echo "Usage: /etc/init.d/rc.iptables start|stop|restart|reload|force-reload"
        exit 1
      ;;
esac
exit 0

и вот еще коды, стоит ли их впихивать в основной
Код:

#--------------------------------------------------------------------------------------------------------
#может ли что из этого понадобится для игрового серва l2?
#-------------------------------------------------------------------------------------------------------
#    # Эти правила предохраняют от некоторых типов атак:
#    # SYN наводнение.
#    # Приводит к связыванию системных ресурсов, так что реальных обмен данными становится не возможным.
#    $IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
#    $IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP
#   
#    # UDP наводнение
#    # Службы использующие UDP, очень часто становятся мишенью для атак с целью вывода системы из строя.
#    $IPT -A INPUT -p UDP -s 0/0 --destination-port 138 -j DROP
#    $IPT -A INPUT -p UDP -s 0/0 --destination-port 113 -j REJECT
#    $IPT -A INPUT -p UDP -s 0/0 --source-port 67 --destination-port 68 -j ACCEPT 
#    $IPT -A INPUT -p UDP -j RETURN
#    $IPT -A OUTPUT -p UDP -s 0/0 -j ACCEPT
#   
#    # ICMP - перенаправление
#    # ICMP - сообщение указывает системе изменить содержимое таблиц маршрутизации с тем, что бы направлять
#    # пакеты по более короткому маршруту. Может быть использовано взломщиком для перенаправления вашего трафика через свою машину.
#    $IPT -A INPUT --fragment -p ICMP -j DROP
#    $IPT -A OUTPUT --fragment -p ICMP -j DROP
#   
#    # Разрешаем  ICMP соединение. Значительная часть ICMP используется для передачи сообщений о
#    # том, что происходит с тем или иным UDP или TCP соединением.
#    $IPT -A INPUT -p icmp -m icmp -i $INET_IFACE --icmp-type source-quench -j ACCEPT
#    $IPT -A OUTPUT -p icmp -m icmp -o $INET_IFACE --icmp-type source-quench -j ACCEPT
#   
#    # Разрешаем себе ping наружу - нас же не попингуешь - пакеты отбрасываются.
#    $IPT -A INPUT -p icmp -m icmp -i $INET_IFACE --icmp-type echo-reply -j ACCEPT
#    $IPT -A OUTPUT -p icmp -m icmp -o $INET_IFACE --icmp-type echo-request -j ACCEPT
#
#    # Разрешаем передачу пакета - некорректный параметр - используется, если в заголовке пакета содержится недопустимая запись,
#    # или если контрольная сумма заголовка не соответствует контрольной сумме, указанной передающим узлом.
#    $IPT -A INPUT -p icmp -m icmp -i $INET_IFACE --icmp-type parameter-problem -j ACCEPT
#    $IPT -A OUTPUT -p icmp -m icmp -o $INET_IFACE --icmp-type parameter-problem -j ACCEPT
#
#    # Запрещаем подключение к X серверу через сетевые интерфейсы.
#    #думаю что закрыл все порты или я ошибаюсь?
#    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 1:65535 -j DROP --syn
#
#--------------------------------------------------------------------------------------------------------

# Разрешаем finger, whois, gorper, wais. Traceroute - разрешаем себе, к нам не проломятся - запрещено. Telnet
#  # запретил, чтобы соблазна не было передавать пароли прямым текстом.
#    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 20 -j ACCEPT
#    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 20 --sport $UNPRIPORTS -j ACCEPT ! --syn
#    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport $UNPRIPORTS --sport $UNPRIPORTS -j ACCEPT
#    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport $UNPRIPORTS -j ACCEPT ! --syn
#    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 23 --sport $UNPRIPORTS -j ACCEPT
#    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 23 -j ACCEPT ! --syn
#    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 79 --sport $UNPRIPORTS -j ACCEPT
#    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 79 -j ACCEPT ! --syn
#    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 43 --sport $UNPRIPORTS -j ACCEPT
#    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 43 -j ACCEPT ! --syn
#    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 70 --sport $UNPRIPORTS -j ACCEPT
#    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 70 -j ACCEPT ! --syn
#    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 210 --sport $UNPRIPORTS -j ACCEPT
#    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 210 -j ACCEPT ! --syn
#    $IPT -A OUTPUT -p udp -m udp -o $INET_IFACE --dport 33434:33523 --sport 32769:65535 -j ACCEPT

заранее всем спасибо, кто поможет=)


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

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