Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Usiłuję skonfigurować udostępnianie Internetu według następującej instrukcji: http://dug.net.pl/tekst/31/udostepnienie_polaczenia … o_%28masq%29/
Podniosłem interfejsy, na serwerze jest Internet, komunikacja w sieci jest prawidłowa (komputery widzą serwer i odwrotnie). Utknąłem przy tym skrypcie:
# wlaczenie w kernelu forwardowania echo 1 > /proc/sys/net/ipv4/ip_forward # czyszczenie starych regul iptables -F iptables -X iptables -t nat -X iptables -t nat -F iptables -t mangle -F iptables -t mangle -X # ustawienie domyslnej polityki iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT # utrzymanie polaczen nawiazanych iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED # udostepniaie internetu w sieci lokalnej iptables -t nat -A POSTROUTING -s 10.0.0.0/16 -j MASQUERADE iptables -A FORWARD -s 10.0.0.0/16 -j ACCEPT
Kiedy przepiszę go ręcznie w konsoli wszystko działa, komputery dostają Internet.
Kiedy wykonam coś takiego:
/etc/init.d/firewall
otrzymuję takie błędy:
Alpha:/home/kzgrzeblak# /etc/init.d/firewall : Nie ma takiego pliku ani katalogu/sys/net/ipv4/ip_forward : command not foundl: line 3: iptables: No chain/target/match by that name iptables: No chain/target/match by that name iptables: No chain/target/match by that name iptables: No chain/target/match by that name iptables: No chain/target/match by that name iptables: No chain/target/match by that name : command not foundl: line 11: iptables: Bad policy name iptables: Bad policy name iptables: Bad policy name : command not foundl: line 16: 'ptables v1.4.2: Bad state `RELATED Try `iptables -h' or 'iptables --help' for more information. 'ptables v1.4.2: Bad state `RELATED Try `iptables -h' or 'iptables --help' for more information. 'ptables v1.4.2: Bad state `RELATED Try `iptables -h' or 'iptables --help' for more information. : command not foundl: line 21: 'ptables v1.4.2: Invalid target name `MASQUERADE Try `iptables -h' or 'iptables --help' for more information. 'ptables v1.4.2: Invalid target name `ACCEPT Try `iptables -h' or 'iptables --help' for more information.
Gdzie jest problem?
Offline
Wykonujesz skrypt z root'a?
Jest prawo wykonywania ? ( chmod +x )?
Offline
dodaj na poczatku skryptu PATH=/bin:/sbin:/usr/bin:/usr/sbin
Offline
Problem skryptu rozwiązany. Skrypt nie chciał działać dlatego, że był przekopiowany przy pomocy FTP. Wklepałem go ręcznie i chodzi.
Przepraszam za zamieszanie.
PS. Jak go teraz dodać, żeby uruchamiał się wraz z systemem?
Ostatnio edytowany przez Luc3k (2009-10-15 10:53:51)
Offline
Luc3k napisał(-a):
PS. Jak go teraz dodać, żeby uruchamiał się wraz z systemem?
Przeciez w tym howto jest wyraźnie napisane jak to zrobić.
Przeczytaj jeszcze raz.
Offline
Wiem, ale pytanie to zadałem z premedytacją. Dlaczego? Ponieważ w przyszłości będę chciał dodać kilka swoich skryptów i również będę chciał, aby uruchamiały się z systemem. Nie znam jednak lokalizacji tzw. autostartu. W innych systemach robiło się to podaniem ścieżki do skryptu w pliku /etc/rc.d/rc.local
Offline
Sposobów jest wiele.
1.Analogicznie jak w tym przypadku.
2.Dopisanie ścieżki do skryptu do /etc/rc.local czy nawet wpisanie tam gotowego polecenia jeśli jest krótkie.
3.Zrobienie dowiązania do skryptu do /etc/rcX.d w zalezności na jakim runlevelu ma być uruchamiany.
Ostatnio edytowany przez ilin (2009-10-15 12:43:16)
Offline
ilin napisał(-a):
3.Zrobienie dowiązania do skryptu do /etc/rcX.d w zalezności na jakim runlevelu ma być uruchamiany.
Jakiś czas temu Debian testowy porzucił stare jak Unix runlevele na rzecz nowego sposobu uruchamiania opartego o zależności usług od siebie. Niewykluczone że to upstart, ale nie jestem pewien.
http://wiki.debian.org/LSBInitScripts
Offline
Minio napisał(-a):
ilin napisał(-a):
3.Zrobienie dowiązania do skryptu do /etc/rcX.d w zalezności na jakim runlevelu ma być uruchamiany.
Jakiś czas temu Debian testowy porzucił stare jak Unix runlevele na rzecz nowego sposobu uruchamiania opartego o zależności usług od siebie. Niewykluczone że to upstart, ale nie jestem pewien.
http://wiki.debian.org/LSBInitScripts
Niezupełnie:
- jeszcze nie przeszedł na nowy model
- zachowana zastanie wsteczna kompatybilność
- runlevele są i będą, zmieniony zostanie sposób porządkowania kolejności uruchamiania skryptów
Ogólnie to trochę cholernie skomplikowane, szczegóły w niedawnym ogłoszeniu deweloperów: http://dug.net.pl/news/15/
Ostatnio edytowany przez azhag (2009-10-15 13:16:27)
Offline
ilin napisał(-a):
2.Dopisanie ścieżki do skryptu do /etc/rc.local czy nawet wpisanie tam gotowego polecenia jeśli jest krótkie.
Czyli w przypadku tego firewalla to rc.local powinno wyglądać tak?
#!/bin/sh -e /etc/init.d/firewall exit 0
To exit 0 ma zostać na końcu?
Ostatnio edytowany przez Luc3k (2009-10-15 14:36:53)
Offline
azhag napisał(-a):
- jeszcze nie przeszedł na nowy model
- zachowana zastanie wsteczna kompatybilność
Nie będę się spierał, bo pewnie wiesz lepiej co się działo w Debianie na przestrzeni ostatnich kilku tygodni. Ja wiem tylko że jak kilka dni temu aktualizowałem system po raz pierwszy od sierpnia, to m.in. proponował przejście na nowy system uruchamiania, krzycząc że decyzja pozytywna będzie nieodwołalna. To wg mnie stawia pod znakiem zapytania wsteczną kompatybilność¹ — bo gdyby była zachowana, to chyba wprowadzona zmiana nie byłaby nieodwołalna, nie?
¹ — oczywiście to że na chwilę obecną wsteczna kompatybilność nie jest osiągnięta, nie znaczy że nie ma jej w planach. Prawdopodobnie nie na darmo używasz czasu przyszłego.
Luc3k napisał(-a):
Czyli w przypadku tego firewalla to rc.local powinno wyglądać tak?
Kod:
#!/bin/sh -e /etc/init.d/firewall exit 0To exit 0 ma zostać na końcu?
Tak.
Offline
Luc3k napisał(-a):
Kod:
# wlaczenie w kernelu forwardowania echo 1 > /proc/sys/net/ipv4/ip_forward # czyszczenie starych regul iptables -F iptables -X iptables -t nat -X iptables -t nat -F iptables -t mangle -F iptables -t mangle -X # ustawienie domyslnej polityki iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT # utrzymanie polaczen nawiazanych iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED # udostepniaie internetu w sieci lokalnej iptables -t nat -A POSTROUTING -s 10.0.0.0/16 -j MASQUERADE iptables -A FORWARD -s 10.0.0.0/16 -j ACCEPT
A może tak:
#!/bin/sh # wlaczenie w kernelu forwardowania echo 1 > /proc/sys/net/ipv4/ip_forward # czyszczenie starych regul iptables -F iptables -X iptables -t nat -X iptables -t nat -F iptables -t mangle -F iptables -t mangle -X # ustawienie domyslnej polityki iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT # utrzymanie polaczen nawiazanych iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED # udostepniaie internetu w sieci lokalnej iptables -t nat -A POSTROUTING -s 10.0.0.0/16 -j MASQUERADE iptables -A FORWARD -s 10.0.0.0/16 -j ACCEPT
Offline
Jeszcze Was pomęczę z tym firewallem...
Uzupełniłem go o dodatkowe wpisy z tego artykułu: http://dug.net.pl/tekst/31/udostepnienie_polaczenia … o_%28masq%29/
# wlaczenie w kernelu forwardowania /bin/echo 1 > /proc/sys/net/ipv4/ip_forward # Ochrona przed atakiem typu Smurf /bin/echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts # Nie aktceptujemy pakietow "source route" /bin/echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route # Nie przyjmujemy pakietow ICMP rediect, ktore moga zmienic tablice routingu /bin/echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects # Wlaczamy ochrone przed blednymi komunikatami ICMP error /bin/echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses # Wlaczenie mechanizmu wykrywania oczywistych falszerstw # (pakiety znajdujace sie tylko tablicy routingu) /bin/echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter /bin/echo 1 > /proc/sys/net/ipv4/tcp_timestamps /bin/echo 1 > /proc/sys/net/ipv4/conf/all/log_martians /bin/echo 10 > /proc/sys/net/ipv4/ipfrag_time /bin/echo 65536 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max /bin/echo 36024 > /proc/sys/net/ipv4/tcp_max_syn_backlog # zwiekszenie rozmaru tablicy ARP /bin/echo 1024 > /proc/sys/net/ipv4/neigh/default/gc_thresh1 /bin/echo 4096 > /proc/sys/net/ipv4/neigh/default/gc_thresh2 /bin/echo 8192 > /proc/sys/net/ipv4/neigh/default/gc_thresh3 /bin/echo 1 > /proc/sys/net/ipv4/tcp_rfc1337 /bin/echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc /bin/echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses /bin/echo 60 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_close_wait /bin/echo 360 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established /bin/echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout /bin/echo 2400 > /proc/sys/net/ipv4/tcp_keepalive_time /bin/echo 0 > /proc/sys/net/ipv4/tcp_window_scaling /bin/echo 0 > /proc/sys/net/ipv4/tcp_sack /bin/echo 20 > /proc/sys/net/ipv4/ipfrag_time /bin/echo 1280 > /proc/sys/net/ipv4/tcp_max_syn_backlog # Blokada przed atakami typu SYN FLOODING /bin/echo 1 > /proc/sys/net/ipv4/tcp_syncookies # Właczenie proxy arp - dzieki temu serwer nie zdycha po kilku #/bin/echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter # Zwiekszenie rozmiarutablic routingu /bin/echo "18192" > /proc/sys/net/ipv4/route/max_size # czyszczenie starych regul iptables -F iptables -X iptables -t nat -X iptables -t nat -F iptables -t mangle -F iptables -t mangle -X # ustawienie domyslnej polityki iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH ACK -j DROP iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN -j DROP iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN,URG,PSH -j DROP # utrzymanie polaczen nawiazanych iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED # udostepniaie internetu w sieci lokalnej iptables -t nat -A POSTROUTING -s 10.0.0.0/16 -j MASQUERADE iptables -A FORWARD -s 10.0.0.0/16 -j ACCEPT
i po uruchomieniu /etc/init.d/firewall otrzymuję 3 błędy:
Alpha:/home/kzgrzeblak# /etc/init.d/firewall /etc/init.d/firewall: line 18: /proc/sys/net/ipv4/netfilter/ip_conntrack_max: Nie ma takiego pliku ani katalogu /etc/init.d/firewall: line 27: /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_close_wait: Nie ma takiego pliku ani katalogu /etc/init.d/firewall: line 28: /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established: Nie ma takiego pliku ani katalogu
Internet i udostępnianie działa, tyle że sypie powyższymi błędami.
Offline
Dopisz sobie do /etc/modules
ip_conntrack
Komunikaty powinny zniknąć.
Offline