1122 |
\chapter{File server} |
\chapter{File server} |
1123 |
|
|
1124 |
\chapter{Firewall/gedeeld internet} |
\chapter{Firewall/gedeeld internet} |
1125 |
|
\section{Linux als gateway} |
1126 |
|
Internet is opgebouwd uit een groot aantal onderling verbonden kleine netwerkjes. |
1127 |
|
In dit voorbeeld heeft ons lokaal netwerkje IP adressen van de vorm 157.193.53.x. |
1128 |
|
Als we een verbinding willen leggen tussen twee lokale computers, kunnen we dat |
1129 |
|
rechtstreeks doen: computers in hetzelfde netwerk ``zien'' elkaar rechtstreeks. |
1130 |
|
Maar als we verbinding willen leggen met een computer buiten ons lokaal netwerk, |
1131 |
|
moeten we dat via een tussenliggende computer doen, die verbonden is met ons netwerk |
1132 |
|
en met het andere netwerk in kwestie. Die computer wordt \begrip{gateway} genoemd |
1133 |
|
en heeft dus minstens twee netwerkkaarten aan boord: \'e\'en voor ons lokaal netwerk |
1134 |
|
en \'e\'en voor het andere netwerk. Er kunnen ook meerdere tussenstappen nodig zijn |
1135 |
|
om van het ene netwerk naar het andere te gaan, zodat de pakkettjes van gateway naar |
1136 |
|
gateway reizen eer ze op hun bestemming aankomen. Met het \commando{traceroute} |
1137 |
|
commando kunnen we een beeld krijgen van dit proces: |
1138 |
|
{\small\begin{verbatim} |
1139 |
|
$ /usr/sbin/traceroute www.linux.org |
1140 |
|
traceroute to www.linux.org (198.182.196.56), 30 hops max, 38 byte packets |
1141 |
|
1 router (157.193.53.254) 2.372 ms 1.970 ms 1.011 ms |
1142 |
|
2 ge.m20.access.gent.giga.belnet.net (193.191.7.9) 0.991 ms 0.983 ms 0.946 ms |
1143 |
|
3 oc48.m160.core.science.giga.belnet.net (193.191.1.137) 1.782 ms 1.731 ms 1.759 ms |
1144 |
|
4 oc192.m160.ext.science.giga.belnet.net (193.191.1.2) 1.698 ms 1.777 ms 1.836 ms |
1145 |
|
5 gigabitethernet4-0-139.ipcolo1.Brussels1.Level3.net (212.3.234.129) 1.921 ms 1.736 ms 1.735 ms |
1146 |
|
6 ae0-12.mp2.Brussels1.Level3.net (212.3.239.34) 2.337 ms 2.271 ms 2.229 ms |
1147 |
|
7 so-3-0-0.mp2.London1.Level3.net (212.187.128.57) 6.837 ms 6.899 ms 6.864 ms |
1148 |
|
8 so-1-0-0.mp2.NewYork1.Level3.net (212.187.128.153) 74.793 ms 72.462 ms 74.133 ms |
1149 |
|
9 so-7-0-0.gar2.NewYork1.Level3.net (64.159.1.186) 73.693 ms 74.103 ms 75.606 ms |
1150 |
|
10 so-4-2-0.edge1.NewYork1.Level3.net (209.244.17.82) 74.372 ms 73.531 ms 73.104 ms |
1151 |
|
11 uunet-level3-oc48.NewYork1.Level3.net (209.244.160.182) 72.674 ms 77.773 ms 81.170 ms |
1152 |
|
12 0.so-6-0-0.XL1.NYC4.ALTER.NET (152.63.21.78) 73.277 ms 74.863 ms 81.496 ms |
1153 |
|
13 0.so-2-0-0.TL1.NYC8.ALTER.NET (152.63.0.153) 73.672 ms 74.631 ms 77.929 ms |
1154 |
|
14 0.so-3-0-0.TL1.TOR2.ALTER.NET (152.63.2.85) 94.344 ms 94.306 ms 94.291 ms |
1155 |
|
15 POS1-0.XR1.TOR2.ALTER.NET (152.63.2.110) 94.233 ms 94.195 ms 94.267 ms |
1156 |
|
16 POS6-0.GW4.TOR2.ALTER.NET (152.63.131.137) 94.754 ms 94.131 ms 94.077 ms |
1157 |
|
17 208.217.112.78 (208.217.112.78) 94.259 ms 94.395 ms 94.510 ms |
1158 |
|
18 srp0-0.core1-tor.bb.attcanada.ca (216.191.65.241) 105.221 ms 105.120 ms 105.135 ms |
1159 |
|
19 pos8-0.core1-ott.bb.attcanada.ca (216.191.65.178) 109.517 ms 109.483 ms 109.402 ms |
1160 |
|
20 pos5-0-0.hcap1-ott.bb.attcanada.ca (216.191.225.2) 110.210 ms 110.037 ms 110.215 ms |
1161 |
|
21 invlogic2.p2p.attcanada.ca (216.191.132.150) 121.681 ms 118.644 ms 115.341 ms |
1162 |
|
22 router.invlogic.com (207.245.34.122) 113.408 ms 114.595 ms 122.460 ms |
1163 |
|
23 www.linux.org (198.182.196.56) 115.316 ms 116.106 ms 116.484 ms |
1164 |
|
\end{verbatim} |
1165 |
|
} |
1166 |
|
Pakketjes van onze lokale computer passeren dus eerst langs de gateway ``router'' |
1167 |
|
met IP adres 157.193.53.254. Deze gateway bevindt zich dus inderdaad op ons lokale |
1168 |
|
subnet. Die stuurt alles door naar ge.m20.access.gent.giga.belnet.net, die het |
1169 |
|
weer doorstuurt,~\ldots tot we bij de 23ste stap eindelijk bij \url{www.linux.org} |
1170 |
|
aankomen. De drie tijden in milliseconden geven aan hoe lang een testpakketje |
1171 |
|
erover deed om van onze computer naar de gateway in kwestie en weer terug te reizen; |
1172 |
|
\commando{traceroute} zendt drie pakketjes per gateway zodat er ook drie tijden te zien zijn. |
1173 |
|
|
1174 |
|
Belangrijk is dat onze lokale computer enkel maar moet weten |
1175 |
|
\begin{itemize} |
1176 |
|
\item dat pakketten voor computers op het lokale subnet (dus naar computers met IP's van de vorm 157.193.53.x) |
1177 |
|
rechtstreeks naar die computer in kwestie mogen gestuurd worden |
1178 |
|
\item dat pakketten voor andere computers naar computer 157.193.53.254 moeten gestuurd worden. |
1179 |
|
\end{itemize} |
1180 |
|
De gateway 157.193.53.254 zoekt dan zelf wel verder uit naar waar het pakket verder moet gestuurd worden. |
1181 |
|
|
1182 |
|
We zullen nu uitzoeken hoe we zelf een gateway kunnen opzetten voor ons eigen subnetje, |
1183 |
|
waar we de IP adressen 10.1.1.x voor zullen gebruiken. De gateway heeft zoals gezegd |
1184 |
|
twee netwerkkaarten en dus ook twee IP adressen: \'e\'en op ons eigen subnetje |
1185 |
|
10.1.1.1 en \'e\'en op het netwerk waar we internet verbinding van krijgen |
1186 |
|
(typisch onze internetprovider) 157.193.53.200. |
1187 |
|
IP adressen van de vorm 10.x.x.x |
1188 |
|
mogen niet op het internet gebruikt worden. Onze gateway zal de pakketten dus niet alleen |
1189 |
|
versturen naar de juiste bestemming, maar ook nog eens het IP adres wijzigen zodat |
1190 |
|
het lijkt alsof alle pakketten van 157.193.53.200 zelf afkomstig zijn. Omgekeerd |
1191 |
|
zal de gateway de antwoordpakketten (die dus aan 157.193.53.200 geadresseerd zijn) |
1192 |
|
terug vertalen en naar de juiste bestemming binnen ons eigen subnet 10.1.1.x sturen. |
1193 |
|
Dit hele gegoochel met doel- en bron-IP adressen wordt \begrip{IP masquerading} |
1194 |
|
genoemd. |
1195 |
|
|
1196 |
|
[[[ tekeningske ]]] |
1197 |
|
|
1198 |
|
\subsection{Masquerading gateway onder Linux 2.2.x} |
1199 |
|
De volgende regels zorgen ervoor dat onze computer pakketten van het subnet 10.1.1.x |
1200 |
|
aanvaardt en ze doorstuurt naar de gepaste gateway. |
1201 |
|
\begin{verbatim} |
1202 |
|
IPMASQ=10.1.1.0 |
1203 |
|
echo "1" >/proc/sys/net/ipv4/ip_forward |
1204 |
|
/sbin/modprobe ip_masq_ftp.o |
1205 |
|
/sbin/modprobe ip_masq_raudio |
1206 |
|
/sbin/modprobe ip_masq_irc |
1207 |
|
/sbin/ipchains -P forward DENY |
1208 |
|
/sbin/ipchains -A forward -s ${IPmasq}/24 -j MASQ |
1209 |
|
\end{verbatim} |
1210 |
|
[[[check this]]]\\ |
1211 |
|
De verschillende \commando{modprobe} commando's zorgen er ook voor dat |
1212 |
|
speciale maatregelen genomen worden om de FTP, real audio en IRC protocollen |
1213 |
|
te ondersteunen. Deze maatregelen zijn nodig omdat die protocollen in de war |
1214 |
|
kunnen raken doordat de masquerading gateway ``achter hun rug'' IP adressen |
1215 |
|
zit te veranderen. |
1216 |
|
|
1217 |
|
\subsection{Masquerading gateway onder Linux 2.4.x} |
1218 |
|
\begin{verbatim} |
1219 |
|
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE |
1220 |
|
echo "1" >/proc/sys/net/ipv4/ip_forward |
1221 |
|
modprobe ip_nat_ftp |
1222 |
|
modprobe ip_conntrack_ftp |
1223 |
|
\end{verbatim} |
1224 |
|
waarbij eth0 de netwerkkaart is naar waar de pakketten van ons intern net gestuurd |
1225 |
|
moeten worden (in ons geval dus de kaart die aan 157.193.53.x hangt). |
1226 |
|
|
1227 |
|
Ook hier dienen de \commando{modprobe} commando's om het FTP protocol |
1228 |
|
beter te ondersteunen. |
1229 |
|
|
1230 |
|
[[[ hoe gewone gateway maken zonder masquerading? ]]] |
1231 |
|
|
1232 |
|
\section{Linux als firewall} |
1233 |
|
|
1234 |
\chapter{Printserver} |
\chapter{Printserver} |
1235 |
|
|