PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : "Kiosksystem" : ist das hier "soweit" sicher ?



Newbie314
26.08.10, 19:39
Mittlerweile habe ich das in

http://www.linuxforen.de/forums/showthread.php?t=268309
http://www.linuxforen.de/forums/showthread.php?t=268654

angekündigte Kiosk System realisiert.
Wenn Bedarf besteht schreibe ich bei Gelegenheit gerne eine Schritt - für Schritt Anleitung. (Bei meiner Aktion mit tightvnc für Remote Support auf Windows Rechnern fand ich heraus dass außer mir keiner Bedarf zu haben schien.. daher wenn Bedarf an einer Schritt-für Schritt Anleitung bestehen sollte bitte hier posten)

In diesem Post hier hätte ich gerne dass einige Leute die sich besser auskennen sich das System ansehen und mir mitteilen
- falls ich irgendwo eine Sicherheitslücke übersehen haben sollte
- falls man irgendwo mit wenig Aufwand (wichtig.. habe bereits zu viel Zeit in dieses Mini Projekt gesteckt) die Sicherheit erhöhen oder den Wartungsaufwand reduzieren kann.

Hintergrund: in einem separaten Raum wird ohne direkte Aufsicht ein Laptop installiert mit dem man
auf Webseiten des Vereins zugreifen können soll. Sonst aber nichts, vor allem kein Missbrauch.

Der Laptop wird in eine kleine verschließbare Blechkiste eingebaut so dass niemand das LAN Kabel abziehen kann oder an die Schnittstellen rankommt. An die Stelle an der das Kabel in die Dose geht kommt man so ohne Weiteres auch nicht ran.


Jetzt geht es darum den Laptop (Xubuntu Installation) abzusichern.


1. Bios Passwort, man kann nur von HD booten
2. GRUB2 Passwort gesetzt, man kann keinen anderen Kernel booten / nicht von der USB Schnittstelle booten
3. /etc/grub.d/00_header ist nur für root lesbar, ebenso die /boot/grub/grub.conf (das Passwort geht bisher bei grub nur in Klartext...) (GRUB_DISABLE_LINUX_RECOVERY=true ist gesetzt)
4. Root Passwort ist gesetzt (großes Zufallspasswort mit makepasswd (Laut Ubuntu kann sich sonst bei Absturz von GRUB eine root shell öffnen)
5. User "surfer" angelegt: er ist in keiner Gruppe außer "autologin" und hat als shell /usr/bin/false (kann also keine Shell öffnen). (Außer dem Surfer user gibt es noch einen anderen User der in der Gruppe "admin" ist und sudo ausführen kann. Sonst sind keine "normalen" user mehr eingerichtet, nur Systemuser wie dansguardian, nobody etc.)
6. Das Home Verzeichnis von "surfer" sowie /tmp und /var/tmp , /var/crash sind auf Partitionen ausgelagert die mit "noexec" gemountet sind. (Sind das alle Verzeichnisse auf die "surfer" Schreibzugriff hat ? "automount" für externe Medien ist ausgeschaltet)
7. Autologin für surfer ohne dass xterm oder xfce gestartet wird: /etc/gdm/custom.conf : DefaultSession ist "firefox" "firefox.desktop" liegt in /usr/share/xsessions und startet das Skript "startff" das in /usr/bin liegt. "startff" tut folgendes: es löscht alle Dateien im home Verzeichnis
von surfer und legt sie aus einem tar Archiv (auf das surfer nur Lesezugriff hat) neu an. Darin ist ein Firefox der auf den Port 8080 zugreift und ein installiertes R-Kiosk Add On. Die Startseite ist auf einem Menü das die anzusurfenden Seiten enthält eingestellt.
8. Auf Port 8080 lauscht dansguardian und limitiert den Netzzugang mit einer "whitelist".
9. fstab so geändert dass /dev/shm auf ro gemountet wird. in /etc/ssh/sshd_config "PermitRootLogin" auf false gesetzt und chmod go-x /usr/bin/su durchgeführt (stand in einem Ubuntu Tutorial)

10. squid installiert (für dansguardian benötigt). squid läuft unter dem user "proxy". Dansguardian installiert , läuft unter dem user "dansguardian".
11. im squid.conf: http_access deny to_localhost und http_access allow localhost ansonsten Standardeinstellungen.
12. im dansguardian.conf folgendes geändert: filterip = 127.0.0.1 ,maxuploadsize = 0 Rest: Standardeinstellungen.
13. Mit Harrys IP table Generator ein IP tables Skript erzeugt das es dem user "surfer" unmöglich machen soll Pakete direkt ins Internet zu schicken oder direkt auf den Squid zuzugreifen (angehängt)

14. Reporting per E-Mail: wenn der admin user einloggd, und wenn jemand "sudo" ausführt wird per sendEmail eine Mail an mich verschickt. Ebenso wenn neue Pakete (apt-get upgrade -s -u ) verfügbar sind. Logrotate schickt die .auth und .messages logs einmal pro Woche an meine Mailadresse.
15. Lauschen noch Prozesse nach außen die ich stoppen soll ? (Habe die Ausgaben von lsoef +M -i4 und ps -aef angehängt)

16. Sind meine Änderungen an Harrys Iptables Skript OK ? (Bei meinen Tests funktionierte alles wie erwartet)

Habe ich noch etwas übersehen (z.B. Tastenkombinationen mit denen sich doch eine Shell öffnet / mit denen man trotz fehlendem xfce ein Programm starten kann ) ?

Newbie314
26.08.10, 19:41
ps -aef:



UID PID PPID C STIME TTY TIME CMD
root 1 0 0 19:20 ? 00:00:01 /sbin/init
root 2 0 0 19:20 ? 00:00:00 [kthreadd]
root 3 2 0 19:20 ? 00:00:00 [migration/0]
root 4 2 0 19:20 ? 00:00:00 [ksoftirqd/0]
root 5 2 0 19:20 ? 00:00:00 [watchdog/0]
root 6 2 0 19:20 ? 00:00:00 [events/0]
root 7 2 0 19:20 ? 00:00:00 [cpuset]
root 8 2 0 19:20 ? 00:00:00 [khelper]
root 9 2 0 19:20 ? 00:00:00 [netns]
root 10 2 0 19:20 ? 00:00:00 [async/mgr]
root 11 2 0 19:20 ? 00:00:00 [pm]
root 12 2 0 19:20 ? 00:00:00 [sync_supers]
root 13 2 0 19:20 ? 00:00:00 [bdi-default]
root 14 2 0 19:20 ? 00:00:00 [kintegrityd/0]
root 15 2 0 19:20 ? 00:00:00 [kblockd/0]
root 16 2 0 19:20 ? 00:00:00 [kacpid]
root 17 2 0 19:20 ? 00:00:00 [kacpi_notify]
root 18 2 0 19:20 ? 00:00:00 [kacpi_hotplug]
root 19 2 0 19:20 ? 00:00:00 [ata/0]
root 20 2 0 19:20 ? 00:00:00 [ata_aux]
root 21 2 0 19:20 ? 00:00:00 [ksuspend_usbd]
root 22 2 0 19:20 ? 00:00:00 [khubd]
root 23 2 0 19:20 ? 00:00:00 [kseriod]
root 24 2 0 19:20 ? 00:00:00 [kmmcd]
root 27 2 0 19:20 ? 00:00:00 [khungtaskd]
root 28 2 0 19:20 ? 00:00:00 [kswapd0]
root 29 2 0 19:20 ? 00:00:00 [ksmd]
root 30 2 0 19:20 ? 00:00:00 [aio/0]
root 31 2 0 19:20 ? 00:00:00 [ecryptfs-kthrea]
root 32 2 0 19:20 ? 00:00:00 [crypto/0]
root 40 2 0 19:20 ? 00:00:00 [scsi_eh_0]
root 41 2 0 19:20 ? 00:00:00 [scsi_eh_1]
root 43 2 0 19:20 ? 00:00:00 [kstriped]
root 44 2 0 19:20 ? 00:00:00 [kmpathd/0]
root 45 2 0 19:20 ? 00:00:00 [kmpath_handlerd]
root 46 2 0 19:20 ? 00:00:00 [ksnapd]
root 47 2 0 19:20 ? 00:00:00 [kondemand/0]
root 48 2 0 19:20 ? 00:00:00 [kconservative/0]
root 207 2 0 19:20 ? 00:00:00 [jbd2/sda1-8]
root 208 2 0 19:20 ? 00:00:00 [ext4-dio-unwrit]
root 235 2 0 19:20 ? 00:00:00 [flush-8:0]
root 267 1 0 19:21 ? 00:00:00 upstart-udev-bridge --daemon
root 274 1 0 19:21 ? 00:00:00 udevd --daemon
root 463 2 0 19:21 ? 00:00:00 [kpsmoused]
root 476 2 0 19:21 ? 00:00:00 [pccardd]
root 480 2 0 19:21 ? 00:00:00 [pccardd]
root 591 2 0 19:21 ? 00:00:00 [kgameportd]
root 630 2 0 19:21 ? 00:00:00 [jbd2/sda6-8]
root 631 2 0 19:21 ? 00:00:00 [ext4-dio-unwrit]
root 647 2 0 19:21 ? 00:00:00 [jbd2/sda3-8]
root 648 2 0 19:21 ? 00:00:00 [ext4-dio-unwrit]
root 651 2 0 19:21 ? 00:00:00 [jbd2/sda8-8]
root 652 2 0 19:21 ? 00:00:00 [ext4-dio-unwrit]
root 655 2 0 19:21 ? 00:00:00 [jbd2/sda9-8]
root 656 2 0 19:21 ? 00:00:00 [ext4-dio-unwrit]
syslog 674 1 0 19:21 ? 00:00:00 rsyslogd -c4
102 682 1 0 19:21 ? 00:00:00 dbus-daemon --system --fork
root 689 1 0 19:21 ? 00:00:00 gdm-binary
avahi 698 1 0 19:21 ? 00:00:00 avahi-daemon: running [sgd-desktop.local]
avahi 699 698 0 19:21 ? 00:00:00 avahi-daemon: chroot helper
root 723 1 0 19:21 ? 00:00:00 NetworkManager
root 725 1 0 19:21 ? 00:00:00 /usr/sbin/modem-manager
root 755 1 0 19:21 ? 00:00:00 /usr/sbin/console-kit-daemon --no-daemon
root 822 1 0 19:21 tty4 00:00:00 /sbin/getty -8 38400 tty4
root 826 1 0 19:21 tty5 00:00:00 /sbin/getty -8 38400 tty5
root 831 689 0 19:21 ? 00:00:00 /usr/lib/gdm/gdm-simple-slave --display-id /org/gnome/DisplayManager/Display1
root 832 1 0 19:21 ? 00:00:00 /sbin/wpa_supplicant -u -s
root 836 1 0 19:21 tty2 00:00:00 /sbin/getty -8 38400 tty2
root 839 1 0 19:21 tty6 00:00:00 /sbin/getty -8 38400 tty6
root 840 723 0 19:21 ? 00:00:00 /sbin/dhclient -d -sf /usr/lib/NetworkManager/nm-dhcp-client.action -pf /var/run/dhclient-eth0.pid -lf /var/lib/dhcp3/dhclient-67d9a371-1884-4761-9f6f-be025c19a291-eth0.lease -cf /var/run/nm-dhclient-eth0.conf eth0
root 846 1 0 19:21 ? 00:00:00 acpid -c /etc/acpi/events -s /var/run/acpid.socket
root 856 1 0 19:21 ? 00:00:00 cron
daemon 857 1 0 19:21 ? 00:00:00 atd
root 954 831 1 19:21 tty7 00:00:09 /usr/bin/X :0 -nr -verbose -auth /var/run/gdm/auth-for-gdm-avIEHa/database -nolisten tcp vt7
clamav 980 1 0 19:21 ? 00:00:03 /usr/bin/freshclam -d --quiet
root 1116 831 0 19:21 ? 00:00:00 /usr/lib/gdm/gdm-session-worker
surfer 1141 1116 0 19:21 ? 00:00:00 /bin/sh /usr/bin/startff
surfer 1170 1141 0 19:21 ? 00:00:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session startff
surfer 1173 1 0 19:21 ? 00:00:00 /usr/bin/dbus-launch --exit-with-session startff
surfer 1174 1 0 19:21 ? 00:00:00 /bin/dbus-daemon --fork --print-pid 5 --print-address 9 --session
root 1201 1 0 19:21 ? 00:00:00 /usr/sbin/squid
proxy 1203 1201 0 19:21 ? 00:00:00 (squid)
115 1205 1 0 19:21 ? 00:00:00 /usr/sbin/dansguardian
115 1206 1205 0 19:21 ? 00:00:00 /usr/sbin/dansguardian
115 1207 1205 0 19:21 ? 00:00:00 /usr/sbin/dansguardian
115 1209 1205 0 19:21 ? 00:00:00 /usr/sbin/dansguardian
115 1210 1205 0 19:21 ? 00:00:00 /usr/sbin/dansguardian
115 1211 1205 0 19:21 ? 00:00:00 /usr/sbin/dansguardian
115 1213 1205 0 19:21 ? 00:00:00 /usr/sbin/dansguardian
115 1214 1205 0 19:21 ? 00:00:00 /usr/sbin/dansguardian
115 1215 1205 0 19:21 ? 00:00:00 /usr/sbin/dansguardian
115 1216 1205 0 19:21 ? 00:00:00 /usr/sbin/dansguardian
115 1217 1205 0 19:21 ? 00:00:00 /usr/sbin/dansguardian
surfer 1234 1141 0 19:21 ? 00:00:00 /bin/sh /usr/lib/firefox-3.6.8/firefox
proxy 1241 1203 0 19:21 ? 00:00:00 (unlinkd)
surfer 1242 1234 0 19:21 ? 00:00:00 /bin/sh /usr/lib/firefox-3.6.8/run-mozilla.sh /usr/lib/firefox-3.6.8/firefox-bin
surfer 1246 1242 6 19:21 ? 00:00:53 /usr/lib/firefox-3.6.8/firefox-bin
root 1309 1 0 19:21 tty1 00:00:00 /sbin/getty -8 38400 tty1
surfer 1311 1 0 19:21 ? 00:00:00 /usr/lib/libgconf2-4/gconfd-2
115 1334 1205 0 19:22 ? 00:00:00 /usr/sbin/dansguardian
115 1335 1205 0 19:22 ? 00:00:00 /usr/sbin/dansguardian
115 1336 1205 0 19:22 ? 00:00:00 /usr/sbin/dansguardian
115 1337 1205 0 19:22 ? 00:00:00 /usr/sbin/dansguardian
115 1338 1205 0 19:22 ? 00:00:00 /usr/sbin/dansguardian
115 1339 1205 0 19:22 ? 00:00:00 /usr/sbin/dansguardian
root 1343 1 0 19:23 tty3 00:00:00 /bin/login --

Newbie314
26.08.10, 19:43
sudo lsof +M -i4


COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
avahi-dae 698 avahi 13u IPv4 3780 0t0 UDP *:mdns
avahi-dae 698 avahi 14u IPv4 3781 0t0 UDP *:51730
dhclient 840 root 5u IPv4 4116 0t0 UDP *:bootpc
squid 1203 proxy 6u IPv4 5222 0t0 UDP *:48689
squid 1203 proxy 14u IPv4 5443 0t0 TCP localhost:3128 (LISTEN)
squid 1203 proxy 15u IPv4 5444 0t0 UDP *:icpv2
dansguard 1205 dansguardian 6u IPv4 5212 0t0 TCP localhost:http-alt (LISTEN)
dansguard 1209 dansguardian 6u IPv4 5212 0t0 TCP localhost:http-alt (LISTEN)
dansguard 1210 dansguardian 6u IPv4 5212 0t0 TCP localhost:http-alt (LISTEN)
dansguard 1211 dansguardian 6u IPv4 5212 0t0 TCP localhost:http-alt (LISTEN)
dansguard 1213 dansguardian 6u IPv4 5212 0t0 TCP localhost:http-alt (LISTEN)
dansguard 1214 dansguardian 6u IPv4 5212 0t0 TCP localhost:http-alt (LISTEN)
dansguard 1215 dansguardian 6u IPv4 5212 0t0 TCP localhost:http-alt (LISTEN)
dansguard 1216 dansguardian 6u IPv4 5212 0t0 TCP localhost:http-alt (LISTEN)
dansguard 1217 dansguardian 6u IPv4 5212 0t0 TCP localhost:http-alt (LISTEN)
dansguard 1334 dansguardian 6u IPv4 5212 0t0 TCP localhost:http-alt (LISTEN)
dansguard 1335 dansguardian 6u IPv4 5212 0t0 TCP localhost:http-alt (LISTEN)
dansguard 1336 dansguardian 6u IPv4 5212 0t0 TCP localhost:http-alt (LISTEN)
dansguard 1337 dansguardian 6u IPv4 5212 0t0 TCP localhost:http-alt (LISTEN)
dansguard 1338 dansguardian 6u IPv4 5212 0t0 TCP localhost:http-alt (LISTEN)
dansguard 1339 dansguardian 6u IPv4 5212 0t0 TCP localhost:http-alt (LISTEN)


(Warum lauscht squid noch nach draussen ?!?)

Edit: so 100% habe ich es nicht begriffen, aber beim "googlen" fand ich eine Antwort des Squid Autors von 2001 in der er ankündigte DNS Lookup in Zukunft über einen hohen UDP Port abzuwickeln. Außerdem fand ich den Blogeintrag eines Rootserver Betreibers der die gleiche Frage hatte und herausfand dass Squid nach dem Blockieren dieses Ports nicht mehr sauber funktionierte.

Newbie314
26.08.10, 19:48
Harrys IP Tables Skript (Falls er das liest: ein dreimal Hoch auf Harry ! Das ist wirklich ein tolles Tool !!! Damit wird IPtables so einfach zu bedienen wie das berüchtigte Windows Zone Alarm ;) )

(Meine Änderungen in Fettdruck)



#!/bin/bash
# ---------------------------------------------------------------------
# Linux-iptables-Firewallskript, Copyright (c) 2010 under the GPL
# Autogenerated by iptables Generator v1.22 (c) 2002-2010 by Harald
# Please visit http://harry.homelinux.org for new versions of
# the iptables Generator (c).
#
# This Script was generated by request from:
# Newbie314@XXX.de on: 2010-8-11 23:49.26 MET.
#
# If you have questions about the iptables Generator or about
# your Firewall-Skript feel free to take a look at out website or
# send me an E-Mail to webmaster@XXX.org.
#
# My special thanks are going to Lutz Heinrich
# who made lots of Beta-Testing and gave me lots of well qualified
# Feedback that made me able to improve the iptables Generator.
# --------------------------------------------------------------------

case "$1" in
start)
echo "Starte IP-Paketfilter"

# iptables-Modul
modprobe ip_tables
# Connection-Tracking-Module
modprobe ip_conntrack
# Das Modul ip_conntrack_irc ist erst bei Kerneln >= 2.4.19 verfuegbar
modprobe ip_conntrack_irc
modprobe ip_conntrack_ftp

# Tabelle flushen
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X

# Default-Policies setzen
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# MY_REJECT-Chain
iptables -N MY_REJECT

# MY_REJECT fuellen
iptables -A MY_REJECT -p tcp -m limit --limit 7200/h -j LOG --log-prefix "REJECT TCP "
iptables -A MY_REJECT -p tcp -j REJECT --reject-with tcp-reset
iptables -A MY_REJECT -p udp -m limit --limit 7200/h -j LOG --log-prefix "REJECT UDP "
iptables -A MY_REJECT -p udp -j REJECT --reject-with icmp-port-unreachable
iptables -A MY_REJECT -p icmp -m limit --limit 7200/h -j LOG --log-prefix "DROP ICMP "
iptables -A MY_REJECT -p icmp -j DROP
iptables -A MY_REJECT -m limit --limit 7200/h -j LOG --log-prefix "REJECT OTHER "
iptables -A MY_REJECT -j REJECT --reject-with icmp-proto-unreachable

# MY_DROP-Chain
iptables -N MY_DROP
iptables -A MY_DROP -m limit --limit 7200/h -j LOG --log-prefix "PORTSCAN DROP "
iptables -A MY_DROP -j DROP

# Alle verworfenen Pakete protokollieren
iptables -A INPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "INPUT INVALID "
iptables -A OUTPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "OUTPUT INVALID "

# Korrupte Pakete zurueckweisen
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP

# Stealth Scans etc. DROPpen
# Keine Flags gesetzt
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j MY_DROP

# SYN und FIN gesetzt
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP

# SYN und RST gleichzeitig gesetzt
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP

# FIN und RST gleichzeitig gesetzt
iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP

# FIN ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP

# PSH ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP

# URG ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j MY_DROP

# keep user surfer from directly connecting to squid
iptables -A OUTPUT -p tcp --dport 3128 -m owner --uid-owner surfer -j MY_REJECT

# Loopback-Netzwerk-Kommunikation zulassen
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# lock user 'surfer' from any outbound communication
iptables -A OUTPUT -m owner --uid-owner surfer -j MY_REJECT

# Connection-Tracking aktivieren
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# ICMP Echo-Request (ping) zulassen und beantworten
iptables -A INPUT -m state --state NEW -p icmp --icmp-type echo-request -j ACCEPT

# Accept squid / proxy connections to internet
iptables -A OUTPUT -p tcp --dport 80 -m owner --uid-owner proxy -j ACCEPT

# Default-Policies mit REJECT
iptables -A INPUT -j MY_REJECT
iptables -A OUTPUT -j MY_REJECT

# SYN-Cookies
echo 1 > /proc/sys/net/ipv4/tcp_syncookies 2> /dev/null

# Stop Source-Routing
for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_source_route 2> /dev/null; done

# Stop Redirecting
for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_redirects 2> /dev/null; done

# Reverse-Path-Filter
for i in /proc/sys/net/ipv4/conf/*; do echo 2 > $i/rp_filter 2> /dev/null; done

# Log Martians
for i in /proc/sys/net/ipv4/conf/*; do echo 1 > $i/log_martians 2> /dev/null; done

# BOOTP-Relaying ausschalten
for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/bootp_relay 2> /dev/null; done

# Proxy-ARP ausschalten
for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/proxy_arp 2> /dev/null; done

# Ung�ltige ICMP-Antworten ignorieren
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses 2> /dev/null

# ICMP Echo-Broadcasts ignorieren
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 2> /dev/null

# Max. 500/Sekunde (5/Jiffie) senden
echo 5 > /proc/sys/net/ipv4/icmp_ratelimit

# Speicherallozierung und -timing f�r IP-De/-Fragmentierung
echo 262144 > /proc/sys/net/ipv4/ipfrag_high_thresh
echo 196608 > /proc/sys/net/ipv4/ipfrag_low_thresh
echo 30 > /proc/sys/net/ipv4/ipfrag_time

# TCP-FIN-Timeout zum Schutz vor DoS-Attacken setzen
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout

# Maximal 3 Antworten auf ein TCP-SYN
echo 3 > /proc/sys/net/ipv4/tcp_retries1

# TCP-Pakete maximal 15x wiederholen
echo 15 > /proc/sys/net/ipv4/tcp_retries2

;;

stop)
echo "Stoppe IP-Paketfilter"
# Tabelle flushen
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
# Default-Policies setzen
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
;;

status)
echo "Tabelle filter"
iptables -L -vn
echo "Tabelle nat"
iptables -t nat -L -vn
echo "Tabelle mangle"
iptables -t mangle -L -vn
;;

*)
echo "Fehlerhafter Aufruf"
echo "Syntax: $0 {start|stop|status}"
exit 1
;;

esac

oziris
26.08.10, 22:21
Was steht denn in den Mails von Punkt 14 so drin?

Newbie314
26.08.10, 22:28
-User "user" hat sich um XX Uhr eingeloggd.

-SUDO wurde um YY Uhr von User "user" ausgeführt: Befehl: $Befehl , meist sudo -i

- die ausgabe von apt-get upgrade -u -s wenn mehr als 0 Pakete zu erneuern sind

- die Inhalte von var/log/messages und /var/log/auth

Hintergedanke: der Surf User "surfer" hat praktisch keine Rechte.. wenn es jemand schaffen sollte als admin user einzuloggen würde ich den Laptop aus dem Verkehr ziehen.

Die Logs sind dann noch zusätzliche Sicherung.. kommen aber nur einmal pro Woche.

Der Laptop ist hinter einem DSL Router mit Paketfilter untergebracht.. daher glaube ich dass er vor Angriffen aus dem Netz relativ sicher ist.. zumal er keine Dienste anbietet (hoffe ich).

oziris
27.08.10, 01:18
-SUDO wurde um YY Uhr von User "user" ausgeführt: Befehl: $Befehl , meist sudo -i

Wenn ich der Bösewicht wär', dann würd' ich da rumbohren, bei "$Befehl".
Möglicherweise kann man damit Code in die Mail oder den Aufruf des sendmail einschleusen. ("sudo böser code")
... oder übertreiben wir's hier gerade mit der Paranoia?

Newbie314
27.08.10, 07:41
... oder übertreiben wir's hier gerade mit der Paranoia?

Ich glaube nicht... ich habe mal gelesen Paranoia sei für einen Administrator eine gesunde Lebenseinstellung....

Auf dem Laptop läuft kein sendmail (auch kein postfix exim etc....) sendEmail ( http://caspian.dotconf.net/menu/Software/SendEmail/ ) ist ein einfaches Perl Skript das lediglich Mails versenden kann.

Wenn jemand so weit kommt dass er sudo ausführen kann muss er vorher als der Nutzer eingeloggd sein der Admin Rechte erwerben kann. Bei diesem Einloggvorgang erhalte ich aber schon eine Mail dass dieser Nutzer eingeloggd ist.

Da dieses Passwort das gleiche ist das zum sudo nötig ist ist die Kiste dann schon geknackt...

Wenn ich diese Mail erhalte ohne dass ich (oder jemand der die Erlaubnis hat) an dem Rechner war weiß ich dass er geknackt wurde.. und nehme ihn vom Netz....


Ein "Angriff" müsste also früher ansetzen.

Ich werde auch mal ergooglen was squid eigentlich auf diesem udp Port zu suchen hat.. der müsste ja eigentlich von Iptables "dicht" gemacht sein ...

oziris
27.08.10, 16:13
Achso. Wenn er sudo nicht ausführen darf, dann wird die Mail also nicht versandt. Ich dachte, das würde auch bei einem bloßen Versuch versandt.

Newbie314
27.08.10, 17:42
Den bloßen Versuch erfahre ich eine Woche später im auth-File .. glaube ich ...

Da das Passwort nicht erratbar ist und es auffallen würde wenn jemand in dem Raum wochenlang "campen" würde erhalte ich login Mails nur wenn jemand einloggd. Wenn das zu einer seltsamen Zeit passiert weiß ich aber dass der Rechner geknackt ist .. und nehme ihn vom Netz...

Newbie314
26.11.11, 13:29
In der C't Security 03/11 ist ein Artikel wie man Schüler Benutzer PCs unter Ubuntu aufsetzt.. Seite 36.. das könnte für jemanden der auch ein Kiosk System oder einen Gäste PC aufsetzen will interessant sein.