Z góry przepraszam za następną nowelę.
Mam napęd USB podłączony do Raspberry Pi z Raspbian; Niestety, crashplan nie działa już z Raspbianem, więc nie mogę wykonać kopii zapasowej na moim serwerze Crashplan (twórczo o nazwie „backup”). Zamiast tego próbuję udostępnić system plików NFS mojemu serwerowi Crashplan i pozwolić mu na zsynchronizowanie go z lokalnym systemem plików, ale nie mogę go zamontować na serwerze kopii zapasowych.
„kopia zapasowa” to maszyna CentOS 6 VM działająca na ESXi i znajdująca się w innej podsieci niż Pi; Używam VyOS jako routera. Jak dotąd, ogólnie działa świetnie, ale podejrzewam, że coś o VyOS może spieprzyć prace. VyOS jest ustawiony na trasę między moim 10.47.6.0/24 (gdzie pi jest) a 10.47.7.0/24 (gdzie większość moich maszyn wirtualnych siedzi). Kiedy robię rpcinfo z pi (lub z innego serwera w tej samej podsieci), to się udaje; kiedy robię to z innej podsieci, otrzymuję:
rpcinfo: can't contact portmapper: RPC: Unable to receive; errno = Connection reset by peer
Działa również z VM VM.
Pi jest drogą do mojej sieci (mój router Verizon przesyła do niego pewne porty w celu uzyskania dostępu zewnętrznego), więc iptables jest skonfigurowany do blokowania większości rzeczy. Jest jednak szeroko otwarty dla wszystkich portów w moich dwóch podsieciach:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 165.160.2.0/24 anywhere tcp dpt:https
ACCEPT all -- localhost anywhere
ACCEPT all -- 10.47.6.0/23 anywhere
ACCEPT tcp -- 165.160.32.0/24 anywhere tcp dpt:ssh
ACCEPT tcp -- 165.160.2.0/24 anywhere tcp dpt:ssh
ACCEPT all -- 10.8.0.0/24 anywhere
ACCEPT udp -- anywhere anywhere udp dpt:http-alt
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
LOGGING all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain LOGGING (1 references)
target prot opt source destination
LOG all -- anywhere anywhere limit: avg 2/min burst 5 LOG level warning prefix "IPTables-logged: "
DROP all -- anywhere anywhere
Sam VyOS nie ma skonfigurowanych zapór ogniowych między dwiema podsieciami:
vyos@vyos:~$ show firewall
-----------------------------
Rulesets Information
-----------------------------
vyos@vyos:~$
Ma najbardziej podstawową możliwą konfigurację routingu:
vyos@vyos:~$ show configuration
interfaces {
ethernet eth0 {
address 10.47.6.11/24
duplex auto
hw-id 00:0c:29:de:e1:e1
smp_affinity auto
speed auto
}
ethernet eth1 {
address 10.47.7.1/24
duplex auto
hw-id 00:0c:29:de:e1:eb
smp_affinity auto
speed auto
}
loopback lo {
}
}
nat {
source {
rule 10 {
outbound-interface eth0
protocol all
source {
address 10.47.7.0/24
}
translation {
address 10.47.7.0/24
}
}
}
}
protocols {
static {
route 0.0.0.0/0 {
next-hop 10.47.6.1 {
distance 1
}
}
}
}
<snippety snip snip>
Mogę pingować wszędzie, mogę ssh, mogę dostać się do sieci i innych usług działających na sieci VLAN 10.47.7.0/24 na różnych portach, więc nie sądzę, że mam problem z zaporą. Co ważniejsze, gdy podłączę strace do demona rpcbind na moim pi, widzi połączenie a następnie zrzuca go z jakiegoś powodu, że nie jestem wystarczająco inteligentny, aby tłumaczyć z danych śledzenia. To już 5 razy za długo, więc oszczędzę ci pełnego wyjścia strace, ponieważ jest ono identyczne przed pewnym punktem.
Kiedy udało mi się połączyć z VyOS, pi mówi:
write(12, "\200\0\2t\16z\37\322\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1"..., 632) = 632
poll([{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=6, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=7, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=8, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=9, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=10, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=11, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=12, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 8, 30000) = 1 ([{fd=12, revents=POLLIN|POLLRDNORM}])
read(12, "", 4) = 0
close(12) = 0
... następnie otwiera ankietę, aby czekać na kolejne połączenie. Kiedy robię to z mojego serwera zapasowego:
write(12, "\200\0\2t\314\315\372\355\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1"..., 632) = -1 ECONNRESET (Connection reset by peer)
close(12) = 0
Przypuszczam, że może to być problem z zaporą, ale VyOS nie ma w ogóle zapory ani serwera zapasowego; inne urządzenia w tej samej podsieci, co serwer zapasowy, mogą tworzyć kopie zapasowe rpcinfo -p, a żaden z nich nie może rpcinfo mojego pi. Co dziwne: serwery w sieci 10.47.7 mogą serwery rpcinfo w sieci 10.47.6 inny niż pi . Ale pi pozwala na połączenie na dowolnym protokole i dowolnym porcie z dowolnego, co widzi w 10.47.6.0/23 (aka, obie podsieci), a strace na rpcbind wskazuje, że robi zobacz połączenie przychodzące. Jedyne, co mogę myśleć, to blokowanie własnych połączeń wychodzących do 10.47.7.0/24, ale nie mam żadnych reguł wychodzących i domyślnej polityki AKCEPTACJI, a kiedy spuściłem całą tabelę na szybki test, nadal mam awarie. Co tu się dzieje? Pi nasłuchuje na wszystkich zwykłych portach:
root@splunk:~> rpcinfo -p pi
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 60044 status
100024 1 tcp 55702 status
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 2 tcp 2049
100227 3 tcp 2049
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 2 udp 2049
100227 3 udp 2049
100021 1 udp 38666 nlockmgr
100021 3 udp 38666 nlockmgr
100021 4 udp 38666 nlockmgr
100021 1 tcp 44067 nlockmgr
100021 3 tcp 44067 nlockmgr
100021 4 tcp 44067 nlockmgr
100005 1 udp 51123 mountd
100005 1 tcp 57740 mountd
100005 2 udp 39024 mountd
100005 2 tcp 53219 mountd
100005 3 udp 40590 mountd
100005 3 tcp 47949 mountd
Argh !!!
iptables -L -vn
kiedy wymieniasz konfiguracje iptables, które zawierają interfejsy (możesz zezwolić na 10.47.6.0/23, ale na przykład z niewłaściwego interfejsu). Zwykle umieszcza się RELATED, ESTABLISHED jako pierwszą linię, aby zapobiec dopasowaniu znanych połączeń.