Модераторы: powerfox, ZeeLax
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Iptables DNAT, не получается "проброс" порта сделать 
V
    Опции темы
localhost
Дата 16.4.2012, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хирург-длятехкт
**


Профиль
Группа: Участник
Сообщений: 712
Регистрация: 8.11.2005
Где: Н.Новгород

Репутация: нет
Всего: 43



Ниче не понимаю, вроде раньше обычно делал так и все работало:
Код

/sbin/modprobe iptable_nat

# Set default policy
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

# Create user chains
$IPTABLES -N inet2lan

# 
# Inet --> Lan
#
$IPTABLES -A inet2lan -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A inet2lan -d 192.168.0.0/24 -p tcp -m tcp --dport 2225 -j ACCEPT
$IPTABLES -A inet2lan -j DROP

$IPTABLES -t nat -A PREROUTING -d $INET_IP -p tcp --dport 2225 -j DNAT  --to-destination 192.168.0.16



А теперь почему-то не хочет перенаправлять порт. Пробовал -j LOG смотреть, так в логах вот это:

Код

IN=eth0 OUT=eth1 SRC=12.123.34.234 DST=192.168.0.16 LEN=60 TOS=0x00 PREC=0x00 TTL=56 ID=37277 DF PROTO=TCP SPT=58829 DPT=2225 WINDOW=14600 RES=0x00 SYN URGP=0


В чем может быть дело? CentOS release 5.7 (2.6.18-274.3.1.el5)
PM MAIL   Вверх
ZeeLax
Дата 16.4.2012, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 4388
Регистрация: 20.8.2006
Где: Алма-Ата

Репутация: 7
Всего: 88



В прероутинге адрес назначения поменяли. А адрес источника не хотите?


--------------------
Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none.
— Doug Larson
PM MAIL WWW ICQ Skype Jabber   Вверх
localhost
Дата 16.4.2012, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хирург-длятехкт
**


Профиль
Группа: Участник
Сообщений: 712
Регистрация: 8.11.2005
Где: Н.Новгород

Репутация: нет
Всего: 43



ZeeLax, забыл сюда скопировать правило:

Код

$IPTABLES -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to-source $INET_IP

PM MAIL   Вверх
ZeeLax
Дата 16.4.2012, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 4388
Регистрация: 20.8.2006
Где: Алма-Ата

Репутация: 7
Всего: 88



Правило неверное. Нужно что-то типа
Код

iptables -t nat -A POSTROUTING -d 192.168.0.16 -p tcp --dport 225 -o eth0 -j SNAT --to-source $ETH0_IP

То есть у всего, что от нас летит туда, куда днатим, поменять исходящий адрес на наш адрес из этой сети.


--------------------
Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none.
— Doug Larson
PM MAIL WWW ICQ Skype Jabber   Вверх
localhost
Дата 17.4.2012, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хирург-длятехкт
**


Профиль
Группа: Участник
Сообщений: 712
Регистрация: 8.11.2005
Где: Н.Новгород

Репутация: нет
Всего: 43



Такое ощущение, что пакет дропается на другой цепочке... Как можно отловить это, кроме как -j LOG? А то цепочек много...
PM MAIL   Вверх
ZeeLax
Дата 17.4.2012, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 4388
Регистрация: 20.8.2006
Где: Алма-Ата

Репутация: 7
Всего: 88



Покажите конфиг целиком. Удобнее разбираться будет.


--------------------
Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none.
— Doug Larson
PM MAIL WWW ICQ Skype Jabber   Вверх
localhost
Дата 17.4.2012, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хирург-длятехкт
**


Профиль
Группа: Участник
Сообщений: 712
Регистрация: 8.11.2005
Где: Н.Новгород

Репутация: нет
Всего: 43



Примерно так:
Код

#!/bin/bash
# Configuration options
INET_IP="12.34.56.78" # External IP address
INET_IF="eth0" # External interface

LAN_IP="192.168.0.1" # Local IP address
LAN_IF="eth1" # Local interface
LAN_NETADDR="192.168.0.0/24" # Network address

LO_IP="127.0.0.1" # Loopback
LO_IF="lo" # Loopback

######################################################################################################################

IPTABLES="/sbin/iptables"

#
/sbin/depmod -a

/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
/sbin/modprobe xt_multiport
#

$IPTABLES -F
$IPTABLES -X

# Set default policy
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

# Create user chains
$IPTABLES -N lan2inet
$IPTABLES -N lan2gw
$IPTABLES -N inet2gw
$IPTABLES -N inet2lan
$IPTABLES -N vpn2lan
$IPTABLES -N lan2vpn

$IPTABLES -N bad_tcp_packets
$IPTABLES -N udp_packets
$IPTABLES -N icmp_packets
$IPTABLES -N allowed

######################################################################################################################
# Common TCP, UDP, ICMP rules
$IPTABLES -A bad_tcp_packets -p TCP --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset 
$IPTABLES -A bad_tcp_packets -p TCP --tcp-flags FIN,SYN FIN,SYN -j DROP # SYN-FIN attack
$IPTABLES -A bad_tcp_packets -p TCP --tcp-flags SYN,RST SYN,RST -j DROP # SYN-RST attack
$IPTABLES -A bad_tcp_packets -p TCP --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j DROP # X-Mas attack
$IPTABLES -A bad_tcp_packets -p TCP --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN -j DROP # nmap FIN scan
$IPTABLES -A bad_tcp_packets -p TCP --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP # NULLflags attack
$IPTABLES -A bad_tcp_packets -p TCP --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP # ALLflags attack
$IPTABLES -A bad_tcp_packets -p TCP ! --syn -m state --state NEW -j LOG --log-prefix "New not SYN:"
$IPTABLES -A bad_tcp_packets -p TCP ! --syn -m state --state NEW -j DROP

$IPTABLES -A allowed -p TCP --syn -j ACCEPT
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A allowed -p TCP -j DROP

$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 53 -j ACCEPT # DNS
$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 123 -j ACCEPT # NTP

$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
# $IPTABLES -A icmp_packets -p icmp -m u32 ! --u32 "4&0x3FFF=0"   -j DROP # Blocks all ICMP packets whose "fragmentation flag" is not 0
$IPTABLES -A icmp_packets -p icmp -m length --length 1492:65535 -j DROP # Blocks oversized unfragmented ICMP packets.

######################################################################################################################

# Enable local iface traffic
$IPTABLES -A INPUT -i $LO_IF -j ACCEPT
$IPTABLES -A OUTPUT -o $LO_IF -j ACCEPT

# INPUT chain
$IPTABLES -A INPUT -d $LAN_IP -j lan2gw
$IPTABLES -A INPUT -d $INET_IP -j inet2gw

# FORWARD chain
$IPTABLES -A FORWARD -i $LAN_IF -o $INET_IF -j lan2inet
$IPTABLES -A FORWARD -i $INET_IF -o $LAN_IF -j inet2lan
$IPTABLES -A FORWARD -s $LAN_NETADDR -d $VPN_U -j lan2vpn
$IPTABLES -A FORWARD -s $VPN_U -d $LAN_NETADDR -j vpn2lan

# OUTPUT chain
$IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT
######################################################################################################################

#
#
# Lan --> Inet
#
#
$IPTABLES -A lan2inet -p tcp -j bad_tcp_packets
$IPTABLES -A lan2inet -p ALL -m iprange --src-range $TRUST_IP_RANGE -j ACCEPT
$IPTABLES -A lan2inet -p tcp -s $GPRS_SRV -j ACCEPT
$IPTABLES -A lan2inet -p icmp -j icmp_packets
$IPTABLES -A lan2inet -p udp -j udp_packets
$IPTABLES -A lan2inet -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A lan2inet -j DROP

#
#
# Lan --> GW
#
#
$IPTABLES -A lan2gw -p tcp -j bad_tcp_packets
$IPTABLES -A lan2gw -p icmp -j icmp_packets
$IPTABLES -A lan2gw -p udp -j udp_packets
$IPTABLES -A lan2gw -p tcp --dport 22 -j allowed # SSH
$IPTABLES -A lan2gw -p tcp --dport 80 -j allowed # HTTP
$IPTABLES -A lan2gw -p udp --dport 161 -j ACCEPT # SNMP
$IPTABLES -A lan2gw -p tcp --dport 443 -j allowed # HTTPS
$IPTABLES -A lan2gw -p tcp --dport 3128 -j allowed # Proxy
$IPTABLES -A lan2gw -p tcp --dport 3306 -j allowed # MySQL
$IPTABLES -A lan2gw -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A lan2gw -j DROP

#
#
# Inet --> GW
#
#
$IPTABLES -A inet2gw -p tcp -j bad_tcp_packets
$IPTABLES -A inet2gw -p icmp -j icmp_packets
$IPTABLES -A inet2gw -p tcp --dport $GPRS_PORT -j LOG
$IPTABLES -A inet2gw -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A inet2gw -j DROP

#
#
# Inet --> Lan
#
#
$IPTABLES -A inet2lan -p icmp -j icmp_packets
$IPTABLES -A inet2lan -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A inet2lan -d $LAN_NETADDR -p tcp --dport $GPRS_PORT -j LOG --log-level debug --log-prefix "AUTOGTAPH"
$IPTABLES -A inet2lan -j DROP

#
#
# NAT table
#
#

$IPTABLES -t nat -A PREROUTING -d $INET_IP -p tcp --dport $GPRS_PORT -j DNAT  --to-destination $GPRS_SRV:$GPRS_PORT
$IPTABLES -t nat -A POSTROUTING -d $GPRS_SRV -p tcp --dport $GPRS_PORT -o $LAN_IF -j SNAT --to-source $LAN_IP
$IPTABLES -t nat -A POSTROUTING -s $GPRS_SRV -o $LAN_IF -j SNAT --to-source $INET_IP
$IPTABLES -t nat -A POSTROUTING -s $LAN_NETADDR -o eth0 -j SNAT --to-source $INET_IP



Это сообщение отредактировал(а) localhost - 18.4.2012, 07:48
PM MAIL   Вверх
ZeeLax
Дата 17.4.2012, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 4388
Регистрация: 20.8.2006
Где: Алма-Ата

Репутация: 7
Всего: 88



Ээээ, а где правило, которое я просил добавить?


--------------------
Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none.
— Doug Larson
PM MAIL WWW ICQ Skype Jabber   Вверх
localhost
Дата 18.4.2012, 07:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хирург-длятехкт
**


Профиль
Группа: Участник
Сообщений: 712
Регистрация: 8.11.2005
Где: Н.Новгород

Репутация: нет
Всего: 43



smile подредактировал, строка 155

Добавлено через 6 минут и 53 секунды
Тем не менее, это не помогает. Не пойму в каком конкретно месте отбривает...
PM MAIL   Вверх
ZeeLax
Дата 18.4.2012, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 4388
Регистрация: 20.8.2006
Где: Алма-Ата

Репутация: 7
Всего: 88



Нужно попробовать убрать все дропы из форварда. Если заработает - курить форвард. Похоже, трансформированные днатом пакеты не проходят вашу защиту.

Добавлено через 42 секунды
Крутая картинка про iptables/ebtables


--------------------
Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none.
— Doug Larson
PM MAIL WWW ICQ Skype Jabber   Вверх
localhost
Дата 18.4.2012, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хирург-длятехкт
**


Профиль
Группа: Участник
Сообщений: 712
Регистрация: 8.11.2005
Где: Н.Новгород

Репутация: нет
Всего: 43



ZeeLax, 

Последовал вашему совету, отключил дропы, включил логи, выявил проблемную цепочку (inet2lan), привел ее к такому виду и все заработало! Большое спасибо )
Код

#
#
# Inet --> Lan
#
#
$IPTABLES -A inet2lan -p icmp -j icmp_packets
$IPTABLES -A inet2lan -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A inet2lan -j LOG --log-prefix "iptables (inet2lan): "
$IPTABLES -A inet2lan -p tcp --dport $GPRS_PORT -j ACCEPT
$IPTABLES -A inet2lan -j DROP


Добавлено через 23 секунды
ЗЫ. И спасибо за картинку, очень наглядно smile
PM MAIL   Вверх
ZeeLax
Дата 18.4.2012, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 4388
Регистрация: 20.8.2006
Где: Алма-Ата

Репутация: 7
Всего: 88



Да, как только нашел, задумался, как без неё вообще можно что-то решить smile


--------------------
Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none.
— Doug Larson
PM MAIL WWW ICQ Skype Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Администрирование"
ZeeLax
Imple
nerezus
Этот форум предназначен для решения вопросов по администрации *n?x-систем, в частности по настройке сложных сетей и обслуживанию серверного оборудования.

  • Вы должны соблюдать правила форума.
  • Помните: какой вопрос, такой и ответ. Прежде чем задать вопрос прочитайте вот эту статью на форуме CIT.
  • Оскорблять запрещается.
  • Религиозные войны в Религиозных войнах.
  • Общение "просто так" в Клубе юнуксоидов. В отличие от многих других разделов, здесь разрешается сдержанно оффтопить и юморить в тему.

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование *NIX систем | Следующая тема »


 




[ Время генерации скрипта: 0.0622 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.