Ну вы заметите по тому что у вас что то не будет работать из за того что фаервол блочит, а так
ifconfig -a ip a
Ну интерактивно в терминале это понятно. А вот как в скриптах это обработать ?
Настоятельно просим вас при общении соблюдать Правила форума и законы РФ. Наша тематика вне политики, поэтому воздержитесь от обсуждения ситуации на Украине и связанных с ней событий, независимо от того, какую сторону вы поддерживаете.
Также напоминаем, что наш форум находится в доменной зоне .ru, физически расположен на российских серверах и мы соблюдаем действующее законодательство России. Любые сообщения о политике будут удаляться.
Linux Forum → Администрирование и настройка сетей → iptables
Страницы Назад 1 … 11 12 13 14 15 Далее
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Ну вы заметите по тому что у вас что то не будет работать из за того что фаервол блочит, а так
ifconfig -a ip a
Ну интерактивно в терминале это понятно. А вот как в скриптах это обработать ?
ifconfig eth1 | grep -w inet | awk '{print $2}' | cut -d: -f2или
ifconfig eth1 | grep -w inet | cut -d: -f2 | cut -d' ' -f1user160⇓ пишет:dhcpcd: command not found
В моём дистрибутиве клиентом DHCP подрабатывает dhcpcd, у вас стало быть кто-то другой. Кто? Точнее, как от него получить сведения о конфигурации интерфейса и что он выдаёт?
Ну не знаю, но можно как то так.
Взять этот вывод что вам bormant написал и в скрипте его проверять на соотвествие вашему айпи, который вы получили самый первый. А если он не соответствует ему то как то вам сообщить: отправить смс или как?
Но можно как то более красочно сделать. Например при смене айпишки её поменять в конфиге фаервола и перезапустить последний + сохраник новый айпи в какойто конфиг файл и уже последующие проверки делать с новым айпи.
Вот такой у меня коварный план.
А если он не соответствует ему то как то вам сообщить: отправить смс или как?
Как я понимаю ТС'у нужно, чтобы в этом случае старый ip-адрес в правилах iptables заменился новым.
Зато совсем не понимаю, зачем городить этот огород со скриптами вычисления текущего ip-адреса, вставки его в правила iptables, с регулярной (или по событию) проверкой внезапного изменения ip-адреса, с перезаписью правил iptables для нового ip-адреса. Слишком сложно все это. А если сложно, значит некузяво, хоть и будет работать.
Народ, а есть техника в iptables, позволяющая пакеты пытающиеся приходи/уйти за шлюз/роутер через список запрещенных портов не просто drop-ить, а перед этим записать в лог?
Ясно, что список отправителей получателей надо как-то ограничивать по счётчику, чтобы не переполнить лог.
Как такое реализовать?
Просто добавьте запись в лог по точно тому же условию перед сбросом пакета:
# iptables -A ... -j LOG --log-prefix "..."
# iptables -A ... -j DROP
Просто добавьте запись в лог по точно тому же условию перед сбросом пакета:
# iptables -A ... -j LOG --log-prefix "..."
# iptables -A ... -j DROP
А как сделать ограничение через счётчик? Типа если подряд с одного и того же IP отправителя, то писать в лог только один раз.
Без ограничения, боюсь лог будет быстро переполнен.
man iptables
на предмет lilmit
limit
This module matches at a limited rate using a token bucket filter. A rule using this extension will match until this limit is reached (unless the `!' flag is used). It can be used in combination with the LOG target to give limited logging, for example.
[!] --limit rate[/second|/minute|/hour|/day]
Maximum average matching rate: specified as a number, with an optional `/second', `/minute', `/hour', or `/day' suffix; the default is 3/hour.
--limit-burst number
Maximum initial number of packets to match: this number gets recharged by one every time the limit specified above is not reached, up to this number; the default is 5.
# iptables -A ... -m limit ... -j LOG --log-prefix "..."
man iptables
на предмет lilmit
....
# iptables -A ... -m limit ... -j LOG --log-prefix "..."
Спасибо, но не совсем то. Надо ограничить по условию: писать в лог не более 1 записи по 1 порту от одного IP источника... скажем ...в минуту, Просто по времени не очень информативно.
Добрый день.
Подскажите пожалуйста, нужно ли мне создавать отдельные правила по интерфейсу ppp1 (который по сути использует физический интерфейс eth1), если я использую VPN PPTP для доступа в интернет и если в других правилах, я явно делаю ограничения по именам интерфейсов eth0, eth1?
Нужно. Кроме того, обратите внимание на документацию iptables по MTU, TCPMSS, --clamp-mss-to-pmtu.
Ещё вот эту статью почитайте в дополнение: http://www.opennet.ru/base/net/pppoe_mtu.txt.html
Добрый день.
Подскажите пожалуйста, нужно ли мне создавать отдельные правила по интерфейсу ppp1 (который по сути использует физический интерфейс eth1), если я использую VPN PPTP для доступа в интернет и если в других правилах, я явно делаю ограничения по именам интерфейсов eth0, eth1?
проще использовать подсети как пример -s 192.168.5.0/24
Нужно. Кроме того, обратите внимание на документацию iptables по MTU, TCPMSS, --clamp-mss-to-pmtu.
Ещё вот эту статью почитайте в дополнение: http://www.opennet.ru/base/net/pppoe_mtu.txt.html
Спасибо, очень похоже что проблему PPTP MTU я не принял во внимание
user160 пишет:Добрый день.
Подскажите пожалуйста, нужно ли мне создавать отдельные правила по интерфейсу ppp1...
проще использовать подсети как пример -s 192.168.5.0/24
В моём случае, эта идея не пройдет. Дома будет локалка eth0: 192.168.Х.Х,
через городскую сетку eth1: 10.Х.Х.Х я получаю IP через VPN PPTP ppp1: 81.Х.Х.Х
тут сети не пересекаются.
Нужно. Кроме того, обратите внимание на документацию iptables по MTU, TCPMSS, --clamp-mss-to-pmtu.
Ещё вот эту статью почитайте в дополнение: http://www.opennet.ru/base/net/pppoe_mtu.txt.html
Там по тексту написано
Сделать это можно следующим образом.
Используя pppd: добавить в /etc/ppp/pppoe.conf
CLAMPMSS=1412Но это для pppoe, а в pptp клиенте такое возможно?
У pppoe такая настройка есть, у pptp -- нет, поэтому достигаем желаемого при помощи iptables.
эта идея не пройдет
Пройдёт, правила не требуют обязательного критерия -i/-o, обычно условия в терминах адресов ip (--src/--dst) выглядят вполне удобно.
Народ, доброго всем дня.
Подскажите пожалуйста по iptables.
Есть мысль включить iptables до поднятия интерфеса init-ом.
Но поскольку IP я получаю от провайдера по DHCP, а также доступ в инет через PPTP, то нужно открыть некоторые порты/протокола для этого.
DHCP_SERV1="x.x.x.x"
DHCP_SERV2="x.x.x.x"
DNS_SERVER1="x.x.x.x"
DNS_SERVER2="x.x.x.x"
WIF="eth1"
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
$IPT -A INPUT -i $LOIF -j ACCEPT
$IPT -A OUTPUT -o $LOIF -j ACCEPT
# DHCPDISCOVER
$IPT -A OUTPUT -i $WIF -p UDP -s 0/0 -d 255.255.255.255 --dport 67 -j ACCEPT
# DHCPOFFER от одного из двух IP DHCP сервера
$IPT -A INPUT -i $WIF -p UDP -s $DHCP_SERV1 -d 255.255.255.255 --dport 68 -j ACCEPT
$IPT -A INPUT -i $WIF -p UDP -s $DHCP_SERV2 -d 255.255.255.255 --dport 68 -j ACCEPT
# DNS пакеты
$IPT -A OUTPUT -i $WIF -p UDP -s $DNS_SERVER1 --source-port 53 -j ACCEPT
$IPT -A OUTPUT -i $WIF -p UDP -s $DNS_SERVER2 --source-port 53 -j ACCEPT
$IPT -A INPUT -i $WIF -p UDP -s $DNS_SERVER1 --destination-port 53 -j ACCEPT
$IPT -A INPUT -i $WIF -p UDP -s $DNS_SERVER2 --destination-port 53 -j ACCEPT
#HTTP
$IPT -A INPUT -i $WIF -p tcp --dport 80 -j ACCEPT
$IPT -A OUTPUT -i $WIF -p tcp --dport 80 -j ACCEPT
Промежуточная задача - получить доступ ИНЕТ с консоли. Стоит DEBIAN
Что-то не работает. Как только врубаю iptables, Инет отваливается.
Подскажите, пожалуйста в чём ошибка 
На машине крутится apache + squid.
Активирован нат: iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Хочу завернуть весь трафик прозрачно на squid, но таким образом, что-бы трафик предназначающийся Apache, не заворачивался, но жестко обламываюсь...
# iptables -t nat -A PREROUTING -i eth0 -p tcp -d ! 192.168.10.4 --dport 80 -j REDIRECT --to-port 3128
Bad argument `192.168.10.4'
Try `iptables -h' or 'iptables --help' for more information.Нужен совет гуру 
# uname -a
Linux web 3.2.0-4-686-pae #1 SMP Debian 3.2.41-2 i686 GNU/Linux
# cat /etc/debian_version
7.0# iptables -t nat -A PREROUTING -i eth0 -p tcp -d ! 192.168.10.4 --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth0 -p tcp ! -d 192.168.10.4 --dport 80 -j REDIRECT --to-port 3128
Небольшой вопросик:
Модно ли в файл интерфейсов добавить строчку типа:
Консольpre-up /etc/init.d/iptables
учитывая то, что /etc/init.d/iptables bash скрипт с набором правил
а потом, делая:
update-rc.d some-another-script defaultsполучить варнинги на непонятный файл iptables у которого нет хеадера как у всех остальных кто там лежит..?
Согласен со всем, кроме расположения скрипта, ему бы больше подошло такое: pre-up /etc/network/fw_rules 
Ребята почему у меня правила криво работают. Точнее одно из правил пускает всех с наружки на мой сервер!
И я даже знаю какие строчки за это отвечают:
#Пропускать уже инициорванные, а также их дочерние
iptables -A INPUT -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#Пропускать новые, инициированные, а также их дочерние
iptables -A OUTPUT -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPTВсе советуют пропускать уже иницированные и дочерние пакеты на сервер, но смысл в чем, если открыты все порты.
#nmap -P0 111.222.333.444 Говорит что открыты все порты.
А вот весь простой скрипт:
#!/bin/bash
#Очистка всех цепочек
iptables -F
iptables -F -t nat
iptables -F -t mangle
iptables -X
iptables -X -t nat
iptables -X -t mangle
#Политика по умолчанию - запретить все, что не разрешено
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#Разрешаем обращение к lo интерфейсу
iptables -A INPUT -i lo -p all -j ACCEPT
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A OUTPUT -o lo -p all -j ACCEPT
iptables -A OUTPUT -o eth1 -j ACCEPT
#Пропускать уже инициорванные, а также их дочерние
iptables -A INPUT -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#Пропускать новые, инициированные, а также их дочерние
iptables -A OUTPUT -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#Разрешить пересылку для новых, инициированных, а также их дочерних
iptables -A FORWARD -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#Разрешаем обращение к почтовым, ssh, ftp серверам из нашей локалки
iptables -A FORWARD -i eth1 -o eth0 -s 192.168.50.0/24 -p tcp -m multiport --dports 22,21,25,110,443
#Разрешаем DNS запросы из нашей локальной сети
iptables -A FORWARD -i eth1 -o eth0 -s 192.168.50.0/24 -p udp -m multiport --dports 53
#Разрешаем пинги с внутреннего интерфейса
iptables -A INPUT -i eth1 -p ICMP -j ACCEPT
iptables -A OUTPUT -o eth1 -p ICMP -j ACCEPT
#Настройка NAT и редирект на прокси сервер Squid
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A POSTROUTING -s 192.168.50.2/255.255.255.0 -j SNAT --to-source 10.168.50.45пускает всех с наружки на мой сервер
Через eth1?
Через eth0 - карта которая подключена к провайдеру.
Я понял в чем косяк, не внимательно вписал правило.
Надо было убрать NEW из цепочки INPUT:
#Пропускать уже инициированные, а также их дочерние
iptables -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPTВ общем, я допустил ошибку, добавил туда пропускать "Новые", как раз это давало такой эффект.
AlfaStriker, ну, да, NEW и пропускал.
AlfaStriker, Ничего страшного, не ошибается только тот, кто ничего не делает 
Теперь не получается открыть DNS порт под номером 53:
#Разрешаю доступ по 53 порту к серверу и обратно
#eth0 - внешная карточка
iptables -A INPUT -i eth0 -p udp --dport 53
iptables -A OUTPUT -o eth0 -p udp --sport 53
iptables -A INPUT -i eth0 -p tcp --dport 53
iptables -A OUTPUT -o eth0 -p tcp --sport 53Пытаюсь telnet проверит порт ни чего не получается, он закрыт!
# iptables -n -L -v
Chain INPUT (policy DROP 1260 packets, 76879 bytes)
pkts bytes target prot opt in out source destination
7508 675K ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
3044 221K ACCEPT all -- eth1 * 0.0.0.0/0 0.0.0.0/0
1846 2157K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT icmp -- eth1 * 0.0.0.0/0 0.0.0.0/0
5 272 tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
8 480 tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state NEW,RELATED,ESTABLISHED
0 0 tcp -- eth1 eth0 10.168.50.0/24 0.0.0.0/0 multiport dports 22,21,25,53,110,143,443
Chain OUTPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
7508 675K ACCEPT all -- * lo 0.0.0.0/0 0.0.0.0/0
3791 529K ACCEPT all -- * eth1 0.0.0.0/0 0.0.0.0/0
1130 93263 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state NEW,RELATED,ESTABLISHED
0 0 ACCEPT icmp -- * eth1 0.0.0.0/0 0.0.0.0/0
0 0 tcp -- * eth0 0.0.0.0/0 0.0.0.0/0 tcp spt:22
0 0 tcp -- * eth0 0.0.0.0/0 0.0.0.0/0 tcp spt:53 #Разрешаю доступ по 53 порту к серверу и обратно
И где Вы там разрешаете? Где -j ACCEPT?
Как узнать закрыты/открыты ли порты 1541 и 1560:1691? А так хотел узнать, в Debian блокируются подключения на определенные порты?
Теперь не получается открыть DNS порт под номером 53:
На сервере должно быть запущено приложение, которое принимает на этот порт соединения.
Как узнать закрыты/открыты ли порты 1541 и 1560:1691? А так хотел узнать, в Debian блокируются подключения на определенные порты?
Обычно сканируют с помощью;
nmap -P0 111.222.333.444 где:
111.222.333.444 - ip адрес сервера.
AlfaStriker⇓ пишет:Теперь не получается открыть DNS порт под номером 53:
На сервере должно быть запущено приложение, которое принимает на этот порт соединения.
Я в курсе, демон был запущен, проблема давно уже решена =)
Страницы Назад 1 … 11 12 13 14 15 Далее
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Linux Forum → Администрирование и настройка сетей → iptables
Форум работает на PunBB, при поддержке Informer Technologies, Inc