# [NET][Bezpieczenstwo]Iptables i otwarte porty

## ar_it

Witam

Mam problem z Iptables

oto moje regulki

```

cat /etc/iptables_sys_1

#!/bin/bash

#czyscimy reguly

iptables -F

iptables -t nat -F

#Domyslne zasady dla pakiet� nie pasujacych do zadnej regulki

iptables -P INPUT ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P FORWARD DROP

export LAN=eth0

export WAN=ppp0

#blokujemy uslugi tak, aby byly dostepne tylko dla sieci LAN

iptables -I INPUT 1 -i ${LAN} -j ACCEPT

iptables -I INPUT 1 -i lo -j ACCEPT

iptables -A INPUT -p UDP --dport bootps -i ! ${LAN} -j REJECT

iptables -A INPUT -p UDP --dport domain -i ! ${LAN} -j REJECT

#otwarte porty

iptables -A INPUT -p TCP --dport ssh -i ${WAN} -j ACCEPT

#forwardowane porty

#iptables -t nat -I PREROUTING -p tcp --dport 5900 -i ${WAN} -j DNAT --to 10.0.0.198

iptables -t nat -I PREROUTING -p tcp --dport 5901 -i ${WAN} -j DNAT --to 10.0.0.122

#regulki dla squid

iptables -t nat -A PREROUTING -p tcp --dport 80 -i ${LAN} -s 10.0.0.0/24 -j DNAT --to 10.0.0.1:8080

#wpuszczamy pakiety TCP/UDP dla uprzywilejowanych port�

iptables -A INPUT -p TCP -i ! ${LAN} -d 0/0 --dport 0:1023 -j DROP

iptables -A INPUT -p UDP -i ! ${LAN} -d 0/0 --dport 0:1023 -j DROP

#reg�i dla p3scan

#iptables -t nat -A PREROUTING -p tcp -i eth0 --dport pop3 -j REDIRECT --to 8110

#regulki dla NAT

iptables -I FORWARD -i ${LAN} -d 10.0.0.0/255.255.0.0 -j DROP

iptables -A FORWARD -i ${LAN} -s 10.0.0.0/255.255.0.0 -j ACCEPT

iptables -A FORWARD -i ${WAN} -d 10.0.0.0/255.255.0.0 -j ACCEPT

iptables -t nat -A POSTROUTING -o ${WAN} -j MASQUERADE

#to sie zabezpieczamy

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

#iptables -A INPUT -p udp --dport 33435:33525 -j DROP

#iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH SYN -j DROP

#iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH ACK -j DROP

#portscan - ogranicz odpowiedzi na pakiety

iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

#pingi - blokuj wszystkie

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

#traceroute

iptables -A INPUT -p udp --dport 33435:33525 -j DROP

#synflood

iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

#Skaner port�Furtive

iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

#skanowanie SYN

iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH SYN -j DROP

#Skanowanie ACK

iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH ACK -j DROP

#Skanowanie FIN

iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN -j DROP

#Skanowanie Xmas

iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN,URG,PSH -j DROP

#Skanowanie Null

iptables -A INPUT -m conntrack --ctstate INVALID -p tcp --tcp-flags ! SYN,RST,ACK,FIN,PSH,URG

SYN,RST,ACK,FIN,PSH,URG -j DROP

# Saser i Blaster bye bye ;)

iptables -A INPUT -p tcp --dport 135 -j DROP

iptables -A OUTPUT -p tcp --dport 135 -j DROP

iptables -A FORWARD -p tcp --dport 135 -j DROP

iptables -A INPUT -p udp --dport 135 -j DROP

iptables -A OUTPUT -p udp --dport 135 -j DROP

iptables -A FORWARD -p udp --dport 135 -j DROP

iptables -A INPUT -p tcp --dport 445 -j DROP

iptables -A OUTPUT -p tcp --dport 445 -j DROP

iptables -A FORWARD -p tcp --dport 445 -j DROP

iptables -A INPUT -p udp --dport 445 -j DROP

iptables -A OUTPUT -p udp --dport 445 -j DROP

iptables -A FORWARD -p udp --dport 445 -j DROP

#MyDoom

iptables -A INPUT -p tcp --dport 1080 -j DROP

iptables -A OUTPUT -p tcp --dport 1080 -j DROP

iptables -A FORWARD -p tcp --dport 1080 -j DROP

#odrzuca polaczenia przychodzace ale nie zaadresowane do naszego firewalla (broadcasty)

iptables -A INPUT -i eth0 -d ! 10.0.0.0 -s 0/0 -j DROP

#Informujemy jadro o checi przekazywania IP

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

for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 > $f ; done

/etc/init.d/iptables save

```

Mam squida postawionego i pare rzeczy po nfs'ie sobie lazi po sieci 

Squid jest na porcie 8080

ale mial byc widoczy tylko dla lokalnej sieci  :Neutral: 

Tymczasem nmap

```

nmap -sS -sR -sV -O -PI -PP -PM -PT -P0 -T4 moj.system.net|grep open

21/tcp    open   ftp

22/tcp    open   ssh                   OpenSSH 4.4 (protocol 2.0)

2049/tcp  open   nfs (nfs V2)           2 (rpc #100003)

5901/tcp  open   ssh                   OpenSSH 4.4 (protocol 2.0)

8080/tcp  open   http-proxy

```

Macie moze pomysl gdzie jest blad w regulkach ??

----------

## Raku

 *ar_it wrote:*   

> Mam squida postawionego i pare rzeczy po nfs'ie sobie lazi po sieci 
> 
> Squid jest na porcie 8080
> 
> ale mial byc widoczy tylko dla lokalnej sieci 

 

z tego skryptu bynajmniej to nie wynika. Możesz podać, gdzie wg ciebie jest to zdefiniowane? Może w ten sposób uda ci się zlokalizować błąd (błędy)

----------

## ar_it

 *Raku wrote:*   

>  *ar_it wrote:*   Mam squida postawionego i pare rzeczy po nfs'ie sobie lazi po sieci 
> 
> Squid jest na porcie 8080
> 
> ale mial byc widoczy tylko dla lokalnej sieci  
> ...

 

```

iptables -t nat -A PREROUTING -p tcp --dport 80 -i ${LAN} -s 10.0.0.0/24 -j DNAT --to 10.0.0.1:8080
```

tak myslalem ze bedzie tylko dla sieci lokalnej  :Neutral: 

--EDIT--

qrde zmieniłem na coś takiego i nadal kicha

```

iptables -t nat -A PREROUTING -s 10.0.0.0/24 -p tcp -d 0/0 --dport 80 -j DNAT --to-destination 10.0.0.1:8080
```

----------

## bartmarian

wszystko jest w "porzadku", zakladajac ze informujesz tabletki poprawnie aby ruch NA port 80

z sieci lokalnej przekierowywaly na Twoje 8080, oczekujesz zeby reszty "sie domyslil"

i zabronil ruchu z zewnatrz ? pozatym jest jeszcze squid.conf a w nim...

EDIT

maly OT zrobie - pytales o przekierowanie squida, ale co tam...

na poczatek (tu prosze o weryfikacje, moze teraz jest inaczej) tebletki wykonuja regoly

w kolejnosci jaka zostala podana, czyli pierwsza pasujaca regola i tak Ty masz:

```

iptables -P INPUT ACCEPT

iptables -P FORWARD DROP

iptables -P OUTPUT ACCEPT

```

czyli przekazywaie blokujesz a cala reszta moze brykac jak chce, nie za liberalnie ?  :Wink: Last edited by bartmarian on Wed Dec 27, 2006 11:42 pm; edited 1 time in total

----------

## ar_it

 *bartmarian wrote:*   

> wszystko jest w "porzadku", zakladajac ze informujesz tabletki poprawnie aby ruch NA port 80
> 
> z sieci lokalnej przekierowywaly na Twoje 8080, oczekujesz zeby reszty "sie domyslil"
> 
> i zabronil ruchu z zewnatrz ? pozatym jest jeszcze squid.conf a w nim...

 

Obawiam sie ze jest jakis problem

Nmap mi mowi ze jednak port squida jest otwarty

```

8080/tcp  open   http-proxy

```

co do samego squida to qrde on sam nie dopuszcza polaczenia, czyli nie udostepnia strony, ale wyswietla blad 

```

ERROR

The requested URL could not be retrieved

 While trying to retrieve the URL: http://www.linuxfan.pl/dyskusje/pcol.2004/01.2004/8875.php3 

 The following error was encountered: 

 Access Denied.  

 Access control configuration prevents your request from being allowed at this time. Please contact your service provider if you feel this is incorrect. 

```

chyba mam jednak nie dokonfigurowanego i squida i iptables

 :Mad: 

----------

## bartmarian

squid.conf posiada kilka linijek, zaczynajacych sie od:

```
ACCESS CONTROLS
```

a w niej co nieco do poustawiania, np:

```

acl our_networks src 192.168.0.0/24

http_access allow our_networks

```

milego dlubania  :Smile: 

----------

## ar_it

 *bartmarian wrote:*   

> squid.conf posiada kilka linijek, zaczynajacych sie od:
> 
> ```
> ACCESS CONTROLS
> ```
> ...

 

w squidzie mam tak

```

acl our_networks src 10.0.0.0/255.255.255.0

http_access allow our_networks

http_access deny all

http_reply_access allow our_networks

icp_access allow our_networks

```

-------------------------------------------

#############EDIT##############

-------------------------------------------

[quote="ar_it"] *bartmarian wrote:*   

> 
> 
> maly OT zrobie - pytales o przekierowanie squida, ale co tam...
> 
> na poczatek (tu prosze o weryfikacje, moze teraz jest inaczej) tebletki wykonuja regoly
> ...

 

Nad liberalnością to popracuję później   :Wink: 

co do squida to problem nie zniknął

P.S.

Można kazać squidowi aby słuchał tylko tego co mu przychodzi z sieci lokalnej (w moim przypadku eth0) ??

----------

## bartmarian

regolka moja na squid:

```

iptables -t nat -A PREROUTING -i eth1 -p tcp -s 192.168.x.x/24 --dport 80 -j DNAT --to 192.168.x.x:3128

```

pozatym wpisz sobie w przegladarce swoj proxy i zobacz czy dziala,

nie jestem pewny jak jest teraz ale kiedys squid musial dostac kilka dodatkowych

informacji w conf zeby dzialal transparentnie - ja przestalem go uzywac, wiec 

nie wiem jak to teraz wyglada.

Pozdrowienia

----------

## ar_it

 *bartmarian wrote:*   

> regolka moja na squid:
> 
> ```
> 
> iptables -t nat -A PREROUTING -i eth1 -p tcp -s 192.168.x.x/24 --dport 80 -j DNAT --to 192.168.x.x:3128
> ...

 

Squid

działa w sieci lokalnej, 

co dziwne nmap mowi mi ze mam port 8080 squida otwarty na swiat.

Gdy w ustawianiach przegladarki (znajdujacej sie poza siecia lokalna) dam aby kozystala z tamtego proxy - to dostaję komuniakt od squida że "access deneid " z ladnymi informacjami o bledzie  :Sad: 

Czy tak powinno być ??

----------

## bartmarian

wg mnie tak powinno byc, jak chcesz z zewnatrz, dopisz to do squid.conf,

albo liberalnie (jak Twoja polityka tabletek) albo segmentami np 83.16.0.0/16

----------

## ar_it

 *bartmarian wrote:*   

> wg mnie tak powinno byc, jak chcesz z zewnatrz, dopisz to do squid.conf,
> 
> albo liberalnie (jak Twoja polityka tabletek) albo segmentami np 83.16.0.0/16

 

Wniosek jest jeden - jeśli chcę aby tylko ssh było dostępne z internetu, to muszę przeprojektować politykę, tak aby wszystko co wchodzi

do sieci było nie dostępne. a wszystko wychodzące było dostępne.

 :Smile: 

----------

