Aupa!

Azken asteetan saretxo bat montatzen ibili naiz, zenbait garapenerako
txartel internetera konektatzeko.
Martxan badago ere, prozesuan hainbat duda izan ditut eta argitzeko
zerrendara idaztea pentsatu dot.

Hardwareari dagokionez, modelo ezberdinak badira ere, demagun lau Raspberry
Pi direla. Sistema edozein izan leike.
8 atakako D-Link switch arrunta erabili dut (ez routerra).
Internetera sarbidea izan dezaten, ordenagailu bat erabili dut bi
sare-txartelekin.
Eskema zuzena da:

- Ordenagailuak ataka bat dauka unibertsitateko sarean (`eno1`), eta bestea
switchean (`enp2s0`).
- Garapenerako txartelek ethernet bakarra daukate, switchera konektatuta.
RPi-ek wifia badaukate ere, ezgaituta daude.

Ordenagailuak unibertsitatearen ikuspuntutik IP eta MAC bakarra izan
ditzake. Bestela, ethernet ataka blokeatzen du.
Hortaz, ezin da Ubuntu edo Windows-en "konexioa partekatu" aukera
automatikoa erabili.
Horrek "barneko" txartelak aurkezten dizkio unibertsitateko sareari eta ez
du onartzen.
Konponbidea NAT edo 'IP masquerading' da; hau da, ordengailuak barneko
sareko trafikoa aldatzea unibertsitateko sareak iturri bakarra ikus dezan.

*# IP, maskara eta bidea `ip` komandoa erabilita*

Hasierako froga ordenagailuan Ubuntu Live CD batekin egin nuen:

* GUI bitartez:
  * `eno1` automatiko (unibertsitateko DHCP-a).
  * `enp2s0` estatiko `10.10.10.1` eta `255.255.255.0` (gateway eta DNS-ak
hutsik).
* Terminalean, root baimenekin:

```sh
iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1
sysctl -p
```

Aldi berean, DHCP zerbitzua martxan jarri neban ordenagailuan:

```
# dhcp.conf

default-lease-time 600;
max-lease-time 7200;

option domain-name-servers 10.10.13.6, 10.20.13.6, 10.30.13.6;

subnet 10.10.10.0 netmask 255.255.255.0 {
range 10.10.10.100 10.10.10.254;
option routers 10.10.10.1;
}
```

Hori nahikoa da edozein txartel switchera konetaktatu eta `apt update`
egiteko, eskuz konfiguratu barik! So far, so good.

Zoritxarrez, Live CD-a denez, ordenagailua amatatuz gero, akabo
konfigurazioa.
Aurreko pausuak script batean idatzi nahi nituen, berriz martxan jartzeko
prozesua azkartzeko.
Ez nuen lortu lehenengo atala komando bitartez egitea :(.
Hain zuzen, `enp2s0`-ren IP helbidea eta maskara komandoekin ezartzea.
GUI-a (network manager) erabilita, zenbait bide sortzen dira:

```sh
$ ip r
10.10.10.0/24 dev enp2s0 proto kernel scope link src 10.10.10.1 metrtic 100
default via 10.10.10.1 dev enp2s0 proto static metric 1000
```

Baina `ip a add 10.10.10.1/24 dev enp2s0` komandoa erabilita bide bakarra
sortzen da:

```sh
10.10.10.0/24 dev enp2s0 proto kernel scope link src 10.10.10.1
```

Bigarrena eskuz egitean:

```sh
$ sudo ip r add default via 10.10.10.1 dev enp2s0
Error: Nexthop has invalid gateway.
```

*Edonork `ip a add` eta `ip r add` komandoak ezagutzen baditu, langutza
eskertuko nuke!*

*# `/etc/network/interfaces` editatuz*

Hasierako frogen ostean, Live CD-aren ordez, ordenagailuan instalatutako
sistema erabili dut: Proxmox (https://www.proxmox.com).
Izatez, Debian Bullseye da.
Honetan, sareak `/etc/network/interfaces` editatuz konfiguratzen dira.
Dokumentazioan 'Masquerading (NAT) with iptables' adibidea dago:
https://pve.proxmox.com/wiki/Network_Configuration#_masquerading_nat_with_tt_span_class_monospaced_iptables_span_tt
.
Sare bakarrerako adibidea da hori.
Nik bi ditudanez, hurrengoa erabili dut:

```
# /etc/network/interfaces

auto lo
iface lo inet loopback

auto enp2s0
iface enp2s0 inet static
    address 10.10.10.1/24

auto eno1
iface eno1 inet dhcp
    post-up   iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE
    post-down iptables -t nat -D POSTROUTING -o eno1 -j MASQUERADE
    post-up   iptables -t nat -A PREROUTING -p tcp -i eno1 --dport 2210 -j
DNAT --to-destination 10.10.10.10:22
    post-down iptables -t nat -D PREROUTING -p tcp -i eno1 --dport 2210 -j
DNAT --to-destination 10.10.10.10:22
    post-up   iptables -t nat -A PREROUTING -p tcp -i eno1 --dport 2211 -j
DNAT --to-destination 10.10.10.11:22
    post-down iptables -t nat -D PREROUTING -p tcp -i eno1 --dport 2211 -j
DNAT --to-destination 10.10.10.11:22
    post-up   echo 1 > /proc/sys/net/ipv4/ip_forward

auto vmbr0
iface vmbr0 inet static
    address 10.10.100.1/24
    bridge-ports none
    bridge-stp off
    bridge-fd 0

auto vmbr1
iface vmbr1 inet static
    address 10.10.200.1/24
    bridge-ports none
    bridge-stp off
    bridge-fd 0
```

Harrigarria bada ere, badabil!

Oharrak:

Aurreko konfigurazioan bezala, `enp2s0` txartelak IP eta maskara ditu
soilik, eta `eno1` txartelak (unibertsitateko) DHCP-a erabiltzen du.
`eno1` txartelean zehar kanpora doan trafiko guztia maskaratuta dago.
Gainera, barneko `10.10.10.10:22` eta `10.10.10.11:22` "aurreranztuta"
(forwarded?) daude.
Hori ere badabil! Unibertsitateko sarean dauden ordenagailuek bi txartel
horiek erabili ditzakete nahiz eta barneko sarea ez ikusi.
`vmbr?` interfazeak birtualak dira, makina birtualak (`vmbr1`) eta
sistemako zerbitzuak (`vmbr0`) banatzeko.
Maskaratzea hauekin ere badabil, eta makina birtualak internetera konektatu
daitezke.

Dudak:

- *Zergatik ezin ditut "dport"-ak komando bakarrarekin definitu?*
  Hurrengoa frogatu dot, baina ez dabil:

```
post-up   iptables -t nat -A PREROUTING -p tcp -i eno1 --dport 2210:2211 -j
DNAT --to-destination 10.10.10.10:22,10.10.10.11:22
post-down iptables -t nat -D PREROUTING -p tcp -i eno1 --dport 2210:2211 -j
DNAT --to-destination 10.10.10.10:22,10.10.10.11:22
```

-
*Beharbada `iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE`
generikoegia da?  Hurrengo konfigurazioa hobe?*
  Honen inguruan egin dezakezuen edozein balorazio edo erreferentzia oso
eskertuko nuke.

```
post-up   iptables -t nat -A POSTROUTING -s '10.10.100.0/24' -o eno1 -j
MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.10.100.0/24' -o eno1 -j
MASQUERADE
post-up   iptables -t nat -A POSTROUTING -s '10.10.200.0/24' -o eno1 -j
MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.10.200.0/24' -o eno1 -j
MASQUERADE
post-up   iptables -t nat -A POSTROUTING -i enp2s0 -o eno1 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -i enp2s0 -o eno1 -j MASQUERADE
```

- Unibertsitateko ordengailuek IP publiko eta finkoa dute.
  Gainera, badirudi 22 ataka irekita dagoela.
  Hortaz, edozein tokitik `ssh ORDENAGAILUAREN_IP` egin dezaket.
  "aurreranztutako" portuak eta kudeaketarako web ataka itxita daude ordea;
horiek erabiltzeko VPN-a aktibatu behar da.
  Ondo dago hori, baina jakinmina pizten du:

  -* Badago irekitako ataken zerrenda ofizialik?*
  -* DNS eta 'reverse proxy' erabilita posible da txartel guztien SSH
atakak aldi berean ordengailuaren portu bakarrean mapeatzea? Nonork frogatu
du?*

- Segurtasuna!
  Momentuz, txarteletan `apt` erabiltzea eta SSH bitartez kudeatzea dira
helburuak soilik.
  Baina beste zenbait zerbitzu izango ditu ordenagailuak eta orokorrean
ikerketa taldeko kideentzat ikusgarri izan behar dira soilik.
 * iptables bitartez egin dezaket 'firewall' dezentea edo beste tresnaren
bat erabili beharko nuke?*
  Adibidez: ordenagailuaren kudeaketarako web ataka VPN-an dagoen edozein
ordenagailuk ikus dezake, eta hori mugatu nahiko nuke.

Espero baino zertxobait konplexuagoa izaten ari bada ere, interesgarria da
oso eta ikasteko irrikitan nago.
Denbora mugatuan irakurtzeko edo ikusteko gomendikoak eskertuko nituzke.

Ondo izan ta eskerrik asko aldez aurretik!

Unai
_______________________________________________
ITSAS mailing list
[email protected]
http://list.ehu.eus/mailman/listinfo/itsas

Responder a