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
-
Ahoj, potřebuji radu ohledně iptables. Nedaří se mi na serveru povolit squid v iptables.
Zadám příkazy:
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:
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
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
-
adresa 127.0.0.1 nebude ta pravá, kterou potřebujete sledovat...
-
adresa 127.0.0.1 nebude ta pravá, kterou potřebujete sledovat...
Co?
-
nmap na localhost nedává příliš smysl
-
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".
-
Nikdo nic?
-
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í.
-
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.
-
No to snad ne .... byla to moje trapná chyba! Když jsem se připojil přes telnet na
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)
-
No to snad ne .... byla to moje trapná chyba! Když jsem se připojil přes telnet na
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.
-
No to snad ne .... byla to moje trapná chyba! Když jsem se připojil přes telnet na
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 :-\.
-
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
pre-up iptables-restore < /etc/iptables.rules
Co se squidu týká, asi bych do INPUT řetězce ještě hodil:
/sbin/iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
-
Co se squidu týká, asi bych do INPUT řetězce ještě hodil:
/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.
-
Co se squidu týká, asi bych do INPUT řetězce ještě hodil:
/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:
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..
-
Děkji, už to jede.
Uplně jsem zapomněl na:
sudo iptables -A INPUT -i lo -j ACCEPTto byl ten důvod proč to nešlo...