Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: HOWTO: Iptables для новичков  (Прочитано 521695 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Bkmz

  • Участник
  • *
  • Сообщений: 212
  • Linux рулеZZZ....
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #180 : 10 Декабря 2008, 06:18:18 »
Всем доброго времени суток.
Есть шлюз на базе ubuntu server 8.04.1 настроен squid в режиме прозрачного через iptables
Интернет разрешен всем. Нужно найти способ довольно быстро изменять список тех кто блокирует. Если в squid прописывать ip клиента для запрещения, этот продолжает иметь доступ в нет...
Ведь к сквиду обращается сам сервер. Как можно реализовать запрет доступа через сквид? Или придется мутить в сторону iptables?
Скрипт для редактирования я сам напишу, но проблема, куда писать адреса....

Оффлайн pehser

  • Активист
  • *
  • Сообщений: 586
  • sidux 64bit + KDE4 svn
    • Просмотр профиля
    • Магазин електро и бытовой техники в николаеве
Re: HOWTO: Iptables для новичков
« Ответ #181 : 10 Декабря 2008, 13:24:39 »
а покажи свой acl и сами разрешения и запреты?

возможна у тебя местами перпутаны правила должно быть типа так

acl our_networks src 192.168.0.0/24 # твоя подсеть
acl bloc src "/file" #Фаил с ip которые банить

http_access deny bloc
http_access allow our_networks
« Последнее редактирование: 10 Декабря 2008, 13:31:48 от pehser »

Оффлайн Cleric

  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #182 : 10 Декабря 2008, 15:04:04 »
Доброго всем времени суток!
Помогите, пожалуйста, разобраться в слудующей ситуации:
В Лине уже освоился, но вот с iptables был незнаком, и по неопытности закрыл 80 порт (последствия понятны :D ) и вместе с ним 21, 23
Почитал маны, вроде лучше разобрался в iptables, попытался открыть сам:

sudo iptables -I OUTPUT -p tcp --dport 80 -j ACCEPT
(то же проделывал с 21 и 23 портами)

Правило вроде добавилось, но после перезагрузки все вернулось к изначальному.

Пробывал также:
sudo iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --sport 80 -j ACCEPT

-p udp пытался делать, вместо -I ставить -A...
Под конец сделал даже sudo iptables --flush и перезагрузился...
Итог: пока работаю в интернете на масдае... Торрент и все остальное - на убунте. Долго я так не протяну.
Вобщем чувствую себя очень глупым :) Пожалуйста, помогите!

В данный момент мои iptables выглядят так (firestarter поставил на всякий, но наверно он мне незачем):

(Нажмите, чтобы показать/скрыть)

Оффлайн dementiy

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #183 : 10 Декабря 2008, 15:29:22 »
Добрый день. Писал в Шлюз Интернета на базе Ubuntu-Server / Internet Connection Sharing + Squid но так и не ответил никто
Есть сервер с eth0 (192.168.2.1) внешним и eth1 (192.168.1.111) внутренними.
Завернул в IPtables на squid 3.0
iptables -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP
и
iptables -t nat -A PREROUTING -p tcp --dport 80 -i $LAN_IFACE -j REDIRECT --to-ports 3128
 После этого естественно перестал отвечать на запросы из локалки Apache.
Какое правило прописать в IPtables чтобы заставить Apache на 192.168.1.111 отзывался на 80 порту, но при этом сохранить работоспособность прокси (т.е. чтобы при обращении именно к 192.168.1.111:80 перехватывал apache, а squid брал положенное)???.
« Последнее редактирование: 10 Декабря 2008, 15:33:28 от dementiy »

Оффлайн dementiy

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #184 : 10 Декабря 2008, 15:45:26 »
Доброго всем времени суток!
Помогите, пожалуйста, разобраться в слудующей ситуации:
В Лине уже освоился, но вот с iptables был незнаком, и по неопытности закрыл 80 порт (последствия понятны :D ) и вместе с ним 21, 23
Почитал маны, вроде лучше разобрался в iptables, попытался открыть сам:

sudo iptables -I OUTPUT -p tcp --dport 80 -j ACCEPT
(то же проделывал с 21 и 23 портами)

Правило вроде добавилось, но после перезагрузки все вернулось к изначальному.

Пробывал также:
sudo iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --sport 80 -j ACCEPT

-p udp пытался делать, вместо -I ставить -A...
Под конец сделал даже sudo iptables --flush и перезагрузился...
Итог: пока работаю в интернете на масдае... Торрент и все остальное - на убунте. Долго я так не протяну.
Вобщем чувствую себя очень глупым :) Пожалуйста, помогите!


IPTables сбрасывает конфигурацию при перезагрузке. Курить тут https://help.ubuntu.com/community/IptablesHowTo

Оффлайн Heroin

  • Любитель
  • *
  • Сообщений: 62
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #185 : 11 Декабря 2008, 10:24:01 »
$IPTABLES -t nat -A PREROUTING -p UDP -i eth0 -d $INET_IP --dport 1194 -j DNAT --to-destination $ORA_IP:1194

Возможно тут ошибка...

Насчёт 3389 вообще никаких мнений нет... ИП неизвестно, и ориентироваться тяжело...

Кроме того, никто здесь искать ошибку за тебя не будет. Посоветовать могут. Но скрипты править - самим.
Могу посоветовать для вылавливания капризной строки юзать печатные пометки (echo "пометка 1")
Например:
$IPTABLES -t nat -A PREROUTING -p TCP -i eth0 -s $COMSERV -d $INET_IP --dport 10000 -j DNAT --to-destination $ORA_IP:1526
$IPTABLES -t nat -A PREROUTING -p TCP -i eth0 -s $COMSERV -d $INET_IP --dport 1521 -j DNAT --to-destination $ORA_IP:1521
$IPTABLES -t nat -A PREROUTING -p TCP -i eth0 -s $COMSERV -d $INET_IP --dport 137 -j DNAT --to-destination $ORA_IP:137
$IPTABLES -t nat -A PREROUTING -p TCP -i eth0 -s $COMSERV -d $INET_IP --dport 138 -j DNAT --to-destination $ORA_IP:138
echo "Проверяю отсюда..."
$IPTABLES -t nat -A PREROUTING -p TCP -i eth0 -s $COMSERV -d $INET_IP --dport 139 -j DNAT --to-destination $ORA_IP:139
$IPTABLES -t nat -A PREROUTING -p TCP -i eth0 -s $MEZHD -d $INET_IP --dport 1526 -j DNAT --to-destination $ORA_IP:1526
echo "... и сюда"
$IPTABLES -t nat -A PREROUTING -p TCP -i eth0 -s $MEZHD -d $INET_IP --dport 1521 -j DNAT --to-destination $ORA_IP:1521
$IPTABLES -t nat -A PREROUTING -p TCP -i eth0 -s $MEZHD -d $INET_IP --dport 137 -j DNAT --to-destination $ORA_IP:137

При загрузке скрипта будет видно, ошибка до-, после-, или между метками.
я сделал так
RDP_PORT="3389"
везде в правилах прописал $RDP_PORT
но при перезапуске он так и ругается на 3389

так же ругается на LAN_IP="192.168.1.3"
пишет бед аргумет

Оффлайн Cleric

  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #186 : 11 Декабря 2008, 19:20:35 »
Помогите, пожалуйста!
Не окрываются никакие соединения через 80 порт, т.е. все что связано с http : интернет, шары в samba (торрент и другие пашут в штатном режиме)
Сначала накосячил в iptables, сейчас сбросил, теперь это в таком виде:

# Generated by iptables-save v1.4.1.1 on Thu Dec 11 19:04:27 2008
*nat
:PREROUTING ACCEPT [26:1742]
:POSTROUTING ACCEPT [141:10153]
:OUTPUT ACCEPT [141:10153]
-A POSTROUTING -s 192.168.0.0/24 -o eth2 -j MASQUERADE
-A POSTROUTING -s 192.168.2.0/24 -o eth2 -j MASQUERADE
COMMIT
# Completed on Thu Dec 11 19:04:27 2008
# Generated by iptables-save v1.4.1.1 on Thu Dec 11 19:04:27 2008
*mangle
:PREROUTING ACCEPT [1283:138570]
:INPUT ACCEPT [1283:138570]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1020:136825]
:POSTROUTING ACCEPT [1107:150205]
COMMIT
# Completed on Thu Dec 11 19:04:27 2008
# Generated by iptables-save v1.4.1.1 on Thu Dec 11 19:04:27 2008
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -s 127.0.0.0/8 -i ! lo -j LOG
-A INPUT -s 127.0.0.0/8 -i ! lo -j DROP
-A INPUT -d 255.255.255.255/32 -i eth0 -j ACCEPT
-A INPUT -d 255.255.255.255/32 -i eth1 -j ACCEPT
-A INPUT -s 192.168.0.0/24 -i eth0 -j ACCEPT
-A INPUT -s 192.168.2.0/24 -i eth1 -j ACCEPT
-A INPUT -d 224.0.0.0/4 -i eth0 -p ! tcp -j ACCEPT
-A INPUT -d 224.0.0.0/4 -i eth1 -p ! tcp -j ACCEPT
-A INPUT -s 192.168.0.0/24 -i eth2 -j LOG
-A INPUT -s 192.168.0.0/24 -i eth2 -j DROP
-A INPUT -s 192.168.2.0/24 -i eth2 -j LOG
-A INPUT -s 192.168.2.0/24 -i eth2 -j DROP
-A INPUT -d 255.255.255.255/32 -i eth2 -j ACCEPT
-A INPUT -d 192.168.1.2/32 -i eth2 -j ACCEPT
-A INPUT -d 192.168.1.255/32 -i eth2 -j ACCEPT
-A INPUT -d 224.0.0.1/32 -j DROP
-A INPUT -j LOG
-A INPUT -j DROP
-A FORWARD -s 192.168.2.0/24 -d 192.168.0.0/24 -j ACCEPT
-A FORWARD -s 192.168.0.0/24 -d 192.168.2.0/24 -j ACCEPT
-A FORWARD -s 192.168.0.0/24 -i eth0 -o eth2 -j ACCEPT
-A FORWARD -s 192.168.2.0/24 -i eth1 -o eth2 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -d 192.168.0.0/24 -o eth2 -j LOG
-A FORWARD -d 192.168.0.0/24 -o eth2 -j DROP
-A FORWARD -d 192.168.2.0/24 -o eth2 -j LOG
-A FORWARD -d 192.168.2.0/24 -o eth2 -j DROP
-A FORWARD -d 224.0.0.1/32 -j DROP
-A FORWARD -j LOG
-A FORWARD -j DROP
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -d 255.255.255.255/32 -o eth0 -j ACCEPT
-A OUTPUT -d 255.255.255.255/32 -o eth1 -j ACCEPT
-A OUTPUT -d 192.168.0.0/24 -o eth0 -j ACCEPT
-A OUTPUT -d 192.168.2.0/24 -o eth1 -j ACCEPT
-A OUTPUT -d 224.0.0.0/4 -o eth0 -p ! tcp -j ACCEPT
-A OUTPUT -d 224.0.0.0/4 -o eth1 -p ! tcp -j ACCEPT
-A OUTPUT -d 192.168.0.0/24 -o eth2 -j LOG
-A OUTPUT -d 192.168.0.0/24 -o eth2 -j DROP
-A OUTPUT -d 192.168.2.0/24 -o eth2 -j LOG
-A OUTPUT -d 192.168.2.0/24 -o eth2 -j DROP
-A OUTPUT -d 255.255.255.255/32 -o eth2 -j ACCEPT
-A OUTPUT -s 192.168.1.2/32 -o eth2 -j ACCEPT
-A OUTPUT -s 192.168.1.255/32 -o eth2 -j ACCEPT
-A OUTPUT -d 224.0.0.1/32 -j DROP
-A OUTPUT -j LOG
-A OUTPUT -j DROP
COMMIT
# Completed on Thu Dec 11 19:04:27 2008


eth0 - подключен к WiFi точке доступа, ip компа 192.168.0.51
eth1 - через этот интерфейс поступает интернет, ip компа 192.168.1.2 (ADSL модем настроен в режим роутера)
eth2 -  Ethernet соединение с другим компом, ip компа 192.168.2.1

Помогите, пожалуйста, разобраться! Если дело не в iptables, то в чем еще может быть?

Оффлайн InkVisitor

  • Участник
  • *
  • Сообщений: 190
  • Nikopol, Ukraine
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #187 : 11 Декабря 2008, 21:19:03 »
я сделал так
RDP_PORT="3389"
везде в правилах прописал $RDP_PORT
но при перезапуске он так и ругается на 3389

А какая разница? Аргументом используется не переменная ($RDP_PORT), а порт (3389). Такой подход и не мог дать никакого результата.

так же ругается на LAN_IP="192.168.1.3"
пишет бед аргумет

Вот я и писал про использования echo для вылавливания этого аргумента.

Оффлайн Bkmz

  • Участник
  • *
  • Сообщений: 212
  • Linux рулеZZZ....
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #188 : 15 Декабря 2008, 04:36:55 »
а покажи свой acl и сами разрешения и запреты?

возможна у тебя местами перпутаны правила должно быть типа так

acl our_networks src 192.168.0.0/24 # твоя подсеть
acl bloc src "/file" #Фаил с ip которые банить

http_access deny bloc
http_access allow our_networks

acl EEEpc src 10.24.163.165
acl localnet src 10.24.163.176
acl local src 10.24.163.166
acl network src 192.168.0.0/24
http_access allow localnet
http_access allow EEEpc
http_access allow local
http_access allow network

Оффлайн dementiy

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #189 : 15 Декабря 2008, 11:27:17 »
Добрый день. Писал в Шлюз Интернета на базе Ubuntu-Server / Internet Connection Sharing + Squid но так и не ответил никто
Есть сервер с eth0 (192.168.2.1) внешним и eth1 (192.168.1.111) внутренними.
Завернул в IPtables на squid 3.0
iptables -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP
и
iptables -t nat -A PREROUTING -p tcp --dport 80 -i $LAN_IFACE -j REDIRECT --to-ports 3128
 После этого естественно перестал отвечать на запросы из локалки Apache.
Какое правило прописать в IPtables чтобы заставить Apache на 192.168.1.111 отзывался на 80 порту, но при этом сохранить работоспособность прокси (т.е. чтобы при обращении именно к 192.168.1.111:80 перехватывал apache, а squid брал положенное)???.
Неужели никто не подскажет... Плиз....  :-\

Оффлайн MadKox

  • Активист
  • *
  • Сообщений: 441
  • =)
    • Просмотр профиля
    • Моя страница на Launchpad
Re: HOWTO: Iptables для новичков
« Ответ #190 : 17 Декабря 2008, 17:39:20 »
Вот для примера мой кусочек скрипта:

# 4.2 Таблица nat.
#
# 4.2.4 Цепочка PREROUTING.
#
# Принимаем те http пакеты, которые всегда разрешены и идут
# мимо сквида до того, как они уйдут в сквид.
$IPTABLES -t nat -A PREROUTING -i $LAN_IFACE -d $IP_FTP -j ACCEPT
$IPTABLES -t nat -A PREROUTING -i $LAN_IFACE -d $IP_BANK_1 -j ACCEPT
$IPTABLES -t nat -A PREROUTING -i $LAN_IFACE -d $IP_BANK_2 -j ACCEPT
$IPTABLES -t nat -A PREROUTING -i $LAN_IFACE -d $IP_BANK_2_2 -j ACCEPT
$IPTABLES -t nat -A PREROUTING -i $LAN_IFACE -d $IP_BANK_3_1 -j ACCEPT
$IPTABLES -t nat -A PREROUTING -i $LAN_IFACE -d $IP_BANK_3_2 -j ACCEPT
$IPTABLES -t nat -A PREROUTING -i $LAN_IFACE -d $IP_BANK_4_1 -j ACCEPT
$IPTABLES -t nat -A PREROUTING -i $LAN_IFACE -d $LAN_IP -j ACCEPT # Т.е. пакеты из сети на ЭТУ машину.
$IPTABLES -t nat -A PREROUTING -i $LAN_IFACE -d $IP_MAIL -j ACCEPT
$IPTABLES -t nat -A PREROUTING -i $LAN_IFACE -d $IP_MAIL1 -j ACCEPT
# Принимаем HTTPS пакеты до того, как они уйдут в сквид.
$IPTABLES -t nat -A PREROUTING -i $LAN_IFACE -p tcp --dport $HTTPS -j ACCEPT
# Перенаправляем все остальные пакеты на сквид.
$IPTABLES -t nat -A PREROUTING -i $LAN_IFACE -p tcp -j REDIRECT --to-ports $SQUID
Обрати внимание на
$IPTABLES -t nat -A PREROUTING -i $LAN_IFACE -d $LAN_IP -j ACCEPT # Т.е. пакеты из сети на ЭТУ машину.
Без этого правила будет как у тебя - сквид будет перехватывать пакеты.
Homo homini admini est...

Оффлайн dementiy

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #191 : 18 Декабря 2008, 15:22:29 »

Обрати внимание на
$IPTABLES -t nat -A PREROUTING -i $LAN_IFACE -d $LAN_IP -j ACCEPT # Т.е. пакеты из сети на ЭТУ машину.
Без этого правила будет как у тебя - сквид будет перехватывать пакеты.

Премногоблагодарен. Всё завелось. Спасибище огромное.
Хм...  Тока чото перестали https загружатся. Подскажите плиз.  :-\
УПС... И здесь вкурил... Ещё раз спасибо ------------
« Последнее редактирование: 18 Декабря 2008, 16:30:15 от dementiy »

Оффлайн MadKox

  • Активист
  • *
  • Сообщений: 441
  • =)
    • Просмотр профиля
    • Моя страница на Launchpad
Re: HOWTO: Iptables для новичков
« Ответ #192 : 18 Декабря 2008, 16:32:47 »
Ну а в остальных таблицах какие правила? У меня, например в цепочке FORWARD:
$IPTABLES -A FORWARD -i $LAN_IFACE -p tcp --dport $HTTPS -j ACCEPT
Почти год назад я выкладывал отчет, о том, как настраивал свой шлюз.
Посмотри там, может быть, чего полезного найдешь.
« Последнее редактирование: 18 Декабря 2008, 16:49:56 от MadKox »
Homo homini admini est...

Оффлайн dementiy

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #193 : 19 Декабря 2008, 10:11:31 »

Почти год назад я выкладывал отчет, о том, как настраивал свой шлюз.
Посмотри там, может быть, чего полезного найдешь.
Извиняюсь за глупый вопрос. Куда вписать скриптик для автоматического конфигурирования iptables при загрузке???.

Оффлайн pehser

  • Активист
  • *
  • Сообщений: 586
  • sidux 64bit + KDE4 svn
    • Просмотр профиля
    • Магазин електро и бытовой техники в николаеве
Re: HOWTO: Iptables для новичков
« Ответ #194 : 19 Декабря 2008, 16:11:55 »

Почти год назад я выкладывал отчет, о том, как настраивал свой шлюз.
Посмотри там, может быть, чего полезного найдешь.
Извиняюсь за глупый вопрос. Куда вписать скриптик для автоматического конфигурирования iptables при загрузке???.

например в /etc/rc.local

 

Страница сгенерирована за 0.022 секунд. Запросов: 21.