Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» Firewall *nix: iptables, ipfw, pf etc...

Автор: seosib
Дата сообщения: 06.03.2011 18:48
Alukardd
а я как-то подругому все сделал..

На второй сетевухе прописал

ip 192.168.0.1
netmask: 255.255.255.0

На втором компе

ip 192.168.0.2
netmask 255.255.255.0
gateway: 192.168.0.1

dns1: 195.189.239.5
dns2: 195.189.238.68

Дальше установил Firestarter, настроил его и интернет появился на втором компе.

Не знаю насколько все правильно сделал, но интернет есть

Автор: Alukardd
Дата сообщения: 06.03.2011 20:17
seosib
не видел в глаза Firestarter, да и не сдался он мне... Зачем использовать GUI, если можно ручками без особых проблем.
Настроили и хорошо.

p.s. можете глянуть iptables -vnL и iptables -t nat -vnL и увидите во что их превратил Firestarter.
Автор: ASE_DAG
Дата сообщения: 06.03.2011 20:46
Alukardd
> можете глянуть iptables -vnL и iptables -t nat -vnL и увидите во что их превратил Firestarter.

Афайк, Файрстартер — не фронтенд к ай-пи-тэйблз. Это демон, который работает с нетфильтром напрямую.
Автор: Alukardd
Дата сообщения: 06.03.2011 21:30
ASE_DAG
оО... косяк...
он просто на глазах поднимается... И что они получили хоть какой-то бонусный функционал по сравнению с iptables?
Автор: ASE_DAG
Дата сообщения: 06.03.2011 22:49
Alukardd
Не знаю, я его тоже никогда не пробовал, поскольку узнал, что он не дружит (не дружил?) с мультикастом.

Но это, насколько я знаю, конкурент не только ай-пи-тэйблзу, это такое комплексное решение: там и монитор сетевой активности, и интерфейс к DHCP-серверу, и еще чего-то.

Добавлено:
> он просто на глазах поднимается
Кто?
Автор: seosib
Дата сообщения: 07.03.2011 10:05

Цитата:
не видел в глаза Firestarter, да и не сдался он мне... Зачем использовать GUI, если можно ручками без особых проблем.
Настроили и хорошо.

p.s. можете глянуть iptables -vnL и iptables -t nat -vnL и увидите во что их превратил Firestarter.

Да я ж пока не бум бум в линуксе. Вот освоюсь, почитаю мануалы, начну сильней вникать, тогда уж и буду делать все как надо. А пока мне срочно нужно было передать интернет второму компу. Пусть пока будет так..


Автор: darksidedemon88
Дата сообщения: 13.03.2011 10:25
Требуется обеспечит доступ из одной подсети в другую (из 192.168.0.0 в 10.107.1.0 и обратно).
Имеется:
Сервер с Ubuntu server 10.10
eth0 - 10.107.1.10
eth1 - 192.168.0.222

Пробовал делать такие правила
iptables -A POSTROUTING -t nat -s 192.168.0.222 -j SNAT --to 10.107.1.10
iptables -A PREROUTING -t nat -d 10.107.1.10 -j DNAT --to 192.168.0.222

пинг с сервера до клиента в подсети 192.168.0.0 есть и пинг до клинта из 10.107.1.0 тоже есть, а с 10.107.1.0 до 192.168.0.0 пинг не доходит.

попробовал другой вариант
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/255.255.255.0 -j MASQUERADE
пинги пошли, по сети общий доступ есть, но программы Гарант и Консультант не запускаются, вернее запускаются если у клиента 192.168.0.0 прописать DNS сервер из сети 10.107.1.0 (DNS 10.107.1.100)
Автор: urodliv
Дата сообщения: 13.03.2011 10:37
Если обе эти сети управляются вами, то вам должно хватить этого:

Код: echo 1 > /proc/sys/net/ipv4/ip_forward
Автор: darksidedemon88
Дата сообщения: 13.03.2011 12:42
urodliv
сеть 192.168.0.0 не моя, я в нее раздаю только программы Гарант и Консультант.


Цитата:
iptables -A POSTROUTING -t nat -s 192.168.0.222 -j SNAT --to 10.107.1.10  
iptables -A PREROUTING -t nat -d 10.107.1.10 -j DNAT --to 192.168.0.222

это убрал


Цитата:
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/255.255.255.0 -j MASQUERADE

это оставил вроде работает
Автор: darksidedemon88
Дата сообщения: 14.03.2011 11:49
теперь из сети 192.168.0.0 доступ в 10.107.1.0 есть, но нужно чтобы доступ был только к одному IP 10.107.1.102 и на конкретные порты


сервер гарант шлюз Ubuntu клиент
10.107.1.102[:3600-3609] <-eth0(10.107.1.10)---eth1(192.168.0.222)-> 192.168.0.0[:5051]
Автор: urodliv
Дата сообщения: 14.03.2011 18:47
darksidedemon88

Код: sudo iptables -A FORWARD -p tcp -s 192.168.0.0/24 -d 10.107.1.102 -m multiport --dports 3600:3609 -j ACCEPT
sudo iptables -A FORWARD -p tcp -d 192.168.0.0/24 -s 10.107.1.102 -m multiport --sports 3600:3609 -j ACCEPT
Автор: BW4ever
Дата сообщения: 20.03.2011 21:27
Помогите пожалуйста настроить роутер(linux,iproute2)

Почему iproute2 - далее нужно будет шейпить весь траффик на интерфейсах, а под linux вроде альтернатив нет.

Есть 2 внешних подсети, выданные провайдером:
70.70.85.0/30 со шлюзом 70.70.85.1
70.70.85.48/29 с прописанным маршрутом в эту подсеть через 70.70.85.2
(первые 2 байта всех адресов от балды)

нужно настроить маршрутизатор с dmz.
конфигурация карт на компьютере:

eth0 - wan интерфейс, адрес 70.70.85.2/30, шлюз 70.70.85.1
eth1 - dmz интерфейс, адрес 70.70.85.49/29
eth2 - lan интерфейс, адрес 192.168.8.1/22

Делаю все согласно "Linux Advanced Routing & Traffic Control HOWTO"

echo 200 dmz >> /etc/iproute2/rt_tables; создаю таблицу правил маршрутизации из dmz подсети
ip rule add from 70.70.85.48/29 table dmz; при поиске маршрута из dmz подсети указываю искать маршруты в таблице dmz
ip route add default via 70.70.85.1 dev eth0 table dmz; указываю маршрут в таблице
ip route flush cache; сбрасываю кэш маршрутов.

Итог - destination host unreachable. Как при пинге из dmz наружу, так и снаружи в dmz.
Подскажите, в какую сторону копать?

upd. По совету из ранее созданной темы действительно, забыл включить роутинг. Завтра попробую включить и выложу трейс снаружи и изнутри, и правила iptables, как там просили. Только не понял, какие политики имелись в виду. Если selinux, то он выключен.
Автор: Alukardd
Дата сообщения: 20.03.2011 23:34
BW4ever
Покажите что вы сейчас имеете: ip r s

p.s. надеюсь вы читали пост tankistua
Автор: BW4ever
Дата сообщения: 20.03.2011 23:59

Цитата:
ip r s

Имеется ввиду инф. об ip адресах, таблице маршрутизации и(что такое s?)? Завтра выложу, как приду на работу.

Цитата:
надеюсь вы читали пост tankistua

Читал. Если сделать маршрутизацию стандартными средствами (route add) получится ли потом ограничивать полосу по определенным адресам\сетям посредством tc из пакета iproute2?
Автор: nibbl
Дата сообщения: 06.04.2011 09:24
Добрый день помогите плиз с одной задачкой:

Для начала опишу пациента, стоит freebsd 8.2, nat,ipfw,squid,sarg,apache2.2

У меня поднят апач, так вот сейчас у меня там есть хосты на котором весит pma, vnstat и sqstat
Так вот, когда фаервол прокускает все пакеты (т.е. когда он открыт) хосты все работают идиально, но как только я вырубаю правило которое разрешает все он сразу выдает ошибку:
ERROR
The requested URL could not be retrieved

While trying to retrieve the URL: http://192.168.xx.xx/vnstat/

The following error was encountered:

Connection to Failed

The system returned:

(13) Permission denied

The remote host or network may be down. Please try the request again.

Your cache administrator is webmaster.
Generated Tue, 05 Apr 2011 06:20:22 GMT by (squid/2.7.STABLE9)

В чем может быть засада?

Добавлено:
Вот что пишет в логи сквида

1301985665.030 102 192.168.0.75 TCP_MISS/504 1353 GET http://192.168.0.254/vnstat/ - DIRECT/- text/html
1301985666.103 101 192.168.0.75 TCP_MISS/504 1353 GET http://192.168.0.254/vnstat/ - DIRECT/- text/html
1301985682.754 101 192.168.0.75 TCP_MISS/504 1353 GET http://192.168.0.254/vnstat/ - DIRECT/- text/html
1301986781.567 101 192.168.0.75 TCP_MISS/504 1353 GET http://192.168.0.254/vnstat/ - DIRECT/- text/html
1301986828.801 3 192.168.0.75 TCP_MISS/200 3021 GET http://192.168.0.254/vnstat/ - DIRECT/192.168.20.48 text/html
1301986828.912 0 192.168.0.75 TCP_REFRESH_HIT/304 227 GET http://192.168.0.254/vnstat/themes/light/style.css - DIRECT/192.168.20.48 -
1301986831.952 3 192.168.0.75 TCP_MISS/200 3021 GET http://192.168.20.48/vnstat/ - DIRECT/192.168.20.48 text/html
1301986833.983 10 192.168.0.75 TCP_REFRESH_HIT/304 227 GET http://192.168.0.254/vnstat/themes/light/style.css - DIRECT/192.168.20.48 -
1301986840.491 3 192.168.0.75 TCP_MISS/200 3021 GET http://192.168.20.48/vnstat/ - DIRECT/192.168.20.48 text/html


Решил проблему если это так можно назвать, просто порт в apache указал не 80 а другой и открыл его в ipfw и все заработало, но это же не правильно. Но хотя бы уже понятно что может быть проблема в nat потому что в нате у меня вот это прописано:
rdr re0 0.0.0.0/0 port 80 -> 127.0.0.1 port 3128 tcp
т.е. он редиректит все что идет на 80 и перенаправляет на 3128 поэтому тут надо либо какое то правильно (хотя бы для одного хоста который бы запрещал редиректить) либо в сквиде что то не хватает......

Кто что думает?
Автор: petyp
Дата сообщения: 10.04.2011 12:05
Всем привет, подскажите как правильно написать правило в ipfw:
1) что бы при попытке подконектиться на этот порт ipfw блочил гада
2) как подлючить на определенные порты (когда на них кто то стучится) все заносилось в лог.
Заранее спасибо!!!!
Автор: DrakonHaSh
Дата сообщения: 10.04.2011 12:13
а можно ли чтобы при внешнем подключении на порт (кроме строго определенного списка портов) уходило письмо админу с информацией об этом событии ?
Автор: Alukardd
Дата сообщения: 10.04.2011 15:01
DrakonHaSh
Цитата:
а можно ли чтобы при внешнем подключении на порт (кроме строго определенного списка портов) уходило письмо админу с информацией об этом событии ?
думаю такого не существует, хоть организовать это не сложно, например суточный отчет по подключению к левым портам и т.п. Возможно данный функционал имеется в различных системах мониторинга и контроля логов. Но и самому написать такое не сложно, даже с онлайн уведомлением.
Автор: vlary
Дата сообщения: 10.04.2011 15:16
DrakonHaSh Не проще ли просто закрыть фаерволом доступ всюду, кроме строго определенного списка портов?
Автор: walerchik
Дата сообщения: 10.04.2011 17:51
DrakonHaSh
Откройте для себя программку DenyHosts - написана на Питоне, блокирует по ip-адресу атакующего, с автоматическим занесением в файл hosts.deny.
Автор: Alukardd
Дата сообщения: 10.04.2011 18:09
walerchik
Цитата:
DenyHosts
ну тогда не стоит забывать о более известной утилите - fail2ban.
Автор: DrakonHaSh
Дата сообщения: 10.04.2011 18:50
Alukardd
спасибо за ответ.

vlary
walerchik
вам спасибо за попытку помочь, но я спрашивал именно о том, о чем спрашивал.

за DenyHosts и fail2ban тоже отдельно спасибо - полезный софт, не знал про них. но они работают по иному принципу - по принципу отслеживания логов, причем они срабатывают только на брутфорс и К. (хотя возможно напильником их и можно приспособить под мои нужды)
я же хотел иметь возможность узнавать через email о несанкционированных подключениях (даже однократных). [хакер влез на сервер через дыру в скрипте, получил права апача, залил netcat, открыл им на серваке порт и подключился к нему дабы юзать консоль - а мне письмецо сразу я быстренько на сервак и давай подглядывать за хакером - откуда влез, что и как пытается сделать - и про дыру в скриптах узнаю и хакерские повадки подсмотрю )) ]
Автор: Alukardd
Дата сообщения: 10.04.2011 19:01
DrakonHaSh
В таком случае, лучше что бы логи хранились на другой машине и сливались туда в онлайн режиме через snmp, например, иначе ни черта вы не получите на мыло, ибо нормальные люди чистят логи за собой.

Вот почитайте про RSyslog - это то что вам нужно. (если будут вопросы по данной программе, то прошу с ними в соответствующую тему)
Автор: DrakonHaSh
Дата сообщения: 10.04.2011 19:10
Alukardd

Цитата:
ибо нормальные люди чистят логи за собой.

чтобы чистить логи нужены права рута, а не апача. права рута на нормально настроенной и обновляемой системе получить очень проблематично


Цитата:
Вот почитайте про RSyslog - это то что вам нужно.

нет, это не то, что мне нужно, но за инфу спасибо - изучу.

в принципе, я по вашим словам понял, что средствами сабжей топика моя задача напрямую не решается. за инфу по косвенным способам спасибо.
Автор: Alukardd
Дата сообщения: 10.04.2011 19:16

Цитата:
в принципе, я по вашим словам понял, что средствами сабжей топика моя задача напрямую не решается
это UNIX-way -
Цитата:
каждая программа(модуль) должна выполнять только одну задачу, но делать это максимально хорошо
Автор: daimonp
Дата сообщения: 25.04.2011 08:52
У меня была ситуация с нетбуками и модемами - был выдан VPN пул адресов - на другие неходило. Было вылечено с помощью установки MPD на сервер и маскарадинга. ИМХО - можно через mpd адрес присвоить из любой сети - как тебе удобно будет.
Автор: SpicS
Дата сообщения: 11.06.2011 13:01
ребят кто знает как завернуть трафик риходящий с нета в нат?


Код: #!/bin/sh

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

FwCMD="/sbin/ipfw" # собственно где лежит бинарник ipfw
LanOut="alc0" # внешний интерфейс
LanIn="ste0" # внутренний интерфейс
IpOut="*.*.*.*" # внешний IP адрес машины
IpIn="192.168.1.199" # внутренний IP машины
NetMask="24" # маска сети (если она разная для внешней
# и внутренней сети - придётся вводить ещё
# одну переменную, но самое забавное, что
# можно и забить - оставить 24 - всё будет
# работать, по крайней мере я пробовал -
# работаало на 4-х машинах, в разных сетях,
# с разными масками - настоящими разными! но -
# это неправильно.)
NetIn="192.168.1.0" # Внутренняя сеть

# Сбрасываем все правила:
${FwCMD} -f flush

# Проверяем - соответствует ли пакет динамическим правилам:
${FwCMD} add check-state

# Разрешаем весь траффик по внутреннему интерфейсу (петле)
${FwCMD} add allow ip from any to any via lo0
# рубим попытки lo0 куда-то лезть и откуда-то лезть на lo0
${FwCMD} add deny ip from any to 127.0.0.0/8
${FwCMD} add deny ip from 127.0.0.0/8 to any

# Вводим запреты:
# режем частные сети на внешнем интерфейсе - по легенде он у нас
# смотрит в интернет, а значит пакетам этим браться неоткуда на нём.
# рубим частные сeти

${FwCMD} add deny ip from any to 10.0.0.0/8 in via ${LanOut}
${FwCMD} add deny ip from any to 172.16.0.0/12 in via ${LanOut}
${FwCMD} add deny ip from any to 192.168.0.0/16 in via ${LanOut}
${FwCMD} add deny ip from any to 0.0.0.0/8 in via ${LanOut}

# рубим автоконфигуреную частную сеть
${FwCMD} add deny ip from any to 169.254.0.0/16 in via ${LanOut}

# рубаем мультикастовые рассылки
${FwCMD} add deny ip from any to 240.0.0.0/4 in via ${LanOut}

# рубим фрагментированные icmp
${FwCMD} add deny icmp from any to any frag

# рубим широковещательные icmp на внешнем интерфейсе
${FwCMD} add deny log icmp from any to 255.255.255.255 in via ${LanOut}
${FwCMD} add deny log icmp from any to 255.255.255.255 out via ${LanOut}

# разрешаем все установленные соединения (если они установились -
# значит по каким-то правилам они проходили.)
${FwCMD} add allow tcp from any to any established

# разрешаем весь исходящий траффик (серверу-то в инет можно? )
${FwCMD} add allow ip from ${IpOut} to any out xmit ${LanOut}

# разрешаем DNS снаружи (нам же надо узнавать IP по именам машин?)
${FwCMD} add allow udp from any 53 to any via ${LanOut}
${FwCMD} add allow udp from any to any 53 via ${LanOut}

# разрешаем UDP (для синхронизации времени - 123 порт)
${FwCMD} add allow udp from any to any 123 via ${LanOut}



# разрешаем некоторые типы ICMP траффика - эхо-запрос,
# эхо-ответ и время жизни пакета истекло
${FwCMD} add allow icmp from any to any icmptypes 0,8,11

# открываем снаружи 22 порт - если надо будет ходить на машину по ssh
${FwCMD} add allow tcp from any to ${IpOut} 22 via ${LanOut}

# разрешаем весь tcp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add allow tcp from any to any via ${LanIn}
# разрешаем весь udp траффик внутри локалки (на внутреннем интерфейсе)

${FwCMD} add allow udp from any to any via ${LanIn}

# разрешаем весь icmp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add allow icmp from any to any via ${LanIn}


# а тут собственно файрволл и начался:
# настройка ната.
${FwCMD} nat 1 config log if ${LanIn} reset same_ports deny_in redirect_port tcp *.*.*.*:6881 6881 redirect_port udp *.*.*.*:4444 4444 redirect_port tcp *.*.*.*:25 25

# заварачиваем все что проходит через внешний интерфейс в нат
${FwCMD} add 10130 nat 1 ip from any to any via ${LanOut}

${FwCMD} add pipe 1 ip from ${IpOut} to ${NetIn}/${NetMask}
${FwCMD} pipe 1 config bw 100Mbit/s

${FwCMD} add pipe 2 ip from ${IpIn} to ${NetIn}/${NetMask}
${FwCMD} pipe 2 config bw 100Mbit/s

# `спецтруба` для мелкиз пакетов типа ack - ибо если они теряются
# то повторные пакеты будут большего размера
${FwCMD} add pipe 3 ip from any to any tcpflags ack iplen 0-128
${FwCMD} pipe 3 config bw 100Mbit/s

# Пропускаем следующие трубы - чтобы мелкие пакеты не лимитировались
# пропускать надо до первого нормального (после труб) правила.
# я ему присвоил жёсткий номер - файрволл раздаёт номера с последнего правила
# (если номер жёстко не задан) с интервалом определяемым переменной sysctl
# net.inet.ip.fw.autoinc_step - по дефолту - 100
${FwCMD} add skipto 39999 ip from any to any tcpflags ack iplen 0-128

# запускаем счётчик
i=4
# цикл по $i
while [ $i != 252 ]
do
# добавляем трубу для IP адреса
${FwCMD} add pipe $i ip from not ${NetIn}/${NetMask} to 192.168.1.${i}
# проверяем - часом не мой ли это IP
if [ $i -eq 13 -o $i -eq 222 ]
then
# мой инет ))
${FwCMD} pipe $i config bw 100Mbit/s
else
# не мой IP - режем скорость
${FwCMD} pipe $i config bw 64000bit/s
fi
# увеличиваем $i на единичку
i=$(($i+1))
done

# проверяем временные правила (перед этим правилом возврщаются мелкие
# пакеты в файрволл) :
${FwCMD} add 40000 check-state

# боимся непонятного
${FwCMD} add 65534 deny all from any to any
Автор: DJs3000
Дата сообщения: 23.06.2011 12:41
вопрос по iptables
-P INPUT DROP можно повесить только на какой-то определённый интерфейс?
Автор: Ruza
Дата сообщения: 23.06.2011 12:53
DJs3000
-P INPUT нет - это общая политика цепочки.
Но правильнее будет выглядеть если уж на то пошло разрешающее правило для конкретного интерфейса при общем DROP'е:
iptables -A INPUT -i eth123 -j ACCEPT
Автор: DJs3000
Дата сообщения: 23.06.2011 15:03
Благодарю за подсказку=)
Еще не совсем мне понятно почему когда открываю порт:
-A INPUT -i eth1 -p udp --dport 28003 -j ACCEPT
то пишу dpot а не sport? с sport не получается))) или нужно писать и то и другое?

Страницы: 123456789101112131415

Предыдущая тема: Как подключиться по RDP к 2000 серверу - к локальной сессии?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.