Sprawdź, czy działają reguły iptables


Mam trzy wirtualne skrzynki.

1)

Maszyna wirtualna

VM-A

który działa jak router z dwoma interfejsami:
eth0 - 10.160.10.254
eth1 - 172.10.0.254

2)

Maszyna wirtualna

VM-B

która działa jak sieć wewnętrzna z jednym interfejsem:
eth0 - 10.160.10.1 (i od gw do 10.160.10.254)

3)

Maszyna wirtualna

VM-C

który działa jak zewnętrzna sieć z jednym interfejsem:
eth0 172.10.0.1 (i od gw do 172.10.0.254)
Chcę zezwolić na połączenia ssh z routerem (VM-1), jeśli zostało utworzone dla serwera w sieci wewnętrznej z iptables.
Więc w routerze vbox używam tych dwóch poleceń poniżej:
iptables -A INPUT -s 10.160.10.4 -d 10.160.10.254 -p udp --dport 22 -j ACCEPTiptables -A INPUT -s 10.160.10.4 -d 10.160.10.254 -p tcp--dport 22 -j ACCEPT

Aby sprawdzić, czy to działa, próbuję użyć netcata.
W sieci wewnętrznej używam
       nc -lu 22
i na zewnętrznym komputerze sieciowym, którego używam
       nc -u 193.160.10.4 22
polecenie, ale nic się nie pojawia.
Czy wiesz, co powinno się pojawić i jak poprawnie używać netcata do sprawdzania reguł iptables?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

SSH używa protokołu TCP, a nie UDP. Używasz nc -u do wysyłania pakietów UDP. Spróbuj
nc -vz <ip> <port>

Jeśli chcesz przetestować reguły iptables w ten sposób, musisz ustawić politykę dla łańcucha INPUT na DROP lub REJECT. Upewnij się, że wcześniej zezwoliłeś na pakiety TCP na porcie 22 ze swojego źródła. Możesz to włączyć z adresu IP określonego komputera, całej podsieci lub interfejsu.
Przykład źródłowego adresu IP:
iptables -A INPUT -s <source ip> -p tcp --dport 22 -j ACCEPT

Przykład podsieci źródłowej (bierze wszystko z 192.168.xxx.xxx):
iptables -A INPUT -s 192.168.0.0/16 -p tcp --dport 22 -j ACCEPT

Przykład interfejsu źródłowego (akceptuje każdy pakiet przechodzący przez interfejs eth0):
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT

Ustaw zasadę INPUT na DROP (domyślna akcja, jeśli żadna z reguł nie ma zastosowania):
iptables -P INPUT DROP

Z poważaniem
EDYCJA: I oczywiście to, co powiedział David, ale zgaduję, że w pytaniu są jakieś literówki, w przeciwnym razie nie będzie działającego połączenia.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Twój problem składa się z dwóch części:

Część 1 - Konfiguracja sieci

Po pierwsze, używasz 3 podsieci. Zakładam, że używasz ich wszystkich jako/24: 10.160.10.0/24, 172.10.0.0/24 i 192.168.10.0/24
VM-A jest skonfigurowany dla 10.160.10.0/24 i 172.10.0.0/24.
VM-B jest skonfigurowany jako 192.168.10.0/24
VM-C jest ustawiona na 172.10.0.0/24.
Przy takiej konfiguracji adresu IP VM-B nie może

widzieć

VM-A lub VM-B. Musisz albo dodać podsieć 192.168.10.0/24 do VM-A (twojego routera), albo zmienić podsieć na VM-B w podsieci 10.160.10.0/24 lub 172.10.0.0/24. Oznacza to, że nie możesz skonfigurować swojej bramy w zupełnie innej podsieci niż ta, dla której ustawiłeś adres IP na hoście. Adres IP hosta i adres IP bramy muszą znajdować się w tej samej podsieci.
Należy również pamiętać, że 172.10.0.0/24 nie jest prywatną podsiecią. W

prywatny

Zakres 172: 172.16.0.0/12, co oznacza adresy IP: 172.16.0.0 - 172.31.255.255 [1]


Część 2 - Konfiguracja zapory
iptables -A INPUT -s 10.160.10.4 -d 10.160.10.254 -p udp --dport 22 -j AKCEPTUJ

Źródłowy adres IP musi być
         10.160.10.1
Skąd pochodzi host 10.160.10.4? W przeciwnym razie @Knorke jest dobry w konfigurowaniu iptables.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się