Skip to content

Routerbau mit OpenBSD II

Konfiguration der Ralink Karte war voellig stressfrei, erster Testbetrieb
und Aufbau des Rulesets im PF.

Da meine externe Verbindung keinen ppoe Daemon benoetigt
reicht in der

/etc/hostname.hme0
dhcp

fuer das interne wired Interface

/etc/hostname.hme1
inet 192.168.100.1 255.255.255.0 NONE

und fuer das Wireless Interface sind folgende Eintrage nötig um als Accesspoint zu arbeiten.

vi /etc/hosname.ral0
inet 192.168.2.1 255.255.255.0 NONE media autoselect mediaopt hostap mode 11g nwid OpenBSD chan 11

Definition der Netze.


Ultra5% cat /etc/dhcpd.conf
#################################################################
#####shared-network LOCAL-NET {
option domain-name "segglsranch.tld";
option domain-name-servers 192.168.100.1;
max-lease-time 36500;
default-lease-time 36500;

subnet 192.168.100.0 netmask 255.255.255.0 {
# interface "hme1";
option routers 192.168.100.1;
range 192.168.100.127 192.168.100.254;

default-lease-time 36500;
max-lease-time 36500;

}
subnet 192.168.2.0 netmask 255.255.255.0 {
# interface "ral0";
option routers 192.168.2.1;

range 192.168.2.100 192.168.2.254;

default-lease-time 43200;
max-lease-time 43200;
}
###}
Ultra5%

Im OpenBSD Packet filter sind diese Einträge nötig damit das Wireless auch das tut was es soll

PF Ruleset

########################################VARIABLEN ##########################

External = "hme0" # Device an dem das Internalernet angeschlossen ist
Internal = "hme1"
Air = "ral0" #Wireless Access Point
#Internal2 ="hme2" # Device an dem das interne Netz haengt
#Internal3 ="hme3"
InternalNet = "192.168.100.0/24" # Adressraum des internen Netzes
WebNet = "192.168.100.10"
AirNet = "192.168.2.1/24" #Adressraum von Wireless Lan
RouterIP = "192.168.100.1" # IP Adresse des Routers
Loop = "lo0" # Loopback Device
localnet = $Internal:network
wirlessnet =$Air:network
############################&Dienste;############################################

# Adressen die auf dem externen Device nicht geroutet werden
# (Adressbereich des internen Netzes muss man wegen der Weiterleitungen zulassen)
table { 127.0.0.1/8, 172.16.0.0/12, 192.168.0.0/16, !$InternalNet, 10.0.0.0/8, 255.255.255.255/32 }

# Ports die geoeffnet werden sollen
InServicesTCP = “{ ssh, ftp, auth, www, 2200 }”

### OPTIONEN ###

# Statistiken fuer das Externalerne Device(pfctl -s info)
set loginterface $External

# inaktive Verbindungen werden schneller gekillt
# reduzierter Speicherverbrauch.
set optimization aggressive

# Fragmentierte Pakete saeubern
scrub on $External all fragment reassemble random-id

# Queueing
# ############################################
# Bandbreiten Queueing auf 300Kb (Kilobit)
# Bei größeren Bandbreiten bitte anpassen.
# ############################################
altq on $External priq bandwidth 300Kb queue { q_pri, q_def }
queue q_pri priority 7
queue q_def priority 1 priq(default)

### NAT & FORWARDING ###

# Network Adress Translation aktivieren
nat on $External from $InternalNet to any -> $External static-port
nat on $External from $AirNet to any -> $External static-port

### FILTER ###

# Blocking Regel
block on $External

# Sofern nicht notwendig wird nicht geantwortet
block return log on $External
# IPv6 suckt!
block quick inet6

# Loopback Device darf alles
pass quick on $Loop

# IP Spoofing unterbinden
block in log quick on $External inet from to any
block in log quick on $External inet from any to

# Ping akzeptieren
pass in quick on $External inet proto icmp all icmp-type 8 code 0 keep state

# Ports nach aussen oeffnen
pass in quick on $External inet proto tcp from any to any port $InServicesTCP flags S/SAFR keep state label ServicesTCP

anchor “passin/*”

# Raus darf (fast) alles
pass out quick on $External keep state queue (q_def,q_pri)

:
Die Namensaufloesung kann man ueber die /etc/hosts loesen

Als Caching DNS Server koennte man den in den Ports vorhandenen dnsmasq oder Djbdns verwenden, oder man verwendet den bereits im Chroot vorhandenen Bind9.

In der naechsten Folge, wird das Wlan abgedichtet, ohne auf WEP oder WPA2 zurück greifen zu müssen. ;)

Mir schwebt eine ähnliche Konfig vor, wie bei Hotspots. Authentifizier dich, oder bekomm eine Fuck OFF Webseite zu sehen. ;)

Folgende Eintraege in den Startup Dateien sind notwendig.


/etc/rc.conf.local
####&Packetfilter;#######
pf=YES
pf_rules=/etc/pf.conf
pflogd=YES
######&INDIANER;#############
#http_flags=" -DSSL"
#DHCP Server intern
dhcpd_flags=""

folgende Eintraege sind in der /etc/sysctl.conf notwendig.


net.inet.ip.porthifirst=49161 #wird benoetigt falls ein ftp server eingebaut werden soll
net.inet.ip.porthilast=65535 # """"""""""""""""""""""" siehen oben fuer ftp Server und ftp-proxy
kern.maxfiles=4096 # Maxfiles aufblasen
vm.swapencrypt.enable=1 '# Swap Encryption einschalten
kern.usercrypto=1
net.inet.ip.forwarding=1 #Ip Forwarding.

Das war schon alles fuer den ersten Testbetrieb.

Das Wlan ist jetzt zwar offen wie ein Scheunentor aber es ist funktionsfaehig und man sollte sich verbinden koennen und Debugging betreiben koennen.

Wie immer bei Netzwerkspielerein, ist Feintuning und Verbesserung ohne Ende moeglich und jeder macht es ein wenig anders.

Spielereien wie
Timeserver, Dyndns, Regeln fuer Bittorrent und weiss der Geier noch was sind moeglich.

Evtl lass ich das noch einfliessen, schaun wir mal, auch am Dhcp kann man noch einiges drehen. Mac Filterung, oder fixed Adressen ueber den Dhcp waeren genauso moeglich. Aber das war jetzt der erste Schritt auf den man aufbauen kann. :-)

Trackbacks

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Noch keine Kommentare

Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
BBCode-Formatierung erlaubt
Pavatar, Gravatar, Favatar, MyBlogLog Autoren-Bilder werden unterstützt.
:'(  :-)  :-|  :-O  :-(  8-)  :-D  :-P  ;-) 
Formular-Optionen