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


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

Автор Тема: помогите настроить iptables  (Прочитано 974 раз)

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

Оффлайн [*_*]pivo

  • Автор темы
  • Участник
  • *
  • Сообщений: 162
  • Сдесь должна быть подпись под аватаром...
    • Просмотр профиля
    • xstrike.ru
помогите настроить iptables
« : 13 Апрель 2011, 14:35:41 »
буду благодарен если поможете мне настроить фаерволл.
вот так выглядит сеть http://xees.ru/1/net.jpg
мне нужно дропать все пакеты приходящие на любые порты сервера кроме 21, 22, 80, 27005
и нужно разрешить прослушивать порт только для локальных интерфейсов eth2 u eth5 5901
также нужно, чтоб с сервера можно было выходить самому в инет (к примеру, чтоб мой сайт мог обращатся к серверу вконтакте, для отображения комментариев)
и также чтоб он мог обращатся изнутри сам к себе (с этим впринципе я разобрался) ло интерфейс (для того чтоб игровой сервер мог обращаться к базе данных mysql)
ну и собственно, чтоб локальные компы выходили в инет, и устанавливали любые соединения, ну и значит, надо разрешить входить тем пакетам, соединения которых были установленны из локалки или с сервера.
на данный момент я все почти сделал как надо, все вроде и работает, но я думаю что я сделал это очень безграмотно, а надо както оптимизировать.
вот что у меня получилось:

#!/bin/sh
IPTABLES="/sbin/iptables"
# удалить все действующие правила
iptables -F
iptables -X
# Правила по умолчанию
iptables -P INPUT DROP #Запрещаем все входящие!
iptables -P OUTPUT DROP #Разрешаем все исходящие!
iptables -P FORWARD DROP #Запрещаем все проходящие (транзит)!
#разрешаем серверу обращаться самому к себе
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#разрешаем выходить в инет с сервера
iptables -A OUTPUT -o eth3 -j ACCEPT
# Открываем порты
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 27005 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 5901 -j ACCEPT #нужно открыть только для eth2 u eth5
#Разрешим входящие соединения на маршрутизатор с внутренних сетей (для управления)
iptables -A INPUT -i eth5 --source 192.168.1.0/24 --match state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth2 --source 192.168.0.0/24 --match state --state NEW,ESTABLISHED -j ACCEPT
#Разрешим маршрутизатору отвечать компьютерам во внутренних сетях:
iptables -A OUTPUT -o eth5 --match state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth2 --match state --state NEW,ESTABLISHED -j ACCEPT
#Разрешим перенаправление пакетов из внутренних сетей во внешнюю для установки соединений и установленных соединений:
iptables -A FORWARD -i eth5 --source 192.168.1.0/24 --destination 0.0.0.0/0 --match state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth2 --source 192.168.0.0/24 --destination 0.0.0.0/0 --match state --state NEW,ESTABLISHED -j ACCEPT
#Разрешим перенаправление пакетов из интернета во внутреннюю сеть только для установленных соединений:
iptables -A FORWARD -i eth3 --destination 192.168.1.0/24 --match state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth3 --destination 192.168.0.0/24 --match state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth3 --destination 93.100.174.198 --match state --state ESTABLISHED -j ACCEPT
# Masquerade.
iptables -t nat -A POSTROUTING -o eth3 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

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

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
Re: помогите настроить iptables
« Ответ #1 : 13 Апрель 2011, 15:07:23 »
#!/bin/sh
# удалить все действующие правила
iptables -F
iptables -X
# Правила по умолчанию
iptables -P INPUT DROP #Запрещаем все входящие!
iptables -P OUTPUT ACCEPT #Разрешаем все исходящие!
iptables -P FORWARD DROP #Запрещаем все проходящие (транзит)!
#разрешаем серверу обращаться самому к себе
iptables -A INPUT -i lo -j ACCEPT
# Открываем порты
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 27005 -j ACCEPT
iptables -A INPUT -ieth2 -p tcp -m tcp --dport 5901 -j ACCEPT #нужно открыть только для eth2 u eth5
iptables -A INPUT -ieth5 -p tcp -m tcp --dport 5901 -j ACCEPT
#Разрешим перенаправление пакетов из внутренних сетей во внешнюю для установки соединений и установленных соединений:
iptables -A FORWARD -i eth5 -o eth3 -j ACCEPT
iptables -A FORWARD -i eth2 -o eth3 -j ACCEPT
#Разрешим перенаправление пакетов из интернета во внутреннюю сеть только для установленных соединений:
iptables -A FORWARD -i eth3 -o eth2 --match state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth3 -o eth5 --match state --state RELATED,ESTABLISHED -j ACCEPT
# Masquerade.
iptables -t nat -A POSTROUTING -o eth3 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
Шаг за шагом можно достичь цели.

Оффлайн [*_*]pivo

  • Автор темы
  • Участник
  • *
  • Сообщений: 162
  • Сдесь должна быть подпись под аватаром...
    • Просмотр профиля
    • xstrike.ru
Re: помогите настроить iptables
« Ответ #2 : 13 Апрель 2011, 15:11:17 »
спасибо  :)

Пользователь решил продолжить мысль 13 Апрель 2011, 15:47:00:
но гдето ошибка, с ноута немогу законнектиться к серверу по ssh и по 5901 и инет не работает :(
« Последнее редактирование: 13 Апрель 2011, 15:47:00 от [*_*]pivo »
Сдесь должна быть какаято подпись...

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13753
    • Просмотр профиля
Re: помогите настроить iptables
« Ответ #3 : 13 Апрель 2011, 16:43:06 »
Цитировать
iptables -A INPUT -i_eth2 -p tcp -m tcp --dport 5901 -j ACCEPT #нужно открыть только для eth2 u eth5
iptables -A INPUT -i_eth5 -p tcp -m tcp --dport 5901 -j ACCEPT
тут пробелы упущены

А вообще, тут уже писали, что здесь нет "онлайн интерпретаторов командной строки" ©
Показывайте действующие правила
sudo iptables-save
Принимаю благодарности в WMR и WMZ на кошельки:
R158160676909 и Z313280060764

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
Re: помогите настроить iptables
« Ответ #4 : 13 Апрель 2011, 16:47:34 »
И правда, косячок.
Впрочем он должен был на это матернуться.
И ТС бы это увидел, но вот виш как оно ...
Шаг за шагом можно достичь цели.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13753
    • Просмотр профиля
Re: помогите настроить iptables
« Ответ #5 : 13 Апрель 2011, 16:59:28 »
Практика показывает, что начинающие видють кучу импортных слов и букв и считают, что так и должно быть. ;) А то и вообще проверяют загрузку правил рестартом системы.
Принимаю благодарности в WMR и WMZ на кошельки:
R158160676909 и Z313280060764

Оффлайн [*_*]pivo

  • Автор темы
  • Участник
  • *
  • Сообщений: 162
  • Сдесь должна быть подпись под аватаром...
    • Просмотр профиля
    • xstrike.ru
Re: помогите настроить iptables
« Ответ #6 : 13 Апрель 2011, 18:34:56 »
сори, да я бегло посмотрел закопипастил прям так, потом уже увидел,
а дело в том, что я сам какраз с ноутбука ковыряюсь, через vnc, поэтому никакого мата связь просто рвется и все :)
сервер дома но на нем нет монитора, в случае проблемы приходится ребутить.
успел наковыряться вот только изменил кое что,
разрешил принимать все входящие с локальных интерфейсов, но есть проблема

#!/bin/sh
# удалить все действующие правила
iptables -F
iptables -X
# Правила по умолчанию
iptables -P INPUT DROP #Запрещаем все входящие!
iptables -P OUTPUT ACCEPT #Разрешаем все исходящие!
iptables -P FORWARD DROP #Запрещаем все проходящие (транзит)!
iptables -A INPUT -i lo -j ACCEPT
# Открываем порты
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 27005 -j ACCEPT
#Разрешим входящие соединения на маршрутизатор с внутренней сети (для управления)
iptables -A INPUT -i eth5 -j ACCEPT
iptables -A INPUT -i eth2 -j ACCEPT
#Разрешим перенаправление пакетов из внутренней сети во внешнюю для установки соединений и установленных соединений:
iptables -A FORWARD -i eth5 -j ACCEPT
iptables -A FORWARD -i eth2 -j ACCEPT
#Разрешим перенаправление пакетов из интернета во внутреннюю сеть только для установленных соединений:
iptables -A FORWARD -i eth3 -o eth5 --match state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth3 -o eth2 --match state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth3 --destination 93.100.174.198 --match state --state ESTABLISHED -j ACCEPT
# Masquerade.
iptables -t nat -A POSTROUTING -o eth3 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward


без этой строки нет интернета на ноуте и компе
iptables -A INPUT -i eth3 --destination 93.100.174.198 --match state --state ESTABLISHED -j ACCEPT
чето у меня мозг уже пухнет :) что делать? и почему так?








Пользователь решил продолжить мысль 13 Апрель 2011, 18:37:04:
вот пожалуйсто
root@generalserver:/etc# sudo iptables-save
# Generated by iptables-save v1.4.4 on Wed Apr 13 18:35:35 2011
*nat
:PREROUTING ACCEPT [4802:313552]
:POSTROUTING ACCEPT [51:5024]
:OUTPUT ACCEPT [873:60372]
-A POSTROUTING -o eth3 -j MASQUERADE
-A POSTROUTING -o eth3 -j MASQUERADE
-A POSTROUTING -o eth3 -j MASQUERADE
-A POSTROUTING -o eth3 -j MASQUERADE
COMMIT
# Completed on Wed Apr 13 18:35:35 2011
# Generated by iptables-save v1.4.4 on Wed Apr 13 18:35:35 2011
*filter
:INPUT DROP [465:37720]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [1509:470405]
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 27005 -j ACCEPT
-A INPUT -i eth5 -j ACCEPT
-A INPUT -i eth2 -j ACCEPT
-A INPUT -d 93.100.174.198/32 -i eth3 -m state --state ESTABLISHED -j ACCEPT
-A FORWARD -i eth5 -j ACCEPT
-A FORWARD -i eth2 -j ACCEPT
-A FORWARD -i eth3 -o eth5 -m state --state ESTABLISHED -j ACCEPT
-A FORWARD -i eth3 -o eth2 -m state --state ESTABLISHED -j ACCEPT
COMMIT
# Completed on Wed Apr 13 18:35:35 2011

Пользователь решил продолжить мысль 13 Апрель 2011, 18:43:05:
при таком раскладе вродебы все работает, но помоему правила кривые, так ли это?
« Последнее редактирование: 13 Апрель 2011, 18:43:05 от [*_*]pivo »
Сдесь должна быть какаято подпись...

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
Re: помогите настроить iptables
« Ответ #7 : 13 Апрель 2011, 18:51:48 »
не путайте теплое с мягким.
INPUT это входящие к хосту, тобишь шлюзу, а проходящие мимо - это forward.
И вы меня не читаете видимо, RELATED где?
Шаг за шагом можно достичь цели.

Оффлайн [*_*]pivo

  • Автор темы
  • Участник
  • *
  • Сообщений: 162
  • Сдесь должна быть подпись под аватаром...
    • Просмотр профиля
    • xstrike.ru
Re: помогите настроить iptables
« Ответ #8 : 13 Апрель 2011, 18:53:53 »
а простите, опять неузрел, да дело в том, что я пока незаметил ошибку, свой старый конфиг к такому виду привел, и при сравнении неуглядел   ???

Пользователь решил продолжить мысль 13 Апрель 2011, 18:57:45:
исправил, но всеравно инета нет  :-[

Пользователь решил продолжить мысль 13 Апрель 2011, 19:02:49:
и при этом также неработает инет на самом серве  :-[ :-\
« Последнее редактирование: 13 Апрель 2011, 19:02:49 от [*_*]pivo »
Сдесь должна быть какаято подпись...

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
Re: помогите настроить iptables
« Ответ #9 : 13 Апрель 2011, 19:29:46 »
По прошлому сэйву у вас 4 раза маскарадинг включен - это раз
Днс кто будет открывать? Это два.

И делайте в скрипте не просто iptables -F, а

iptables -F
iptables -F FORWARD
iptables -F INPUT
iptables -F OUTPUT
iptables -F -t nat

А то у вас не все правила сбрасываются.
Шаг за шагом можно достичь цели.

Гарри Кашпировский

  • Гость
Re: помогите настроить iptables
« Ответ #10 : 13 Апрель 2011, 19:36:45 »
кто подскажет, какие здесь косяки и как оптимизировать?
Я бы все проопимизировал. :)
                       Инет
                           |
                        eth3
                      Шлюз
             br0 (eth2 + eth5)
               /                     \
          Комп               Ноут
iptables -t nat -A POSTROUTING -o eth3 -j SNAT --to-source $WAN_IP
iptables -P FORWARD DROP
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate NEW -i br0 -j ACCEPT
ТС скажите, зачем закрывать то, что не открыто?

Оффлайн [*_*]pivo

  • Автор темы
  • Участник
  • *
  • Сообщений: 162
  • Сдесь должна быть подпись под аватаром...
    • Просмотр профиля
    • xstrike.ru
Re: помогите настроить iptables
« Ответ #11 : 13 Апрель 2011, 21:13:49 »
ок сделал, сейчас все выглядит так, но инет неработает если нерасскоментить ту строку, в чем может быть дело?
а да про днс поясните пожалуйста как открыть? что интересно все сайты неработает, даже мой, а форум работает :)


#!/bin/sh
# удалить все действующие правила
iptables -F
iptables -F FORWARD
iptables -F INPUT
iptables -F OUTPUT
iptables -F -t nat
iptables -X
# Правила по умолчанию
iptables -P INPUT DROP #Запрещаем все входящие!
iptables -P OUTPUT ACCEPT #Разрешаем все исходящие!
iptables -P FORWARD DROP #Запрещаем все проходящие (транзит)!
iptables -A INPUT -i lo -j ACCEPT
# Открываем порты
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 27005 -j ACCEPT
#Разрешим входящие соединения на маршрутизатор с внутренней сети (для управления)
iptables -A INPUT -i eth5 -j ACCEPT
iptables -A INPUT -i eth2 -j ACCEPT
#Разрешим перенаправление пакетов из внутренней сети во внешнюю для установки соединений и установленных соединений:
iptables -A FORWARD -i eth5 -j ACCEPT # с указанным интерфейсом назначения или без него разницы никакой
iptables -A FORWARD -i eth2 -j ACCEPT # -o eth3
#Разрешим перенаправление пакетов из интернета во внутреннюю сеть только для установленных соединений:
iptables -A FORWARD -i eth3 -o eth5 --match state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth3 -o eth2 --match state --state RELATED,ESTABLISHED -j ACCEPT
#iptables -A INPUT -i eth3 --destination 93.100.174.198 --match state --state ESTABLISHED -j ACCEPT
# Masquerade.
iptables -t nat -A POSTROUTING -o eth3 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward




root@generalserver:/etc# sudo iptables-save
# Generated by iptables-save v1.4.4 on Wed Apr 13 21:02:47 2011
*nat
:PREROUTING ACCEPT [62220:4930923]
:POSTROUTING ACCEPT [280:23542]
:OUTPUT ACCEPT [4286:284595]
-A POSTROUTING -o eth3 -j MASQUERADE
COMMIT
# Completed on Wed Apr 13 21:02:47 2011
# Generated by iptables-save v1.4.4 on Wed Apr 13 21:02:47 2011
*filter
:INPUT DROP [123:8491]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [720:716864]
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 27005 -j ACCEPT
-A INPUT -i eth5 -j ACCEPT
-A INPUT -i eth2 -j ACCEPT
-A FORWARD -i eth5 -j ACCEPT
-A FORWARD -i eth2 -j ACCEPT
-A FORWARD -i eth3 -o eth5 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth3 -o eth2 -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Wed Apr 13 21:02:47 2011


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

может вобще можно както обе сетевухи скажем настроить в одну сеть, как свич, ведь разделил я лишь затем, чтоб связать сервер с компом по гигабитной линии, без гигабитного свеча которого у меня нет :)
« Последнее редактирование: 13 Апрель 2011, 21:21:16 от [*_*]pivo »
Сдесь должна быть какаято подпись...

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
Re: помогите настроить iptables
« Ответ #12 : 13 Апрель 2011, 21:24:45 »
Что-то я сегодня торможу
Все правильно, входящие ответы от серверов то не разрешены.
Можно разрешить их все
iptables -A INPUT -i eth3 --destination 93.100.174.198 --match state --state RELATED,ESTABLISHED -j ACCEPTМожно открывать по одному:
Из серии
iptables -A INPUT -i eth3 -p tcp -m tcp --sports 80 --match state --state RELATED,ESTABLISHED -j ACCEPTДля 80 порта, протокола tcp.
Шаг за шагом можно достичь цели.

Оффлайн [*_*]pivo

  • Автор темы
  • Участник
  • *
  • Сообщений: 162
  • Сдесь должна быть подпись под аватаром...
    • Просмотр профиля
    • xstrike.ru
Re: помогите настроить iptables
« Ответ #13 : 13 Апрель 2011, 21:30:09 »
спасибо, тоесть все правильно?

а вот тогда такое еще вопрос если можно
скажем  некое соединение заходит на разрешенный ныне порт 27005 может ли оно организовать соединение на порт 27015,
тоесть оно зашло на 27005 вышло через 27015 и сделала этот портал открытым и теперь гуляет туда сюда
но приэтом нельзя, чтобы соединение нагло могло зайти на порт 27015
вот впринципе мне нужно знать возможны вообще такие вещи, и если да то знать, эта моя политика фаерволла позволить такое сделать?

ах да а оптимизировать эту строку можно?

iptables -A INPUT -i eth3 --destination 93.100.174.198 --match state --state RELATED,ESTABLISHED -j ACCEPT

 мне кажется ип адрес лишний? я так понимаю, что релэйтед, и эстаблишет только, тоесть какоето левое соединение непройдет, только те что уже инициализированы?
« Последнее редактирование: 13 Апрель 2011, 21:32:31 от [*_*]pivo »
Сдесь должна быть какаято подпись...

Гарри Кашпировский

  • Гость
Re: помогите настроить iptables
« Ответ #14 : 13 Апрель 2011, 21:35:27 »
Цитировать
закрывать за тем, чтобы точно знать, что все закрыто, флудят порты выводят роняют игровой сервер,
Да, а правила файрвола, между прочим, совсем не препятствуют флуду.
Цитировать
что касается этого последнего примера, очень интересно, но я непойму куда это в пихивать или это и есть весь код?
Это вся конфигурация NAT. И
Цитировать
обе сетевухи скажем настроить в одну сеть, как свич
в этой схеме обозначены (br0)
apt-get install bridge-utils
man bridge-utils-interfaces

 

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