Классика жанра ;P
Storm 23 мая, 2006 - 10:23
1. Как настроить конфиги инитскриптов, чтобы для eth0 перед поднятием устанавливался спецефический hw ether? В /etc/init.d/net.eth0 покопался, нашел там что-то вроде user preup function, что вроде оно самое, вопрос только как и где прописать эту функцию чтобы она делала ifconfig eth0 hw ether 00:80...bla-bla
UPDATE: вроде это решилось, mac_eth0 в /etc/conf.d/net. Спасибо [RUsh] на #gentoo-ru. Остается второй вопрос... =)
2. Как лучше SNAT разрешать/запрещать для определенных хостов локальных/удаленных? На данный момент я прописываю 2 правила в FORWARD (для -s и -d), но здается мне это криво =) Вот кусок конфига:
...[CUT]...
# Очищаем правила
iptables -F
iptables -t nat -F
ip route delete default
# Установка шлюза по умолчанию
ip route add default via $DSL_GATEWAY
# Настройка SNAT
iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -j SNAT --to-source $DSL_IP
...[CUT]...
# Кому разрешать инет
iptables -A inet -s 192.168.1.222 -j ACCEPT
iptables -A inet -d 192.168.1.222 -j ACCEPT
iptables -A inet -s 192.168.1.2 -d mail.ru -j ACCEPT
iptables -A inet -d 192.168.1.2 -s mail.ru -j ACCEPT
...[CUT]...
iptables -A inet -j DROP
# И добавим правило для инета
iptables -A FORWARD -j inet
»
- Для комментирования войдите или зарегистрируйтесь
конечно
конечно криво
самое кривое - это удаление и прописывание шлюза по умолчанию :) зачем это надо ? если можно в net.eth0 прописать...
и еще. Зачем нужна цепочка, если она используется всего один раз ? это все равно что разбивать программу на процедуры совершенно без необходимости.
я так понимаю, задумка с двумя правилами в форварде - чтобы пакеты соединения в обе стороны бегали ? для этого есть state.
вот мой iptables-conf на одном из серваков
его легко переносить куда угодно, т.к. в нем даже ip-адреса нигде не фигурируют.
в целом можно легко понять как и что используется.
в общем случае - правила для пакетов уже установленных соединений:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
строка с OUTPUT в моем конфиге не нужна, т.к. политика для OUTPUT = accept.
ставишь правила на первые места после сброса, и после этого любое соединение разрешается одним правилом без траходрома. Кстати, в iptables-tutorial в примерах всё это описано, несмотря на то, что в остальном примеры там фиговые.
последний совет общего плана: при раздаче прав на какие-то ресурсы отдельным ипам или подсетям желательно проверять интерфейс, откуда пришел пакет.
Удаление и
Удаление и прописывание шлюза по умолчанию, потому что есть несколько выходов через разные интерфейсы в инет. Нужно в скрипте сразу маршрутизацию по умолчанию прописывать.
2 правила, да для пакетов в обе стороны... у тебя просто в твоем скрипте всей локалке форвард в инет разрешен, а мне нужно именно конретным ip, и некоторым еще и только до конкретных хостов. Нужно будет про state завтра почитать, кажется я понял как можно одним правилом делать используя state по твоему примеру.
Ну и отдельная цепочка просто на время теста, чтобы пока настраиваю мусора не собиралось.
Re: Удаление и
для этого есть /etc/conf.d/net !
тогда, в моем примере, вместо:
$I -A FORWARD -i $in_i -j ACCEPT
для данного случая, пишем:
$I -A FORWARD -i $in_i -s 192.168.1.222 -j ACCEPT
$I -A FORWARD -i $in_i -s 192.168.1.2 -d 194.67.57.26 -j ACCEPT
и так далее. Пакеты в обратную сторону будут разрешаться правилом, проверяющим состояние пакета (если он принадлежит установленному соединению, он будет разрешен).
кстати, не помню точно, но вроде ведь в iptables не работают хостнеймы ? проверял когда-то давно.. :)
PS. если часто стоит задача ограничивать доступ к сайтам, есть смысл поставить прокси.
Re: Удаление и
Я то ведь интерфейсы не опускаю/поднимаю. Мне нужно интерфейсы держать поднятыми, нужно только маршрутизацию по умолчанию менять.
Ясно, спасибо.
Сейчас работает, но у меня все-равно IPшники прописаны, это я сюда когда постил - исправил, чтобы понятнее было что за правило.
Не настолько много правил, чтобы ставить прокси. Там просто 1 машине открыть доступ только к 1 хосту, 2м машинам запретить всего 4 хоста.
Re: Удаление и
если нужно именно менять, то может это и имеет смысл. но в общем случае лучше один раз настроить iptables, а потом другим скриптом менять маршрутизацию в случае необходимости