Настройка iptables для начинающих.
Модератор: Модераторы разделов
- Angel_13th
- Сообщения: 1164
- Статус: ...-oo=ll=oo-...
- ОС: Gentoo
Re: Настройка iptables для начинающих.
2aLexx programmer У меня была такая проблема, просто пакет с сервера идет на совершенно другой порт. У народа охота спросить, у кого каие порты закрыты.
2TuLiss вот насчет пробороски мои пять копеек. Так как весь NAT траффик проходит через цепочку FORWARD, то просто дропай все пакеты что не разрешены.
2TuLiss вот насчет пробороски мои пять копеек. Так как весь NAT траффик проходит через цепочку FORWARD, то просто дропай все пакеты что не разрешены.
WorkStation Ubuntu 10.10 on Fujitsu-Siemens Amilo Pro 3545
Re: Настройка iptables для начинающих.
в разделе VPN правил написано "-o eth0", а должно быть "-o $INET_IFACE " вроде...
понимаю что мелочь, но иногда эти мелочи стоят часов головоломания :-)
понимаю что мелочь, но иногда эти мелочи стоят часов головоломания :-)
- aLexx programmer
- Сообщения: 985
- Статус: Турук-Макто
- ОС: Gentoo -> Ubuntu
Re: Настройка iptables для начинающих.
Angel_13th писал(а): ↑04.10.2005 13:132aLexx programmer У меня была такая проблема, просто пакет с сервера идет на совершенно другой порт.
А на какой? И как его открыть? Судя по моим наблюдениям (я, правда, в работе с сетью пока не очень разобрался ), каждый раз на новый.
- Angel_13th
- Сообщения: 1164
- Статус: ...-oo=ll=oo-...
- ОС: Gentoo
Re: Настройка iptables для начинающих.
Вот суть моей проблемы, Я открыл 21 порт на вход (те пускать пакеты входящие, которые идут с 21 порта) и выход (выпускать с 21 порта), пытаюсь подлючиться на фтп, немогет. Смотрю лог - а там такая бякаВот я и сделал выводы. Причем порт динамически меняеться.
Код: Выделить всё
URGP=0
Sep 27 19:42:43 gentoo kernel: IN= OUT=eth0 SRC=Внешний ip DST=212.16.7.65 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=31451 DF PROTO=TCP SPT=55141 DPT=21 WINDOW=1875 RES=0x00 ACK URGP=0
Sep 27 19:42:46 gentoo kernel: IN= OUT=eth0 SRC=Внешний ip DST=212.16.7.65 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=32059 DF PROTO=TCP SPT=52501 DPT=53282 WINDOW=5840 RES=0x00 SYN URGP=0
WorkStation Ubuntu 10.10 on Fujitsu-Siemens Amilo Pro 3545
- WarlorD
- Сообщения: 728
- Статус: хочешь пропатчить KDE под FreeBSD - спроси меня как!
- ОС: FreeBSD, Debian GNU\Linux
Re: Настройка iptables для начинающих.
вот такая проблема у меня - запускаю скрипт, что в самом начале темы стоит - я как понял это самая последняя и стабильная версия, изменяю все вроде под себя, хотя по началу без особых изменений - просто для проверки работает ли, но почему-то при запуске iptables у меня все отрубается - локальная сеть и инет через vpn, хотя строки я раскомментировал, которые к vpn-у относятся. Ничего не понмаю если честно в этих настройках потому пологаюсь на ваши советы - я понял, что надо просто прописать те порты, что нужны в открытые и все.
не понял что значит следующее:
если не затруднить поясните пожалуйсто.
затем я закомментировал то, что относится к DHCP так-как у нас в сети статические ip адреса и он мне как я понимаю не нужен.
потом раскомментировал строки, касающиеся vpnвобщем вариант конфига прилогается - там все написано.
интересно вот а что мне следует написать тут:
положим локальная сеть у меня через eth0 а инет через ppp0 по vpn-у так интересно каксделать, чтоды оба этих интерфейса фильтровались? я как понял не надо менять eth0 на ppp0 так как vpn все равно идет через eth0, но видимо что-то не так. Если еще поможет информация, то скажу, что на машине стоит debian 3.1 sarge причины проблемы мне не ясны совсем вот положим в скрипте написано:
но при запуске iptables я никак не могу отпинговать ни один узел - говорит
ПОмогите вобщем начинающему
Прилогаю использованный конфиг.
Странно, что даже локальную сеть я перестал видеть обидно.
Код: Выделить всё
OPENPORTS="20,21,25,23,43,70,79,80,110,210,443"
Код: Выделить всё
# Прописываем порты, которые открыты в системе, но которые не должны быть открыты на сетевых интерфейсах:
CLOSEPORTS="630,640,783,3310,10000"
если не затруднить поясните пожалуйсто.
затем я закомментировал то, что относится к DHCP так-как у нас в сети статические ip адреса и он мне как я понимаю не нужен.
Код: Выделить всё
# Разрешаем прохождение DHCP запросов через iptables. Нужно, если IP адрес динамический.
#$IPT -A OUTPUT -p udp -m udp -o $INET_IFACE --dport 67 --sport 68 -j ACCEPT
#$IPT -A INPUT -p udp -m udp -i $INET_IFACE --dport 68 --sport 67 -j ACCEPT
потом раскомментировал строки, касающиеся vpnвобщем вариант конфига прилогается - там все написано.
интересно вот а что мне следует написать тут:
Код: Выделить всё
# Ваш сетевой интерфейс.
INET_IFACE="eth0"
положим локальная сеть у меня через eth0 а инет через ppp0 по vpn-у так интересно каксделать, чтоды оба этих интерфейса фильтровались? я как понял не надо менять eth0 на ppp0 так как vpn все равно идет через eth0, но видимо что-то не так. Если еще поможет информация, то скажу, что на машине стоит debian 3.1 sarge причины проблемы мне не ясны совсем вот положим в скрипте написано:
Код: Выделить всё
# Разрешаем себе ping наружу, ставим ограничение на ping своей машины.
$IPT -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 2 -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type echo-request -j DROP
$IPT -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 2 -j ACCEPT
$IPT -A FORWARD -p icmp --icmp-type echo-request -j DROP
$IPT -A INPUT -p icmp -j ACCEPT
$IPT -A FORWARD -p icmp -j ACCEPT
но при запуске iptables я никак не могу отпинговать ни один узел - говорит
Код: Выделить всё
ping: sendmsg: Operation not permitted
ПОмогите вобщем начинающему
Прилогаю использованный конфиг.
Странно, что даже локальную сеть я перестал видеть обидно.
FreeBSD
Debian GNU\Linux
Компьютер позволяет решать все те проблемы, которые до изобретения компьютера не существовали.
Debian GNU\Linux
Компьютер позволяет решать все те проблемы, которые до изобретения компьютера не существовали.
- WarlorD
- Сообщения: 728
- Статус: хочешь пропатчить KDE под FreeBSD - спроси меня как!
- ОС: FreeBSD, Debian GNU\Linux
Re: Настройка iptables для начинающих.
ну вот так никто и не ответил, а жаль - видать рано мне еще с iptables связываться
FreeBSD
Debian GNU\Linux
Компьютер позволяет решать все те проблемы, которые до изобретения компьютера не существовали.
Debian GNU\Linux
Компьютер позволяет решать все те проблемы, которые до изобретения компьютера не существовали.
Re: Настройка iptables для начинающих.
CLOSEPORTS="630,640,783,3310,10000
для портов, которык используються только локально. Т.е. из нутри можно на них зайти, например 127.0.0.1:10000. А с наружи они закрыты.
запусти каманду iptables -L и сбрось мне в личку.
а также какой Linux...
попробуй запустить iptables без правил описанных выше и тоже сделай "iptables -L"... Тоже в личку...
может чем помогу, я сам тоже начинаю изучать....
Re: Настройка iptables для начинающих.
Ограничение подбора пароля по сети по ssh
Если посмотреть логи Linux серверов, то можно обнаружить большое количество сообщений от демона sshd, свидетельствующих о попытке подбора паролей по ssh.
Dec 6 11:03:11 artur sshd[2177]: Invalid user test from 193.220.141.151
Dec 6 11:03:11 artur sshd[2177]: Failed password for invalid user test from 193.220.141.151 port 46079 ssh2
Dec 6 11:03:15 artur sshd[2180]: Failed password for root from 193.220.141.151 port 46144 ssh2
Dec 6 11:03:16 artur sshd[2183]: Invalid user admin from 193.220.141.151
Dec 6 11:03:16 artur sshd[2183]: Failed password for invalid user admin from 193.220.141.151 port 46377 ssh2
Обратите внимание на задержку между попытками - несколько секунд. На той стороне находятся "роботы". Наша задача ограничить количество попыток соединения с одного IP адреса. Для этого можно воспользоваться модулем recent нетфильтра.
iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --update --seconds 20 -j DROP
iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --set -j ACCEPT
После введения этого правила логи становятся девтственно чистыми.
Dec 10 15:24:42 artur -- MARK --
Dec 10 15:44:42 artur -- MARK --
Dec 10 15:49:06 artur sshd[21819]: Did not receive identification string from 85.93.9.31
Dec 10 16:02:10 artur sshd[21824]: Invalid user shell from 85.93.9.31
Dec 10 16:02:10 artur sshd[21824]: Failed password for invalid user shell from 85.93.9.31 port 40288 ssh2
Dec 10 16:24:43 artur -- MARK --
Dec 10 16:44:43 artur -- MARK --
Dec 10 17:04:43 artur -- MARK --
Все, роботы отвалились
оригинал http://bigkaa.blogspot.com/
Если посмотреть логи Linux серверов, то можно обнаружить большое количество сообщений от демона sshd, свидетельствующих о попытке подбора паролей по ssh.
Dec 6 11:03:11 artur sshd[2177]: Invalid user test from 193.220.141.151
Dec 6 11:03:11 artur sshd[2177]: Failed password for invalid user test from 193.220.141.151 port 46079 ssh2
Dec 6 11:03:15 artur sshd[2180]: Failed password for root from 193.220.141.151 port 46144 ssh2
Dec 6 11:03:16 artur sshd[2183]: Invalid user admin from 193.220.141.151
Dec 6 11:03:16 artur sshd[2183]: Failed password for invalid user admin from 193.220.141.151 port 46377 ssh2
Обратите внимание на задержку между попытками - несколько секунд. На той стороне находятся "роботы". Наша задача ограничить количество попыток соединения с одного IP адреса. Для этого можно воспользоваться модулем recent нетфильтра.
iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --update --seconds 20 -j DROP
iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --set -j ACCEPT
После введения этого правила логи становятся девтственно чистыми.
Dec 10 15:24:42 artur -- MARK --
Dec 10 15:44:42 artur -- MARK --
Dec 10 15:49:06 artur sshd[21819]: Did not receive identification string from 85.93.9.31
Dec 10 16:02:10 artur sshd[21824]: Invalid user shell from 85.93.9.31
Dec 10 16:02:10 artur sshd[21824]: Failed password for invalid user shell from 85.93.9.31 port 40288 ssh2
Dec 10 16:24:43 artur -- MARK --
Dec 10 16:44:43 artur -- MARK --
Dec 10 17:04:43 artur -- MARK --
Все, роботы отвалились
оригинал http://bigkaa.blogspot.com/
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Re: Настройка iptables для начинающих.
Лично я считаю, что писать универсальный скрипт - это не правильно Я уже это однажды делал, потом разачаровался. Но если хотите... то можно и сделать. Пока сам руками не попробуеш, ничего не поймеш
Вообщето multiport поддерживает. кажись максимум 15 портов. Что будете делать когда потребуется больше?
Мазохизм чистейшей воды . Если Вас поломают - то откроют все что угодно Лучше ставьте софт по поиску руткитов Вводом DROP на OUTPUT Вы сами сделали себе лишние проблемы
А это зачем? У Вас стоит прога которая это принимает? Так, на всякий пожарный http://www.opennet.ru/docs/RUS/iptables/#ULOGTARGET
Защита от редиректа icmp по умолчанию встроена в ядре.
-m icmp писать не надо, это работает автоматом.
Наверное надо так
Просто красивше выглядит Ну вообще, -j и их параметры обычно пишут в конце, то что -j не относится надо писать раньше.
Успехов.
Код: Выделить всё
OPENPORTS="20,21,25,23,43,70,79,80,110,210,443"
Вообщето multiport поддерживает. кажись максимум 15 портов. Что будете делать когда потребуется больше?
Код: Выделить всё
$IPT -P OUTPUT DROP
Мазохизм чистейшей воды . Если Вас поломают - то откроют все что угодно Лучше ставьте софт по поиску руткитов Вводом DROP на OUTPUT Вы сами сделали себе лишние проблемы
Код: Выделить всё
-j ULOG
А это зачем? У Вас стоит прога которая это принимает? Так, на всякий пожарный http://www.opennet.ru/docs/RUS/iptables/#ULOGTARGET
Защита от редиректа icmp по умолчанию встроена в ядре.
Код: Выделить всё
$IPT -A INPUT -p icmp -m icmp -i $INET_IFACE --icmp-type parameter-problem -j ACCEPT
-m icmp писать не надо, это работает автоматом.
Код: Выделить всё
$IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 6000:6063 -j DROP --syn
Наверное надо так
Код: Выделить всё
$IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 6000:6063 --syn -j DROP
Просто красивше выглядит Ну вообще, -j и их параметры обычно пишут в конце, то что -j не относится надо писать раньше.
Успехов.
Re: Настройка iptables для начинающих.
Не знаю как Морда. Я такую цель не ставлю =) Так, основные функции, которые пишишь постоянно. Согласись глупо писать несолько раз одно и то же =) Проще , что то удалить.
BigKAA писал(а): ↑12.12.2005 18:36Код: Выделить всё
OPENPORTS="20,21,25,23,43,70,79,80,110,210,443"
Вообщето multiport поддерживает. кажись максимум 15 портов. Что будете делать когда потребуется больше?
Ну я думаю, что придумать , что то можно =)
А так спасибо =)
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Re: Настройка iptables для начинающих.
пишу на всякий пожарный, настройка протстого шлюза =)
Пост чуть ниже
Пост чуть ниже
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Re: Настройка iptables для начинающих.
TuLiss писал(а): ↑28.12.2005 02:33пишу на всякий пожарный, настройка протстого шлюза =)
# iptables -F INPUT
# iptables -A INPUT -m state -state EASTABLISHED,RELATED -j ACCEPT
# iptables -A INPUT -i lo -j ACCEPT
# iptables -P INPUT DROP
# iptables -F FORWARD
# iptables -P FORWARD ACCEPT
# iptables -t nat -F
# iptables -t nat -A POSTROUTING -o <внешний интерфей> -j SNAT to <внешний IP>
Если ip динамический то
# iptables -t nat -A POSTROUTING -o <внешний интерфейс> -j MASQUERADE
Ну и еще
modprobe ip_nat_ftp
чтобы у людей ftp работал ^_^
Re: Настройка iptables для начинающих.
BigKAA писал(а): ↑12.12.2005 18:36Код: Выделить всё
-j ULOG
А это зачем? У Вас стоит прога которая это принимает? Так, на всякий пожарный http://www.opennet.ru/docs/RUS/iptables/#ULOGTARGET
Код: Выделить всё
$IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 6000:6063 -j DROP --syn
Наверное надо так
Код: Выделить всё
$IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 6000:6063 --syn -j DROP
Просто красивше выглядит Ну вообще, -j и их параметры обычно пишут в конце, то что -j не относится надо писать раньше.
ULOG ну кому надо тот поставить, кому не надо не будет раскоментировать или удалит
по поводу второго правильно писать первый вариант =)
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Re: Настройка iptables для начинающих.
Да... Меня не хватило, чтобы это всё дочитать <_< Тут чего-то тема такая большая :o
Но, просмотрев мельком, я заметил, что не было упоминания о патче Patch-O-Matic. А ведь он много чего умеет... IMHO, в том числе и те функции(2 дня назад поставил, кстати, себе), которые вы пытаетесь релизовать.
Но, просмотрев мельком, я заметил, что не было упоминания о патче Patch-O-Matic. А ведь он много чего умеет... IMHO, в том числе и те функции(2 дня назад поставил, кстати, себе), которые вы пытаетесь релизовать.
Gentoo Linux 2006.0 from Stage3-Pentium4 on Intel Celeron 2.1 Ghz, 512M RAM, NV GeForce 5200FX
Re: Настройка iptables для начинающих.
Выше была идея учёта трафика с помощью IPTABLES. Выкладываю интересную программу, которая поможет в этом деле.
Gentoo Linux 2006.0 from Stage3-Pentium4 on Intel Celeron 2.1 Ghz, 512M RAM, NV GeForce 5200FX
Re: Настройка iptables для начинающих.
пишу на всякий пожарный, настройка протстого шлюза =)
# iptables -F INPUT
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A INPUT -i lo -j ACCEPT
# iptables -P INPUT DROP
# iptables -F FORWARD
# iptables -P FORWARD ACCEPT
# iptables -t nat -F
# iptables -t nat -A POSTROUTING -o <внешний интерфей> -j SNAT -to-source <внешний IP>
Если ip динамический то
# iptables -t nat -A POSTROUTING -o <внешний интерфейс> -j MASQUERADE
Пример:
eth0 - интернет
IPTABLES -t nat -A POSTROUTING -o eth0 -j SNAT --to-source <ваш ip в мир>
Если ip динамический то:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
или
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
Если делаете прозрачный прокси то:
при условии, что у вас установлен и настроин прокси сервер, например squid
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A PREROUTING -p tcp --dport 21 -j REDIRECT --to-ports 3128
Разрешить доступ всем к определенным сайтам:
iptables -t nat -A POSTROUTING -o eth0 -d mail.ru -j MASQUERADE
Разрешить определенному ip доступ к интенету:
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.1 -j MASQUERADE
-------------------------------------------------
Так же нужны модули:
modprobe :
ip_nat
ip_nat_ftp
ip_nat_irc
ip_conntrack
ip_conntrack_ftp
ip_conntrack_irc
# iptables -F INPUT
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A INPUT -i lo -j ACCEPT
# iptables -P INPUT DROP
# iptables -F FORWARD
# iptables -P FORWARD ACCEPT
# iptables -t nat -F
# iptables -t nat -A POSTROUTING -o <внешний интерфей> -j SNAT -to-source <внешний IP>
Если ip динамический то
# iptables -t nat -A POSTROUTING -o <внешний интерфейс> -j MASQUERADE
Пример:
eth0 - интернет
IPTABLES -t nat -A POSTROUTING -o eth0 -j SNAT --to-source <ваш ip в мир>
Если ip динамический то:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
или
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
Если делаете прозрачный прокси то:
при условии, что у вас установлен и настроин прокси сервер, например squid
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A PREROUTING -p tcp --dport 21 -j REDIRECT --to-ports 3128
Разрешить доступ всем к определенным сайтам:
iptables -t nat -A POSTROUTING -o eth0 -d mail.ru -j MASQUERADE
Разрешить определенному ip доступ к интенету:
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.1 -j MASQUERADE
-------------------------------------------------
Так же нужны модули:
modprobe :
ip_nat
ip_nat_ftp
ip_nat_irc
ip_conntrack
ip_conntrack_ftp
ip_conntrack_irc
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Re: Настройка iptables для начинающих.
Спасибо вам за вашу работу, но у меня маленькая проблема- хоть убей не могу разрешить соединение к фтп серверу...
p.s Скрипт использованный мною прилагается...
p.s Скрипт использованный мною прилагается...
Re: Настройка iptables для начинающих.
от serg_sk правила к samba
-A INPUT -p udp -m udp --dport 137:138 -j ACCEPT
-A INPUT -p udp -m udp --sport 137:138 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 139 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 445 -j ACCEPT
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Re: Настройка iptables для начинающих.
Так же нужны модули:
modprobe :
ip_nat - НЕТУ
ip_nat_ftp - НЕТУ
ip_nat_irc - НЕТУ
Что надо исправить что б они были ?
Debian, kernel - 2.6.16.18
modprobe :
ip_nat - НЕТУ
ip_nat_ftp - НЕТУ
ip_nat_irc - НЕТУ
Что надо исправить что б они были ?
Debian, kernel - 2.6.16.18
Debian GNU/Linux 4.0
Registered User # 410887
Registered User # 410887
Re: Настройка iptables для начинающих.
пересобрать ядро с их поддержкой.
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Re: Настройка iptables для начинающих.
а подскажите как они в настройках называются, у меня вроде все собрано.
Debian GNU/Linux 4.0
Registered User # 410887
Registered User # 410887
Re: Настройка iptables для начинающих.
Помогите с анонимным фтп (vsftpd)
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
Нивкакую не хочет пускать на фтп.
ps: если iptables выключить то все ок.
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
Нивкакую не хочет пускать на фтп.
ps: если iptables выключить то все ок.
Счастливый обладатель трусов с пингвином. Линуксцентр отдыхает. Китайская промышленность заботиться о нас...
- serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
- Контактная информация:
Re: Настройка iptables для начинающих.
Весь список правил желателен. Ведь не факт, что цепочка RH-Firewall-1-INPUT вообще получает управление.
P.S.: и вообще - нужно вставлять правило для логирования необработанных пакетов в конце цепочек или же перед дропанием пакетов. Тогда всё сразу будет видно.
Re: Настройка iptables для начинающих.
Счастливый обладатель трусов с пингвином. Линуксцентр отдыхает. Китайская промышленность заботиться о нас...
- serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
- Контактная информация:
Re: Настройка iptables для начинающих.
Проще всего будеть перед "-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited" запихнуть "-A RH-Firewall-1-INPUT -j LOG --log-prefix REJECTED:" и сделать попытку коннекта к серверу.
Кстати, если не ошибаюсь, то на 20 порт не нужно разрешать входящие соединения, при работающем модуле трассировщика пакетов, 20 будет обработан целью ACCEPT как пакет в состоянии RELATED.
Кстати, если не ошибаюсь, то на 20 порт не нужно разрешать входящие соединения, при работающем модуле трассировщика пакетов, 20 будет обработан целью ACCEPT как пакет в состоянии RELATED.
Re: Настройка iptables для начинающих.
Насчёт ULOG
Как вы проверяете логи? ULOG записывает в MySQL IP адрес в виде числа, а не стоки. Оно, конечно, компактнее, но мысль о калькуляторе не вдохновляет
добавлено:
Уже нашёл ответ. Можно и в виде строки. Извините, невнимательно читал докуменацию
добавлено:
Нашёл, да не то. Только если ulogd или specter были скомпилированы с опцией --with-mysql-log-ip-as-string
Пересобирать вручную лень, да и непонятно: раз в большинстве дистрибутивов собирают без этой опции, значит имеется более-менее удобный инструмент для просмотра этих таблиц???
добавлено:
нашёл ответ на похожий вопрос в листе рассылки.
Как вы проверяете логи? ULOG записывает в MySQL IP адрес в виде числа, а не стоки. Оно, конечно, компактнее, но мысль о калькуляторе не вдохновляет
добавлено:
Уже нашёл ответ. Можно и в виде строки. Извините, невнимательно читал докуменацию
добавлено:
Нашёл, да не то. Только если ulogd или specter были скомпилированы с опцией --with-mysql-log-ip-as-string
Пересобирать вручную лень, да и непонятно: раз в большинстве дистрибутивов собирают без этой опции, значит имеется более-менее удобный инструмент для просмотра этих таблиц???
добавлено:
нашёл ответ на похожий вопрос в листе рассылки.
Re: Настройка iptables для начинающих.
Внесу свои пять копеек. Насчёт загрузки модулей: взял код из скрипта инициализации acpid и слегка его подправил. Заранее прошу прощения за мой английский
в секции объявления переменных:
собственно процедура загрузки модулей. передаваемый параметр - строка из имён модулей (без расширений), разделённых пробелами
вызов процедуры:
результат:
нафи зачем это вообще было нужно?
1) автозагрузка модулей (теоретически) может быть выключена
2) вывод Starting firewall...done не прерывается сообщениями о загрузке модулей
в секции объявления переменных:
Код: Выделить всё
LSMOD="/sbin/lsmod"
# iptables modules which will be loaded at start of this script
LOADMOD="ip_tables ip_conntrack iptable_filter iptable_mangle iptable_nat ipt_multiport"
собственно процедура загрузки модулей. передаваемый параметр - строка из имён модулей (без расширений), разделённых пробелами
Код: Выделить всё
# this procedure was founded in acpid initialization script. I done insignificant changes
load_modules()
{
MODULES=$1
AUTOLOADED=`$LSMOD | awk '!/Module/ {print $1}'`
LOC1="/lib/modules/`uname -r`/kernel/net/ipv4/netfilter"
LOC2="/lib/modules/`uname -r`/kernel/net/ipv6/netfilter"
if [ -d "$LOC1" ] || [ -d $LOC2 ]; then
MODAVAIL=`( find $LOC1 $LOC2 -type f -name "*.o" -printf "basename %f .o\n"; \
find $LOC1 $LOC2 -type f -name "*.ko" -printf "basename %f .ko\n" ) | /bin/sh`
else
MODAVAIL=""
fi
if [ "$MODULES" = "all" ]; then
MODULES="$MODAVAIL"
fi
if [ -n "$MODULES" ]; then
echo "Loading iptables modules"
for mod in $MODULES; do
echo $MODAVAIL | grep -q -w "$mod" || continue
echo " $mod"
echo $AUTOLOADED | grep -q -w "$mod" || modprobe $mod || /bin/true
done
fi
}
вызов процедуры:
Код: Выделить всё
[ -f /proc/modules ] && load_modules "$LOADMOD"
результат:
Код: Выделить всё
root@panzer:~# /etc/init.d/firewall.sh start
Loading iptables modules
ip_tables
ip_conntrack
iptable_filter
iptable_mangle
iptable_nat
ipt_multiport
Starting firewall...done
нафи зачем это вообще было нужно?
1) автозагрузка модулей (теоретически) может быть выключена
2) вывод Starting firewall...done не прерывается сообщениями о загрузке модулей
Re: Настройка iptables для начинающих.
а может кто подскажет как соединения, поступающие на определенный порт перекинуть на другой IP и порт?
Re: Настройка iptables для начинающих.
Что в этот конфиг вписать http://89.186.244.200/iptables.txt
чтобы сделать ограничения коннектов к 80 порту или eth0 ( ограничить одновременных коннектов с одного IP ) ?
что только не пробовал не получается
знаю что за это отвечает connlimit
чтобы сделать ограничения коннектов к 80 порту или eth0 ( ограничить одновременных коннектов с одного IP ) ?
что только не пробовал не получается
знаю что за это отвечает connlimit
Re: Настройка iptables для начинающих.
проброс и одновременная подмена порта из внешнего мира на внутреннюю машину.
$EXT_IP - внешний ip роутера
$EXT_PORT - номер порта, по которому будет обращение из внешнего мира
$EXT_ETH - внешний интерфейс роутера (напр. eth0)
$INN_IP - внутренний ip машины, на которую пробрасывается порт
$INN_PORT - номер порта на внутренней машине
$INN_ETH - внутренний интерфейс роутера (напр. eth1)
вот, собственно, одно правило (если политика forward по умолчанию - accept):
iptables -t nat -A PREROUTING -p tcp -d $EXT_IP --dport $EXT_PORT -j DNAT --to-dest $INN_IP:$INN_PORT
если политика forward по умолчанию - drop, то надо "провести" пакеты через forward:
iptables -A FORWARD -i $INN_ETH -s $INN_IP -p tcp --sport $INN_PORT -j ACCEPT
iptables -A FORWARD -i $EXT_ETH -d $INN_IP -p tcp --dport $INN_PORT -j ACCEPT
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
kernel 4.2
chmod -x `which chmod`
War, war never changes...