iptables + squid

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

filt
Сообщения: 18
ОС: Slackware, Arch

iptables + squid

Сообщение filt »

День добрый всем...
Такая ситуация, есть две подсети 192.168.0.0 и 192.168.1.0 и модем с ip 192.168.2.1
Я написал вот такой вот скрипт
========================================================
#!/bin/bash

SUB0_IF="eth0"
SUB1_IF="eth1"
ADSL_IF="eth2"

IPTABLES="/sbin/iptables"

$IPTABLES -N ALLOW_SUB0
$IPTABLES -N ALLOW_SUB1

# Flush that FuCKING tables
$IPTABLES -F

# Defualt actions
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

## Allowed users from first subnet
$IPTABLES -A ALLOW_SUB0 -s 192.168.0.7 -j ACCEPT
$IPTABLES -A ALLOW_SUB0 -s 192.168.0.11 -j ACCEPT

## Allowed users from second subnet
$IPTABLES -A ALLOW_SUB1 -s 192.168.1.2 -j ACCEPT
$IPTABLES -A ALLOW_SUB1 -s 192.168.1.3 -j ACCEPT
$IPTABLES -A ALLOW_SUB1 -s 192.168.1.5 -j ACCEPT
$IPTABLES -A ALLOW_SUB1 -s 192.168.1.7 -j ACCEPT
$IPTABLES -A ALLOW_SUB1 -s 192.168.1.9 -j ACCEPT
$IPTABLES -A ALLOW_SUB1 -s 192.168.1.10 -j ACCEPT
$IPTABLES -A ALLOW_SUB1 -s 192.168.1.12 -j ACCEPT
$IPTABLES -A ALLOW_SUB1 -s 192.168.1.13 -j ACCEPT

$IPTABLES -A INPUT -i $SUB0_IF -p tcp --dport 8080 -j ALLOW_SUB0
$IPTABLES -A INPUT -i $SUB1_IF -p tcp --dport 8080 -j ALLOW_SUB1
$IPTABLES -A INPUT -i $ADSL_IF -p tcp -j ACCEPT

$IPTABLES -A INPUT -p tcp --tcp-flags SYN,ACK SYN,ACK \
-m state --state NEW -j REJECT --reject-with tcp-reset

$IPTABLES -A OUTPUT -o $SUB0_IF -p tcp -j ACCEPT
$IPTABLES -A OUTPUT -o $SUB1_IF -p tcp -j ACCEPT
$IPTABLES -A OUTPUT -o $ADSL_IF -p tcp -j ACCEPT

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

==========================================================================

Как видите все пакеты кроме tcp будут сбрасываться. Правильно ли это (ибо я не знаю нужны ли мне udp и icmp)???
Если не трудно объясните кто чем может :)))
Спасибо сказали:
Аватара пользователя
skeletor
Сообщения: 1224

Re: iptables + squid

Сообщение skeletor »

Ну как сказать, если у тебя все юзеры держат в голове A, PTR, MX записи, которые обычно держат DNS-серваки и ты заходишь в инет исключительно по ip-адресу, то udp-пакеты тебе не нужны.
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: iptables + squid

Сообщение pelmen »

А еще может быть у него dns на сервере в локалке. Тогда все норм
Спасибо сказали:
Аватара пользователя
Red Gremlin
Сообщения: 512
Статус: самоучка
ОС: Rosa 2016 Fresh

Re: iptables + squid

Сообщение Red Gremlin »

А нафига включать форвардинг если он один фиг дропается?
"В мире есть случайность, есть предопределенность и есть то, что ты планируешь совершить."
Спасибо сказали:
Аватара пользователя
skeletor
Сообщения: 1224

Re: iptables + squid

Сообщение skeletor »

Red Gremlin писал(а):
10.09.2009 12:43
А нафига включать форвардинг если он один фиг дропается?

+1
pelmen писал(а):
10.09.2009 12:38
А еще может быть у него dns на сервере в локалке. Тогда все норм

Ну и что, а как он будет ходить наружу, если политика по дефолту drop и правил для него нет? Я ж писал выше, если он знает наизусть соответствие ip=domain_name, то DNS ему ни к чему, что он ясно выразил в своих правилах.
Спасибо сказали:
filt
Сообщения: 18
ОС: Slackware, Arch

Re: iptables + squid

Сообщение filt »

так вот это собственно я пытался выяснить, только можно по подробнее...
и такой глупый вопрос, как за чем включать форвардинг???
может я не правильно понимаю, строчка echo "1" > /proc/sys/net/ipv4/ip_forward делает праила рабочими???
Спасибо сказали:
Аватара пользователя
Red Gremlin
Сообщения: 512
Статус: самоучка
ОС: Rosa 2016 Fresh

Re: iptables + squid

Сообщение Red Gremlin »

может я не правильно понимаю, строчка echo "1" > /proc/sys/net/ipv4/ip_forward делает праила рабочими???

Нет, она разрешает FORWARD на машине, т.е. проход "чужих" пакетов через машину. При включенном форвардинге, если машина из подсети укажет эту машину в качестве маршрутизатора, то она сможет в инет через модем выходить. То есть могла бы, если бы правила эти пакеты не дропали :)
"В мире есть случайность, есть предопределенность и есть то, что ты планируешь совершить."
Спасибо сказали:
filt
Сообщения: 18
ОС: Slackware, Arch

Re: iptables + squid

Сообщение filt »

т.е. требуется разрешить все udp пакеты приходящие на порт 8080 и тоже самое для icmp, или все же не все пакеты.
может тогда проще по умолчанию для udp и icmp сделать accept ???
или может ссылочка есть хорошая, по моему вопросу (хотя совет тоже не помешает :) )???
Спасибо сказали:
Аватара пользователя
Red Gremlin
Сообщения: 512
Статус: самоучка
ОС: Rosa 2016 Fresh

Re: iptables + squid

Сообщение Red Gremlin »

по моему вопросу

Если требуется раздавать инет через сквид на этой машине, то:

1. Разграничение по ip делать на уровне сквида (В духе acl allowips 192.168.0.1 192.168.1.2 && http_access allow allowips)
2. iptables настраивать по назначению машины, т.е. если она должна только интернет через сквид давать, то открыть только ему:
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -A OUTPUT -p ALL --sport 8080 -j ACCEPT
$IPTABLES -A INPUT -p ALL --dport 8080 -j ACCEPT
3. Форвадинг запретить (echo "0" > /proc/sys/net/ipv4/ip_forward)
"В мире есть случайность, есть предопределенность и есть то, что ты планируешь совершить."
Спасибо сказали:
Аватара пользователя
skeletor
Сообщения: 1224

Re: iptables + squid

Сообщение skeletor »

Для начинающих, лучше писать правила попроще, что бы ничего нужного не запретить. Для тебя я лучше бы посоветовал сделать следующее: включить форвардинг, разрешить всё и на этом остановиться до полного понимания файервола, протоколов, маршрутизации.
Спасибо сказали:
filt
Сообщения: 18
ОС: Slackware, Arch

Re: iptables + squid

Сообщение filt »

хорошо, тогда так и сделаю... для начала :)
Спасибо...
Спасибо сказали:
filt
Сообщения: 18
ОС: Slackware, Arch

Re: iptables + squid

Сообщение filt »

В общем, поставил я squid и lightsquid. Все хорошо работает, все показывает. Потом я решил настроить iptables, примерно вот так:

#!/bin/bash

# eth0 - 192.168.2.2 / 24 (INET)
# eth1 - 192.168.1.1 / 28 (SUB1)
# eth2 - 192.168.0.1 / 24 (SUB0 Buh)

iptab="/usr/sbin/iptables"

$iptab -F

$iptab -P INPUT DROP
$iptab -P OUTPUT DROP

$iptab -A INPUT -p tcp -i eth1 --dport 8080 -j ACCEPT # WEB
$iptab -A INPUT -p tcp -i eth2 --dport 22 -j ACCEPT # SSH
$iptab -A INPUT -p tcp -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT # No connections from the outside

$iptab -A INPUT -p icmp -j ACCEPT
$iptab -A INPUT -p udp -j ACCEPT

$iptab -A OUTPUT -p tcp -o eth1 --sport 8080 -j ACCEPT # WEB
$iptab -A OUTPUT -p tcp -o eth2 --sport 22 -j ACCEPT # SSH
$iptab -A OUTPUT -p tcp -o eth0 -j ACCEPT

$iptab -A OUTPUT -p udp -j ACCEPT
$iptab -A OUTPUT -p icmp -j ACCEPT

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

Все работает, только теперь я не могу смотреть статистику(у апача в конфиге: listen 192.168.0.1:80) пробовал открывать 80 порт, все равно не работает.
И еще такой вопрос, почтовик Thunderbird не может получить почту, а Foxmail под форточкой все прекрасно получает
Спасибо сказали: