LinuxForum.Fans
Тема

iptables завернуть трафик на другую машину

Автор: getoutaway 12 сообщений 3312 просмотров
#300979

Добрый день.

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

Есть две подсети 192.168.101.0/24 и 192.168.100.0/24, есть шлюз 192.168.100.2 на нем крутится Usergate на порту 3128 в прозрачном режиме. Так же есть Centos с двумя интерфейсами eth0 - 192.168.100.7, eth1 - 192.168.101.2.

Задача раздавать пользователям 192.168.101.0/24 инет со шлюза. В Centos форвардинг пакетов включен, подсети друг друга пингуют. Если на машине которая находиться в 192.168.101.0/24 напрямую указать использовать прокси 192.168.100.2 с портом 3128 то инет на машине есть, все как нужно.

Теперь вопрос, как завернуть трафик из 192.168.101.0/24 на 192.168.100.2:3128

Сейчас iptables выглядит вот так:

text
 
>iptables-save
# Generated by iptables-save v1.3.5 on Wed Feb  6 11:18:50 2013
*nat
:PREROUTING ACCEPT [2522:723320]
:POSTROUTING ACCEPT [87:5648]
:OUTPUT ACCEPT [33:2035]
-A PREROUTING -s 192.168.101.0/255.255.255.0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.100.2:3128
COMMIT
# Completed on Wed Feb  6 11:18:50 2013
# Generated by iptables-save v1.3.5 on Wed Feb  6 11:18:50 2013
*filter
:INPUT ACCEPT [6714:921181]
:FORWARD ACCEPT [235:16019]
:OUTPUT ACCEPT [2551:246949]
-A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -o eth0 -j ACCEPT
COMMIT
# Completed on Wed Feb  6 11:18:50 2013

и не работает( И ещё по DHCP машинам шлюзом указывается 192.168.101.2

#300984

Для начала разберитесь с DHCP

text
-I PREROUTING -s 192.168.101.0/24 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.100.2:3128
#300986
Kettler написал:
Для начала разберитесь с DHCP

DHCP вероятно не проблема, можно указать что угодно в настройках DHCP, при назначении для подсети 192.168.101.0/24 шлюза по умолчанию 192.168.101.2 руководствовался тем что, так как я пакеты буду заворачивать на Linux сервере. соответственно их туда и нужно слать.

#301131

Попробуйте на 192.168.101.2 добавить правила, разрешающие DNS-трафик

#301165

Прошу прощения ввел всех в заблуждение, не умышлено) Вчера досконально расковырял всю сеть, были косяки. Теперь ситуация изменилась:

text

>iptables-save
# Generated by iptables-save v1.3.5 on Thu Feb  7 12:05:20 2013
*nat
:PREROUTING ACCEPT [1:68]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
# Completed on Thu Feb  7 12:05:20 2013
# Generated by iptables-save v1.3.5 on Thu Feb  7 12:05:20 2013
*filter
:INPUT ACCEPT [7:492]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [6:824]
-A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -o eth0 -j ACCEPT
COMMIT
# Completed on Thu Feb  7 12:05:20 2013

cat /etc/sysctl.conf

text

# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding net.ipv4.ip_forward = 1

# Controls source route verification net.ipv4.conf.default.rp_filter = 1

# Do not accept source routing net.ipv4.conf.default.accept_source_route = 0

# Controls the System Request debugging functionality of the kernel kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename # Useful for debugging multi-threaded applications kernel.core_uses_pid = 1

# Controls the use of TCP syncookies net.ipv4.tcp_syncookies = 1

# Controls the maximum size of a message, in bytes kernel.msgmnb = 65536

# Controls the default maxmimum size of a mesage queue kernel.msgmax = 65536

# Controls the maximum shared segment size, in bytes kernel.shmmax = 68719476736

# Controls the maximum number of shared memory segments, in pages kernel.shmall = 4294967296

route -n

text
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.101.0   0.0.0.0         255.255.255.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth1
0.0.0.0         192.168.100.2   0.0.0.0         UG    0      0        0 eth0

Теперь подсети не пингуются, но на сервере с usergate есть сессия из 192.168.101.0/24 при попытке открытия страниц, на буке из 192.168.101.0/24, а так же если задать пользователя на Usergate напрямую с указанием ip, например 192.168.101.10 то на машине с этим ip появится инет. Поэтому как я понимаю пакеты ходят до прокси 192.168.100.2 и заворачиваются на нужный порт.

Наверное я оканчательно всех запутал) Собственно мой вопрос теперь в том как добиться того что бы подсети пинговались или хотябы пинговался конкретно шлюз 192.168.100.2 из 192.168.101.0/24

#301783

usergate пустите в дрова а там думаю решимо.

#301784

Проще windows server установить чем расшаривать линукс на раздачу.

#301792
"seisros" написал:
Проще windows server установить чем расшаривать линукс на раздачу.

Этот вариант даже не обсуждается.

#301796
"Lupo Alberto" написал:
yars,http://ru.wikipedia.org/wiki/Википедия: … те_троллей

Я был прав в своем первоначальном решении относительно данного пользователя.

#301798
yars написал:
Я был прав в своем первоначальном решении относительно данного пользователя.

Зачем упираться в одну точку? Я понимаю ваше отвращение к windows. Но если на ней гораздо проще выполнить эти действия, то почему бы так и не сделать? Скажу честно, я несколько лет изучал сети. И у меня тоже был спортивный азарт. В windows я делал это в два клика. А на linux шерстил мануалы вновь и вновь. И получалось то криво со сбоями. То надо перенастроить на другую задачу, а потом вернуть назад. Проблем всегда хватало.

#301979
"Kettler" написал:
usergate пустите в дрова а там думаю решимо.

Простите не понял это как? Проблема по прежнему не решена(( Пробовал прописывать маршруты, результата по прежнему ноль( Может быть мне хождение пакетов какая нибудь selinux рубит?

Войдите или зарегистрируйтесь, чтобы ответить.