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/.
Mój problem polega na tym że na komputerach hostach mam net mogę pingować bramę i adres np wp.pl oraz adres karty ethernet w serwerze. Z serwera już nie mogę pingować adresu hosta. Pozostałe tak. Gdy korzystałem z firewalla shorewall wszystko było OK ,ale gdy chciałem używać drbla to już problem, a tak sam drbl dodaje konfiguracje do iptables podczas instalacji. Co może być spowodowane takim dziwnym problemem. Mój konfig z iptables
# 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 192.168.28.0/24 -j MASQUERADE iptables -A FORWARD -s 192.168.28.0/24 -j ACCEPT
Offline
Jeśli zrobiłeś tak:
# ustawienie domyslnej polityki
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
To jaki sens jest dodawać jeszcze to?
# 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
Podobnie z tym (przecież cały FORWARD na ACCEPT):
iptables -A FORWARD -s 192.168.28.0/24 -j ACCEPT
Więc ten dziwny problem może być spowodowany tym, że właściwie nie wiesz co robisz. Wklepałeś bez zastanowienia losowe regułki do firewalla i teraz zdziwienie wielkie ;] No ale to konfiguracja serwera, nie wpadłeś na to, że host może mieć firewalla, który odrzuca twoje pingi z serwera? Konfiguracja serwera wszystko przepuszcza, więc to nie jest problem tego firewalla, który wszystko przepuszcza (czy można to nazwać więc firewallem? ;]) na serwerze.
Offline
Tak jak napisał Kamikaze - krótki firewall a nieprzemyślany. Usuń zbędne reguły, dopisz do reguły maskującej nazwę interfejsu na świat i dla pewności reboot routera.
Jeśli gdzieś nie ustawiasz cudów którymi się nie pochwaliłeś powinno działać :). Nie podłączyłeś przypadkiem wszystkich kabelków do jednego nie zarządzalnego przełącznika? ;)
Offline
Zadziałało!!! Chciałbym teraz spróbować odblokować tylko porty do internetu a pozostałe zablokować i nie udaje mi się bo po próbie zamknięcia portu http net dalej był. Czytałem już kilka tutków i żaden nie działa jak należy. Niby piszę regułę iptables -A INPUT --protocol tcp --destination-port 80 -j DROP ale net dalej jest. Może mi ktoś pokazać przykładowy skrypt z routingirm i otwieraniem tylko poszczególnych portów?? Mój skrypt:
# wlaczenie w kernelu forwardowania echo 1 > /proc/sys/net/ipv4/ip_forward #dla poniższych argumentów 1 udostępnia usługę, #każda inna wartość zabrania do niej dostępu OPEN_GG=1 OPEN_FTP=0 #czy udostępnić usługę FTP OPEN_SSH=1 #czy udostępnić usługę SSH OPEN_HTTP=0 #czy udostępnić usługę HTTP #czyścimy tablicę z poprzednich reguł iptables -F iptables -X iptables -t nat -X iptables -t nat -F iptables -t mangle -F iptables -t mangle -X iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP iptables -P INPUT DROP iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #otwieram porty echo "Otwieram porty..." iptables -A INPUT --protocol tcp --destination-port 22 -j ACCEPT echo "22 -> ssh otwarte" iptables -A INPUT --protocol tcp --destination-port 80 -j DROP echo "80 -> http otwarte" iptables -A INPUT --protocol tcp --destination-port 443 -j ACCEPT echo "443 -> https otwarte" iptables -A INPUT --protocol tcp --destination-port 25 -j ACCEPT echo "25 -> smtp otwarte" iptables -A INPUT --protocol tcp --destination-port 465 -j ACCEPT echo "465 -> smtps otwarte" iptables -A INPUT --protocol tcp --destination-port 110 -j ACCEPT echo "110 -> pop3 otwarte" iptables -A INPUT --protocol tcp --destination-port 995 -j ACCEPT echo "995 -> pop3s otwarte" iptables -A INPUT --protocol tcp --destination-port 143 -j ACCEPT echo "143 -> imap otwarte" iptables -A INPUT --protocol tcp --destination-port 993 -j ACCEPT echo "993 -> imaps otwarte" iptables -A INPUT --protocol tcp --destination-port 8083 -j ACCEPT echo "8083 -> przekierowany port na inny adres ip... otwarte" # udostepniaie internetu w sieci lokalnej iptables -t nat -A POSTROUTING -s 192.168.28.0/24 -d 0.0.0.0/0 -j SNAT --to-source 192.168.1.50 iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
Denerwują mnie dwie ostatnie linijki znaczy one chyba przekierowują wszystkie pakiety z eth0 na eth1 i na odwrót?? Bez nich nie mam neta nawet gdy przy porcie 80 jest ACCEPT i nie wiem po co one są jeżeli jest linijka wyżej do przekierowywania.
Ostatnio edytowany przez sata11 (2011-11-16 21:04:13)
Offline
Ty te reguly piszesz do serwera a nie do hostów w sieci.
Jak chcesz dla hostów to najpierw drop na wszystko potem otwieraj porty dla łańcucha FORWARD
Offline
Teraz to lepiej wygląda. Ale to:
iptables -A INPUT --protocol tcp --destination-port 80 -j DROP
Zablokuje dostęp do twojego portu 80, co ma się nijak do blokowania netu. Chyba, że masz cały net na swoim kompie ;] Raczej powinieneś robić takie rzeczy na OUTPUT, lub FORWARD, zależy komu chcesz ten net zablokować.
Offline
JA to tego nie rozumiem. Dodałem tą linie co powyżej żeby blokował port 80 (oczywiście poprzednią na ACCEPT 80 portu usunąłem) i dalej mogę pingować dowolny adres. dodałem także coś takiego
iptables -A OUTPUT --protocol tcp --destination-port 80 -j DROP i też mogłem pingować. Dopiero jak dałem iptables -P OUTPUT DROP to nie mogłem pingować. Dałem więc
iptables -A OUTPUT --protocol tcp --destination-port 80 -j ACCEPT ale dalej nie mogę pingować. Nie rozumiem w ogóle o co w tym chodzi. Niby składnie rozumiem ,ale dlaczego nie chodzi tak jak bym chciał tego.
Offline
W iptables ważne są 2 rzeczy:
1. kolejność reguł.
2. to, czy dany cel kończy lub nie kończy przetwarzania pakietu.
Jak ktoś pozną te 2 cechy -to zrozumie działanie reguł.
Poza tym składnia pojedynczej reguły nie gwarantuje, że ta reguła dołożona do konfiguracji w przypadkowym miejscu będzie działać.
Ważna jest składnia nie pojedynczej reguły, ale całego konfigu, żeby prawidłowo działał.
Dlatego na początek podstawy:
http://pl.wikibooks.org/wiki/Sieci_w_Linuksie/Netfilter/iptables
http://stary.dug.net.pl/texty/Iptables_by_Atom_Zero.pdf
A potem weź zrób sobie porządny skrypt z prawidłową konfiguracją firewalla.
To by było na tyle
;-)
Ostatnio edytowany przez Jacekalex (2011-11-17 18:19:17)
Offline
[quote=sata11]JA to tego nie rozumiem. Dodałem tą linie co powyżej żeby blokował port 80 (oczywiście poprzednią na ACCEPT 80 portu usunąłem) i dalej mogę pingować dowolny adres. dodałem także coś takiego
iptables -A OUTPUT --protocol tcp --destination-port 80 -j DROP i też mogłem pingować. Dopiero jak dałem iptables -P OUTPUT DROP to nie mogłem pingować. Dałem więc
iptables -A OUTPUT --protocol tcp --destination-port 80 -j ACCEPT ale dalej nie mogę pingować. Nie rozumiem w ogóle o co w tym chodzi. Niby składnie rozumiem ,ale dlaczego nie chodzi tak jak bym chciał tego.[/quote]
Pingowanie nic nie ma do blokowania portu 80. Musisz poczytać o sieciach, protokołach, inaczej nie zrozumiesz domyślając się wszystkiego. Port 80 jest portem protokołu http. Ping używa protokołu icmp. Zablokowanie portu 80 nie zablokuje internetu ;] Zablokuje jedynie port 80, nie będzie można wejść na strony używające protokołu http i tylko to przestanie działać.
http://pl.wikipedia.org/wiki/Internet_Control_Message_Protocol
http://pl.wikipedia.org/wiki/Hypertext_Transfer_Protocol
Offline
zle sie do tego zabierasz,
nie robisz tak ze pozwalasz na wszystko i potem zabraniasz pojedynczych portow (to kazdy moze obejsc)
robisz tak ze otwierasz jakies porty i na koniec robisz DROP ALL
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -s 192.168.0.0/24 -p tcp -m tcp --dport 20 -j ACCEPT
-A INPUT -s 192.168.0.0/24 -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -j DROP
te regulki dotycza portow na samym serwerze, jesli tobie chodzi i blokowanie internetu hostom to zmieniasz INPUT na FROWARD lub OUTPUT
Offline
Time (s) | Query |
---|---|
0.00010 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00089 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.116.86.160' WHERE u.id=1 |
0.00066 | UPDATE punbb_online SET logged=1732612462 WHERE ident='18.116.86.160' |
0.00048 | SELECT * FROM punbb_online WHERE logged<1732612162 |
0.00075 | SELECT topic_id FROM punbb_posts WHERE id=185884 |
0.00006 | SELECT id FROM punbb_posts WHERE topic_id=20066 ORDER BY posted |
0.00048 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=20066 AND t.moved_to IS NULL |
0.00006 | SELECT search_for, replace_with FROM punbb_censoring |
0.00283 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=20066 ORDER BY p.id LIMIT 0,25 |
0.00087 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=20066 |
Total query time: 0.00722 s |