Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Internet a sítě => Téma založeno: donjirka 15 Srpna 2012, 20:00:59

Název: iptables a squid [vyřešeno]
Přispěvatel: donjirka 15 Srpna 2012, 20:00:59
Ahoj, potřebuji radu ohledně iptables. Nedaří se mi na serveru povolit squid v iptables.
Zadám příkazy:
Kód: [Vybrat]
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 3128 -j ACCEPT
sudo iptables -P INPUT DROP

SSH normálně funguje, ale squid neodpovídá. Nevíte někdo proč?

Mimochodem:
Kód: [Vybrat]
user@domovina:~$ sudo nmap 127.0.0.1

Starting Nmap 5.00 ( http://nmap.org ) at 2012-08-15 19:58 CEST
Interesting ports on localhost (127.0.0.1):
Not shown: 998 filtered ports
PORT     STATE SERVICE
22/tcp   open  ssh
3128/tcp open  squid-http

Nmap done: 1 IP address (1 host up) scanned in 4.70 seconds

Kód: [Vybrat]
user@domovina:~$ sudo iptables -L -n -v
Chain INPUT (policy DROP 1175 packets, 736K bytes)
 pkts bytes target     prot opt in     out     source               destination
 102K   15M fail2ban-ssh  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           multiport dports 22
 3004  498K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22
  795  134K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:3128

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 325K packets, 276M bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain fail2ban-ssh (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DROP       all  --  *      *       118.129.139.67       0.0.0.0/0
 102K   15M RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0

Název: Re:iptables a squid
Přispěvatel: jmp 15 Srpna 2012, 20:04:14
adresa 127.0.0.1 nebude ta pravá, kterou potřebujete sledovat...
Název: Re:iptables a squid
Přispěvatel: donjirka 15 Srpna 2012, 20:06:45
adresa 127.0.0.1 nebude ta pravá, kterou potřebujete sledovat...

Co?
Název: Re:iptables a squid
Přispěvatel: jmp 15 Srpna 2012, 20:10:01
nmap na localhost nedává příliš smysl
Název: Re:iptables a squid
Přispěvatel: donjirka 15 Srpna 2012, 20:24:57
No nevím proč, ale šlo mi jen o ukázku toho, že je port povolený. Mě zajímá proč se nejde připojit na proxy "squid".
Název: Re:iptables a squid
Přispěvatel: donjirka 17 Srpna 2012, 16:06:20
Nikdo nic?
Název: Re:iptables a squid
Přispěvatel: Petr Merlin Vaněček 17 Srpna 2012, 17:02:03
jmp tím chtěl říci, že squid klidně na localhostu může poslouchat, ale už vůbec nemusí poslouchat na zařízení, na kterém je firewall a na které se připojujete.

Mimochodem, bývá dobrým zvykem nastavovat default policy jako první.
Název: Re:iptables a squid
Přispěvatel: donjirka 17 Srpna 2012, 18:44:53
OK,ale v mém případě to nejde protože jsem připojen přes SSH. Jak mám tedy postupovat dál? Dám ACCEPT a na proxy se dostanu. Vytvoří pravidlo v iptables dám DROP a nejde. Jinak ještě bych měl říct že tuneluji v putty pouze dva porty 5900 a 3128.
Název: Re:iptables a squid
Přispěvatel: donjirka 17 Srpna 2012, 19:44:14
No to snad ne .... byla to moje trapná chyba! Když jsem se připojil přes telnet na
Kód: [Vybrat]
telnet localhost 3128
tak squid odpovídal. Chyba tedy byla v nastavení prohlížeče Firefox který neumí přeložit localhost na 127.0.0.1. Stačilo tedy napsat jako adresu proxy 127.0.0.1  ??? 8)
Název: Re:iptables a squid (vyřešeno)
Přispěvatel: Petr Merlin Vaněček 17 Srpna 2012, 20:34:04
No to snad ne .... byla to moje trapná chyba! Když jsem se připojil přes telnet na
Kód: [Vybrat]
telnet localhost 3128
tak squid odpovídal. Chyba tedy byla v nastavení prohlížeče Firefox který neumí přeložit localhost na 127.0.0.1. Stačilo tedy napsat jako adresu proxy 127.0.0.1  ??? 8)

Zkusil bych se spíše podívat na tom klientovi do /etc/hosts, spíš jak ve FF bude krpa tam.
Název: Re:iptables a squid
Přispěvatel: donjirka 21 Srpna 2012, 07:23:08
No to snad ne .... byla to moje trapná chyba! Když jsem se připojil přes telnet na
Kód: [Vybrat]
telnet localhost 3128
tak squid odpovídal. Chyba tedy byla v nastavení prohlížeče Firefox který neumí přeložit localhost na 127.0.0.1. Stačilo tedy napsat jako adresu proxy 127.0.0.1  ??? 8)

Tak beru zpět ... jen jsem restartoval server a iptables se neuložilo a nastavilo se zpět na ACCEPT  :-\.
Název: Re:iptables a squid
Přispěvatel: On 21 Srpna 2012, 08:56:33
jj, pravidla iptables musíš uložit, aby se po restartu nahodily zpět..

Já to dělám takhle:

1) sudo bash -c "iptables-save > /etc/iptables.rules"
2) do souboru /etc/network/interfaces uplně dolů vložím
Kód: [Vybrat]
pre-up iptables-restore < /etc/iptables.rules

Co se squidu týká, asi bych do INPUT řetězce ještě hodil:

Kód: [Vybrat]
/sbin/iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
Název: Re:iptables a squid
Přispěvatel: donjirka 22 Srpna 2012, 06:20:14
Co se squidu týká, asi bych do INPUT řetězce ještě hodil:

Kód: [Vybrat]
/sbin/iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

Dík, nevíš ještě co to znamená?
Jinak jsem to vyzkoušel, ale pořád není odezva. Dám drop a proxy je mrtvá.
Ještě mě napadá ... nemůže to způsobovat to, že je to tunel přes Putty a tudíž to má jinak směrované packety? Moc do TCP/IP nevidím.
Název: Re:iptables a squid
Přispěvatel: On 22 Srpna 2012, 08:32:34
Co se squidu týká, asi bych do INPUT řetězce ještě hodil:

Kód: [Vybrat]
/sbin/iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

Dík, nevíš ještě co to znamená?
Jinak jsem to vyzkoušel, ale pořád není odezva. Dám drop a proxy je mrtvá.
Ještě mě napadá ... nemůže to způsobovat to, že je to tunel přes Putty a tudíž to má jinak směrované packety? Moc do TCP/IP nevidím.


Vysvětlení máš třeba tady:
http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-linuxovy-firewall-zaklady-iptables-2

Jinak v příkladu jsem napsal tvé síťové rozhraní eth0 ...musíš si tam dosadit ale to své.

A ještě mě tak napadá, bude nutné ještě tohle...

echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128


takže celé, včetně dalších nastavení by to mohlo vypadat takhle:

Kód: [Vybrat]
echo "1" > /proc/sys/net/ipv4/ip_forward

/sbin/iptables -P INPUT DROP
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 3128 -m state --state NEW -j ACCEPT
/sbin/iptables -A INPUT -p icmp -j ACCEPT
/sbin/iptables -A INPUT -j REJECT --reject-with icmp-admin-prohibited

/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

Počítám s tím, že OUTPUT Policy je ACCEPT a síťové rozhraní je eth0


PS: Pokud nastavuješ pravidla vzdáleně, pak INPUT DROP bych zařadil až na konec. Ale i tak bych to radši dělal lokálně, pač si tím můžeš vzdáleně odříznout přístup..
Název: Re:iptables a squid
Přispěvatel: donjirka 22 Srpna 2012, 10:14:04
Děkji, už to jede.
Uplně jsem zapomněl na:
Kód: [Vybrat]
sudo iptables -A INPUT -i lo -j ACCEPTto byl ten důvod proč to nešlo...