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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

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

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

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

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #630 : 19 Марта 2010, 13:02:24 »
Юзай такой скрипт:

#!/sbin/iptables-restore
# Для включения транзита не забываем раскомментировать в /etc/sysctl.conf строку net.ipv4.ip_forward=1
# eth2 - внешний интерфейс
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -o eth2 -j MASQUERADE
# Пример портфоварда
# -A PREROUTING -i eth2 -p tcp --dport 1234 -j DNAT --to 12.34.56:5678
COMMIT
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# На вход разрешаем всё
-A INPUT -j ACCEPT
-A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -m conntrack --ctstate DNAT -j ACCEPT
-A FORWARD -m conntrack --ctstate NEW ! -i eth2 -j ACCEPT
COMMIT
#

Оффлайн sergey-dolzhkin

  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #631 : 04 Апреля 2010, 00:31:52 »
Здравствуйте, друзья!

У меня такая ситуация, имеется шлюз на котором squid, через который все получают доступ в интернет. На один из рабочих компьютеров был установлен Сбербанк-клиент. Служба поддержки программы, говорит, что для её работы необходимо дословно "87 порт UDP шлюза назначить на 87 UDP порт сервера банка".

как я понимаю мне нужно:
1. sysctl -w net.ipv4.ip_forward="1"2. iptables -t nat -A PREROUTING -p udp -d <адрес шлюза> --dport 87 -j DNAT --to <адрес сервера банка>:87
верны ли мои догадки? :)

за шлюзом имеется 3 сети , необходимо, чтобы они не имели доступ друг к другу, но имели доступ к шлюзу.

« Последнее редактирование: 04 Апреля 2010, 01:37:00 от sergey-dolzhkin »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #632 : 04 Апреля 2010, 03:08:58 »
Если я правильно понял бред, произнесённый техподдержкой банка (кстати, эти товарищи из сбербанка все на голову больные, как и их сбербанк-клиент), то...
1. Раскомментировать строчку в sysctl.conf
2. Второе правило нахрен не нужно.

iptables -t filter -A FORWARD -p udp -m udp --dport 87 -m conntrack --ctstate NEW -j ACCEPT
iptables -P FORWARD DROP

Как-то так.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн melnikdima

  • Участник
  • *
  • Сообщений: 188
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #633 : 04 Апреля 2010, 15:00:26 »
eth0 внешняя сеть
eth1 внутренняя  192.168.5.0/24

вот такие правила

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP


#Разрешим входящие соединения на маршрутизатор с внутренней сети (для управления)
iptables -A INPUT -i eth1 --source 192.168.5.0/24 --match state --state NEW,ESTABLISHED -j ACCEPT

#Разрешим маршрутизатору отвечать компьютерам во внутренней сети:
iptables -A OUTPUT -o eth1 --destination 192.168.5.0/24 --match state --state NEW,ESTABLISHED -j ACCEPT

#Разрешим перенаправление пакетов из внутренней сети во внешнюю для установки соединений
# и установленных соединений:
iptables -A FORWARD -i eth1 --source 192.168.5.0/24 --destination 0.0.0.0/0 --match state --state NEW,EST$

#Разрешим перенаправление пакетов из интернета во внутреннюю сеть только для установленных соединений:
iptables -A FORWARD -i eth0 --destination 192.168.5.0/24 --match state --state ESTABLISHED -j ACCEPT

iptables -I INPUT -p tcp --dport 2002 -j ACCEPT
iptables -I OUTPUT -p tcp --dport 2002 -j ACCEPT

iptables -t nat -A POSTROUTING -s 192.168.5.0/16 -o eth0 -j MASQUERADE



пытаюсь соедениться по порту 2002 SSH из внешней сети!!! не пускает.....

как открыть?

да и как открыть ответы сервера на запрос ping из внешней сети.

из внутренней сети пинг есть на сервер

Оффлайн InkVisitor

  • Участник
  • *
  • Сообщений: 190
  • Nikopol, Ukraine
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #634 : 06 Апреля 2010, 13:19:02 »
iptables -I OUTPUT -p tcp --dport 2002 -j ACCEPT

пытаюсь соедениться по порту 2002 SSH из внешней сети!!! не пускает.....

iptables -I OUTPUT -p tcp --sport 2002 -j ACCEPT

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #635 : 06 Апреля 2010, 13:28:23 »
да и как открыть ответы сервера на запрос ping из внешней сети.
из внутренней сети пинг есть на сервер

iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -d IP_сервера -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 0 -s IP_сервера -d 0/0 -j ACCEPT
Шаг за шагом можно достичь цели.

Оффлайн melnikdima

  • Участник
  • *
  • Сообщений: 188
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #636 : 06 Апреля 2010, 16:36:07 »
eth0 внешняя сеть
eth1 внутренняя  192.168.5.0/24

вот такие правила

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

#Разрешим входящие соединения на маршрутизатор с внутренней сети (для управления)
iptables -A INPUT -i eth1 --source 192.168.5.0/24 --match state --state NEW,ESTABLISHED -j ACCEPT

#Разрешим маршрутизатору отвечать компьютерам во внутренней сети:
iptables -A OUTPUT -o eth1 --destination 192.168.5.0/24 --match state --state NEW,ESTABLISHED -j ACCEPT

#Разрешим перенаправление пакетов из внутренней сети во внешнюю для установки соединений
# и установленных соединений:
iptables -A FORWARD -i eth1 --source 192.168.5.0/24 --destination 0.0.0.0/0 --match state --state NEW,EST$

#Разрешим перенаправление пакетов из интернета во внутреннюю сеть только для установленных соединений:
iptables -A FORWARD -i eth0 --destination 192.168.5.0/24 --match state --state ESTABLISHED -j ACCEPT

iptables -t nat -A POSTROUTING -s 192.168.5.0/16 -o eth0 -j MASQUERADE



захожу на сервер через SSH

пытаюсь сделать wget ya.ru

Цитировать
root@melhome:~# wget ya.ru
--2010-04-06 18:19:27--  http://ya.ru/
Resolving ya.ru... failed: Name or service not known.
wget: unable to resolve host address `ya.ru'

или

Цитировать
root@melhome:~# ping -c 5 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
ping: sendmsg: Operation not permitted

я понимаю что я что-то не открыл в iptables.
но что? и как открыть?
« Последнее редактирование: 06 Апреля 2010, 18:27:09 от melnikdima »

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #637 : 06 Апреля 2010, 21:46:13 »
wget: unable to resolve host address `ya.ru'

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

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

Оффлайн melnikdima

  • Участник
  • *
  • Сообщений: 188
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #638 : 06 Апреля 2010, 22:19:49 »
такс мне нужно чтобы я мог делать с сервера
ping
traceroute
и мог качать wget данные с http либо ftp серверов.
ну естественно чтобы мог устанавливать apt-get

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #639 : 06 Апреля 2010, 22:38:45 »
пинг сервера
iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -d IP_сервера -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 0 -s IP_сервера -d 0/0 -j ACCEPT

пинг с сервера
iptables -A INPUT -p icmp --icmp-type 0 -s 0/0 -d IP_сервера -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 8 -s IP_сервера -d 0/0 -j ACCEPT

трэйсерт
iptables -A INPUT -p icmp --icmp-type 11 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 11 -j ACCEPT

http
iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT

ftp
iptables -A OUTPUT -p tcp -m tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --sport 21 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --sport 20 -j ACCEPT

это конечно без привязки к интерфейсам и состоянию соединения, но все-таки
Шаг за шагом можно достичь цели.

Оффлайн melnikdima

  • Участник
  • *
  • Сообщений: 188
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #640 : 06 Апреля 2010, 22:59:46 »
iptables -A INPUT -p icmp --icmp-type 0 -s 0/0 -i eth0 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 8  -d 0/0 -o eth0 -j ACCEPT
это работает: пинг с сервера идёт....


а вот тут он посылает меня

iptables -A INPUT -p icmp --icmp-type 11 -i eth0  -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 11 -o eth0 -j ACCEPT

mel@melhome:~$ traceroute 213.87.0.1
traceroute: icmp socket: Operation not permitted
« Последнее редактирование: 06 Апреля 2010, 23:04:04 от melnikdima »

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #641 : 06 Апреля 2010, 23:03:23 »
а предыдущие кто будет вписывать?

RTFM
Шаг за шагом можно достичь цели.

Оффлайн melnikdima

  • Участник
  • *
  • Сообщений: 188
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #642 : 06 Апреля 2010, 23:05:29 »
самое смешное что вписано !!!!!!!!!


Цитировать
iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -i eth0 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 0 -d 0/0 -o eth0 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 0 -s 0/0 -i eth0 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 8  -d 0/0 -o eth0 -j ACCEPT


iptables -A INPUT -p icmp --icmp-type 11 -i eth0 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 11 -o eth0 -j ACCEPT


и всё равно
root@melhome:~$ traceroute 213.87.0.1
traceroute: icmp socket: Operation not permitted



PS podkovyrsty у тя есть аська?
« Последнее редактирование: 06 Апреля 2010, 23:16:34 от melnikdima »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #643 : 06 Апреля 2010, 23:29:51 »
Б*********

Показывай iptables-save, что ты нас кусками кормишь.
И прочти уже правила форума.

И, podkovyrsty, не мусори. Прописывать "-d 0/0" - тупо, только место на форуме (и в правилах) занимает, ничего не делая.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн melnikdima

  • Участник
  • *
  • Сообщений: 188
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #644 : 06 Апреля 2010, 23:40:06 »
Цитировать
# Generated by iptables-save v1.4.4 on Tue Apr  6 23:39:39 2010
*nat
:PREROUTING ACCEPT [984:64126]
:POSTROUTING ACCEPT [9:1844]
:OUTPUT ACCEPT [97:8609]
-A POSTROUTING -s 192.168.5.0/24 -o eth0 -j MASQUERADE
COMMIT
# Completed on Tue Apr  6 23:39:39 2010
# Generated by iptables-save v1.4.4 on Tue Apr  6 23:39:39 2010
*filter
:INPUT DROP [3:234]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -p tcp -m tcp --dport 2002 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -s 192.168.5.0/24 -i eth1 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -i eth0 -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 20 -j ACCEPT
-A INPUT -i eth0 -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A FORWARD -s 192.168.5.0/24 -i eth1 -m state --state NEW,ESTABLISHED -j ACCEPT
-A FORWARD -d 192.168.5.0/24 -i eth0 -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 2002 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 80 -j ACCEPT
-A OUTPUT -d 192.168.5.0/24 -o eth1 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -o eth0 -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A OUTPUT -o eth0 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 20 -j ACCEPT
-A OUTPUT -o eth0 -p icmp -m icmp --icmp-type 11 -j ACCEPT
COMMIT
# Completed on Tue Apr  6 23:39:39 2010


ping, dns запросы, http с сервера идут...

не работает только traceroute

P.S. какой командой можэно посмотреть сколько времени работает сервер?
« Последнее редактирование: 06 Апреля 2010, 23:42:58 от melnikdima »

 

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