Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: anakinn в Nov 02, 2011, 10:19



Титла: iptables
Публикувано от: anakinn в Nov 02, 2011, 10:19
Привет
не мога да си го обесня как трябва да стане.
Имам две физически разделени мрежи
едната уиндоуси с айпита 192.168.10.X i GW /DNS 192.168.10.1
втората също уиндоуси - 192.168.1.X GW/DNS 192.168.1.1
от мрежа две достъпвам приложение от мрежа едно посредством firewall на генту

Как да си разреша rdp ?
от 192.168.1.x към 192.168.10.22 примерно ?

ето скрипта по-надолу

Код
GeSHi (Bash):
  1. EXTERNAL_IP="192.168.1.101"
  2. INTERNAL_IP="192.168.10.5"
  3. TARGET_IP="192.168.10.15"
  4. TARGET_PORT="3050"
  5. EXT_IF="eth0"
  6. INT_IF="eth1"
  7. ANY="0.0.0.0/0"
  8. USERS_FILE="/etc/fw/user_ip.txt"
  9.  
  10.  
  11. # Gives all machines defs
  12. # =======================
  13. if [ -f $USERS_FILE ]; then
  14.   USER_IP=`cat $USERS_FILE`
  15. else
  16.   USER_IP="1.2.3.4|00:00:00:00:00:00"
  17. fi
  18.  
  19. # End all machines defs
  20. # *********************
  21.  
  22. # Flush tables
  23. # ============
  24. iptables -F
  25. iptables -X
  26. iptables -t nat -F
  27.  
  28. # End Flush tables
  29. # ****************
  30.  
  31. # Set Default Policy
  32. # ==================
  33. iptables -P INPUT DROP
  34. iptables -P FORWARD DROP
  35. iptables -P OUTPUT ACCEPT
  36.  
  37. # Innput chain exception
  38. # ======================
  39. iptables -A INPUT -s 192.168.10.0/24 -d 192.168.10.5 -j ACCEPT
  40. iptables -A INPUT -p icmp -d $EXTERNAL_IP --icmp-type echo-request -j ACCEPT
  41. iptables -A INPUT -d 127.0.0.1 -m state --state NEW -j ACCEPT
  42.  
  43. # Add remote administration
  44. iptables -A INPUT -p TCP -s 192.168.1.XX -m mac --mac-source macadresa -d $EXTERNAL_IP --dport 20:22 -j ACCEPT
  45. iptables -A INPUT -p TCP -m mac --mac-source macadresa -d $EXTERNAL_IP --dport 20:22 -j ACCEPT
  46.  
  47. iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  48.  
  49.  


Титла: Re: iptables
Публикувано от: laskov в Nov 02, 2011, 11:39
//офф Странно, защо няма отговори...
*АКО* на това генту *НЯМА* друга мрежова връзка, осигуряваща достъп до Интернет, онова
Цитат
iptables -P FORWARD DROP
го замени с
Цитат
iptables -P FORWARD ACCEPT
Пробвай и кажи дали е станало. Това ще направи така, че двете мрежи ще бъдат видими помежду си и това генту вече НЯМА ДА Е firewall между тях. Ако това не ти харесва, пиши.
А отговори вероятно няма, щото ситуацията не е съвсем ясна. Или ти не си публикувал цялата настройка на защитната стена, или има нещо гнило.

Забравих да пиша, че след като замениш горното, или ще трябва да стартираш скрипта, или да рестартираш машината, или пък да стартираш второто като root в конзола. Всъщност последното ще е достатъчно за проба.


Титла: Re: iptables
Публикувано от: anakinn в Nov 02, 2011, 15:11
gentoo е с две мрежови карти 192.168.10. и 192.168.1.1
интернет има само в 1.1 мрежа, 10.1 няма и не искам да има
не съм пуснал края на скрипта защото са изброени няколко айпита, които
имат досъп до гентуту за фтп, фв и др.

като заменя iptables -P FORWARD DROP с ACCEPT
няма ли да "разреша" нета до 10.1 мрежа ?


Титла: Re: iptables
Публикувано от: ray в Nov 02, 2011, 16:50
Здравей,

Може да прехвърлиш само връзките на даден порт:
Forward TCP port 3389 to the destination computer's IP address
Това е само за порта по подразбиране (Google).
Успех, Румен


Титла: Re: iptables
Публикувано от: anakinn в Nov 03, 2011, 10:06
примерен ред може ли ?

п.с. на машината от 192.168.10. мрежа с гейт 192.168.10.1 трябва ли да добавя route към 192.168.1.1 ?


Титла: Re: iptables
Публикувано от: ray в Nov 04, 2011, 10:03
Здравей,

Вече от доста време не съм гледал/писал правила за iptables, но ето инфо по памет:
Правилата (в дадена верига) се изпълняват по ред на номерата (от горе на долу):
As far as the ordering of rule in the chain: The rules will be processed from top to bottom of each chain (you can view the order of rules in a chain with iptables -L or iptables -t nat -L). Keep in mind though that a packet does not have to pass through every chain and will do so in different orders depending on the flow of traffic (local packets will pass through a different chain order than will packets being forwarded through the system).
Ако няма изрично правила за дадения пакет се изпълнява политиката по подразбиране за тази верига (напр. FORWARD -P DROP).
Сега не мога да се сетя каква точно беше разликата между Линукс и BSD политиките за защитни стени: май едната изпълняваше първото срещнато валидно правило, а другата последното, виж как точно е.
Идеята е да имаш правило за пренасочване на пакети към даден порт към адрес от другата мрежа:
Код
GeSHi (Bash):
  1. iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.1.50:80
  2. iptables -A INPUT -p tcp -m state --state NEW --dport 80 -i eth1 -j ACCEPT
Това са примерни стойности: смени eth1,адреса,порта и т.н.
Успех, Румен


Титла: Re: iptables
Публикувано от: anakinn в Nov 04, 2011, 14:00
какво ли не правих с редовете не става и не става
спря ли фв-то всичко работи

не мога ли с един ред някъде да разреша 3389 към 192.168.10.22 ??


Титла: Re: iptables
Публикувано от: ray в Nov 04, 2011, 15:14
Здравей,

Какъв резултат дава следната команда (като root):
Код
GeSHi (Bash):
  1. #cat /proc/sys/net/ipv4/ip_forward


Титла: Re: iptables
Публикувано от: Astor в Nov 04, 2011, 16:43
Здравей anakinn,

Първо си изясни разликата м/у NAT (DNAT) и routing. На теб ти трябва обикновено маршрутизиране.
Изчисти си взички правила в iptables - INPUT, OUTPUT, FORWARD и др. вериги ако си създавал.
после както ти е казал ray даваш:
Код
GeSHi (Bash):
  1. echo 1 > cat /proc/sys/net/ipv4/ip_forward
(разрешаваш packet forwarding-a).
Спри firewall-a на windows rdp цлиентската машина.
Пробвай дали имаш ping, после с nmap например дали е отворен този порт.
Така би трябвало да стане, след което си добавяш iptables правилата които ти трябват и виждаш кога/дели ще спреш да имаш remote desctop.
Иначе като цяло ти трябва да е разрешен FORWARD м/у двата интерфейса (eth0 и eth1) в двете посоки. Груб пример пример:
Код
GeSHi (Bash):
  1. iptables -I FORWARD -i eth0 -o eth1 -j ACCEPT
и обратната връзка:
Код
GeSHi (Bash):
  1. iptables -I FORWARD -i eth1 -o eth0 -j ACCEPT
.


Титла: Re: iptables
Публикувано от: anakinn в Nov 07, 2011, 15:46
резултата е ->
 cat /proc/sys/net/ipv4/ip_forward
1

fw-ите на уондоусите не работят

как да направя проверката ?
От машина 192.168.1.Х пингвам 192.168.10.1 - което е линукса - той отговаря, но телнет на 3389 или mstsc на 192.168.10.22 нямам
пробвах и  двата реда -  пак не
гентуто е старо, не знам дали има значение, мисля, че нещо не мога да наглася реда за редирект на 3389 към 192.168.10.22


Титла: Re: iptables
Публикувано от: ray в Nov 07, 2011, 16:31
резултата е ->
 cat /proc/sys/net/ipv4/ip_forward
1

fw-ите на уондоусите не работят

как да направя проверката ?
От машина 192.168.1.Х пингвам 192.168.10.1 - което е линукса - той отговаря, но телнет на 3389 или mstsc на 192.168.10.22 нямам
пробвах и  двата реда -  пак не
гентуто е старо, не знам дали има значение, мисля, че нещо не мога да наглася реда за редирект на 3389 към 192.168.10.22

Здравей,

След като вече имаш прехвърляне на трафика между двете карти е по-удачно да тестваш (ping) не само към рутера (линукса-джентоо) а и към някои от компютрите от другата мрежа (192.168.10.22).
Активира ли RDC на компютъра за да приема връзки?
Успех, Румен


Титла: Re: iptables
Публикувано от: anakinn в Nov 10, 2011, 14:10
нямам пинг, до нито една машина
fw са спрени и в двете мрежи, рдп е пуснато и работи
ползват се и в двете мрежи

в чудо се видях с това вече...


Титла: Re: iptables
Публикувано от: ray в Nov 10, 2011, 15:02
Здравей,

Има нещо грешно в конфигурацията, иначе няма защо да не работи.
Сега гледам скрипта и се чудя дали там всичко е наред:
1.какъв е резултата от #ifconfig (за адресите на картите).
2.тези променливи правилни ли са:
EXT_IF="eth0"
INT_IF="eth1"
3.какво има в този файл: USERS_FILE="/etc/fw/user_ip.txt"
Това определено не е наред: USER_IP="1.2.3.4|00:00:00:00:00:00" (нямаш такава мрежа)
4.тази команда забранява всичкия входящ трафик (освен изрично разрешения):
iptables -P INPUT DROP (отделно че важи и за двата интерфейса).
По-принцип такива скриптове са параметризирани и е добре да се видят параметрите.
За друго не се сещам.
PS: май ще е добре като се задават правилата да пишеш за кой интерфейс става дума:
iptables -A INPUT -s 192.168.10.0/24 -d 192.168.10.5 -j ACCEPT
iptables -A INPUT -i eth0/eth1 -s 192.168.10.0/24 -d 192.168.10.5 -j ACCEPT
Успех, Румен


Титла: Re: iptables
Публикувано от: anakinn в Nov 10, 2011, 17:04
1 ->
eth0      Link encap:Ethernet  HWaddr 00:XXXXXXXXXXX
          inet addr:192.168.1.X Bcast:192.168.1.255  Mask:255.255.255.0

eth1      Link encap:Ethernet  HWaddr 00:XXXXXXXXXXXX
          inet addr:192.168.10.X  Bcast:10.1.1.255  Mask:255.255.255.0

2 -> мисля, че да

3 - cat /etc/fw/user_ip.txt
192.168.1.107|00:1f:29:7c:ec:b8
192.168.1.61|00:15:f2:35:da:81
192.168.1.56|00:15:F2:BA:8E:07 - и други




Титла: Re: iptables
Публикувано от: Acho в Nov 10, 2011, 17:16
Само за какво бяха тия X-ове ? За да не ти ги види някой точните IP и MAC адреси ? От локалните ти мрежи, дето сигурно са зад 10 NAT-а и 15 firewall-а. За какво ги криеш, какво те притеснява ?


Титла: Re: iptables
Публикувано от: Astor в Nov 11, 2011, 00:51
anakinn, аз така и не разбрах ти пробва ли при да изчистиш всички правила в iptables (заедно с NAT таблицата) и после: iptables -P FORWARD ACCEPT, -P INPUT ACCEPT, -P OUTPUT ACCEPT? Тогава ping минава ли м/у двете мрежи?
Започни с debug от най-обикновенна (опростена) конфигурация.

И да добавя провери и маршрутизирането, ако продължава да няма ping, ако трябва добави статични мрашрути (примерно ако пътя до др. мрежа се различава от този към def gw) и виж.


Титла: Re: iptables
Публикувано от: anakinn в Nov 11, 2011, 14:04
не че толкова ги крия - за мака да предпочитам по една или друга причина да е скрит
не е толкова важен нали - синтаксиса е ясен,разделя се с две точки ХХ:ХХ:ХХ и т.н.
а айпитата понеже това нещо, за което питам искам да го направя на 3-4 машини
и вече сам не знам за коя питам точно, затова го давам общи за .1. мрежа или .10. мрежа

пуснах фв само с този конфиг:
 cat fa

EXTERNAL_IP="192.168.1.101"
INTERNAL_IP="192.168.10.5"
TARGET_IP="192.168.10.15
TARGET_PORT="3050"
EXT_IF="eth0"
INT_IF="eth1"
ANY="0.0.0.0/0"
USERS_FILE="/etc/fw/user_ip.txt"
# Gives all machines defs
# =======================
if [ -f $USERS_FILE ]; then
   USER_IP=`cat $USERS_FILE`
else
   USER_IP="1.2.3.4|00:00:00:00:00:00"
fi
# End all machines defs
# *********************

# Flush tables
# ============
iptables -F
iptables -X
iptables -t nat -F

# Set Default Policy
# ==================
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

iptables -L -n
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

и нищо не минава, дори 3050, на който си работим
демек...
нещо и аз се завъртях мисля че всичко трябваше да върви ?
или понеже не пише кое към къде затова не сработва
т.е. да пробвам ли с "fa" файл-а и тогава редиректите ?


Титла: Re: iptables
Публикувано от: anakinn в Nov 18, 2011, 14:21
отказахме ли се :-)


Титла: Re: iptables
Публикувано от: backinblack в Nov 18, 2011, 16:26
Аз съм малко бос по тези рутирания, но теоретично си мисля, че не може да стане така, а трябва да обърнеш реда.
Генто-то е рутер и член на двете мрежи. Май трябва да пуснеш нет на цялата мрежа, а на отделни компютри да забраниш, тука вече нещо като фаеруол трябва да се намеси, а не да забраняваш нета на мрежата и да търсиш начин на отделни компютри да го пуснеш.

Наскоро ме бъзикаха, че правя в Линукс уиндоуски работи като приложих този туториал ($2) на моя си комп от който и сега пиша, но всичко става доста по-лесно, а цената е около 150МБ рам в повече.
Та, сега в момента не съм със pfSense, че правя едни експерименти дето не ми е удобно рутера да ми е в компютъра, но докато я разцъквах, имаше някакви такива възможности да спира нета на определени компютри в мрежата.