virtualBox a stworzenie malej sieci


(Ma1estic) #1

Witam. Piszę ponieważ mam pewien problem. Musze stworzyć następujący projekt:

Maszyny wirtualne - BRAMA, serwer 1, serwer2, klient1, klient2, klient3

Brama - eth0 mostkowany z interfejsem systemu hostujacego maszyne wirtualna, ip pobierany przed dhcp

interfejs eth1 polaczony do sieci typu host only. Adres ip to pierwszy adres z sieci dmz, (przykladowo 192.168.123.0/24)

interfejs eth2 polaczony do sieci tjw #2, adres ip to pierwszy adres z sieci LAN (np. 172.16.16.0/24)

Serwer 1 i Serwer 2 (oba serwery sa w sieci DMZ i laczy je eth1)

Serwer 1 - interfejs eth0 polaczony do sieci typu host only, adres ip to 100adres hosta z sieci dmz

Serwer 2 - interfejs eth0 polaczony do sieci typu host only, adres ip to 200adres hosta z sieci dmz

Klient1- interfejs eth0 - polaczony do sieci host-only#2 , adres ip to 10 adres hosta z sieci LAN

Na masyznie brama pelniacej funckje routera i firewalla, utworzyc skrypt firewall.sh , nadac uprawnienia do wykonania tego skryptu, nastepnie umiescic w nim polecenia realizujace nastepujace zadania:

  • uruchomienie przekazywania pakietow (routing)

  • czyszczenie wszystkich regul iptables

  • Zapewnienie dostepu w sieci lokalnej (klient1, klient2, kleint3) oraz DMZ do sieci Internet, uruchomiec translacje adresow MASQUARADE dla LAN i DMZ

  • Uruchomiec translacje DNAT

  • przekierowac port 80 tcp na serwer 1 w strefie DMZ

  • przekierowac port 53 udp na serwer 1 w strefie DMZ

  • przekierowac port 1022 tcp na serwer 1 w srfeie DMZ na port 22 tcp

-Firewall chroniacy dostep do sieci wewnetrznej i do DMZ - uzywajac polityki restrykcyjnej na interfejsie wejsciowym od strony sieci internet(DENy - blokujemy wszystko, przepuszczamy too co potrzebujemy)

  • Ograniczyc uzytkownikom z sieci LAN na korzystanie z uslugi DNS tylko do serwera 8.8.8.8

  • Uruchomic usługę SSh na porcie 2345 oraz przepuscic polaczenie na firewallu .

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Zaczałem od odpalenia 3 maszynek na debianie nazywajac kolejno brama, serwer1, serwer2

na bramie wprowadzilem ustawienia w sieci 1karta mostkowa karta sieciowa, karta 2 karta sieci izolowanej, karta 3 karta sieci izolowanej #2

nastepnie wprowadzilem ustawienia globalne dla host-only podajac ip z zadania, next postawilem karty /etc/network/interfaces ..pozniej przeszedlem do konfiguracji maszynek serwer 1 i serwe2..i ciagle nie wystepuje polaczenie pomiedzy brama a serwerem, serwer1-serwer2 itp..ciagle ten sam problem czyli brak polaczenia(sprawdzilem MAC adresy w virtualu i nie ma zdublowanych adresow)..Padam juz bo nigdy nie bylem dobry w linuxie i wiem, ze ten system to dla mnie wyzwanie ale takie polaczenie wydaje sie banalne a mimo to nie dziala.

Rowniez 2 czesc zadania konfiguracja firewall.sh, tutaj rowniez mam cos co stworzylem,a le tez musialem nakopsac bo podczas uruchomienia wystepuje blad i znow robie sie zielony..

Czy jet ktos kto by mogl mnie naprowdzic, pomoc rozwiazac to zadanie zaliczeniowe. Z gory dziekuje za kazda probe pomocy :slight_smile:


(roobal) #2

Dlaczego używasz połączenia typu Host-Only? Takie jest wymagane? Jeśli masz router na jednej z maszyn, to musisz połączyć je w jedną sieć wirtualną, w tym celu wybierasz połączenie typu sieć wewnętrzna (ang. internal network).

Pokaż zawartość tego skryptu.

Pozdrawiam!


(Ma1estic) #3

No wiec typ host_only jest tutaj wymogiem koniecznym.

skrypt zamieszczam jako zalacznik, rozne ip jak i niektore rozne nr portow wynikaja z tego, ze te wartosci na zaliczeniu moga sie zmieniac. Powyzszy opis odnosi sie do ostatniej wersji zaliczenia :slight_smile:

Screen ustawień

-- Dodane 22.02.2012 (Śr) 14:20 --

problem z polaczeniem rozwiazany. Teraz kwestia konfiguracji firewall.sh


(roobal) #4

Miałeś skopiować zawartość skryptu, a nie wrzucać zrzut ekranu. W IPTables masz coś takiego jak polityka bezpieczeństwa, zamiast

iptables -A INPUT -j DROP

iptables -A FORWARD -j DROP

iptables -A OUTPUT -j ACCEPT

prawidłowo powinno być

iptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -P OUTPUT ACCEPT

dlaczego tak? Jeśli pakiet nie pasuje do żadnej reguły, decyzja o jego losie jest podejmowana na podstawie polityki bezpieczeństwa. Druga sprawa, bałagan w regułach. Pytanie: 1. Przekierowanie w jądrze masz aktywne? Nie widzę tego w skrypcie, a to jedno z twoich zadań. 2. Śledzenie portów dla FTP masz aktywne? 3. Gdzie translacja z użyciem maskarady? To też jedno z twoich zadań. Ogólnie to masz straszny bałagan w regułach, na początek uporządkuj je, powinno to wyglądać tak jak poniżej, potraktuj to jako wyjściowy skrypt, uzupełnij go (patrz 3 punkty powyżej) i dokończ, bo gotowca przecież Ci nie dam.

# Czyszczenie starych reguł


iptables -F

iptables -F

iptables -X

iptables -t nat -X

iptables -t nat -F

iptables -t mangle -F

iptables -t mangle -X


# Polityka bezpieczeństwa


iptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -P OUTPUT DROP


# Reguły dla pętli zwrotnej


iptables -A INPUT -i lo -j ACCEPT

iptables -A FORWARD -i lo -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT


# Zezwalanie na ruch sieciowy wychodzący i z połączeń nawiązanych


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

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

iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT


# Dopuszczanie do ruchu w sieciach bezpośrednio podłączonych do routera (bramy)


iptables -A INPUT -s adres_sieci/maska -j ACCEPT

iptables -A FORWARD -s adres_sieci/maska -j ACCEPT


# Przekierowanie portów


iptables -A FORWARD -p tcp -d adres_ip --dport port -j ACCEPT

iptables -t NAT -A PREROUTING -p tcp -i interfejs --dport port -j DNAT --to-destination adres_ip


# NAT (maskarada)


iptables -t nat -A POSTROUTING -s adres_sieci/maska -j MASQUERADE

iptables -A FORWARD -s adres_sieci/maska -j ACCEPT

Pozdrawiam!