Debian wysypał mi się po zastosowaniu reguł w iptables

Zdarzyło mi się to już dwa razy. Zainstalowałem Debiana z sieci z jednym środowiskiem XFCE (bez GNOME), poprzez sconfigurowany wlan w pliku /etc/network/interfaces

auto wlan0
iface wlan0 inet dhcp
wpa-ssid Nazwa sieci
wpa-psk Haslo do sieci

Debian działał bardzo dobrze, sieć startowała automatycznie poprzez interfaces (nie chciałem instalować menadżera sieci gdyż nie ma dedykowanego dla XFCE). Potem postanowiłem postawić firewalla używając iptables. Nie jestem ekspertem w sieciach jak i w iptables ale poszperałem i zastoswałem takiego gotowca. Ma dosyć mocne ustawienia, jak się orientuję, ale nie jestem pewien reguł.

#!/bin/bash

### BEGIN INIT INFO
# Provides: firewall.sh
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO


# CZYSZCZENIE STARYCH REGUŁ
iptables -F
iptables -X
iptables -F -t nat
iptables -X -t nat
iptables -F -t filter
iptables -X -t filter

# USTAWIENIE POLITYKI DZIAŁANIA
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j REJECT --reject-with icmp-host-unreachable

# OCHRONA PRZED SKANOWANIEM ACK SCAN
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH ACK -j LOG --log-prefix "ACK scan: "
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH ACK -j DROP # Metoda ACK (nmap -sA)

#OCHRONA PRZED SKANOWANIEM FIN SCAN
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN -j LOG --log-prefix "FIN scan: "
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN -j DROP # Skanowanie FIN (nmap -sF)

#OCHRONA PRZED SKANOWANIEM XMAS TREE SCAN
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH PSH -j LOG --log-prefix "Xmas scan: "
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN,URG,PSH -j DROP # Metoda Xmas Tree (nmap -sX)

#OCHRONA PRZED SKANOWANIEM NULL SCAN
iptables -A INPUT -m conntrack --ctstate INVALID -p tcp ! --tcp-flags SYN,RST,ACK,FIN,PSH,URG SYN,RST,ACK,FIN,PSH,URG -j LOG --log-prefix "Null scan: "

#OCHRONA PRZED ATAKIEM Dos
iptables -A INPUT -m conntrack --ctstate INVALID -p tcp ! --tcp-flags SYN,RST,ACK,FIN,PSH,URG SYN,RST
iptables -N syn-flood
iptables -A INPUT -p tcp --syn -j syn-flood
iptables -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
iptables -A syn-flood -m limit --limit 1/s --limit-burst 4 -j LOG --log-prefix "SYN-flood: "
iptables -A syn-flood -j DROP

# OCHRONA PRZED ATAKIEM PING OF DEATH 
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j LOG --log-prefix "Ping: "
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT # Ping of death

# ZABLOKOWANIE PINGOWANIA
iptables -A INPUT -p icmp --icmp-type echo-request -j REJECT --reject-with icmp-host-unreachable

# BLOKOWANIE TELNETU
iptables -A OUTPUT -p tcp --dport telnet -j REJECT
iptables -A INPUT -p tcp --dport telnet -j REJECT

#ZAPIS DO LOGA ODRZUCONYCH PAKIETÓW PRZYCHODZĄCYCH W KATALOGU var/log/messages
iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
iptables -A LOGGING -j DROP

Zapisuje skrypt do pliku a potem w terminalu daje

sudo cp firewall /etc/init.d/



chmod +x /etc/init.d/firewall



update-rc.d firewall defaults 90

Być może problem jest z update-rc firewall defaults 90 (czy na pewno 90?) druga sprawa czy sieć startuje z pliku interfaces pierwsza a potem reguły z init.d. Nie wiem co się dzieje. Wydaje się, że ten gotowiec jest całkiem niezły.

W treści nie ma żadnego pytania. Co oznacza, że się wysypał?

 System uruchamia się i potem zawiesza pokazując komunikat na ekranie “Że coś poszło nie tak. Nie można przywrócić systemu. Skontaktuj się z administratorem” Ten komunikat jest na całym ekranie nim pokaże się menadżer logowania, czyli nie można się zalogować, ani uruchomić środowiska XFCE. I dalej nie idzie.

ctrl + f1 i wklej log ze startu systemu

Tym razem system mi wystartował i jestem w środowisku XFCE, który to log i gdzie on  jest? Teraz jadę z Windowsa gdyż nie mogę się zalogować na forum z Linuxa, wyskakuje mi błąd app-core&mode=global$ion=login SSL handshake failed

Nie wiem jaki program logujacy masz zainstalowany ale generalnie od tego jest folder /var/log

Tak tylko w tym katalogu jest wiele plików log, pytanie, który zbiera informacje ze startu systemu  - messages?

Na chwię obecną uruchomiłem terminal z prawami roota, następnie przeszłem do katalogu

cd /

cd etc

cd init.d

I usunąłem skrypt firewall komendą

rm firewall

Następnie usunąłem dowiązanie

update-rc.d firewall remove

Uruchomiłem komputer ponownie i znów terminal z prawami roota, potem sprawdziłem reguły

iptables -L

Są “czyste”. Nie wiem co jest nie tak z tymi regułami

a wywal iptables z autostartu systemu i wtedy go uruchom, moze cos nie tak jest z samym pakietem

Komedami?

service iptables stop

chkconfig iptables off

 

Ale z drugiej strony chcę używać iptables jako firewalla.

 

Wywal tego gotwca i zastosuj sobie takie reguły.

#!/bin/bash

# Czyszczenie reguł

iptables -F

iptables -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 -o lo -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT

# Reguły dla łańcucha wejściowego

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

# Reguły dla łańcucha wyjściowego

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

Zastosowałem twój skrypt ten poniżej

#!/bin/bash

### BEGIN INIT INFO
# Provides: firewall
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO

# Czyszczenie reguł

iptables -F

iptables -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 -o lo -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT

# Reguły dla łańcucha wejściowego

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

# Reguły dla łańcucha wyjściowego

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

Wydaje się że wszystko działa poprawnie. Zrobiłem parę testów (Stealth Test) na otwarte porty, używając on line PC Flank: Advanced Port Scanner i parę innych z http://www.malwarehelp.org/online_firewall_and_port_scanners.html. Więc jeszcze raz wiellkie dzięki za pomoc.

 

To możesz wywalić.

### BEGIN INIT INFO
# Provides: firewall
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO

To jest tylko komentarz do tamtego skryptu i nie jest to Ci do niczego potrzebne i do moich reguł na pewno do niczego Ci się nie przyda.

Bez tego komentarza dostawałem jakiś komunikat chyba coś o LSB,  chyba missing LSB information lub coś w tym stylu

Nigdy nie miałem takiego problemu, ale wynika z tego, że ten komentarz odpowiada za to.

https://wiki.debian.org/LSBInitScripts

W takim razie możesz go zostawić.

Już pamiętam jaki był to komunikat:

insserv:warning script 'firewall' missing LSB tags and overrides

Znalazłem trochę informacji o LSB również tu - http://www.thegeekstuff.com/2012/03/lsbinit-script/ i tutaj na dole o overrides

http://manpages.ubuntu.com/manpages/utopic/man8/insserv.8.html. .Poszperałem i właśnie tak jak stwierdziłeś bez komentarzy wywala ten komunikat. Te komentarze to tagi LSB, których brakowało w pliku. Swoją drogą może bez tych tagów też by może poszło nawet po zignorowaniu powyższego komunikatu, tego nie sprawdzałem. Jeszcze raz dzięki.

Tak, poszłoby.