# Gentoo na domowy ruter/serwer

## WombaT

Postawiłem sobie za cel zbudowanie rutera będącego jednocześnie mini-serwerem. Sprzęt mam, kwestia tylko systemu. Zastanawiam się nad gentoo. Czy to będzie dobry wybór?

Ogólne założenia są takie, że na początku będzie to tylko ruter, czyli coś takiego:

```

komputery ---- switch ---- ruter ---- {internet}

                            |

                         (wifi)

```

sieć wewnętrzna oczywiście za natem, a wifi zmostkowane z interfejsem sieci wewnętrznej co (przynajmniej tak sądzę) da jedną sieć na kablu i w powietrzu. Komp ten będzie miał z zewnątrz publiczny adres IP. Czy gentoo w podstawowej konfiguracji z wyciętym ssh na zewnętrznym interfejsie będzie "bezpieczne"?

W późniejszych czasie będę dodawał kolejne usługi (mały webserver, kilka baz danych itp) i wtedy będę się martwił o ich bezpieczeństwo ale na początku chciałbym wiedzieć czy do samego rutingu muszę jakoś dodatkowo konfigurować system tudzież jakoś nadzwyczajnie go konfigurować?

O ile w kwestii linuksów i sieci jakieś tam doświadczenie mam, o tyle nigdy jeszcze nie wystawiałem z własnego domu publicznie dostępnego kompa, więc bezpieczeństwo to narazie pkt nr. 1 ;p

----------

## Bialy

Na dzień dobry wystarczy goły system z demonem dhcp + iptables.

Bezpieczeństwo będzie zależne od tego jak przyłożysz się do regułek firewall'a.

PS.

Warto dodać do iptables nawet proste priorytety, by użytkownicy nie narzekali na powolne łącze.

----------

## radek-s

o jakich priorytetach mylisz?

nie ma wsparcia juz dla l7-protocols, wiec jedynie co mozna zrobic to zmienic tos, priorytet dla icmp, dns, cos jeszcze?

----------

## Bialy

Coś prostego na sam początek wystarczy:

```
echo "Ustawiam QoS..."

export PRIO1="1"

export PRIO2="2"

export PRIO3="3"

export PRIO4="4"

echo "Ustalam polaczenia o priotytecie 4..."

iptables -t mangle -A FORWARD -p tcp --dport NUMER_PORTU -j MARK --set-mark $PRIO4

iptables -t mangle -A OUTPUT -p tcp --dport NUMER_PORTU -j MARK --set-mark $PRIO4

iptables -t mangle -A FORWARD -p tcp -m tos --tos Minimize-Cost -m mark --mark 0 -j MARK --set-mark $PRIO4

echo "Ustalam polaczenia o priotytecie 3..."

iptables -t mangle -A FORWARD -p tcp --dport NUMER_PORTU -j MARK --set-mark $PRIO3

iptables -t mangle -A OUTPUT -p tcp --dport NUMER_PORTU -j MARK --set-mark $PRIO3

iptables -t mangle -A FORWARD -p tcp -m tos --tos Maximize-Throughput -m mark --mark 0 -j MARK --set-mark $PRIO3

echo "Ustalam polaczenia o priotytecie 2..."

iptables -t mangle -A FORWARD -p icmp -j MARK --set-mark $PRIO2

iptables -t mangle -A OUTPUT -p icmp -j MARK --set-mark $PRIO2

iptables -t mangle -A FORWARD -p tcp -m tos --tos Maximize-Reliability -m mark --mark 0 -j MARK --set-mark $PRIO2

echo "Ustalam polaczenia o priotytecie 1..."

iptables -t mangle -A FORWARD -p tcp --dport NUMER_PORTU -j MARK --set-mark $PRIO1

iptables -t mangle -A OUTPUT -p tcp --dport NUMER_PORTU -j MARK --set-mark $PRIO1

iptables -t mangle -A FORWARD -p tcp -m tos --tos Minimize-Delay -m mark --mark 0 -j MARK --set-mark $PRIO1
```

Kolejność jest ważna (wynika z właściwości iptables).

Priorytet 1 jest najważniejszy, 4 jest najmniej ważny.

Reguły tworzysz tylko dla łańcuchów OUTPUT oraz FORWARD.

PS. Trochę bardziej rozbudowana wersja umożliwiała zadowalające korzystanie z HTTP, przy 0.5Mb/s łączu i rozpędzonym P2P.

----------

## radek-s

moge prosic Cie o przeslanie calego firewalla i qos jaki u siebie stosujesz? (z ciekawosci) (radek at torama pl)

odkad nie ma wsparcia i nie jest rozwijany l7 ciezko odseparowac p2p i tak czy siak www beda gorzej dzialac....

czy sie myle?

----------

## Bialy

 *radek-s wrote:*   

> moge prosic Cie o przeslanie calego firewalla i qos jaki u siebie stosujesz? (z ciekawosci) (radek at torama pl)
> 
> odkad nie ma wsparcia i nie jest rozwijany l7 ciezko odseparowac p2p i tak czy siak www beda gorzej dzialac....
> 
> czy sie myle?

 Wybacz, ale nie prześlę całego skryptu...

Jeżeli chcesz dobry skrypt, to sam go zrób albo kup (mój nie jest na sprzedaż).

Podałem Tobie wędkę, ryby nie chcę dawać  :Wink: 

----------

