![]() |
![]() |
BELL 20.09.2004 - 13:58 |
Итак, скачан и установлен с помощью яста пакет иптаблез. Хотя оказалось, что в моем дистибутиве он ЕСТЬ, и качать не надо было, но все же -) Консоль на иптаблез отзывается, говорит учится надо через хелп. Скачан скрипт настройки иптаблез. Вот он #!/bin/sh # # Для сервера локальной сети с выходом в интернет # ########################################################################### # # Конфигурация Интернет-интерфейса. # INET_IP="62.183.66.203" #Ваш внешний IP - если динамический - то 0/0 INET_IFACE="eth1" #Ваш интерфейс в интернет (ppp,ippp,eth) #INET_BROADCAST="212.96.100.255" #Броадкаст(нужен, если есть статический ip в интернет) # # Конфигурация LAN-интерфейса # LAN_IP="192.168.0.2" LAN_IP_RANGE="192.168.0.0/24" LAN_IFACE="eth0" # # Конфигурация localhost. # LO_IFACE="lo" LO_IP="127.0.0.1" # # Конфигурация IPTables. # IPTABLES="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 ipt_owner #/sbin/modprobe ipt_REJECT /sbin/modprobe ipt_MASQUERADE #/sbin/modprobe ip_conntrack_ftp #/sbin/modprobe ip_conntrack_irc #/sbin/modprobe ip_nat_ftp #/sbin/modprobe ip_nat_irc # # Включаем FORWARDинг # echo "1" > /proc/sys/net/ipv4/ip_forward # # Политика по умолчанию # $IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT DROP $IPTABLES -P FORWARD DROP # # Создание собственных цепочек # $IPTABLES -N bad_tcp_packets $IPTABLES -N allowed $IPTABLES -N tcp_packets $IPTABLES -N udp_packets $IPTABLES -N icmp_packets # # Заполнение собственных цепочек # # # Цепочка bad_tcp_packets # $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 ! --syn -m state --state NEW -j DROP |
BELL 1 - 20.09.2004 - 13:59 |
# # Цепочка allowed # $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 # # Порты TCP # $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed # # Порты UDP # #$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 53 -j ACCEPT # # Правила ICMP # $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 # # Цепочка INPUT # $IPTABLES -A INPUT -p tcp -j bad_tcp_packets # # Правила для LAN (разрешаем все) # $IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT # # Правила для пакетов из интернета # $IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets $IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets $IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets # # Цепочка FORWARD # $IPTABLES -A FORWARD -p tcp -j bad_tcp_packets # # FORWARDинг на всю локальную сеть.(Пользователи из локалки могут ходить в интернет) # $IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # # Цепочка OUTPUT # $IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets # # Правила цепочки # $IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT $IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT $IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT # # Включаем IP Forwarding и трансляцию адресов(или маскарадинг) # #$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE #если ip динамический $IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP #если ip статический #$IPTABLES -t nat -A PREROUTING -i $LAN_IFACE -d ! $LAN_IP_RANGE -p tcp --dport 80 -j REDIRECT --to-port 3128 #это нужно для #того случая, когда вы хотите сделать transparent-прокси #В конфиге squid надо добавить для этого: #httpd_accel_host virtual #httpd_accel_port 80 #httpd_accel_with_proxy on #httpd_accel_uses_host_header on Скрипт исполняется без проблем. Ну, при повторном запуске говорить, что правила (чайнс??) уже есть. Настраиваю удаленную машину - в ТСПИП указываю шлюз 192.168.0.2 Интернета нет. Как проверить, запущен ли демон иптаблез? сервисе не пашет... В общем, куда рыть? |
Сыр 2 - 20.09.2004 - 20:52 |
Для начала результаты сего в студию: iptables -L -t nat iptables -L -t filter можно еще и iptables -L -t mangle, но эт не обязательно... И еще... iptables не обязаны быть демоном - это часть ядра, или в худшем случае его модуль... Неплохо было бы так же показать табличку маршрутов... ... эт так к скрипту... Теперь, немного общих так сказать советов попробуйте для начала из консоли слующую последовательность не прибигая к скриптам echo "1" > /proc/sys/net/ipv4/ip_forward iptables -t nat -F iptables -t filter -F iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE инет должон пойти... теперь еще по скрипту -судя по тому что вы описали, скорей всего где-то перемудрено с фильтрами, где именно щас не скажу нет времени более детально рытся в вашем скрипте. |
Сыр 3 - 20.09.2004 - 21:03 |
Да еще вот что... Что бы это усе заработало внешний интерфейс (в моем примере eth1) должен обязательно иметь стату default geteway. В случае ppp-соеденения ессено тоже (это уже читайте настройки ppp). Для постоянного соеденения в /etc/sysconfig/network должна присутсвовать строка GATEWAY=X.X.X.X, где Х.Х.Х.Х внешний адрес вашего компа. |
gloomymen 4 - 20.09.2004 - 23:28 |
BELL, с самого шлюза inet доступен? Не все модули обязательно сразу грузить, особенно те, что вообще не используются >при повторном запуске говорить, что правила (чайнс??) уже есть Пользовательские цепочки, при старте нужно сбрасывать и удалять, основные тоже не помешает сбрасывать (и обнулять, если считать надумаешь) Думаю после "route -n" всё станет понятнее :) ---- Сыр #2, не заработает - Policy DROP аднака #3, не "внешний вашего компа" зуб даю ;) |
lithium 5 - 21.09.2004 - 09:37 |
to 0: http://www.opennet.ru/docs/RUS/iptables/ http://www.opennet.ru/docs/HOWTO/IP-Masquerade-HOWTO/index.html этого должно быть достаточно. |
BELL 6 - 21.09.2004 - 11:36 |
Простите что долго не появлялся. Я начал читать iptables --help -) 1) При перезагрузке правила питаблез (-Ф) не сохраняются. Так и должно быть? 2) 192,168,0,0/16 /24 Что означают 16 24? Маску задают? Как ее расчитать? 2_4 Доступен, шлюз и днс сервера настроены. 2_5 читаем давно уже.. непонячтно много правда )) |
Сыр 7 - 21.09.2004 - 12:12 | 2 gloomymen - заработает однако, первыми стороками у мя идет принудительный сброс цепочек в нате и фильтре, так что усе бут пахать. %о) |
BELL 8 - 21.09.2004 - 12:23 |
tkgpdc:~ # iptables -L -t nat Chain PREROUTING (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all -- 192.168.0.0/24 anywhere Chain OUTPUT (policy ACCEPT) target prot opt source destination Вот.. как надо настраивать клиентскую машину под вин2к? Просто указать шлюз? |
BELL 9 - 21.09.2004 - 12:24 | filter пустая.. ассерт.. |
Сыр 10 - 21.09.2004 - 12:38 |
угу... и ДНС прописать не забудь... тока для начала сквида выруби... |
BELL 11 - 21.09.2004 - 12:56 |
Кто такой сквид? ДНС сервер на машине не установлен. ДНС сервера провайдера прописывать? Как настроить bind на переадресацию на днс прова, чтоб в настройках кл. машины я вводил и шлюз и днс ИП сервера моего? ------------ инета нет ( |
BELL 12 - 21.09.2004 - 12:59 |
Так, инет есть -) осталось настроить бинд -) пишу с клиентской машины, поздравьте меня -) Просьба - обьясните по пунктам значения этого iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE |
BELL 13 - 21.09.2004 - 13:02 |
Таак.. проблема.. самба недоступна - не найден сетевой путь. Видимо, маршрутизирует все на eth1. Подскажите, че делать -) |
Сыр 14 - 21.09.2004 - 13:24 |
там все просто - просто добавляем в таблице nat правило что все пакеты для из сети 192.168.0.0/255.255.255.0 направленные во внешние сети маскарадятся на интерфейс eth1... проверяй конфиги самбы - маршрутизация и маскарад тут ни причем. |
gloomymen 15 - 21.09.2004 - 17:48 | Сыр, ну мы как всегда - каждый о своём... :) |
BELL 16 - 22.09.2004 - 08:24 |
Все! Разобрался! Спасибо! Тока инет отключили за неуплату, теперь с момеда воть выхожу -) Нада директора теребить..... |