1 (edytowany przez Paco52327 2020-10-13 15:30:12)

Temat: iptbles

Witam. Proszę kolegów o pomoc lub pokierowanie w temacie. Do domu dochodzi mi światłowód podłączony do konwertera z którego wychodzi skrętka. Tutaj na jej drodze leży Dell poweredge z 4xgigabit (dalej zwane ene1 ene2 ene3 ene4) dalej switch unifi, kilka ap. Co chcę osiągnąć:
- MAC podany do isp jest z ene1
- z ene1 do ene2 przez iptbles przerzucam internet, dodatkowo ten internet ma być na samym serwerze który ma różne usługi uruchomione
- ene3 chciałbym używać wewnętrznie nie wiem czy warto przez łączenie z ene4 w jeden interfejs czy osobno, ale oba mają przesyłać dane lokalnie, tu samba, plex, synchronizacja telefonów itp.

Oczywiście gdzie tylko się da w konfigach daje konkretny interfejs, dnsmasq, samba mają ustawiony ene3.

#!/bin/bash
##/usr/local/bin/fw_nat
#skrypt firewall iptables

#zmienne:
ipt="iptables"
mod="modprobe"
LAN_IFACE="eno2"
WAN_IFACE="eno1"

#podstawowy zbior modulow jadra
$mod ip_tables
$mod iptable_filter
$mod iptable_nat
$mod ip_conntrack
$mod iptable_mangle
$mod ipt_MASQUERADE
$mod ip_nat_ftp
$mod ip_nat_irc
$mod ip_conntrack_ftp
$mod ip_conntrack_irc
$mod ipt_LOG
$mod ipt_limit
$mod ipt_state


# usunięcie wszystkich aktywnych reguł i niestandardowych łańcuchów
$ipt -F
$ipt -t nat -F
$ipt -t mangle -F
$ipt -X
$ipt -t nat -X
$ipt -t mangle -X

#ustawienie domyślnych strategii
$ipt -P INPUT ACCEPT
$ipt -P FORWARD ACCEPT
$ipt -P OUTPUT ACCEPT
$ipt -t nat -P OUTPUT ACCEPT
$ipt -t nat -P PREROUTING ACCEPT
$ipt -t nat -P POSTROUTING ACCEPT
$ipt -t mangle -P PREROUTING ACCEPT
$ipt -t mangle -P POSTROUTING ACCEPT

#zawsze należy pamiętać o wpisie dotyczącym interfejsu lo
$ipt -A INPUT -i lo -j ACCEPT

#wlaczenie maskarady ip
$ipt -t nat -A POSTROUTING -o $WAN_IFACE -j MASQUERADE


#zezwolenie na nieograniczony ruch wychodzacy, wchodzacy jest ograniczony wylaczenie do sesji inicjowanych lokalnie
$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$ipt -A FORWARD -i $WAN_IFACE -o $LAN_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
$ipt -A FORWARD -i $LAN_IFACE -o $WAN_IFACE -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#statyczne przekierowanie portów
$ipt -A FORWARD -m state -p tcp -d 192.168.1.200 --dport 16120 --state NEW,ESTABLISHED,RELATED -j ACCEPT
$ipt -t nat -A PREROUTING -p tcp --dport 16120 -j DNAT --to-destination 192.168.1.200:8291

$ipt -A FORWARD -m state -p tcp -d 192.168.1.6 --dport 5000 --state NEW,ESTABLISHED,RELATED -j ACCEPT
$ipt -t nat -A PREROUTING -p tcp --dport 5000 -j DNAT --to-destination 192.168.1.6:80

$ipt -A FORWARD -m state -p tcp -d 192.168.1.180 --dport 16181 --state NEW,ESTABLISHED,RELATED -j ACCEPT
$ipt -t nat -A PREROUTING -p tcp --dport 16181 -j DNAT --to-destination 192.168.1.180:80

$ipt -A FORWARD -m state -p tcp -d 192.168.1.5 --dport 16180 --state NEW,ESTABLISHED,RELATED -j ACCEPT
$ipt -t nat -A PREROUTING -p tcp --dport 16180 -j DNAT --to-destination 192.168.1.5:8080

$ipt -A FORWARD -m state -p tcp -d 192.168.1.2 --dport 28001 --state NEW,ESTABLISHED,RELATED -j ACCEPT
$ipt -t nat -A PREROUTING -p tcp --dport 28001 -j DNAT --to-destination 192.168.1.2:5900


#otwarte porty
#$ipt -A INPUT -p tcp --dport 16122 -j ACCEPT
#$ipt -A INPUT -i $LAN_IFACE -p tcp --dport 8765 -j ACCEPT
#$ipt -A INPUT -i $LAN_IFACE -j ACCEPT
#$ipt -A INPUT -i $LAN_IFACE -p tcp --dport 8895 -j ACCEPT
#$ipt -A INPUT -i $LAN_IFACE -p tcp --dport 8081 -j ACCEPT
#$ipt -A INPUT -i $LAN_IFACE -p udp --dport 53 -j ACCEPT
#$ipt -A INPUT -i $LAN_IFACE -p tcp --dport 68 -j ACCEPT
#$ipt -A INPUT -i $LAN_IFACE -p udp --dport 68 -j ACCEPT
#$ipt -A INPUT -p tcp --dport 16130 -j ACCEPT
#$ipt -A INPUT -p tcp --dport 16120 -j ACCEPT
#$ipt -A INPUT -p tcp --dport 3000 -j ACCEPT
#$ipt -A INPUT -p tcp --dport 5000 -j ACCEPT
#$ipt -A INPUT -p tcp --dport 16180 -j ACCEPT
#$ipt -A INPUT -p tcp --dport 55100 -j ACCEPT
#$ipt -A INPUT -p udp --dport 55100 -j ACCEPT
#$ipt -A INPUT -p tcp --dport 16181 -j ACCEPT
#$ipt -A INPUT -p tcp --dport 1883 -j ACCEPT
#quake
#$ipt -A INPUT -p tcp --dport 27910 -j ACCEPT
#$ipt -A INPUT -p udp --dport 27910 -j ACCEPT
#$ipt -A INPUT -p tcp --dport 28001 -j ACCEPT

#akceptacja ICMP
$ipt -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
$ipt -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
$ipt -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
#odrzucenie prob nawiazania polaczeni spoza LAN
$ipt -A INPUT -p tcp --syn -j DROP
#wrzucanie dropowanych pakietow do LOG
$ipt -N LOGGING
$ipt -A INPUT -i $WAN_IFACE -j LOGGING
#$ipt -A OUTPUT -j LOGGING
$ipt -A LOGGING -j  LOG --log-prefix "IPdrop: " --log-level 6
$ipt -A LOGGING -j DROP

$ipt -N UPNP
$ipt -A FORWARD -j UPNP

Teraz tak, internet mi działa wszędzie ale jako że regułki mam kopiuj, wklej to komputery nie widzą samby, minidlna
Zmieniłem blokadę spoza LAN w taki sposób,
$ipt -A INPUT -i ene1 -p tcp --syn -j DROP
$ipt -A INPUT -i ene2 -p tcp --syn -j DROP
Samba działa minidlna nie, bez tego widzę sporo portów otwartych na zewnątrz więc odpada.

root@dellserv:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         193-106-208-1.t 0.0.0.0         UG    0      0        0 eno1
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
172.18.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-9e2e60c79f8b
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eno2
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eno3
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eno4
193.106.208.0   0.0.0.0         255.255.254.0   U     0      0        0 eno1

Mimo, że w większości do ruchu lokalnego podaję ene3 to na tym porcie jest znikomy ruch, na ene4 jest NFS na który kamery puszczają strumień tego też nie widać.
Ogólnie trochę się zakopałem w temacie, liczę na jakieś rady, a może takie rozwiązanie jest złe, pisałem to wszystko na tablecie w pracy jak sobie to można wyobrazić ????
ene1 publiczne IP dynamicznie przyznawane
ene2 statyczne 192.168.1.1
ene3 statyczne 192.168.1.201
ene4 statyczne 192.168.1.202

2

Odp: iptbles

Nie powinieneś mieć takiej samej adresacji na ene2/ene3/ene4.

Jak właściwie chcesz to połączyć? Bo najprościej to zrobić bridge z ene2/ene2/ene4 i wszystko będziesz miał w jeden adresacji, nic nie będziesz musiał otwierać/forwardować pomiędzy nimi.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: iptbles

Na starcie myślałem o bridge ale zrobiłem go na ene1 z ene2. Jak to widzisz bo jak chciałem potraktować serwer jako router przy okazji, wan ene1, resztą w sumie lan.

4

Odp: iptbles

No właśnie robisz tak z niego router. ene1 jako wan do internetu i reszta w bridge jako lan.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: iptbles

Tak by to miało wyglądać

root@dellserv:~# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eno1
iface eno1 inet dhcp
iface eno2 inet manual
iface eno3 inet manual
iface eno4 inet manual
iface br0 inet static
    bridge_ports eno2 eno3 eno4
           address 192.168.1.1
           broadcast 192.168.1.255
           netmask 255.255.255.0

Tylko co robi za bramę, eno1 na tym interfejsie mam Ip od isp, a z iptbles coś na firewall trzeba zrobić?
Nadal z tabletu...

6

Odp: iptbles

A w iptables zrobić nawet najprostszy firewall - zwykłą maskarada na porcie eno1

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: iptbles

Będę w domu przetestuję tą konfigurację, zastanawia mnie co muszę zrobić żeby eno1 przesyłano internet przez br0 czy to jest od ręki, które IP jest bramą bo eno1 w teorii jest dynamiczne, fakt rzadko się zmienia o ile w ogóle, ale mam publiczne nie stałe IP.

8

Odp: iptbles

Musisz zrobić maskaradę. Od ręki przecież nic będzie.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9

Odp: iptbles

Wybacz, że chcę jak za rączkę, wystarczy:

iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE

10

Odp: iptbles

Ogólnie tak, ale przydało by się ustawić domyślnie polityki, zezwolić na połączenia nawiązanie czy chociaż by właczyć ip forwarding. Czytaj https://wiki.debian.org/DebianFirewall

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11

Odp: iptbles

Tak, tak nie chciałem znowu wklejać wszystkiego. Dzięki, odezwę się po teście.

12

Odp: iptbles

Trochę zmieniłem kierunek, doszedłem do wniosku, że switch, którego bym zrobił eno2, eno3, eno4 podłączony do switcha unifi nie ma sensu, choć to działało! Nic by nie rozkładało przepustowości, zrobiłem bonding portów, na razie testowo i jest OK.
Ogólnie chodzi o strach przed wysyceniem się przepustowości od serwera do sprzętów w domu, gdzie wszystkie programy tv idą po sieci, streaming z plex, i sporo rzeczy które mogą być odpalone równocześnie i nie chciałbym żeby coś zaczęło niedomagać. Teraz to jest tryb 6, docelowo chcę 4 bo na unifi da się to ponoć zrobić.
Nadal przyjmuję rady w tym temacie wink
@Cezarty dzięki.

allow-hotplug eno1
iface eno1 inet dhcp

auto bond0
iface bond0 inet static
  address 192.168.1.1
  broadcast 192.168.1.255
  netmask 255.255.255.0
  slaves eno2 eno3 eno4
  bond_mode balance-alb

do tego iptables

iptables -X
iptables -X -t nat
iptables -F -t nat
iptables -X -t mangle
iptables -F -t mangle


iptables -A INPUT -i lo -j ACCEPT
iptables -A FORWARD -o lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT


iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P INPUT DROP


iptables -A INPUT -i bond0 -j ACCEPT


iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE


iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8001 -j ACCEPT #android
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT #https
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9091 -j ACCEPT #transmission-remote