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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2014-09-01 11:13:15

  fervi - Użytkownik

fervi
Użytkownik
Zarejestrowany: 2010-03-14

Blokowanie wszystkich portów poza ... na eth0

Witam!

Temat wiele razy poruszany, ale nie znalazłem tej konkretnej sytuacji (na pewno jest, bo mój ojciec miał na starym serwerze :D)

Serwer (klasy Serwer :D) - 2 karty sieciowe
eth0
eth1

eth0 ma być drogą do internetu
eth1 ma być drogą do mordoru (czyt. użytkowników)

Na razie "ma być" (bo chwilowo nie jest, ale przygotowuję go do okienka na życie) :D

http://gmclan.org/uploader/6184/firewall.txt
3 linijka jest zahaszowana, bo kolidowała z "blokowaniem portów"

Konkretnie moje blokowanie portów blokuje porty wszystkim - wewnątrz i na zewnątrz (chyba, że jest źle napisany i nie odblokowuje) - zresztą
http://gmclan.org/up6184_0_netwall.html
To ten pseudo-blokador :D

Chodzi mi o przykład jak blokować odpowiednio, by np. ktoś mógł spingować (serwer), ale nie mógł wejść na SSH (z zewnątrz)

Z góry dziękuję
Fervi

Offline

 

#2  2014-09-01 12:02:10

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Blokowanie wszystkich portów poza ... na eth0

ekhm... patrząc na temat wątku i ostatnie zdanie... co ma wspólnego blokowanie portów z protokołem icmp?


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#3  2014-09-01 12:18:40

  fervi - Użytkownik

fervi
Użytkownik
Zarejestrowany: 2010-03-14

Re: Blokowanie wszystkich portów poza ... na eth0

Chodzi o przykład

Jak już będę wiedział jak to zablokować, to sobie dopiszę wszelkie reguły. Może być SSH jak ktoś chce

Fervi

Offline

 

#4  2014-09-01 12:32:48

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Blokowanie wszystkich portów poza ... na eth0

na telefonie mi się fatalnie czyta a pisze jeszcze gorzej, ale coś w stylu (zakładając że br0 to twoje wyście do ungwenoru):

zablokuj połączenia przychodzące (INPUT) z interfejsu br0 z protokołem tcp na konkretny port (czyli dany port niewidoczny dla świata)

brakuje ci określenia interfejsu w regułach firewalla.

btw. domyślną polityką dla INPUT  jest accept więc nie wiem cp ta trzecia linijka przeszkadzała... ale w tym pliczku nie widzę usuwania poprzednich reguł - może jakiś syf tam został

Ostatnio edytowany przez ethanak (2014-09-01 12:35:53)


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#5  2014-09-01 16:47:25

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Blokowanie wszystkich portów poza ... na eth0

Np. tak:

Kod:

iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -N tcp
iptables -t filter -N udp
iptables -t filter -N icmp_in
iptables -t filter -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A INPUT -m conntrack --ctstate INVALID -j DROP
iptables -t filter -A INPUT -p icmp -m conntrack --ctstate NEW -j icmp_in
iptables -t filter -A INPUT -p udp -m conntrack --ctstate NEW -j udp
iptables -t filter -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j tcp
iptables -t filter -A INPUT -p tcp -j REJECT --reject-with tcp-reset
iptables -t filter -A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
iptables -t filter -A INPUT -j REJECT --reject-with icmp-proto-unreachable

I wrzucasz se regułkę od pingu do łańcucha do icmp_in:

Kod:

iptables -t filter -A icmp_in -p icmp -i eth0 -j ACCEPT

Se ją dostosuj jak chcesz i tyle. Póki nie wrzucisz reguł do łańcuchów tcp/udp ten filter się będzie zachowywał jak zwykły klient z możliwością jego pingowania z interfejsu eth0. Jak masz strefę zaufaną, np. ten interfejs eth1, to sobie dorób odpowiednie regułki w łańcuchach tcp,udp,icmp_in by przepuszczał wszystkie pakiety ze stanem NEW z tego interfejsu:

Kod:

iptables -t filter -A tcp -p tcp -i eth1 -j ACCEPT
iptables -t filter -A udp -p udp -i eth1 -j ACCEPT
iptables -t filter -A icmp_in -p icmp -i eth1 -j ACCEPT

I tyle.

Offline

 

#6  2014-09-01 18:01:27

  ramsi1986 - Użytkownik

ramsi1986
Użytkownik
Skąd: Oldschool Admin
Zarejestrowany: 2011-04-17

Re: Blokowanie wszystkich portów poza ... na eth0

Kod:

#/bin/bash

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -F
iptables -F -t nat
iptables -F -t mangle

iptables -P INPUT  DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

iptables -A INPUT -i eth0 -j ACCEPT
iptables -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -i eth1 --dport 80 -j ACCEPT

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

to jest fragment mojego FW na dedyku
eth0 to if wewnętrzny
eth1 to if zewnętrzny

tą regułą otwierasz port:

Kod:

iptables -A INPUT -p tcp -i eth1 --dport 80 -j ACCEPT

Ostatnio edytowany przez ramsi1986 (2014-09-01 18:03:29)


Laptop: Lenovo R400 / Intel Core2Duo P8400 2,26 Ghz / 4GB RAM / 160GB SATA3 / Debian SID
Blacha: Intel Core i7-3820 / 32GB RAM / 128GB SSD / 500GB SATA3 7200RPM / Win 7

NIE OSZUKUJMY SIĘ... DEBIAN MA TYLKO JEDNĄ WERSJĘ ==> UNSTABLE (SID)

Offline

 

#7  2014-09-02 10:55:42

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Blokowanie wszystkich portów poza ... na eth0

Co wyście się na te MASQUERADE uparli? Macie wszyscy zmienny IP z Neostrady czy co?
Dobry zwyczaj (jeśli masz stały adres IP, a podejrzewam że wszyscy w tym przypadku macie) to:

Kod:

-j SNAT --to-source=mój.zewnętrzny.adres.ip

Przydaje się szczególnie, jeśli masz więcej niż jeden adres IP, a chcesz puścić maszyny za NAT-em konkretnym adresem


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#8  2014-09-02 11:50:12

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Blokowanie wszystkich portów poza ... na eth0

Może się uparli dla wygody, jak zmienią miejsce zamieszkania czy coś, to net im będzie działał OOTB i nie będą musieli przestawiać adresu w iptables. xD A poza tym co za różnica?

Offline

 

#9  2014-09-02 12:06:46

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Blokowanie wszystkich portów poza ... na eth0

Maskarada jest po prostu wygodniejsza, jak masz jedną rurkę i jeden adres, mniej z nią kombinowania.
Jak jest tych adresów kilka, to też może być, ale nie musi być wygodniejsza, zależy, co pacjent chce dokładnie osiągnąć.


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#10  2014-09-02 12:07:18

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Blokowanie wszystkich portów poza ... na eth0

Cytatliwy cytat z Wielkiej Xięgi Proroka Manuala o iptables traktującej, rozdział o MASQUERADE:

It  should  only  be used with dynamically assigned IP (dialup) connec‐
tions: if you have a static IP address, you should use the SNAT target.[/quote]
I dalej wyjaśnione mniej więcej dlaczego.
Ale kto by tam te mądre księgi czytał... czytanie to dla cieniasów jest!


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#11  2014-09-02 12:10:25

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Blokowanie wszystkich portów poza ... na eth0

Księga to jedno, praktyka to drugie, ja zawsze najpierw sprawdzam MASQUERADE, jak nie teges, to wtedy SNAT, i zazwyczaj wszystko chodzi, jak powinno.

Trudniej będzie z Nftables, bo tam na razie maskarady chyba nie dowieźli.


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#12  2014-09-02 18:47:57

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Blokowanie wszystkich portów poza ... na eth0

W tej samej książce chyba piszą, też:

It is still possible to use the MASQUERADE target instead of SNAT even though you do have a static IP, however, it is not favorable since it will add extra overhead, and there may be inconsistencies in the future which will thwart your existing scripts and render them "unusable".[/quote]
Ja kiedyś nawet się próbowałem dowiedzieć co się kryje pod tym "extra overhead" ale nikt nie wie. xD

Offline

 

#13  2014-09-03 07:57:17

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Blokowanie wszystkich portów poza ... na eth0

Ja nawet kiedyś wiedziałem (co prawda dotyczyło to ipchains a nie iptables) - ale to było zbyt dawno aby pamiętać o co chodziło. Coś tam mi się majaczy na temat tablic conntrack ale to moga byc tylko majaczenia :)


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)

[ Generated in 0.009 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00009 SET CHARSET latin2
0.00004 SET NAMES latin2
0.00117 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='3.149.234.50' WHERE u.id=1
0.00076 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.149.234.50', 1733043450)
0.00040 SELECT * FROM punbb_online WHERE logged<1733043150
0.00045 SELECT topic_id FROM punbb_posts WHERE id=274504
0.00135 SELECT id FROM punbb_posts WHERE topic_id=26345 ORDER BY posted
0.00071 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=26345 AND t.moved_to IS NULL
0.00005 SELECT search_for, replace_with FROM punbb_censoring
0.00082 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=26345 ORDER BY p.id LIMIT 0,25
0.00071 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=26345
Total query time: 0.00655 s