Kettler, я уже даже debian stable поставил и на чистой системе без применения всяких своих привычных настроек \ скриптов и прочего пробовал тот вариант и фиг вам... :(
inettel написал:
OUTPUT... это интересно интересно
Случайно ни каких прозрачных прокси не настроенно ?
Чистоган полный. smile
Kettler написал:
И ещё не забываем включить forwarding
echo "1" > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
Абсолютно, у меня как бэ всегда после поднятия сетевых сразу ppp0 - т.е. при загрузке.
inettel написал:
Такс. при всех чистых правилах iptables , после ввода
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.1.2 -j SNAT --to-source внешнийIP
Виртуальная машина в инет ходить может ?
В инет ходит после iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.1.2 -j MASQUERADE
Вот сейчас как это выглядит:
Показать
text
# ************************************************************************************************** #
echo "1" > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
# ************************************************************************************************** #
export IPT="/sbin/iptables -v"
# export LAN=eth0 #
export P_PLAN=ppp0
export Z_PLAN=eth1
export V_PLAN=tap0
export V_COMP=192.168.1.2
export Z_COMP=192.168.0.5
# export REAL_IP=0.0.0.0
# ************************************************************************************************** #
# RESET
$IPT -P INPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT ACCEPT
# reset the default policies in the nat table.
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT
$IPT -t nat -P OUTPUT ACCEPT
# reset the default policies in the mangle table.
$IPT -t mangle -P PREROUTING ACCEPT
$IPT -t mangle -P POSTROUTING ACCEPT
$IPT -t mangle -P OUTPUT ACCEPT
# flush all the rules in the filter and nat tables.
$IPT -F
$IPT -t nat -F
$IPT -t mangle -F
# erase all chains that's not default in filter and nat table.
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X
# Let's go
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
# ************************************************************************************************** #
# разрешаем локальный траффик для loopback и внутренней сети
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -i $Z_PLAN -j ACCEPT
$IPT -A INPUT -i $V_PLAN -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A OUTPUT -o $Z_PLAN -j ACCEPT
$IPT -A OUTPUT -o $V_PLAN -j ACCEPT
# ************************************************************************************************** #
# Принимать все пакеты, которые инициированы из уже установленного соединения, и имеющим
# признак ESTABLISHED.
# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -o $P_PLAN -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -o $Z_PLAN -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -o $V_PLAN -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -i $Z_PLAN -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -i $V_PLAN -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
# ************************************************************************************************** #
# Разрешаем доступ из внутренней сети наружу
$IPT -A FORWARD -i $Z_PLAN -o $P_PLAN -j ACCEPT
$IPT -A FORWARD -i $V_PLAN -o $P_PLAN -j ACCEPT
# Разрешаем обмен между сетями
$IPT -A FORWARD -i $Z_PLAN -o $V_PLAN -j ACCEPT
$IPT -A FORWARD -i $V_PLAN -o $Z_PLAN -j ACCEPT
# Включаем фрагментацию пакетов. Необходимо из за разных значений MTU
$IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
$IPT -A INPUT -p tcp --dport 6881:6889 -m state --state NEW -j ACCEPT
# ************************************************************************************************** #
# Отбрасывать все пакеты, которые не могут быть идентифицированы и поэтому не могут
# иметь определенного статуса.
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP
# Приводит к связыванию системных ресурсов, так что реальный обмен данными
# становится не возможным.
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP
# Запрещаем доступ снаружи во внутреннюю сеть
$IPT -A FORWARD -i $P_PLAN -o $Z_PLAN -j REJECT
$IPT -A FORWARD -i $P_PLAN -o $V_PLAN -j REJECT
# ************************************************************************************************** #
# Маскарадинг
$IPT -t nat -A POSTROUTING -o $P_PLAN -s $Z_COMP -j MASQUERADE
$IPT -t nat -A POSTROUTING -o $P_PLAN -s $V_COMP -j MASQUERADE
# ************************************************************************************************** #
Такс, ну прям...
После установки чистой debian без всяких iptables, поднял tap0, запустил kvm, все с хоста на гостя и обратно пинг есть.
Применяю iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.1.2 -j MASQUERADE
Шлюзом 192.168.1.1 для гостя, - dnsmasq - хотя пробовал и без только резолвил 8.8.8.8, все после этого на госте интернет есть.
На госте апач. Захожу на http//192.168.1.2 = апач.
Варианты:
iptables -t nat -A PREROUTING -i ppp0 -d внешнийIP -p tcp --dport 80 -j DNAT --to-destination 192.168.1.2:80
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.1.2 -p tcp --sport 80 -j SNAT --to-source внешнийIP
На моем динамическом нет апача.
iptables -v -A INPUT -p tcp -i ppp0 --dport 80 -j ACCEPT
iptables -v -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.2:80
Нет апача.
И еще перебор из кучи всего чего можно и нельзя... предварительно очищая все правила и делая:
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
Нет апача.
Менять ip при активном соединении ? очень сомневаюсь. Если бы ваш провайдер так делал - у него бы телефон раскалился от звонков с вопросами "А почему меня выбрасывает с webmoney? а почему у меня закачки с рапидшары рвутся ? за что мы платим деньги и т.п"
Понаблюдать надо за своим ip, вот кстати почему у например noip привязка обновления только ко времени т.е. каждые сколько-то там времени обновляет инфу, а не при поднятии сетевого интерфейса.
ы. http://gnu.su/news.php?extend.352http://welinux.ru/post/4532/
Не может транзитный траффик попадать в цепочку OUTPUT
А раз это происходит - нужно ковырять насторойки виртуальной сети, сейчас по всем признакам получается, что траффик от tap0 считается идущим от локального процесса.
Локально apache ставлю, тот на который проброс - удаляю, виден локальный. (после последних правил)
ы.
text
>>nmap 188.233.124.239 -p 80
Starting Nmap 5.21 ( http://nmap.org ) at 2011-03-23 20:08 VOLT
Nmap scan report for 188.233.124.239
Host is up (0.000059s latency).
PORT STATE SERVICE
80/tcp closed http
>>nmap 188.233.124.239 -p 80
Starting Nmap 5.21 ( http://nmap.org ) at 2011-03-23 20:11 VOLT
Nmap scan report for 188.233.124.239
Host is up.
PORT STATE SERVICE
80/tcp filtered http
Nmap done: 1 IP address (1 host up) scanned in 2.07 seconds
достаточно, чтобы апач на реальной машине был виден из инета.
Кстати он и был виден. в течении минут этак 10.
Осталось понять, что было сделанно перед этим, и что после.
Starting Nmap 5.21 ( http://nmap.org ) at 2011-03-23 20:41 VOLT
Nmap scan report for 188.233.124.239
Host is up (0.000057s latency).
PORT STATE SERVICE
80/tcp closed http
Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds
На хосте apache удалил сечас по идее должен видеть виртуалку с апачем.
Смотри.