Настройка iptables

Есть и такой ОС.

Модератор: weec

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Настройка iptables

Непрочитанное сообщение icb » 2012-04-16 10:42:48

Linux не использую вообще, но надо настроить простенькое правило в iptales: запретить все соеденения, разрешить только с моего IP.
Подскажите как сделать, а то даже протестировать негде :(

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Graf
сержант
Сообщения: 205
Зарегистрирован: 2008-10-29 18:44:32
Контактная информация:

Re: Настройка iptables

Непрочитанное сообщение Graf » 2012-04-16 12:37:05

icb писал(а):Linux не использую вообще, но надо настроить простенькое правило в iptales: запретить все соеденения, разрешить только с моего IP.
Подскажите как сделать, а то даже протестировать негде :(
из от куда и куда? все порты и протоколы?
С кем поведешься - так тебе и надо!
http://slackware.su

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Re: Настройка iptables

Непрочитанное сообщение icb » 2012-04-16 12:56:32

из от куда и куда? все порты и протоколы?
Закрыть доступ от всех (по всем протоколам), кроме доступа с моего IP.

Нагуглил такое решение:

Код: Выделить всё

iptables -P INPUT DROP
iptables -A INPUT --source 192.168.1.2 -j ACCEPT
Корректно ли оно?

Аватара пользователя
Graf
сержант
Сообщения: 205
Зарегистрирован: 2008-10-29 18:44:32
Контактная информация:

Re: Настройка iptables

Непрочитанное сообщение Graf » 2012-04-16 14:20:58

вроде не жарко, но чет недопонимаю.... уж сорри :)
т.е. есть некий комп (допустим с IP - 192.168.1.1), выхода в инет с этого компа нет, надо разрешить IP - 192.168.1.2 доступ к этому компу(192.168.1.1), а все остальные идут лесом, так?
а сам комп (192.168.1.1) куданить ходить может (должен), или он только для 192.168.1.2 будет работать? Логи вести надо?
С кем поведешься - так тебе и надо!
http://slackware.su

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Re: Настройка iptables

Непрочитанное сообщение icb » 2012-04-16 15:08:08

т.е. есть некий комп (допустим с IP - 192.168.1.1), выхода в инет с этого компа нет, надо разрешить IP - 192.168.1.2 доступ к этому компу(192.168.1.1), а все остальные идут лесом, так?
Почти. Наверное я зря использовал подсеть 192.168.x.x - она вводит в заблуждение.
Вот более развернуто: есть хост 111.111.111.111 (IP взят для примера), подключен к интернету (colocation). На нем запущено несколько сервисов (SSH, HTTP, VNC и т.п.).
Я хочу: чтобы с моего IP (222.222.222.222) я мог обращаться ко всем сервисам этого хоста, а другие IP не имели доступа к нему.
а сам комп (192.168.1.1) куданить ходить может (должен), или он только для 192.168.1.2 будет работать? Логи вести надо?
Сам хост (комп) ходить может. Логи нужны (если сложности - можно и без них).

P.S. Это я пытаюсь защитить IPMI.

Аватара пользователя
Graf
сержант
Сообщения: 205
Зарегистрирован: 2008-10-29 18:44:32
Контактная информация:

Re: Настройка iptables

Непрочитанное сообщение Graf » 2012-04-16 17:00:24

как-то так..., если я все правильно понял.

Код: Выделить всё

#!/bin/sh
 iptables --flush
 clear

INET_IP="111.111.111.111"
INET_IFACE="eth1"

# Какой IP смотрит в локалку, если есть
LAN_IP="192.168.1.1"
LAN_IP_RANGE="192.168.1.0/24"
LAN_IFACE="eth0"

LO_IFACE="lo"
LO_IP="127.0.0.1"

IPTABLES="iptables"

# Модули
   /sbin/depmod -a

   /sbin/modprobe ip_tables
   /sbin/modprobe ip_conntrack
   /sbin/modprobe iptable_filter
   /sbin/modprobe iptable_mangle
   /sbin/modprobe iptable_nat
   /sbin/modprobe ipt_LOG
   /sbin/modprobe ipt_limit
   /sbin/modprobe ipt_state
# 
# Не обязательные
# 
# /sbin/modprobe ipt_owner
   /sbin/modprobe ipt_REJECT
# /sbin/modprobe ipt_MASQUERADE
# /sbin/modprobe ip_conntrack_ftp #
# /sbin/modprobe ip_conntrack_irc
# /sbin/modprobe ip_nat_ftp #
# /sbin/modprobe ip_nat_irc

# Если будет форвард
#
   echo "1" > /proc/sys/net/ipv4/ip_forward
# Политики по умолчанию, т.е. не поддающие правилам уничтожаются
#
  $IPTABLES -P INPUT DROP
  $IPTABLES -P OUTPUT DROP
  $IPTABLES -P FORWARD DROP

  $IPTABLES -N bad_tcp_packets

  $IPTABLES -N allowed
  $IPTABLES -N tcp_packets
  $IPTABLES -N udp_packets
  $IPTABLES -N icmp_packets

  $IPTABLES -A bad_tcp_packets -p TCP --tcp-flags SYN,ACK SYN,ACK -m \
                 state --state NEW -j REJECT --reject-with tcp-reset

  $IPTABLES -A bad_tcp_packets -p TCP ! --syn -m state --state NEW -j \
                 LOG --log-prefix "New not syn:"

  $IPTABLES -A bad_tcp_packets -p TCP ! --syn -m state --state NEW -j DROP

  $IPTABLES -A allowed -p TCP --syn -j ACCEPT
  $IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
  $IPTABLES -A allowed -p TCP -j DROP

# тут пинги и прочие ICMP
  $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
  $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT

# Открываем нужные порты, нужному IP
  $IPTABLES -A INPUT -p TCP -s 222.222.222.222  -m multiport --port 443,21,22,53 -j ACCEPT
  $IPTABLES -A INPUT -p UDP -s 222.222.222.222  -m multiport --port 80,53,123 -j ACCEPT

$IPTABLES -A INPUT -p TCP -m state --state RELATED -j ACCEPT

$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -s $LAN_IP_RANGE -d $LAN_IP -j ACCEPT

$IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
$IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets
$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets

$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \                                                                                                                                                                        
           --log-level DEBUG --log-prefix "IPT INPUT packet died: "

# 
# если надо форвардить (FORWARD)
#
$IPTABLES -A FORWARD -p TCP -j bad_tcp_packets

# тут пишем кого куда и по каким портам.

$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG \
              --log-level DEBUG --log-prefix "IPT FORWARD packet died: "
#
# OUTPUT
#
$IPTABLES -A OUTPUT -p TCP -j bad_tcp_packets
$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT

$IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
         --log-level DEBUG --log-prefix "IPT OUTPUT packet died: "
С кем поведешься - так тебе и надо!
http://slackware.su

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Re: Настройка iptables

Непрочитанное сообщение icb » 2012-04-17 8:40:51

как-то так...
Сложновато и многовато для простой задачи.
Этими двумя строками я обойтись не смогу?

Код: Выделить всё

iptables -P INPUT DROP
iptables -A INPUT -s 222.222.222.222 -j ACCEPT
Столкнулся со сложностями при вызове некоторых команд:

Код: Выделить всё

# /sbin/modprobe ip_tables
modprobe: could not parse modules.dep

# iptables -A INPUT -s 222.222.222.222 -j ACCEPT
iptables v1.2.11: Couldn't load target `standard':/lib/iptables/libipt_standard.so: cannot open shared object file: No such file or directory
Как можно обойти эти ошибки?

Аватара пользователя
Graf
сержант
Сообщения: 205
Зарегистрирован: 2008-10-29 18:44:32
Контактная информация:

Re: Настройка iptables

Непрочитанное сообщение Graf » 2012-04-17 11:29:16

icb писал(а):Сложновато и многовато для простой задачи.
Это для более подробного разъяснения (или, чтоб больше напугать :) ) http://www.opennet.ru/docs/RUS/iptables
icb писал(а): Этими двумя строками я обойтись не смогу?

Код: Выделить всё

iptables -P INPUT DROP
iptables -A INPUT -s 222.222.222.222 -j ACCEPT
Судя по тому, что выдало, уже нет.
У тебя старое ядро со старым iptables, а уже 1.4.13 выложено http://www.netfilter.org/projects/iptab ... loads.html.
И скомпилировано оно у тебя без некоторых модулей.

Давай посмотрим на

Код: Выделить всё

# iptables -L
С кем поведешься - так тебе и надо!
http://slackware.su

Аватара пользователя
Graf
сержант
Сообщения: 205
Зарегистрирован: 2008-10-29 18:44:32
Контактная информация:

Re: Настройка iptables

Непрочитанное сообщение Graf » 2012-04-17 11:36:20

P.S. Имхо, лучше правила составлять в скрипте, потомучто они в скрипте упорядочены как тебе надо и ты можешь проследить порядок прохождения пакета по цепочкам, а так как хочешь ты, ты просто добавляешь правило вконец цепочки, не отменяя и(или) удаляя старое. Искать где косяк, потом будет гораздо сложней.
С кем поведешься - так тебе и надо!
http://slackware.su

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Re: Настройка iptables

Непрочитанное сообщение icb » 2012-04-17 11:48:21

У тебя старое ядро со старым iptables
Обновить его я не могу :(
Имхо, лучше правила составлять в скрипте, потомучто они в скрипте упорядочены как тебе надо и ты можешь проследить порядок прохождения пакета по цепочкам
Согласен, но кроме этих 2 строк особо ничего в файле и не будет. Если точнее, то

Код: Выделить всё

#!/bin/sh
iptables --flush
iptables -P INPUT DROP
iptables -A INPUT -s 222.222.222.222 -j ACCEPT
и вызов этого скрипта в кроне.

Аватара пользователя
Graf
сержант
Сообщения: 205
Зарегистрирован: 2008-10-29 18:44:32
Контактная информация:

Re: Настройка iptables

Непрочитанное сообщение Graf » 2012-04-17 11:59:14

icb писал(а):
У тебя старое ядро со старым iptables
Обновить его я не могу :(
И не надо, работает же без проблем.
icb писал(а):
Имхо, лучше правила составлять в скрипте, потомучто они в скрипте упорядочены как тебе надо и ты можешь проследить порядок прохождения пакета по цепочкам
Согласен, но кроме этих 2 строк особо ничего в файле и не будет. Если точнее, то

Код: Выделить всё

#!/bin/sh
iptables --flush
iptables -P INPUT DROP
iptables -A INPUT -s 222.222.222.222 -j ACCEPT
и вызов этого скрипта в кроне.
дык ошибку же выдало, значит не сработает.
Столкнулся со сложностями при вызове некоторых команд:

Код: Выделить всё

# iptables -A INPUT -s 222.222.222.222 -j ACCEPT
iptables v1.2.11: Couldn't load target `standard':/lib/iptables/libipt_standard.so: cannot open shared object file: No such file or directory
давай на iptables -L все же поглядим.
С кем поведешься - так тебе и надо!
http://slackware.su

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Re: Настройка iptables

Непрочитанное сообщение icb » 2012-04-18 8:49:46

Код: Выделить всё

# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Аватара пользователя
Graf
сержант
Сообщения: 205
Зарегистрирован: 2008-10-29 18:44:32
Контактная информация:

Re: Настройка iptables

Непрочитанное сообщение Graf » 2012-04-18 12:07:31

мдя...:)

двумя-тремя строками тут не обойтись.
запретить весь INPUT, кроме себя любимого нельзя.
да и для себя открывай только те порты, с которыми будешь работать, зачем тебе более 65 000 портов? :)
С кем поведешься - так тебе и надо!
http://slackware.su

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Re: Настройка iptables

Непрочитанное сообщение icb » 2012-04-18 12:43:02

двумя-тремя строками тут не обойтись.
Что писать? ;)
да и для себя открывай только те порты, с которыми будешь работать, зачем тебе более 65 000 портов?
Думал так проще :)

Аватара пользователя
Graf
сержант
Сообщения: 205
Зарегистрирован: 2008-10-29 18:44:32
Контактная информация:

Re: Настройка iptables

Непрочитанное сообщение Graf » 2012-04-18 13:03:06

icb писал(а):
двумя-тремя строками тут не обойтись.
Что писать? ;)
запусти скрипт, тот, что я выше давал и смотри логи.
С кем поведешься - так тебе и надо!
http://slackware.su

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Re: Настройка iptables

Непрочитанное сообщение icb » 2012-04-18 13:36:31

запусти скрипт, тот, что я выше давал и смотри логи.
Полностью скрипт запускать не решаюсь: если часть правил не отработает, то я не получу доступ к серверу.
Так уже было - отработали правила DROP, а ACCEPT не отработали.

FiL
ст. лейтенант
Сообщения: 1375
Зарегистрирован: 2010-02-05 0:21:40

Re: Настройка iptables

Непрочитанное сообщение FiL » 2012-04-19 5:56:44

icb писал(а):
запусти скрипт, тот, что я выше давал и смотри логи.
Полностью скрипт запускать не решаюсь: если часть правил не отработает, то я не получу доступ к серверу.
Так уже было - отработали правила DROP, а ACCEPT не отработали.
Поэтому надо написать скрипт, который сбрасывает все правила и полиси устанавливает в ACCEPT.
И этот скрипт в крон раз в час.
И потом спокойно играть. Если что не так, то максимум через час правила сбросятся.

Ну а далее... далее двух строчек мало. Нужно минимум 3.

Код: Выделить всё

#!/bin/sh
iptables -P INPUT DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s 222.222.222.222 -j ACCEPT

Аватара пользователя
Graf
сержант
Сообщения: 205
Зарегистрирован: 2008-10-29 18:44:32
Контактная информация:

Re: Настройка iptables

Непрочитанное сообщение Graf » 2012-04-19 6:48:58

2icb
FiL писал(а): Поэтому надо написать скрипт, который сбрасывает все правила и полиси устанавливает в ACCEPT.
И этот скрипт в крон раз в час.
И потом спокойно играть. Если что не так, то максимум через час правила сбросятся.

Код: Выделить всё

#!/bin/sh

IPTABLES="/usr/sbin/iptables"

$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT
$IPTABLES -t mangle -P PREROUTING ACCEPT
$IPTABLES -t mangle -P OUTPUT ACCEPT
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X
$IPTABLES -t nat -X
$IPTABLES -t mangle -X
С кем поведешься - так тебе и надо!
http://slackware.su

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Re: Настройка iptables

Непрочитанное сообщение icb » 2012-04-19 8:55:30

Поэтому надо написать скрипт, который сбрасывает все правила и полиси устанавливает в ACCEPT.
Так проблемы именно в том, что ACCEPT правила не работают (похоже не нравится аргумент -j).
Т.е. можно сколько угодно экспериментировать, но пока правила с ACCEPT не заработают - будет только отрубаться доступ (уже проверял пару раз).

Код: Выделить всё

$IPTABLES -P INPUT ACCEPT
.......
$IPTABLES -F
-F не отменит первое разрешение?

Аватара пользователя
Graf
сержант
Сообщения: 205
Зарегистрирован: 2008-10-29 18:44:32
Контактная информация:

Re: Настройка iptables

Непрочитанное сообщение Graf » 2012-04-19 9:22:01

icb писал(а):
Поэтому надо написать скрипт, который сбрасывает все правила и полиси устанавливает в ACCEPT.
Так проблемы именно в том, что ACCEPT правила не работают (похоже не нравится аргумент -j).
Т.е. можно сколько угодно экспериментировать, но пока правила с ACCEPT не заработают - будет только отрубаться доступ (уже проверял пару раз).
а из чего следует, что ACCEPT не срабатывает? т.е. есть некий вывод ошибки? можно взглянуть?
icb писал(а):

Код: Выделить всё

$IPTABLES -P INPUT ACCEPT
.......
$IPTABLES -F
-F не отменит первое разрешение?
нет.

Код: Выделить всё

# man iptables
..........
       -F, --flush [chain]
              Flush  the  selected  chain (all the chains in the table if none is given).  This is equivalent to deleting all the rules
              one by one.
..........
     -P, --policy chain target
              Set  the  policy  for the chain to the given target.  See the section TARGETS for the legal targets.  Only built-in (non-
              user-defined) chains can have policies, and neither built-in nor user-defined chains can be policy targets.
...........
С кем поведешься - так тебе и надо!
http://slackware.su

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Re: Настройка iptables

Непрочитанное сообщение icb » 2012-04-19 9:54:13

а из чего следует, что ACCEPT не срабатывает? т.е. есть некий вывод ошибки? можно взглянуть?

Код: Выделить всё

# iptables -A INPUT -s 222.222.222.222 -j ACCEPT
iptables v1.2.11: Couldn't load target `standard':/lib/iptables/libipt_standard.so: cannot open shared object file: No such file or directory

FiL
ст. лейтенант
Сообщения: 1375
Зарегистрирован: 2010-02-05 0:21:40

Re: Настройка iptables

Непрочитанное сообщение FiL » 2012-04-19 16:46:05

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

Аватара пользователя
Hrafn
сержант
Сообщения: 239
Зарегистрирован: 2007-08-18 15:25:57
Откуда: Питер
Контактная информация:

Re: Настройка iptables

Непрочитанное сообщение Hrafn » 2012-04-19 16:58:58

ТС, конфиг фаера полностью покажите... а также если еще что-то касательно его настраивали

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Re: Настройка iptables

Непрочитанное сообщение icb » 2012-04-20 9:03:24

ты определись какую проблему мы тебе решаем - настройка правил фаера или сам факт, что у тебя фаер в принципе не работает?
Проблема одна - запретить все соеденения, разрешить только с моего IP.
Сказать что iptables не работает нельзя - общие правила отрабатывают корректно. И выше было сказано:
Graf писал(а):
icb писал(а):
У тебя старое ядро со старым iptables
Обновить его я не могу :(
И не надо, работает же без проблем.
Я сделал вывод, что в новой версии изменился формат правил
конфиг фаера полностью покажите... а также если еще что-то касательно его настраивали
Ничего не настраивал. Откуда оно взялось уже писал.
Конфига возможно вообще нет (не могу найти).

Аватара пользователя
Graf
сержант
Сообщения: 205
Зарегистрирован: 2008-10-29 18:44:32
Контактная информация:

Re: Настройка iptables

Непрочитанное сообщение Graf » 2012-04-20 9:42:52

Hrafn писал(а):ТС, конфиг фаера полностью покажите... а также если еще что-то касательно его настраивали
думаю, его вообще нет :), ибо
icb писал(а):

Код: Выделить всё

# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
2icb
Покажи

Код: Выделить всё

# uname -a
С кем поведешься - так тебе и надо!
http://slackware.su