Konfiguracja serwerów, usług, itp.
Andros
Posty: 48 Rejestracja: 11 marca 2009, 17:27
Lokalizacja: Lublin
Post
autor: Andros » 08 lutego 2011, 14:34
Witam.
Po instalacji Squeeze, skopiowaniu pliku firewall.sh do /etc/init.d i wydaniu polecenia
pojawi się:
Kod: Zaznacz cały
update-rc.d: using dependency based boot sequencing
ale niestety podczas restartu maszyny skrypt nie wystartuje poprawnie pojawią się błędy, jeżeli uruchomię skrypt normalnie tzn.
to wszystko funkcjonuje poprawnie (skrypt jest na pewno dobry)
Kod: Zaznacz cały
#Andros
#czyszczenie firewalla
### 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: firewall.sh
# Description: fireawall.sh
### END INIT INFO
iptables -F
echo "***********************************"
echo "Konfiguracja firewalla rozpoczeta"
# ustawiamy zmienne potrzebne firewallowi
MOJEIP=`/sbin/ifconfig | grep 'inet addr' | grep Bcast | awk '{print $2}' | awk -F: '{print $2}'`
echo "moje IP: $MOJEIP"
# czyscimy wszystko
iptables -F -t nat
iptables -X -t nat
iptables -F -t filter
iptables -X -t filter
################
# blokujemy #
################
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
######################
# ustawienia wstepne #
######################
#netBeans
echo 0 > /proc/sys/net/ipv6/bindv6only
# ochrona przed atakiem typu Smurf
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# nie akceptujemy pakietow "source route" (zmieniaja tablice routingu)
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
# nie przyjmujemy pakietow ICMP redirect, ktore moga zmienic nasza tablice routingu
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
# wlaczamy ochrone przed blednymi pakietami ICMP error
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# ochrona przed spoofingiem -kazdy interfejs sieciowy bedzie przyjmowal
# tylko te pakiety ktore znajduja sie w tablicy routingu
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
# wlacza logowanie dziwnych (spoofed, source routed, redirects) pakietow
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
#Blokada przed atakami typu SYN FLOODING
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
#### wlaczenie loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A FORWARD -o lo -j ACCEPT
#######################
iptables -A INPUT -d $MOJEIP -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -s $MOJEIP -m state --state ESTABLISHED,RELATED -j ACCEPT
echo " "
echo "otwarte protokoly:"
echo "DC++"
#DC++
#blokowani na DC++
iptables -A INPUT -d $MOJEIP -p tcp --dport 411 -s 87.246.197.124 -j DROP
#DC++ tylko dla Ikara
iptables -A INPUT -d $MOJEIP -p tcp --syn --dport 411 -s 87.246.197.0/24 -m state --state NEW -j ACCEPT
iptables -A INPUT -d $MOJEIP -p tcp --syn --dport 411 -s 87.246.251.0/24 -m state --state NEW -j ACCEPT
#logowanie nie wpuszczonych na DC++
iptables -A INPUT -p tcp --dport 411 -j LOG --log-prefix " DC++ "
echo "ssh"
# ssh
iptables -A INPUT -d $MOJEIP -p tcp --dport 22 --syn -m limit --limit 1/s -m state --state NEW -j ACCEPT
echo "http/https"
#apache
iptables -A INPUT -d $MOJEIP -p tcp --syn --dport 80 -m connlimit ! --connlimit-above 10 -m state --state NEW -j ACCEPT
iptables -A INPUT -d $MOJEIP -p tcp --syn --dport 443 -m connlimit ! --connlimit-above 10 -m state --state NEW -j ACCEPT
echo "ftp"
#ftp
#iptables -A INPUT -d $MOJEIP -p tcp --syn --dport 21 -m connlimit ! --connlimit-above 10 -m state --state NEW -j ACCEPT
#błędne pakiety
iptables -A INPUT -j DROP -m state --state INVALID
echo "Konfiguracja firewalla zakonczona"
echo "***********************************"
mariaczi
Member
Posty: 1343 Rejestracja: 08 lutego 2008, 12:58
Lokalizacja: localhost@śląskie
Post
autor: mariaczi » 08 lutego 2011, 15:23
Zechciej zerknąć na inne skrypty uruchamiane w trakcie startu systemu w katalogu
Zorientujesz się wtedy jaka powinna być konstrukcja owego skryptu, poprawisz swój na modłę tych właśnie startowych i będzie działać jak tego sobie życzysz.
Drugie rozwiązanie to napisanie nowego skryptu, który w sekcji start będzie odpalał ten który już masz. Wybór rozwiązania należy do Ciebie.
kwik001
Posty: 10 Rejestracja: 02 kwietnia 2010, 10:56
Post
autor: kwik001 » 08 lutego 2011, 15:47
Cześć.
Moż pomoże dopisanie na początku skryptu coś takiego:
lub:
Andros
Posty: 48 Rejestracja: 11 marca 2009, 17:27
Lokalizacja: Lublin
Post
autor: Andros » 08 lutego 2011, 17:21
Próbowałem uruchamiać go z innego skryptu ale nadal to samo:
też dodałem i nic.
Wygląda tak jakby skrypt ruszał przed uruchomieniem modułów odpowiedzialnych za iptables bo co bym nie wpisał do zawsze wyświetla, że zła konstrukcja jest.
Wie ktoś jak uruchomić skrypt np. zaraz po starcie Xów? Próbowałem Preferencje -> programy startowe ale nie działa w ten sposób.
mariaczi
Member
Posty: 1343 Rejestracja: 08 lutego 2008, 12:58
Lokalizacja: localhost@śląskie
Post
autor: mariaczi » 08 lutego 2011, 18:16
Pofatygowałeś się spojrzeć na inne skrypty w ścieżce którą podałem w swoim poprzednim poście czy też czekasz aż ktoś paluszkiem Ci wskaże dlaczego masz błąd?
kwik001
Posty: 10 Rejestracja: 02 kwietnia 2010, 10:56
Post
autor: kwik001 » 08 lutego 2011, 19:20
Z a kolejność odpowiada dodanie odpowiedniego numeru np.:
Kod: Zaznacz cały
update-rc.d s1.debian defaults 20
update-rc.d s2.debian defaults 21
s1 wywołany będzie przed s2.
Andros
Posty: 48 Rejestracja: 11 marca 2009, 17:27
Lokalizacja: Lublin
Post
autor: Andros » 08 lutego 2011, 20:40
Takie podstawy znam i przeczytałem dokładnie:
przecież nie od parady jest ta wstawka:
Kod: Zaznacz cały
### 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: firewall.sh
# Description: fireawall.sh
Już sobie poradziłem.
Tak pobierałem sobie IP z systemu:
Kod: Zaznacz cały
MOJEIP=`/sbin/ifconfig | grep 'inet addr' | grep Bcast | awk '{print $2}' | awk -F: '{print $2}'`
Okazało się, że IP mam bardzo długo przypisywane przez DHCP i dlatego pojawiały się błędy. Jeżeli ustaliłem z góry stałą wartość to już jest w porządku.
To tak w skrócie.
Bastian
Member
Posty: 1424 Rejestracja: 30 marca 2008, 16:09
Lokalizacja: Poznañ
Post
autor: Bastian » 10 lutego 2011, 09:47
Andros: to że tobie ten skrypt działa, nie znaczy, że jest poprawnie napisany. Chyba najprostszy przykład szkieletu takiego skryptu znadziesz
TUTAJ . Oczywiście INIT INFO które masz w skrypcie też musi być.
Andros
Posty: 48 Rejestracja: 11 marca 2009, 17:27
Lokalizacja: Lublin
Post
autor: Andros » 10 lutego 2011, 10:54
S krypt i reguły iptables są poprawne, tak jak napisałem wyżej. M oże komuś się przyda. W ażne jest aby zmienne, które są wykorzystywane pobrane było przed startem skryptu. U mnie IP jest bardzo długo przypisywane, właściwie dopiero kiedy X wystartują, dlatego wystąpiła taka sytuacja.
Bastian
Member
Posty: 1424 Rejestracja: 30 marca 2008, 16:09
Lokalizacja: Poznañ
Post
autor: Bastian » 10 lutego 2011, 16:35
Andros , której części z tego co Ci podawałem, nie zrozumiałeś? Gdzie masz
stop, restart itp.?