The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Сеть, Интернет, Squid, Iptables."
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Сеть, Интернет, Squid, Iptables."
Сообщение от zabudkin emailИскать по авторуВ закладки on 10-Апр-03, 08:04  (MSK)
Обращаюсь за помощью к коллегам. У самого опыта в этом не ахти много, но уже успел напарится.

Имеется: ASPLinux, eth0, eth1, Squid. (в дальнейшем Сервер, адрес 192.168.0.200)

Описание:
eth0 - 192.168.0.200, выход в интернет через PPPOe. После входа появляется ppp1.
eth1 - внутренняя сеть (192.168.0.0).

Задача: Обеспечение выхода в сеть интернет компьютеров из локальной сети.

Сейчас происходит всё следующим образом:
При загрузке системы запускается файл /start, в котором:
- прописываются iptables
- активируется eth0
- pppoe-wrapper (вход в сеть провайдера)
- активируется eth1.
- активируется Squid
Проблема:
- связь с интернетом разрывается несколько раз за день
- squid падает несколько раз за день

Сегодняшнее моё решение:
- скрипт, который проверяет доступность сайта провайдера через ping каждую минуту и если не пингуется, то выполняется повторный вход в сеть провайдера и повторный запуск Squid.

Теперь непосредственно интересуюсь у коллег:
1. А какое будет Ваше решение?
2. Как обеспечить возможность пинга любого сайта в сети интернет с любой машины в локальной сети (eth1)? Что прописать в iptables? Есть ли какое-нибудь готовое решение?
3. Как обеспечить возможность набора в браузере компьютеров локальной сети любого домена (например http://www.yandex.ru) без прописывания в браузере адреса Squid'а (192.168.0.200:3128)?

Очень надеюсь на помощь.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Сеть, Интернет, Squid, Iptables."
Сообщение от iiws emailИскать по авторуВ закладки on 10-Апр-03, 09:03  (MSK)
>Теперь непосредственно интересуюсь у коллег:
>1. А какое будет Ваше решение?
>2. Как обеспечить возможность пинга любого сайта в сети интернет с любой
>машины в локальной сети (eth1)? Что прописать в iptables? Есть ли
>какое-нибудь готовое решение?

смотри доку по iptables , нужно разрешить icmp пакеты тип 8 и 11 возможно еще и 3 тип
#
# ICMP rules
#
$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

>3. Как обеспечить возможность набора в браузере компьютеров локальной сети любого домена
>(например http://www.yandex.ru) без прописывания в браузере адреса Squid'а (192.168.0.200:3128)?

организовать прозрачное проксирование сквида, как делать смотри доку по сквиду + правилами firewall заворачивать 80 порт на порт сквида , это все есть в документации по сквиду , но имей ввиду что не будет работать аутентификация сквида.

сквид падать не должен при пропадании канала, с этим разбирайся почему он у тебя падает. анализуй лог сквида cache.log, на всякий случай отключи проверку dns_testnames  или  запускай сквид с праметром -D

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Сеть, Интернет, Squid, Iptables."
Сообщение от zabudkin emailИскать по авторуВ закладки on 10-Апр-03, 09:55  (MSK)
>смотри доку по iptables , нужно разрешить icmp пакеты тип 8 и
>11 возможно еще и 3 тип
>#
># ICMP rules
>#
>$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
>
>>3. Как обеспечить возможность набора в браузере компьютеров локальной сети любого домена
>>(например http://www.yandex.ru) без прописывания в браузере адреса Squid'а (192.168.0.200:3128)?
>
>организовать прозрачное проксирование сквида, как делать смотри доку по сквиду + правилами
>firewall заворачивать 80 порт на порт сквида , это все есть
>в документации по сквиду , но имей ввиду что не будет
>работать аутентификация сквида.

Это у меня всё сделано. DNS настроен, nslookup на компьютере в сети работает:
>nslookup www.yandex.ru
*** Can't find server name for address 192.168.0.200: Non-existent domain
*** Default servers are not available
Server:  UnKnown
Address:  192.168.0.200

Non-authoritative answer:
Name:    www.yandex.ru
Address:  213.180.194.129

А вот пинг нет:
>ping www.yandex.ru

Обмен пакетами с www.yandex.ru [213.180.194.129] по 32 байт:
Превышен интервал ожидания для запроса.
Статистика Ping для 213.180.194.129:
    Пакетов: отправлено = 1, получено = 0, потеряно = 1 (100% потерь),
Control-C
^C

Вот и спрашивается, всё хорошо, еще бы в браузер страничка грузилась...

Вот мои iptables:

#!/bin/sh

#Сброс iptables
/flush
#Настройки iptables
INET_IFACE="ppp0"
DHCP="no"
DHCP_SERVER="212.111.82.17"
PPPOE_PMTU="no"
LAN_IP="192.168.0.200"
LAN_IP_RANGE="192.168.0.0/16"
LAN_BROADCAST_ADDRESS="192.168.255.255"
LAN_IFACE="eth1"
LO_IFACE="lo"
LO_IP="127.0.0.1"
IPTABLES="/sbin/iptables"
/sbin/depmod -a
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_MASQUERADE
/sbin/modprobe ipt_owner
/sbin/modprobe ipt_REJECT
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_nat_irc

echo "1" > /proc/sys/net/ipv4/ip_forward

echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
echo "1" > /proc/sys/net/ipv4/conf/all/proxy_arp
echo "1" > /proc/sys/net/ipv4/ip_dynaddr

$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

#$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 tcp_packets -p TCP -s 0/0 --dport 1080 -j allowed
$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 53 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 113 -j allowed
$IPTABLES -A udp_packets -p UDP -s 0/0 --source-port 53 -j ACCEPT
if [ $DHCP == "yes" ] ; then
$IPTABLES -A udp_packets -p UDP -s $DHCP_SERVER --sport 67 \
  --dport 68 -j ACCEPT
  fi
  
  $IPTABLES -A udp_packets -p UDP -s 0/0 --source-port 1080 -j ACCEPT
  $IPTABLES -A udp_packets -p UDP -s 0/0 --source-port 53 -j ACCEPT
  $IPTABLES -A udp_packets -p UDP -s 0/0 --source-port 123 -j ACCEPT
  $IPTABLES -A udp_packets -p UDP -s 0/0 --source-port 2074 -j ACCEPT
  $IPTABLES -A udp_packets -p UDP -s 0/0 --source-port 4000 -j ACCEPT
  
  $IPTABLES -A udp_packets -p UDP -i $INET_IFACE \
  --destination-port 135:139 -j DROP
  
  $IPTABLES -A udp_packets -p UDP -i $INET_IFACE -d 255.255.255.255 \
  --destination-port 67:68 -j DROP
  
  $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 3 -j ACCEPT
  $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 INPUT -p tcp -j bad_tcp_packets
  
  $IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT
  $IPTABLES -A INPUT -p ALL -i $LO_IFACE -j ACCEPT
  $IPTABLES -A INPUT -p ALL -i $LAN_IFACE -d $LAN_BROADCAST_ADDRESS -j ACCEPT
  
  $IPTABLES -A INPUT -p UDP -i $LAN_IFACE --dport 67 --sport 68 -j ACCEPT
  
  $IPTABLES -A INPUT -p ALL -i $INET_IFACE -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
  
  #$IPTABLES -A INPUT -i $INET_IFACE -d 224.0.0.0/8 -j DROP
  
#  $IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
#  --log-level DEBUG --log-prefix "IPT INPUT packet died: "
  
  $IPTABLES -A FORWARD -p tcp -j bad_tcp_packets

  $IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT
#$IPTABLES -A INPUT -p ALL -i ppp2  -j ACCEPT  
#$IPTABLES -A FORWARD -i ppp2 -j ACCEPT
  $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT


  
#  $IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG \
#  --log-level DEBUG --log-prefix "IPT FORWARD packet died: "
  
  $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 -o $INET_IFACE -j ACCEPT
  
#  $IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
#  --log-level DEBUG --log-prefix "IPT OUTPUT packet died: "
  
#$IPTABLES -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
$IPTABLES -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128
$IPTABLES -t nat -A PREROUTING -p tcp --dport 81 -j REDIRECT --to-port 3128
$IPTABLES -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 3128
$IPTABLES -t nat -A PREROUTING -p tcp --dport 8081 -j REDIRECT --to-port 3128
$IPTABLES -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 3128
  if [ $PPPOE_PMTU == "yes" ] ; then
   $IPTABLES -t nat -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN \
    -j TCPMSS --clamp-mss-to-pmtu
    fi
    $IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE
#    $IPTABLES -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-ports 3128

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Сеть, Интернет, Squid, Iptables."
Сообщение от zabudkin emailИскать по авторуВ закладки on 10-Апр-03, 12:06  (MSK)
Господа! Ну помогите же пожалуйста!
  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру