The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Помогите разобрать скрипт, !*! skachkovsa, 01-Мрт-13, 14:46  [смотреть все]
Доброго времени суток, помогите понять в каком месте прописать, чтоб открыть порт 63555 торрент на машине например с адресом 192.168.1.65, ни как не могу понять в скрипте что писать где, вот текст скрипта

#!/bin/sh

#Утилиты
IPT="/sbin/iptables"
IFC="/sbin/ifconfig"
G="/sbin/grep"
SED="/bin/sed"
AWK="/usr/bin/awk"
ECHO="/bin/echo"

#Сброс существующих и очистка персональных цепочек
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
CHAINS=`cat /proc/net/ip_tables_names 2>/dev/null`
for i in $CHAINS
do
    $IPT -t $i -F
    $IPT -t $i -X
done

#$ECHO "1">/proc/sys/net/ipv4/tcp_syncookies
$ECHO "1">/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

#Проверка адреса источника
for f in /proc/sys/net/ipv4/conf/*/rp_filter
do
    $ECHO "1">$f
done
#Отключаем роутинг источника IP и ICMP-редиректы
for f in /proc/sys/net/ipv4/conf/*/accept_source_route
do
    $ECHO "0">$f
done
for f in /proc/sys/net/ipv4/conf/*/accept_redirects
do
    $ECHO "0">$f
done
#Включаем форвардинг в ядре
echo "1">/proc/sys/net/ipv4/ip_forward

#Установка переменных окружения
LO_IFACE="lo"
LO_IP="127.0.0.1"
LO_MASK="255.0.0.0"
LO_NET="$LO_IP/$LO_MASK"


INET_IFACE="ppp0"
INET_IP="`$IFC $INET_IFACE | $AWK /$INET_IFACE/'{next}//{split($0,a,":");split(a[2],a," ");print a[1];exit}'`"
INET_BROADCAST="`$IFC $INET_IFACE | $AWK /$INET_IFACE/'{next}//{split($0,a,":");split(a[3],a," ");print a[1];exit}'`"
INET_MASK="`$IFC $INET_IFACE | $AWK /$INET_IFACE/'{next}//{split($0,a,":");split(a[4],a," ");print a[1];exit}'`"
INET_NET="$INET_IP/$INET_MASK"
$ECHO "INET_IP=$INET_IP INET_BROADCAST=$INET_BROADCAST INET_MASK=$INET_MASK INET_NET=$INET_NET"

LAN_IFACE="eth0"
LAN_IP="`$IFC $LAN_IFACE | $AWK /$LAN_IFACE/'{next}//{split($0,a,":");split(a[2],a," ");print a[1];exit}'`"
LAN_BROADCAST="`$IFC $LAN_IFACE | $AWK /$LAN_IFACE/'{next}//{split($0,a,":");split(a[3],a," ");print a[1];exit}'`"
LAN_MASK="`$IFC $LAN_IFACE | $AWK /$LAN_IFACE/'{next}//{split($0,a,":");split(a[4],a," ");print a[1];exit}'`"
LAN_NET="$LAN_IP/$LAN_MASK"
$ECHO "LAN_IP=$LAN_IP LAN_BROADCAST=$LAN_BROADCAST LAN_MASK=$LAN_MASK LAN_NET=$LAN_NET"

SSP_IFACE="eth2"
SSP_IP="`$IFC $SSP_IFACE | $AWK /$SSP_IFACE/'{next}//{split($0,a,":");split(a[2],a," ");print a[1];exit}'`"
SSP_BROADCAST="`$IFC $SSP_IFACE | $AWK /$SSP_IFACE/'{next}//{split($0,a,":");split(a[3],a," ");print a[1];exit}'`"
SSP_MASK="`$IFC $SSP_IFACE | $AWK /$SSP_IFACE/'{next}//{split($0,a,":");split(a[4],a," ");print a[1];exit}'`"
SSP_NET="$SSP_IP/$SSP_MASK"
$ECHO "SSP_IP=$SSP_IP SSP_BROADCAST=$SSP_BROADCAST SSP_MASK=$SSP_MASK SSP_NET=$SSP_NET
"


#Loopback
$IPT -A INPUT -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPT -A INPUT -i $LO_IFACE -s $INET_IP -j ACCEPT
$IPT -A INPUT -i $LO_IFACE -s $LAN_IP -j ACCEPT
$IPT -A INPUT -i $LO_IFACE -s $SSP_IP -j ACCEPT

###########Р‘Р›РћРљР˜Р РћР’РљР˜#############
#Цепочки журналирования событий
$IPT -N DROP1 2>/dev/null
$IPT -A DROP1 -m limit --limit 3/minute --limit-burst 10 -j LOG --log-prefix 'FIREWALL DROP BLOCKED:'
$IPT -A DROP1 -j DROP
$IPT -N REJECT1 2>/dev/null
$IPT -A REJECT1 -m limit --limit 3/minute --limit-burst 10 -j LOG --log-prefix 'FIREWALL REJECT BLOCKED:'
$IPT -A REJECT1 -j REJECT
$IPT -N DROP2 2>/dev/null
$IPT -A DROP2 -m limit --limit 3/second --limit-burst 10 -j LOG --log-prefix 'FIREWALL DROP UNKNOWN:'
$IPT -A DROP2 -j DROP
$IPT -N REJECT2 2>/dev/null
$IPT -A REJECT2 -m limit --limit 3/second --limit-burst 10 -j LOG --log-prefix 'FIREWALL REJECT UNKNOWN:'
$IPT -A REJECT2 -j REJECT
#Блокируем широковещательные пакеты
$IPT -A INPUT -i $INET_IFACE -d $INET_BROADCAST -j DROP1
$IPT -A INPUT -i $LAN_IFACE -d $LAN_BROADCAST -j DROP1
$IPT -A OUTPUT -o $INET_IFACE -d $INET_BROADCAST -j DROP1
$IPT -A OUTPUT -o $LAN_IFACE -d $LAN_BROADCAST -j DROP1
$IPT -A FORWARD -o $INET_IFACE -d $INET_BROADCAST -j DROP1
$IPT -A FORWARD -o $LAN_IFACE -d $LAN_BROADCAST -j DROP1
#Блокируем внешний доступ к локальной сети
$IPT -A INPUT -i $INET_IFACE ! -d $INET_IP -j DROP1
#Блокируем пакеты, не относящиеся к LAN
#$IPT -A INPUT -i $LAN_IFACE ! -s $LAN_NET -j DROP1
#$IPT -A OUTPUT -o $LAN_IFACE ! -d $LAN_NET -j DROP1
$IPT -A FORWARD -i $LAN_IFACE ! -s $LAN_NET -j DROP1
$IPT -A FORWARD -o $LAN_IFACE ! -d $LAN_NET -j DROP1
#Дополнительная проверка
$IPT -A OUTPUT -o $INET_IFACE ! -s $INET_NET -j DROP1
#Блокируем исходящие ICMP кроме PING
$IPT -A OUTPUT -o $INET_IFACE -p icmp ! --icmp-type 8 -j DROP1
$IPT -A FORWARD -o $INET_IFACE -p icmp ! --icmp-type 8 -j DROP1
#Блокировка отдельных портов
COMBLOCK="0:1 13 98 111 137:139 161:162 445 1214 1999 2049 3049 4329 6346 3128 8000 8008 8080 12345 65535"
TCPBLOCK="$COMBLOCK 98 512:515 1080 6000:6009 6112"
UDPBLOCK="$COMBLOCK 520 123 517:518 1427 9000"
$ECHO -n "FW: Blocking attacks to TCP port"
for i in $TCPBLOCK
do
    $ECHO -n "$i "
    $IPT -A INPUT -p tcp --dport $i -j DROP1
    $IPT -A OUTPUT -p tcp --dport $i -j DROP1
    $IPT -A FORWARD -p tcp --dport $i -j DROP1
done
$ECHO ""
$ECHO -n "FW: Blocking attacks to UDP port"
for i in $UDPBLOCK
do
    $ECHO -n "$i "
    $IPT -A INPUT -p udp --dport $i -j DROP1
    $IPT -A OUTPUT -p udp --dport $i -j DROP1
    $IPT -A FORWARD -p udp --dport $i -j DROP1
done
$ECHO ""

#Запускаем отслеживание соединенийпо ftp
MODULES="ip_nat_ftp ip_conntrack_ftp"
for i in $MODULES
do
    $ECHO "Добавляем модуль $i"
    modprobe $i
done

#PPTP
$IPT -A OUTPUT -o $SSP_IFACE -p udp -s $SSP_IP --dport 53 -m state --state NEW -j ACCEPT
$IPT -A INPUT -p tcp -d $SSP_IP --sport 1723 -j ACCEPT
$IPT -A INPUT -p gre -d $SSP_IP -j ACCEPT
$IPT -A OUTPUT -s $SSP_IP -j ACCEPT

#Защищаем клиенты для чата
IRC='ircd'
MSN=1863
ICQ=5190
NFS='sunrpc'
PORTAGE='rsync'
GIT=9418
SIP=5060
OpenPGP_HTTP_Keyserver=11371
#Остальные порты сервисов
TCPSERV="domain ssh http 181 3389 https ftp ftp-data mail 465 pop3 pop3s imap3 imaps imap2 8585 8090 23 4321 9443 time $SIP 20 21 5061 $PORTAGE $GIT $IRC $MSN $ICQ $OpenPGP_HTTP_Keyserver"
UDPSERV="domain time"
$ECHO -n "FW: Allowing inside systems to use service:"
for i in $TCPSERV
do
    $ECHO -n "$i "
    $IPT -A OUTPUT -o $INET_IFACE -p tcp -s $INET_IP --dport $i --syn -m state --state NEW -j ACCEPT
    $IPT -A FORWARD -i $LAN_IFACE -p tcp -s $LAN_NET --dport $i --syn -m state --state NEW -j ACCEPT
done
$ECHO ""
$ECHO -n "FW: Allowing inside systems to use service:"
for i in $UDPSERV
do
    $ECHO -n "$i "
    $IPT -A OUTPUT -o $INET_IFACE -p udp -s $INET_IP --dport $i -m state --state NEW -j ACCEPT
    $IPT -A FORWARD -i $LAN_IFACE -p udp -s $LAN_NET --dport $i -m state --state NEW -j ACCEPT
done
$ECHO ""

#Разрешаем внешнее пингование
$IPT -A OUTPUT -o $INET_IFACE -p icmp -s $INET_IP --icmp-type 8 -m state --state NEW -j ACCEPT
$IPT -A INPUT -i $INET_IFACE -p icmp --icmp-type 8 -m state --state NEW -j ACCEPT
$IPT -A OUTPUT -o $SSP_IFACE -p icmp -s $SSP_IP --icmp-type 8 -m state --state NEW -j ACCEPT
$IPT -A FORWARD -i $LAN_IFACE -p icmp -s $LAN_NET --icmp-type 8 -m state --state NEW -j ACCEPT

#Разрешаем файрволу пинговать внутреннюю сеть
$IPT -A OUTPUT -o $LAN_IFACE -p icmp -s $LAN_NET --icmp-type 8 -m state --state NEW -j ACCEPT
$IPT -A INPUT -i $LAN_IFACE -p icmp -s $LAN_NET --icmp-type 8 -m state --state NEW -j ACCEPT

#Aserisk SIP incoming
#$IPT -A INPUT -i $INET_IFACE -p udp --dport 5060:5061 -m state --state NEW -j ACCEPT
#$IPT -A OUTPUT -o $INET_IFACE -p udp --dport 5060:5061 -j ACCEPT
#$IPT -A INPUT -i $INET_IFACE -p udp --dport 10000:20000 -m state --state NEW -j ACCEPT
#$IPT -A OUTPUT -o $INET_IFACE -p udp --dport 10000:20000 -j ACCEPT
#$IPT -A INPUT -i $LAN_IFACE -p udp --dport 5060:5061 -j ACCEPT
#$IPT -A OUTPUT -o $LAN_IFACE -p udp --dport 5060:5061 -j ACCEPT
#$IPT -A INPUT -i $LAN_IFACE -p udp --dport 10000:20000 -j ACCEPT
#$IPT -A OUTPUT -o $LAN_IFACE -p udp --dport 10000:20000 -j ACCEPT

#Расставляем акцепты
$IPT -A INPUT -i $LAN_IFACE -p tcp --dport 22 --syn -m state --state NEW -j ACCEPT
$IPT -A INPUT -i $INET_IFACE -p tcp --dport 22 --syn -m state --state NEW -j ACCEPT
#$IPT -A INPUT -i $INET_IFACE -p tcp --dport 80 --syn -m state --state NEW -j ACCEPT
$IPT -A INPUT -i $LAN_IFACE -p udp --dport 67:68 -j ACCEPT
$IPT -A INPUT -i $LAN_IFACE -p udp --dport 53 -j ACCEPT
$IPT -A OUTPUT -o $LAN_IFACE -p udp --dport 67:68 -j ACCEPT
$IPT -A INPUT -i $LO_IFACE -j ACCEPT
$IPT -A OUTPUT -o $LO_IFACE -j ACCEPT
$IPT -t nat -A PREROUTING -j ACCEPT
$IPT -t nat -A POSTROUTING -o $INET_IFACE -s $LAN_NET -j MASQUERADE
$IPT -t nat -A POSTROUTING -j ACCEPT
$IPT -t nat -A OUTPUT -j ACCEPT
$IPT -A INPUT -p tcp --dport auth --syn -m state --state NEW -j ACCEPT
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

#Блокируем все остальное
$IPT -A INPUT -j DROP1
$IPT -A OUTPUT -j REJECT1
$IPT -A FORWARD -j DROP1

  • Помогите разобрать скрипт, !*! КуКу, 15:27 , 01-Мрт-13 (1)
    ну для начала я бы разобрался что есть и что нужно, а по вопросу

    >чтоб открыть порт 63555 торрент на машине например с адресом 192.168.1.65

    нужно на машине с адресом 192.168.1.65, прописать
    iptables -A INPUT -p tcp --dport 63555 -j ACCEPT
    iptables -A OUTPUT -p tcp --dport 63555  -j ACCEPT

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

    • Помогите разобрать скрипт, !*! pavlinux, 15:33 , 01-Мрт-13 (3)
      > iptables -A OUTPUT -p tcp --dport 63555  -j ACCEPT

      Ага, у тя тут написано "выход на 63555 порт", а не из  

      iptables -A OUTPUT -p tcp --sport 63555  -j ACCEPT

    • Помогите разобрать скрипт, !*! skachkovsa, 15:57 , 01-Мрт-13 (5)
      > ну для начала я бы разобрался что есть и что нужно, а
      > по вопросу
      >>чтоб открыть порт 63555 торрент на машине например с адресом 192.168.1.65
      > нужно на машине с адресом 192.168.1.65, прописать
      > iptables -A INPUT -p tcp --dport 63555 -j ACCEPT
      > iptables -A OUTPUT -p tcp --dport 63555  -j ACCEPT
      > грубо, конечно, но работать будет, а вот зачем привели скрипт, я хз

      Не правильно выразился изначально есть сервер Linux Centos, на нем iptables, нужно открыть доступ к торренту по порту 63555, машине с адресом 192.168.1.65. Вот

  • Помогите разобрать скрипт, !*! pavlinux, 15:31 , 01-Мрт-13 (2)
    iptables -I INPUT -p tcp --dport 63555 -d 192.168.1.65/32 -j ACCEPT;
    • Помогите разобрать скрипт, !*! skachkovsa, 16:01 , 01-Мрт-13 (6)
      > iptables -I INPUT -p tcp --dport 63555 -d 192.168.1.65/32 -j ACCEPT;

      Попробовал результат тот же порт закрыт

      • Помогите разобрать скрипт, !*! pavlinux, 16:07 , 01-Мрт-13 (7)
        >> iptables -I INPUT -p tcp --dport 63555 -d 192.168.1.65/32 -j ACCEPT;
        > Попробовал результат тот же порт закрыт

        Конечно, первый вопрос-то уже изменили.

        • Помогите разобрать скрипт, !*! skachkovsa, 16:08 , 01-Мрт-13 (8)
          >>> iptables -I INPUT -p tcp --dport 63555 -d 192.168.1.65/32 -j ACCEPT;
          >> Попробовал результат тот же порт закрыт
          > Конечно, первый вопрос-то уже изменили.

          Согласен, помогите в каком месте скрипта добавить разрешения для торрент

          • Помогите разобрать скрипт, !*! pavlinux, 16:11 , 01-Мрт-13 (10)
            >>>> iptables -I INPUT -p tcp --dport 63555 -d 192.168.1.65/32 -j ACCEPT;
            >>> Попробовал результат тот же порт закрыт
            >> Конечно, первый вопрос-то уже изменили.
            > Согласен, помогите в каком месте скрипта добавить разрешения для торрент

            по подобию ICQ сделай.

            • Помогите разобрать скрипт, !*! skachkovsa, 16:26 , 01-Мрт-13 (11)
              >>>>> iptables -I INPUT -p tcp --dport 63555 -d 192.168.1.65/32 -j ACCEPT;
              >>>> Попробовал результат тот же порт закрыт
              >>> Конечно, первый вопрос-то уже изменили.
              >> Согласен, помогите в каком месте скрипта добавить разрешения для торрент
              > по подобию ICQ сделай.

              Хорошо, попробую сейчас.  последними тремя строчками жестоко было..

            • Помогите разобрать скрипт, !*! skachkovsa, 16:30 , 01-Мрт-13 (12)
              >>>>> iptables -I INPUT -p tcp --dport 63555 -d 192.168.1.65/32 -j ACCEPT;
              >>>> Попробовал результат тот же порт закрыт
              >>> Конечно, первый вопрос-то уже изменили.
              >> Согласен, помогите в каком месте скрипта добавить разрешения для торрент
              > по подобию ICQ сделай.

              Сделал, но видимо что то еще нужно прописать, так как торрент клиент пишет что порт закрыт

  • Помогите разобрать скрипт, !*! reader, 15:38 , 01-Мрт-13 (4)
    • Помогите разобрать скрипт, !*! skachkovsa, 16:32 , 01-Мрт-13 (13)
      > -

      Не правильно выразился изначально есть сервер Linux Centos, на нем iptables, нужно открыть доступ к торренту по порту 63555, машине с адресом 192.168.1.65. Вот

      • Помогите разобрать скрипт, !*! reader, 00:16 , 02-Мрт-13 (14)
        >> -
        > Не правильно выразился изначально есть сервер Linux Centos, на нем iptables, нужно
        > открыть доступ к торренту по порту 63555, машине с адресом 192.168.1.65.
        > Вот

        если торрент клиент не на сервере с Linux , то правило в FORWARD , но 63555 это порт который слушает торрент , а устанавливать соединения клиент будет с других портов

        • Помогите разобрать скрипт, !*! ALex_hha, 00:23 , 02-Мрт-13 (15)
          >>> -
          >> Не правильно выразился изначально есть сервер Linux Centos, на нем iptables, нужно
          >> открыть доступ к торренту по порту 63555, машине с адресом 192.168.1.65.
          >> Вот
          > если торрент клиент не на сервере с Linux , то правило в
          > FORWARD , но 63555 это порт который слушает торрент , а
          > устанавливать соединения клиент будет с других портов

          думаю, что речь шла о DHT и пробросе порта

        • Помогите разобрать скрипт, !*! skachkovsa, 17:34 , 03-Мрт-13 (17)
          >>> -
          >> Не правильно выразился изначально есть сервер Linux Centos, на нем iptables, нужно
          >> открыть доступ к торренту по порту 63555, машине с адресом 192.168.1.65.
          >> Вот
          > если торрент клиент не на сервере с Linux , то правило в
          > FORWARD , но 63555 это порт который слушает торрент , а
          > устанавливать соединения клиент будет с других портов

          А как открыть тогда другие порты? чтоб торрент заработал?

          • Помогите разобрать скрипт, !*! reader, 00:17 , 04-Мрт-13 (18)
            >>>> -
            >>> Не правильно выразился изначально есть сервер Linux Centos, на нем iptables, нужно
            >>> открыть доступ к торренту по порту 63555, машине с адресом 192.168.1.65.
            >>> Вот
            >> если торрент клиент не на сервере с Linux , то правило в
            >> FORWARD , но 63555 это порт который слушает торрент , а
            >> устанавливать соединения клиент будет с других портов
            > А как открыть тогда другие порты? чтоб торрент заработал?

            -I FORWARD -s 192.168.1.65 -j ACCEPT
            можете добавить протоколы и порты, порты будут 1024-65535, протокола TCP впринципи достаточно, но UDP часто используют для анонсов, а вот использовать его для соединения с пирами и сидами, тут уж на ваше усмотрение.

            для установленных соединений уже есть
            -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

            192.168.1.65 должен входить в $LAN_NET, чтобы snat был для него или отдельно для него пишите правило, после этого с 192.168.1.65 клиент будет работать, но для того что бы к нему могли подключиться понадобится проброс порта

            https://www.opennet.ru/docs/RUS/iptables/#DNATTARGET


            • Помогите разобрать скрипт, !*! skachkovsa, 14:55 , 24-Авг-13 (19)
              >[оверквотинг удален]
              > можете добавить протоколы и порты, порты будут 1024-65535, протокола TCP впринципи достаточно,
              > но UDP часто используют для анонсов, а вот использовать его для
              > соединения с пирами и сидами, тут уж на ваше усмотрение.
              > для установленных соединений уже есть
              > -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
              > 192.168.1.65 должен входить в $LAN_NET, чтобы snat был для него или отдельно
              > для него пишите правило, после этого с 192.168.1.65 клиент будет работать,
              > но для того что бы к нему могли подключиться понадобится проброс
              > порта
              > https://www.opennet.ru/docs/RUS/iptables/#DNATTARGET

              Cпасибо разобрался




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру