IPtables hiba - nem látszik a netről a webszerver

Fórumok

Sziasztok!

Szeretném a segítségeteket kérni, mert az iptables script futtatása után a webszervert nem lehet elérni a netről. Mivel még eléggé kezdő vagyok, így sajnos nem tudok rájönni, hogy miért történik ez. Ha fut a lenti részletet tartalmazó script, akkor van net a belső hálózat gépein is, de nem jó a webszerver... A szerveren squid proxy is fut, szóval a 80-as portot a 8080-ra kellene irányítani, elvielg erre szolgál a lenti részlet utolsó 2 sora...

Az iptables scriptben csak a következő sorok vannak (illetve lennének) hatással a 80-as portra:


echo "	Web Server" 
echo "		HTTP" 
		$IPTABLES -A tcp_inbound -p TCP -s 0/0 --destination-port 80 -j ACCEPT 
echo "		HTTPS" 
		$IPTABLES -A tcp_inbound -p TCP -s 0/0 --destination-port 443 -j ACCEPT

#echo "	PREROUTING lánc beállítása..." 
#	$IPTABLES -t nat -A PREROUTING -p tcp -s $INET_ADDRESS --destination-port 80 -j RETURN 
#	$IPTABLES -t nat -A PREROUTING -p tcp -s $INET_ADDRESS --destination-port 443 -j RETURN 

echo "	Átlátszó proxy beállítása..."
#	$IPTABLES -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 8080 
#	$IPTABLES -t nat -A PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-ports 8080 
	$IPTABLES -A PREROUTING -p tcp -m tcp -i $LOCAL_IFACE --dport 80 -j REDIRECT --to-ports 8080 
	$IPTABLES -A PREROUTING -p tcp -m tcp -i $LOCAL_IFACE --dport 443 -j REDIRECT --to-ports 8080 

Melyik parancs hatására válik láthatatlanná az apache? Esetleg valamelyik szabály ellentétes vagy összeakad a másikkal?

Lécci segítsetek, mert kezdek begolyózni...

Bazsi

Nem tudom, hogy kell-e, de azért bemásolom ide a teljes scriptet, hátha máshol van a hiba...


#!/bin/sh 
# 
#===================================================================== 
#=====Tűzfal indítása 
#===================================================================== 
# 

FWVER=1.3.6 

echo "================================================================" 
echo "================= Tűzfal (v. $FWVER) indítása... =================" 
echo "================================================================" 

IPTABLES=/sbin/iptables 
DEPMOD=/sbin/depmod 
MODPROBE=/sbin/modprobe 

# 
#===================================================================== 
#=====Eszközök beállítása 
#===================================================================== 
# 
# ADSL-es internet kapcsolat esetén a külső eszközt valószínűleg 
# ppp0-nak kell beállítani. A pontos beállításokhoz használd az 
# "ifconfig" parancsot. 
# 

# Internet interface adatai 
	INET_IFACE="ppp0" 
	INET_ADDRESS="saját.fix.ip.cimem" 

# Intranet interface adatai 
	LOCAL_IFACE="eth1" 
	LOCAL_IP="192.168.15.1" 
	LOCAL_NET="192.168.15.0/24" 
	LOCAL_BCAST="192.168.15.255" 

# Localhost interface adatai 
	LO_IFACE="lo" 
	LO_IP="127.0.0.1"
echo "Hálózati eszközök beállítása:" 
echo "================================================================" 
echo "" 
echo "Internet interface adatai:" 
echo "----------------------------------------------------------------" 
echo "	Internet kapcsolat azonosítója: 	$INET_IFACE" 
echo "	Internet kapcsolat IP címe: 	$INET_ADDRESS" 
echo "" 
echo "Intranet interface adatai:" 
echo "----------------------------------------------------------------" 
echo "	Intranet kapcsolat azonosítója:	$LOCAL_IFACE" 
echo "	Intranet kapcsolat IP címe:	$LOCAL_IP" 
echo "	Intranet hálózat:			$LOCAL_NET" 
echo "	Intranet hálózat broadcast címe:	$LOCAL_BCAST" 
echo "" 
echo "Localhost interface adatai:" 
echo "----------------------------------------------------------------" 
echo "	Localhost kapcsolat azonosítója: 	$LO_IFACE" 
echo "	Localhost kapcsolat IP címe: 	$LO_IP" 
# 
#===================================================================== 
#=====Modulok betöltése 
#===================================================================== 
# 

echo "" 
echo "Kernel modulok betöltése:" 
echo "================================================================" 
echo "" 
echo "	Kernel modulok vizsgálata:" 
	$DEPMOD -a 
echo "----------------------------------------------------------------" 
echo "		ip_tables" 
		$MODPROBE ip_tables 
echo "		ip_conntrack" 
		$MODPROBE ip_conntrack 
echo "		ip_conntrack_ftp" 
		$MODPROBE ip_conntrack_ftp 
echo "		ip_conntrack_irc" 
		$MODPROBE ip_conntrack_irc 
echo "		iptable_nat" 
		$MODPROBE iptable_nat 
echo "		ip_nat_ftp" 
		$MODPROBE ip_nat_ftp 
echo "		ip_nat_irc" 
		$MODPROBE ip_nat_irc 
#echo "		ipt_unclean" 
#		$MODPROBE  ipt_unclean 
echo "		ipt_MASQUERADE" 
		$MODPROBE ipt_MASQUERADE 
echo "		iptable_mangle" 
		$MODPROBE iptable_mangle 
echo "		ipt_state" 
		$MODPROBE ipt_state 
echo "		ipt_limit" 
		$MODPROBE ipt_limit 
echo "		iptable_mangle" 
		$MODPROBE iptable_mangle 
echo "----------------------------------------------------------------" 
echo "Modulok betöltése kész!" 
# 
#===================================================================== 
#=====Kernel paraméterek beállítása 
#===================================================================== 
# 

echo "" 
echo "Kernel paraméterek beállítása:" 
echo "================================================================" 
echo "" 
echo "	IP továbbítás engedélyezése..." 
echo "1" > /proc/sys/net/ipv4/ip_forward 

echo "	DynamicAddr engedélyezése..." 
echo "1" > /proc/sys/net/ipv4/ip_dynaddr 

echo "	SYN Flood védelem aktiválása..." 
echo "1" > /proc/sys/net/ipv4/tcp_syncookies 

echo "	ICMP csomagok elfogadása..." 
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 

echo "	Secure_redirect kérések elfogadása csak az alapértelmezett gateway-től..." 
echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects 

echo "	Valótlan címekről érkező csomagok naplózása..." 
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians 
# 
#===================================================================== 
#=====Irányelvek beállítása 
#===================================================================== 
# 

echo "" 
echo "Irányelvek beállítása:" 
echo "================================================================" 
echo "" 
echo "	Alapértelmezett szabályok irányelveinek átállítása..." 
	$IPTABLES -P INPUT ACCEPT 
	$IPTABLES -P FORWARD ACCEPT 
	$IPTABLES -P OUTPUT ACCEPT 
	$IPTABLES -t nat -P PREROUTING ACCEPT 
	$IPTABLES -t nat -P POSTROUTING ACCEPT 
	$IPTABLES -t nat -P OUTPUT ACCEPT 
	$IPTABLES -t mangle -P PREROUTING ACCEPT 
	$IPTABLES -t mangle -P OUTPUT ACCEPT 

echo "	Láncok szabályainak törlése..." 
	$IPTABLES -F 
	$IPTABLES -t nat -F 
	$IPTABLES -t mangle -F 

echo "	Üres láncok törlése..." 
	$IPTABLES -X 
	$IPTABLES -t nat -X 
	$IPTABLES -t mangle -X 

echo "	Irányelvek beállítása..." 
	$IPTABLES -P INPUT DROP 
	$IPTABLES -P OUTPUT DROP 
	$IPTABLES -P FORWARD DROP
# 
#===================================================================== 
#=====Saját láncok és szabályok létrehozása, beállítása 
#===================================================================== 
# 

echo "" 
echo "Saját láncok és szabályok létrehozása, beállítása:" 
echo "================================================================" 

echo "	Saját láncok létrehozása..." 
	$IPTABLES -N bad_packets 
	$IPTABLES -N bad_tcp_packets 
	$IPTABLES -N icmp_packets 
	$IPTABLES -N udp_inbound 
	$IPTABLES -N udp_outbound 
	$IPTABLES -N tcp_inbound 
	$IPTABLES -N tcp_outbound 

#echo "	Saját láncok és szabályok beállítása..." 
	$IPTABLES -A bad_packets -p ALL -i $INET_IFACE -s $LOCAL_NET -j LOG --log-prefix "Illegal source: " 
	$IPTABLES -A bad_packets -p ALL -i $INET_IFACE -s $LOCAL_NET -j DROP 
	$IPTABLES -A bad_packets -p ALL -m state --state INVALID -j LOG --log-prefix "Invalid packet: " 
	$IPTABLES -A bad_packets -p ALL -m state --state INVALID -j DROP 
	$IPTABLES -A bad_packets -p tcp -j bad_tcp_packets 
	$IPTABLES -A bad_packets -p ALL -j RETURN 

	$IPTABLES -A bad_tcp_packets -p tcp -i $LOCAL_IFACE -j RETURN 
	$IPTABLES -A bad_tcp_packets -p tcp -i $LOCAL_IFACE ! --syn -m state --state NEW -j DROP 
	$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not syn: " 
	$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP 
	$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags ALL NONE -j LOG --log-prefix "Stealth scan: " 
	$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags ALL NONE -j DROP 
	$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags ALL ALL -j LOG --log-prefix "Stealth scan: " 
	$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags ALL ALL -j DROP 
	$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags ALL FIN,URG,PSH -j LOG --log-prefix "Stealth scan: " 
	$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP 
	$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j LOG --log-prefix "Stealth scan: " 
	$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP 
	$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,RST SYN,RST -j LOG --log-prefix "Stealth scan: " 
	$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,RST SYN,RST -j DROP 
	$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,FIN SYN,FIN -j LOG --log-prefix "Stealth scan: " 
	$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP 
	$IPTABLES -A bad_tcp_packets -p tcp -j RETURN 
	 
	$IPTABLES -A icmp_packets --fragment -p ICMP -j LOG --log-prefix "ICMP Fragment: " 
	$IPTABLES -A icmp_packets --fragment -p ICMP -j DROP 
	$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j LOG --log-prefix "Ping detected: " 
	$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT 
#	$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j DROP 
	$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT 
	$IPTABLES -A icmp_packets -p ICMP -j RETURN
#
#===================================================================== 
#=====Szerver szolgáltatások engedélyezése 
#===================================================================== 
# 

echo "" 
echo "Szerver szolgáltatások engedélyezése:" 
echo "================================================================" 

echo "	NetBIOS Server" 
	$IPTABLES -A udp_inbound -p UDP -s 0/0 --destination-port 137 -j DROP 
	$IPTABLES -A udp_inbound -p UDP -s 0/0 --destination-port 138 -j DROP 

echo "	Network Time Protocol (NTP) Server" 
	$IPTABLES -A udp_inbound -p UDP -s 0/0 --destination-port 123 -j ACCEPT 

echo "	DNS Server" 
	$IPTABLES -A udp_inbound -p UDP -s 0/0 --destination-port 53 -j ACCEPT 
	$IPTABLES -A udp_inbound -p UDP -s 0/0 --source-port 53 -j ACCEPT 

echo "	External DHCP Server" 
	$IPTABLES -A udp_inbound -p UDP -s 0/0 --source-port 68 --destination-port 67 -j ACCEPT 

# No match 
	$IPTABLES -A udp_inbound -p UDP -j RETURN 
	$IPTABLES -A udp_outbound -p UDP -s 0/0 -j ACCEPT 

echo "DNS Server - zone transfers and large requests" 
	$IPTABLES -A tcp_inbound -p TCP -s 0/0 --destination-port 53 -j ACCEPT 

echo "	Web Server" 
echo "		HTTP" 
		$IPTABLES -A tcp_inbound -p TCP -s 0/0 --destination-port 80 -j ACCEPT 
echo "		HTTPS" 
		$IPTABLES -A tcp_inbound -p TCP -s 0/0 --destination-port 443 -j ACCEPT 
echo "		FTP Server (Control)" 
		$IPTABLES -A tcp_inbound -p TCP -s 0/0 --destination-port 21 -j ACCEPT 
echo "		FTP Client (Data Port for non-PASV transfers)" 
		$IPTABLES -A tcp_inbound -p TCP -s 0/0 --source-port 20 -j ACCEPT 
echo "		Passive FTP" 
		$IPTABLES -A tcp_inbound -p TCP -s 0/0 --destination-port 62000:64000 -j ACCEPT 

echo "	Email Server" 
echo "		SMTP" 
		$IPTABLES -A tcp_inbound -p TCP -s 0/0 --destination-port 25 -j ACCEPT 
#echo "		POP3" 
#		$IPTABLES -A tcp_inbound -p TCP -s 0/0 --destination-port 110 -j ACCEPT 
#echo "		S-POP3" 
#		$IPTABLES -A tcp_inbound -p TCP -s 0/0 --destination-port 995 -j ACCEPT 
echo "		IMAP4" 
		$IPTABLES -A tcp_inbound -p TCP -s 0/0 --destination-port 143 -j ACCEPT 
echo "		S-IMAP4" 
		$IPTABLES -A tcp_inbound -p TCP -s 0/0 --destination-port 993 -j ACCEPT 


echo "	sshd" 
	$IPTABLES -A tcp_inbound -p TCP -s 0/0 --destination-port 22 -j ACCEPT 

echo "	MSN Messenger File Transfers" 
	$IPTABLES -A tcp_inbound -p TCP -s 0/0 --destination-port 6891:6900 -j ACCEPT 

# No match 
	$IPTABLES -A tcp_inbound -p TCP -j RETURN
# 
#===================================================================== 
#=====Letiltott szolgáltatások 
#===================================================================== 
# 

echo "" 
echo "Szolgáltatások letiltása:" 
echo "================================================================" 

echo "	IRC" 
	$IPTABLES -A tcp_outbound -p TCP -s 0/0 --destination-port 194 -j REJECT 

echo "	Usenet Access" 
	$IPTABLES -A tcp_outbound -p TCP -s 0/0 --destination-port 119 -j REJECT 

# No match 
	$IPTABLES -A tcp_outbound -p TCP -s 0/0 -j ACCEPT
# 
#===================================================================== 
#=====INPUT lánc beállítása 
#===================================================================== 
# 

echo "" 
echo "INPUT lánc beállítása:" 
echo "================================================================" 

echo "	Minden forgalom engedélyezése a $LO_IFACE -on..." 
	$IPTABLES -A INPUT -p ALL -i $LO_IFACE -j ACCEPT 

echo "	Rossz csomagok eldobása..." 
	$IPTABLES -A INPUT -p ALL -j bad_packets 

#echo "	DOCSIS kompatibilis kábelmodem beállítása..." 
#	$IPTABLES -A INPUT -p ALL -d 224.0.0.1 -j DROP 
#	$IPTABLES -A INPUT -p ALL -d 224.0.0.1 -j ACCEPT 

echo "	Saját hálózatra vonatkozó szabályok (accessing gateway system itself)" 
	$IPTABLES -A INPUT -p ALL -i $LOCAL_IFACE -s $LOCAL_NET -j ACCEPT 
	$IPTABLES -A INPUT -p ALL -i $LOCAL_IFACE -d $LOCAL_BCAST -j ACCEPT 

echo "	DHCP kliens kérelmek engedélyezése $LOCAL_IFACE-en..." 
	$IPTABLES -A INPUT -p UDP -i $LOCAL_IFACE --source-port 68 --destination-port 67 -j ACCEPT 

echo "	Létező kapcsolatok elfogadása" 
	$IPTABLES -A INPUT -p ALL -i $INET_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT 

echo "	További csomagok átirányítása a megfelelő felhasználói láncra..." 
	$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_inbound 
	$IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_inbound 
	$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets 

# Drop without logging broadcasts that get this far. Cuts down on log clutter. 
# Comment this line if testing new rules that impact broadcast protocols. 
	$IPTABLES -A INPUT -m pkttype --pkt-type broadcast -j DROP 

echo "	Nem illeszkedő csomagok naplózása...”
	$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-prefix "INPUT packet died: "
# 
#===================================================================== 
#=====FORWARD lánc beállítása 
#===================================================================== 
# 

echo "" 
echo "FORWARD lánc beállítása:" 
echo "================================================================" 

echo "	Rossz csomagok eldobása..." 
	$IPTABLES -A FORWARD -p ALL -j bad_packets 

echo "	TCP csomagok elfogadása, amiket továbbítani akarunk belső címekről" 
	$IPTABLES -A FORWARD -p tcp -i $LOCAL_IFACE -j tcp_outbound 

echo "	UDP csomagok elfogadása, amiket továbbítani akarunk belső címekről" 
	$IPTABLES -A FORWARD -p udp -i $LOCAL_IFACE -j udp_outbound 

echo "	Azon további csomagok elfogadása, amiket nincsenek tiltva a belső címekről" 
	$IPTABLES -A FORWARD -p ALL -i $LOCAL_IFACE -j ACCEPT 

echo "	Deal with responses from the internet" 
	$IPTABLES -A FORWARD -i $INET_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT 

echo "	Log packets that still don't match" 
	$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG --log-prefix "FORWARD packet died: "
# 
#===================================================================== 
#=====OUTPUT lánc beállítása 
#===================================================================== 
# 

echo "" 
echo "OUTPUT lánc beállítása:" 
echo "================================================================" 

echo "	Érvénytelen ICMP csomagok eldobása..." 
	$IPTABLES -A OUTPUT -m state -p icmp --state INVALID -j DROP 

echo "	Localhost" 
	$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT 
	$IPTABLES -A OUTPUT -p ALL -o $LO_IFACE -j ACCEPT 

echo "	Belső hálózat irányába" 
	$IPTABLES -A OUTPUT -p ALL -s $LOCAL_IP -j ACCEPT 
	$IPTABLES -A OUTPUT -p ALL -o $LOCAL_IFACE -j ACCEPT 

echo "	Az internet felé" 
	$IPTABLES -A OUTPUT -p ALL -o $INET_IFACE -j ACCEPT 

echo "	Log packets that still don't match" 
	$IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-prefix "OUTPUT packet died: "
# 
#===================================================================== 
#=====NAT beállítása 
#===================================================================== 
# 

echo "" 
echo "NAT beállítása:" 
echo "================================================================" 

#echo "	PREROUTING lánc beállítása..." 
#	$IPTABLES -t nat -A PREROUTING -p tcp -s $INET_ADDRESS --destination-port 80 -j RETURN 
#	$IPTABLES -t nat -A PREROUTING -p tcp -s $INET_ADDRESS --destination-port 443 -j RETURN 

echo "	Átlátszó proxy beállítása..."
#	$IPTABLES -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 8080 
#	$IPTABLES -t nat -A PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-ports 8080 
	$IPTABLES -A PREROUTING -p tcp -m tcp -i $LOCAL_IFACE --dport 80 -j REDIRECT --to-ports 8080 
	$IPTABLES -A PREROUTING -p tcp -m tcp -i $LOCAL_IFACE --dport 443 -j REDIRECT --to-ports 8080 


echo "	POSTROUTING lánc beállítása" 
#	$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_ADDRESS 
#	$IPTABLES -t nat -A POSTROUTING -s $LOCAL_NET -j SNAT --to-source $INET_ADDRESS 
	$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE 
	$IPTABLES -A FORWARD -i $INET_IFACE -o $LOCAL_IFACE -m state --state RELATED,ESTABLISHED -j ACCEPT 

echo "	MTU csomagok méretének szabályozása..." 
	$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1453: -j TCPMSS --set-mss 1452 
	# ADSL-es internet kapcsolat esetén a problémánk lehet az MTU-csomagok 
	# méretével, ezért az előző sor elől mindenképpen ki kell venni a 
	# kommentet. 

# NMAP FIN/URG/PSH Scan detektálás 
	$IPTABLES -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -m limit --limit 1/minute -j LOG --log-level 5 --log-prefix "FireWall.nmap-xmas:" 
	$IPTABLES -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP 

# SYN-FLOODING PROTECTION (4 kapcsolatkérés másodpercenként) 
	$IPTABLES -N syn-flood 
	$IPTABLES -A INPUT -i $INET_IFACE -p tcp --syn -j syn-flood 
	$IPTABLES -A syn-flood -j LOG --log-level 5 --log-prefix "FireWall.syn-flood:" 
	$IPTABLES -A syn-flood -m limit --limit 20/s --limit-burst 4 -j RETURN 
	$IPTABLES -A syn-flood -j DROP 

echo "" 
echo "================================================================" 
echo "==================== Tűzfal betöltése kész! ====================" 
echo "================================================================" 
echo ""

Hozzászólások

ránézésre az output láncon nem engedélyezed a már felépült kapcsolatokat.... (ESTABLISHED)

Szóval egy ilyen sor hiányzik:


$IPTABLES -A OUTPUT -o $INET_IFACE -m state --state ESTABLISHED -j ACCEPT 

--
Bazsi

Ma is holnap fekszünk le, mint tegnap...