kisil, в процессе переустановки с нуля. Эта инсталяция на этой машине у меня по счету уже где-то шестая.. Причем абсолютно не ясно что в прошлой сломалось.. Но чувствую что-то пошло не так.. иногда начинаю думать, а не сменить ли дистриб.. скажем на опенсусе, там как раз новый билд вышел.. ..при поиске манов Гугл наверное, еще неделю по-привычке будет информацию затрагивающую debian выдавать :D
прошу помощи со скриптом iptables для шлюза
Опять трабл с "интернет-шлюзом"!
кратко рефреш того что есть: 1. Железный комп с 2мя сетевыми, чистыми iptables и сквидом на http_port 3128, (sams2 c авториз. по ip)
2. eth0 - WAN, eth1 - LAN, виндовс-машина подключена к eth1, браузер настроен на исп. прокси. с прокси работает, траф считает.
Вопрос: Хотел сделать в браузере: "не использовать прокси", а в iptables сделать заворот 80 порта на 3128 для сети LAN.
Что-то не выходит..Показать
root@gw5:~# iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-ports 3128
root@gw5:~# iptables -t nat -v -S
-P PREROUTING ACCEPT -c 0 0
-P POSTROUTING ACCEPT -c 0 0
-P OUTPUT ACCEPT -c 0 0
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -c 0 0 -j REDIRECT --to-ports 3128
root@gw5:~# iptables -t nat -v -S
-P PREROUTING ACCEPT -c 10 1211
-P POSTROUTING ACCEPT -c 0 0
-P OUTPUT ACCEPT -c 0 0
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -c 0 0 -j REDIRECT --to-ports 3128[/console]
Прокси на 3128 прозрачный (transparent/intercept)? Иначе не взлетит.
Эмм.. - нет, не прозрачный! Значит вот почему! Спаибо)) вопрос снят! - просто перекрою 80. Но на прозрачном ведь https не заведется (( Хотя вот у парней из endian.com похоже как-то завелся..Прокси на 3128 прозрачный (transparent/intercept)? Иначе не взлетит.
Привет. *BYE* . Опять настраиваеш GW5 ;D
А простой трафик у тя щас идёт нормально на прозрачный прокси.???
Привет))) Так точно. у меня нету прозрачного прокси и не будет никогда!)Привет. . Опять настраиваеш GW5
щас пилю скрипт, /root/gw5.fw пока такой:
Показать
#!/bin/bash
# *****************************************************************************
#
TR_HOSTS="80.247.XX.XXX,109.202.X.XXX,192.168.0.65" # 1,2-provid-s, 3-debug
MY_NETWORK="192.168.1.0/24" # My NetWork (eth1)
THIS_GW_IP="192.168.0.254" # this GateWay IP
DEFAULT_GW="192.168.0.210" # default gateway
EXT_PORTS="22,80,3333,3335,3336,5555,6666" # accessible WAN port
INT_PORTS="3128,3389,5060,5190" # accessible LAN ports
IPT="/sbin/iptables" # iptables location
EXT_IF="eth0" # external WAN interface
INT_IF="eth1" # internal LAN interface
#
# *****************************************************************************
# CLOSE ALL POLICE:
$IPT -P INPUT DROP && $IPT -P OUTPUT DROP && $IPT -P FORWARD DROP
# FLASHING RULES IN ALL DEFAULT TABLES:
$IPT -F && $IPT -t mangle -F && $IPT -t filter -F && $IPT -t nat -F && $IPT -F
#
# *****************************************************************************
# EXTERNAL (eth0) INTERFACE RULES:
# INPUT RULES:
$IPT -A INPUT --match state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -i $EXT_IF --source $TR_HOSTS -p tcp -m multiport --dport $EXT_PORTS -m state --state NEW -j ACCEPT
# OUTPUT RULES:
$IPT -A OUTPUT -o $EXT_IF -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# FORWARD RULES:
#
# *****************************************************************************
# INTERNAL (eth1) INTERFACE RULES:
# INPUT RULES:
$IPT -A INPUT -i $INT_IF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -i $INT_IF -p tcp -m multiport --dport $INT_PORTS -m state --state NEW -j ACCEPT
# OUTPUT RULES:
$IPT -A OUTPUT -o $INT_IF -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# FORWARD RULES:
#
# *****************************************************************************
# LOOPBACK RULES
# INPUT RULES:
$IPT -A INPUT -i lo -j ACCEPT
# OUTPUT RULES:
$IPT -A OUTPUT -o lo -j ACCEPT
#
# *****************************************************************************
# NAT
Ну и как работает скрипт????
Да, все что смог пока проверить и осознать - работает. Пускает только доверенных, на разрешенный порты. RDP не проверял, да еще и не прописал внизу в NAT, там еще все согласовать со списками ACL в сквиде надобно. + аськи, скайпы, корпоративная VoIP, +over9K всего еще..
Отвлеченный вопрос (не требует вникать и читать вышеописанное): Есть шлюз (2 сети) eth0 external (WAN), eth1 internal (LAN)
все запретил, хочу пинги из LAN в глобал:
$IPT -A FORWARD -i $INT_IF -o $EXT_IF -j ACCEPT # - так пинги ходят
$IPT -A FORWARD -i $INT_IF -o $EXT_IF -p icmp --icmp-type any -j ACCEPT # - так почему-то пинги не ходят ((ну ведь ИЦМП любой тип, а все равно не ходят! :'(
Пропишы вот такое
$IPT -A FORWARD --match state --state ESTABLISHED,RELATED -j ACCEPTЭто есть)Пропишы вот такое
# --------------------------------- NAT ---------------------------------------
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPT -t nat -A POSTROUTING -o eth0 -j MASQUERADE
$IPT -t nat -A POSTROUTING -j SNAT --to-source $GW5
$IPT -A FORWARD -i $EXT_IF -o $INT_IF -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -i $INT_IF -o $EXT_IF -j ACCEPT # РАБОТАЕТ
# $IPT -A FORWARD -i $INT_IF -o $EXT_IF [b]-p icmp --icmp-type any[/b] -j ACCEPT # НЕ РАБОТАЕТ
# -----------------------------------------------------------------------------
А ты поставь без интерфейсов, а просто, что принимать уже установленые соединения.
$IPT -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
не ходят. Может весь показать: gw5.fwА ты поставь без интерфейсов, а просто, что принимать уже установленые соединения.
Показать
# -----------------------------------------------------------------------------
TR_HOSTS="192.168.0.65" # 1,2-provid-s, 3-debug
MY_NETWORK="192.168.1.0/24" # My NetWork (eth1)
GW5="192.168.0.254" # gw5 ip is 192.168.1.220
P_GW="192.168.0.210" # provider GW is:
EXT_PORTS="22,80,3333,3335,3336,5555,6666" # accessible WAN port (DEL 80 later!)
INT_PORTS="20,21,25,53,110,1024,2041,3128,5060,5190,8080,11024" # accessible LAN ports
IPT="/sbin/iptables" # iptables location
EXT_IF="eth0" # external WAN interface
INT_IF="eth1" # internal LAN interface
#
#
# --------------------------- CLOSE ALL CHAINS --------------------------------
$IPT -P INPUT DROP && $IPT -P OUTPUT DROP && $IPT -P FORWARD DROP
# ------------------ FLASHING RULES IN ALL DEFAULT TABLES ---------------------
$IPT -F && $IPT -t mangle -F && $IPT -t filter -F && $IPT -t nat -F && $IPT -F
# ----------------------------- ALLOWING LOOPBACK TRAFFIC ---------------------
$IPT -A INPUT -i lo -j ACCEPT && $IPT -A OUTPUT -o lo -j ACCEPT
# ------------------- EXTERNAL (eth0) INTERFACE RULES ------------------------
# INPUT RULES:
$IPT -A INPUT --match state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -i $EXT_IF --source $TR_HOSTS -p tcp -m multiport --dport $EXT_PORTS -m state --state NEW -j ACCEPT
#
# OUTPUT RULES:
$IPT -A OUTPUT -o $EXT_IF -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# -------------------- INTERNAL (eth1) INTERFACE RULES ------------------------
# INPUT RULES:
$IPT -A INPUT -i $INT_IF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -i $INT_IF -p tcp -m multiport --dport $INT_PORTS -m state --state NEW -j ACCEPT
#
# OUTPUT RULES:
$IPT -A OUTPUT -o $INT_IF -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# --------------------------------- NAT ---------------------------------------
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPT -t nat -A POSTROUTING -o eth0 -j MASQUERADE
$IPT -t nat -A POSTROUTING -j SNAT --to-source $GW5
$IPT -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT # !!! LUST RULE !!!
# $IPT -A FORWARD -i $EXT_IF -o $INT_IF -m state --state RELATED,ESTABLISHED -j ACCEPT
# $IPT -A FORWARD -i $INT_IF -o $EXT_IF -j ACCEPT
# -----------------------------------------------------------------------------
# $IPT -A OUTPUT -o $INT_IF -p icmp --icmp-type any -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# *****************************************************************************
[/console]
Мистика какаято. А поясните пожалуйста что это правило означает
$IPT -t nat -A POSTROUTING -j SNAT --to-source $GW5эмм.. :[ не могу.. Вот это я нашел где-то..А поясните пожалуйста что это правило означает
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
# You should now be NATing.Показать
# allow IP forwarding.
echo 1 > /proc/sys/net/ipv4/ip_forward
# Then you'll need to configure iptables to forward the packets from your internal network, on /dev/eth1, to your external network on /dev/eth0. You do this will the following commands:
Показать
# --------------------------------- NAT ALL -----------------------------------
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPT -t nat -A POSTROUTING -o $EXT_IF -j MASQUERADE
$IPT -A FORWARD -i $EXT_IF -o $INT_IF -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -i $INT_IF -o $EXT_IF -j ACCEPT
# -----------------------------------------------------------------------------
Хорошо а если так, тока возмём для отдельного айпи
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPT -t nat -A POSTROUTING -o $EXT_IF -j MASQUERADE
$IPT -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -p icmp -s 192.168.0.20 -o $EXT_IF -j ACCEPTайпи свое ставите. И пробуйте будет ли идти пинг.
Не знаю как у вас а у меня такая система работает. При том что политики INPUT, FORWARD DROP, OUTPUT ACCEPT
И при такой конструкции вот такое правило работает.
iptables -A FORWARD -p icmp -i eth1 -o eth0 -j ACCEPTПинги идут
kisil, обе конструкции прекрасно работают, даже с политикой все в DROP, вот только без -p icmp
[console]# --------------------------------- NAT ALL -----------------------------------
MY_NET="192.168.1.0/24"
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPT -t nat -A POSTROUTING -o $EXT_IF -j MASQUERADE
$IPT -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -p icmp -s $MY_NET -o $EXT_IF -j ACCEPT # вариант 1
$IPT -A FORWARD -p icmp -i $INT_IF -o $EXT_IF -j ACCEPT # вариант 2
# -----------------------------------------------------------------------------
[/console]
указываешь этот злосчастный ИЦМП, а такое чувство что прыгаешь ни к ацепт, а к дроп! Может есть иной вариант указания icmp?
А INPUT и OUTPUT у Вас в DROP?указываешь этот злосчастный ИЦМП, а такое чувство что прыгаешь ни к ацепт, а к дроп! Может есть иной вариант указания icmp?
Да