Autor Wątek: Iptables - 2 różne reguły a cel ten sam?  (Przeczytany 19821 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

mr_brunatny

  • Początkujący
  • *
  • Wiadomości: 45
Odp: Iptables - 2 różne reguły a cel ten sam?
« Odpowiedź #15 dnia: Luty 21, 2014, 04:47:13 pm »
Po sprawdzeniu faktycznie nie ma widocznego znaczenia między wpisem z zastosowaniem -o eth1 lub bez.
Polityka domyślna firewall'a to blokowanie wszystkiego.
Aby komputery działały tylko w sieci LAN w firewall'u są wpisy:
iptables -A INPUT -s 192.168.0.26     -i $eth_L        -m mac --mac-source XX:XX:XX:XX:XX:XX  -j ACCEPT
iptables -A INPUT -s 192.168.0.27     -i $eth_L        -m mac --mac-source XX:XX:XX:XX:XX:XX  -j ACCEPT

I tu mam kolejne pytanie. Jak ustawić firewall'a aby te komputery które mają działać tylko w sieci LAN mogły korzystać z jeszcze z poczty, która jest na serwerze zewnętrznym.
Czy dodanie takiego wpisu jest odpowiednie (dostęp tylko do poczty):
iptables -t nat -A POSTROUTING -s 192.168.0.26 -d $POCZTA -o $eth_R -p tcp -m multiport --dport 25,110 -j SNAT --to-source $ip_R
iptables -t nat -A POSTROUTING -s 192.168.0.27 -d $POCZTA -o $eth_R -p tcp -m multiport --dport 25,110 -j SNAT --to-source $ip_R
$POCZTA - IP serwera pocztowego :smiley:
Ponieważ mam ograniczony dostęp do komputerów dlatego z testowaniem firewall'a mam problem.
« Ostatnia zmiana: Luty 21, 2014, 04:49:25 pm wysłana przez mr_brunatny »

mruz

  • Geeko's friend
  • SUSE Guru
  • *
  • Wiadomości: 500
  • openSUSE Tumbleweed
      • Football
Odp: Iptables - 2 różne reguły a cel ten sam?
« Odpowiedź #16 dnia: Luty 22, 2014, 12:07:58 am »
INPUT (ruch do urządzenia, na którym działa firewall), łańcuchy OUTPUT (ruch wychodzący z maszyny na którym jest firewall) i FORWARD (ruch poza maszyną - inne komputery w sieci), widziałeś wpis na wiki: Iptables?
Jeśli sam w siebie nie uwierzysz,
Nikt inny w ciebie nie uwierzy!

mr_brunatny

  • Początkujący
  • *
  • Wiadomości: 45
Odp: Iptables - 2 różne reguły a cel ten sam?
« Odpowiedź #17 dnia: Luty 22, 2014, 12:23:45 pm »
Widziałem. Nawet go przeczytałem.
Jak zauważył Mastal ten co pisał ten skrypt miał niezłą wenę. Dostęp każdego komputera do sieci jest konfigurowany z osobna.
Aby był widoczny w sieci LAN zastosowany jest wpisiptables -A INPUT -s 192.168.0.10     -i $eth_L        -m mac --mac-source XX:XX:XX:XX:XX:XX  -j ACCEPT
Bez tego komputer dostaje tylko IP od dhcpa i nic więcej (nie można pingować do niczego nawet do bramy)
Aby możliwy był dostęp do internetu dla danego komputera jest wpis
iptables -t nat -A POSTROUTING -s 192.168.0.10 -o eth1    -j SNAT --to-source $ip_zew
tak to działa
problem jest w tym że komputery które mają dostęp tylko do LAn'a mają mieć możliwość korzystania z poczty
Serwer pocztowy jest na zewnątrz i działa na portach 25,110
Potrzebna jest reguła która pozwoli tylko na korzystanie z poczty. Dlatego pytałem czy to co napisałem jest poprawne
iptables -t nat -A POSTROUTING -s 192.168.0.10 -d $POCZTA -o $eth_R -p tcp -m multiport --dport 25,110 -j SNAT --to-source $ip_R
Na mój rozum pakietom z komputera o adresie 192.168.0.10 przeznaczone do adresu serwera poczty wychodzące z interfejsu eth0 protokołu tpc na porcie 25 i 110 zmień adres na adres zewnętrzny i przepuść a reszta nadal jest blokowana.
Niech mnie ktoś poprawi jeśli się mylę

mruz

  • Geeko's friend
  • SUSE Guru
  • *
  • Wiadomości: 500
  • openSUSE Tumbleweed
      • Football
Odp: Iptables - 2 różne reguły a cel ten sam?
« Odpowiedź #18 dnia: Luty 22, 2014, 02:36:37 pm »
To wg wpisu na wiki dodaj jeszcze maskę podsieci w skróconym formacie:
iptables -t nat -A POSTROUTING -s 192.168.0.10/X -o eth1    -j SNAT --to-source $ip_zew

i reguły zezwalające na ruch poza maszyną - łańcuch FORWARD
#Przepuszcza pakiety w stanie ESTABLISHED i RELATED
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

#Dla stanu NEW przepuszczane są pakiety tylko te, które rzeczywiście są potrzebne.
iptables -A FORWARD -p tcp -m multiport --dport 25,110 -m state --state NEW -j ACCEPT

#Odrzucenie pakietów w stanie INVALID.
iptables -A FORWARD -m state --state INVALID -j DROP

#Logowanie odrzuconych pakietów (w celu zdiagnozowania przyczyny niedziałającej usługi).
iptables -A FORWARD -j LOG --log-prefix "DROP_FORWARD " --log-tcp-options --log-ip-options --log-tcp-sequence
Jeśli sam w siebie nie uwierzysz,
Nikt inny w ciebie nie uwierzy!

mr_brunatny

  • Początkujący
  • *
  • Wiadomości: 45
Odp: Iptables - 2 różne reguły a cel ten sam?
« Odpowiedź #19 dnia: Luty 23, 2014, 10:32:11 pm »
Postawiłem dwie wirtualnie maszyny żeby przetestować dostęp tylko do poczty i LAN'u dla danego komputera i wydaje się że jest tak jak powinno. Poniżej podaję co mi wyszło. Może się komuś przyda.
#!/bin/bash

export eth_R=eth0
export eth_L=eth1
export ip_L=192.168.10.1
export ip_R=192.168.1.3
export MAIL_IMAP=173.194.67.16
export MAIL_SMTP=173.194.70.16
iptables -F
iptables -X icm_pro
iptables -X tcp_pro
iptables -X udp_pro
iptables -X mozna
#
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
#
iptables -t nat -F
echo "1" > /proc/sys/net/ipv4/ip_forward
#
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
#
iptables -N icm_pro
iptables -N tcp_pro
iptables -N udp_pro
iptables -N mozna
#
#INPUT
iptables -A INPUT -p tcp -m tcp ! --tcp-flags SYN,RST,ACK SYN -m state --state NEW -j DROP
iptables -A INPUT -i $eth_R   -p icmp                                          -j icm_pro
iptables -A INPUT -i $eth_R   -p tcp                                           -j tcp_pro
iptables -A INPUT -i $eth_R   -p udp                                           -j udp_pro
#
iptables -A INPUT                                -d 127.0.0.1/8     -i lo      -j ACCEPT
iptables -A INPUT -s $ip_L                       -d $ip_L           -i lo      -j ACCEPT
iptables -A INPUT -s $ip_R                       -d $ip_R           -i lo      -j ACCEPT
#Widoczność w LAN'ie
iptables -A INPUT -s 192.168.10.0/24                                -i $eth_L  -j ACCEPT

iptables -A INPUT -d $ip_R    -m state --state RELATED,ESTABLISHED             -j ACCEPT
##FORWARD
iptables -A FORWARD -j ACCEPT
#OUTPUT
iptables -A OUTPUT -p tcp -m tcp ! --tcp-flags SYN,RST,ACK SYN -m state --state NEW -j DROP
iptables -A OUTPUT -s 127.0.0.1                                                     -j ACCEPT
iptables -A OUTPUT -s $ip_R                                                         -j ACCEPT
iptables -A OUTPUT -s $ip_L                                                         -j ACCEPT

#icm_pro
iptables -A icm_pro -p icmp -m icmp --icmp-type 0   -j ACCEPT
iptables -A icm_pro -p icmp -m icmp --icmp-type 3   -j ACCEPT
iptables -A icm_pro -p icmp -m icmp --icmp-type 5   -j ACCEPT
iptables -A icm_pro -p icmp -m icmp --icmp-type 8   -j ACCEPT
iptables -A icm_pro -p icmp -m icmp --icmp-type 11  -j ACCEPT
#
#tcp_p
iptables -A tcp_pro -p tcp -m tcp --sport 53 -j mozna
#otwarcie portów do poczty gmail
iptables -A tcp_pro -p tcp -m tcp --dport 993 -j mozna
iptables -A tcp_pro -p tcp -m tcp --dport 465 -j mozna
#
#udp_p
#iptables -A udp_pro                   -p udp -m udp --sport 53 -j mozna
#iptables -A udp_pro                   -p udp -m udp --dport 53 -j mozna
#mozna
iptables -A mozna -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN        -j ACCEPT
iptables -A mozna -p tcp -m state --state RELATED,ESTABLISHED      -j ACCEPT
iptables -A mozna -p tcp                                           -j DROP
#NAT
#dostęp tylko do poczty
iptables -t nat -A POSTROUTING -s 192.168.10.5 -d $MAIL_IMAP -o $eth_R -p tcp -m tcp --dport 993  -j SNAT --to-source $ip_R
iptables -t nat -A POSTROUTING -s 192.168.10.5 -d $MAIL_SMTP -o $eth_R -p tcp -m tcp --dport 465  -j SNAT --to-source $ip_R


To wg wpisu na wiki dodaj jeszcze maskę podsieci w skróconym formacie:
iptables -t nat -A POSTROUTING -s 192.168.0.10/X -o eth1    -j SNAT --to-source $ip_zew
Jak podajesz konkretny adres hosta to podanie maski jest moim zdaniem zbędne co innego jak chodzi o sieć.

Dzięki wszystkim za pomoc i konkretne odpowiedzi  :wink:

mruz

  • Geeko's friend
  • SUSE Guru
  • *
  • Wiadomości: 500
  • openSUSE Tumbleweed
      • Football
Odp: Iptables - 2 różne reguły a cel ten sam?
« Odpowiedź #20 dnia: Luty 24, 2014, 10:24:18 am »
##FORWARD
iptables -A FORWARD -j ACCEPT

Akceptujesz wszystko w tym miejscu (a powinny być tu tylko właściwe reguły do akceptowania - tabela filter), i kombinujesz w postroutingu - dla zmian w pakietach tuż przed ich przesłaniem dalej. Tam może np. być przepisywanie adresów z network/mask do ip zewnętrznego:
iptables -t nat -A POSTROUTING -s network/mask -o wan_int -j SNAT --to-source wan_ip

Jeśli sfiltrujesz w FORWARD, to pakiety zostaną odrzucone wcześniej i nawet nie dojdzie do POSTROUTING, ale jak działa i jesteś zadowolony, to zostaw  :wink:
Jeśli sam w siebie nie uwierzysz,
Nikt inny w ciebie nie uwierzy!

mr_brunatny

  • Początkujący
  • *
  • Wiadomości: 45
Odp: Iptables - 2 różne reguły a cel ten sam?
« Odpowiedź #21 dnia: Marzec 10, 2014, 11:32:49 pm »
Jeśli sfiltrujesz w FORWARD, to pakiety zostaną odrzucone wcześniej i nawet nie dojdzie do POSTROUTING, ale jak działa i jesteś zadowolony, to zostaw  :wink:
Wynik jest osiągnięty a że "lepsze jest wrogiem dobrego" wolę zostawić jak jest żeby czegoś nie sknocić  :smiley:.