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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

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

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

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13761
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #945 : 03 Ноября 2010, 08:47:46 »
Да, есть... Извиняюсь. А интернет ползёт через tun? Может правило "-A FORWARD -o tun+ -j ACCEPT" дырочку для таких действий оставило?
Если покажешь результирующую таблицу правил - будет наглядней
sudo iptables-save

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #946 : 06 Ноября 2010, 22:03:03 »
Катит. Просто ты забываешь, что это два действия, соответственно нужно два правила.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн MAKAPOH

  • Любитель
  • *
  • Сообщений: 74
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #947 : 06 Ноября 2010, 22:06:41 »
Катит. Просто ты забываешь, что это два действия, соответственно нужно два правила.

да да )) осенило, спс :)

Оффлайн Macht59

  • Любитель
  • *
  • Сообщений: 57
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #948 : 08 Ноября 2010, 00:29:38 »
Здравствуйте.

Решил не заводить отдельную тему и поделиться своим горем тут  :)
Нужно сделать из моего компьютера шлюз. Схема следующая:

eth0------>pptp(vpn)------>Internet
eth1------>LAN

Надеюсь понятно :)
Дальше в терминал пишу такое:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables --append FORWARD --in-interface eth1 -j ACCEPT
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE

На клиентской машине (из eth1) в шлюз пишу свой локальный IP, DNS из cat /etc/ppp/resolv.conf
nameserver 195.24.128.65
nameserver 195.24.128.164

Не могу понять где ошибка.
Ubuntu 10.10 | AMD Athlon II X3 3100+ | 4 Gb RAM | ATI 5770

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #949 : 08 Ноября 2010, 00:31:40 »
Забыл ещё один маскарад.
iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Macht59

  • Любитель
  • *
  • Сообщений: 57
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #950 : 08 Ноября 2010, 00:36:19 »
Забыл ещё один маскарад.
iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
:D :D :D :D :D :D :D :D :D :D :D
СПАСИБО!!!!!
Нет слов просто как я рад)))
Ubuntu 10.10 | AMD Athlon II X3 3100+ | 4 Gb RAM | ATI 5770

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #951 : 08 Ноября 2010, 00:37:25 »
У тебя инет на ppp0, а маскарадил ты только локалку (eth0).
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Macht59

  • Любитель
  • *
  • Сообщений: 57
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #952 : 08 Ноября 2010, 00:39:21 »
Теперь ясно  :)

Пользователь решил продолжить мысль 08 Ноября 2010, 01:27:53:
И вот еще вопросик:

Как бы проконтролировать доступ только с определенных IP адресов?

На пример:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
Уже дает полный доступ ко мне как ко шлюзу, даже без добавления строки iptables --append FORWARD --in-interface eth1 -j ACCEPTПробовал
iptables --append FORWARD --in-interface eth1 -j DROP
iptables --append FORWARD --in-interface eth1 -s 192.168.0.2 -j ACCEPT
- не помогло :(
« Последнее редактирование: 08 Ноября 2010, 01:27:53 от Macht59 »
Ubuntu 10.10 | AMD Athlon II X3 3100+ | 4 Gb RAM | ATI 5770

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #953 : 08 Ноября 2010, 01:39:11 »
-P FORWARD DROP
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Macht59

  • Любитель
  • *
  • Сообщений: 57
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #954 : 08 Ноября 2010, 01:57:15 »
На сколько я понял это должно выглядеть так...
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables -P FORWARD DROP
iptables --append FORWARD --in-interface eth1 -s 192.168.0.2 -j ACCEPT

не помогло :(
Ubuntu 10.10 | AMD Athlon II X3 3100+ | 4 Gb RAM | ATI 5770

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #955 : 08 Ноября 2010, 02:38:54 »
iptables-save
?
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13761
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #956 : 08 Ноября 2010, 08:43:34 »
AnrDaemon, как бы намекает, что надо смотреть все действующие правила, а не скрипты их загружающие.
Могут возникнуть "дыры" из-за неправильной их последовательности или остатков от прошлых экспериментов.
Первое решается дефолтно-запрещающнй политикой: сначала запрещаешь все форварды и инпуты правилами "-P FORWARD DROP" и "-P INPUT DROP", а потом разрешается необходимое
Второе (ошмётки): лечится очисткой цепочек командой -F

Оффлайн Macht59

  • Любитель
  • *
  • Сообщений: 57
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #957 : 08 Ноября 2010, 11:32:35 »
AnrDaemon, как бы намекает, что надо смотреть все действующие правила, а не скрипты их загружающие.
Могут возникнуть "дыры" из-за неправильной их последовательности или остатков от прошлых экспериментов.
Первое решается дефолтно-запрещающнй политикой: сначала запрещаешь все форварды и инпуты правилами "-P FORWARD DROP" и "-P INPUT DROP", а потом разрешается необходимое
Второе (ошмётки): лечится очисткой цепочек командой -F

Перезагрузился (все настройки iptables упали). Дальше в терминал пишу:
root@macht:~# iptables --flush  OUTPUT
root@macht:~# iptables --flush  INPUT
root@macht:~# iptables --flush  FORWARD
Признаться, меня, не смотря на мои не глубокие познания в данной области, смущает строка:
-P INPUT DROPПосле ввода вышеуказаной перестали грузиться сайты в браузере у меня на мешине (сервер). По этому я ее убрал. Дальше:
root@macht:~# iptables --flush  INPUT
iptables -P FORWARD DROP
iptables --append FORWARD --in-interface eth1 -s 192.168.0.2 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
И не работает... Почему?
Если поставить iptables -P FORWARD ACCEPTинтернет моментально появляется. Возможно что-то не так со строкой iptables --append FORWARD --in-interface eth1 -s 192.168.0.2 -j ACCEPT

Пользователь решил продолжить мысль 08 Ноября 2010, 11:37:32:
iptables-save
?

iptables-save
# Generated by iptables-save v1.4.4 on Mon Nov  8 10:35:53 2010
*nat
:PREROUTING ACCEPT [2186:198472]
:OUTPUT ACCEPT [4334:252908]
:POSTROUTING ACCEPT [23:1579]
-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT
# Completed on Mon Nov  8 10:35:53 2010
# Generated by iptables-save v1.4.4 on Mon Nov  8 10:35:53 2010
*filter
:INPUT ACCEPT [37891:15035440]
:FORWARD DROP [2:135]
:OUTPUT ACCEPT [42530:10067545]
-A FORWARD -s 192.168.58.39/32 -i eth1 -j ACCEPT
COMMIT
# Completed on Mon Nov  8 10:35:53 2010

PS. Вместо 192.168.0.2 тут 192.168.58.39.
« Последнее редактирование: 08 Ноября 2010, 11:37:32 от Macht59 »
Ubuntu 10.10 | AMD Athlon II X3 3100+ | 4 Gb RAM | ATI 5770

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #958 : 08 Ноября 2010, 12:07:55 »
Так и обратные пакеты надо пропускать тоже. Тут очень хорошо помогает conntrack, который отслеживает установленные коннекты:
iptables -P FORWARD DROP
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

также и к INPUT это очень хорошо применимо:
iptables -P INPUT DROP
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #959 : 08 Ноября 2010, 12:48:00 »
Уже давал и ещё раз дам ссылку
https://forum.ubuntu.ru/index.php?topic=99586.0
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

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