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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Mam serwer na RH9, ktory ma htb (zarzadzanie pasmem) squida, dhcp (IP po MAC) i iptables (nat+markowanie+redirekt na squida). Przcowalo to sobie i nie bylo nic niepokojacego, ale...
Pewnego razu umozliwilem miskom w LAN korzystanie z adresow z puli zewnetrznej. Zrobilem ruting:
[b][color=blue] route add IP_ZEWN_eth0 dev eth1[/color][/b]
gdzie: eth0 - WAN a eth1 _ LAN
w iptables mam tak (podaje dokladnie i troche przydlugo, sorry):
[b]
iptables -F
iptables -X
iptables -Z
iptables -F -t nat
iptables -X -t nat
iptables -F -t mangle
iptables -X -t mangle
iptables -F -t filter
iptables -X -t filter
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp
echo 1 > /proc/sys/net/ipv4/conf/eth1/proxy_arp
echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
echo 0 > /proc/sys/net/ipv4/conf/default/accept_source_route
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/accept_redirects
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
echo 120 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time
echo 0 > /proc/sys/net/ipv4/tcp_window_scaling
echo 0 > /proc/sys/net/ipv4/tcp_sack
echo 70000 > /proc/sys/net/ipv4/ip_conntrack_max
echo 20 > /proc/sys/net/ipv4/ipfrag_time
echo 1280 > /proc/sys/net/ipv4/tcp_max_syn_backlog
echo 3600 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
echo 60 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_close_wait
echo 64 > /proc/sys/net/ipv4/ip_default_ttl
echo 1 > /proc/sys/net/ipv4/tcp_timestamps
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
# Odrzucenie IDENT z komunikatem ICMP
iptables -A INPUT -p tcp -d 0/0 --dport 113 -j REJECT --reject-with icmp-port-unreachable
#dopasowanie mtu
iptables -t filter -I FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
# Zabezpieczenie przed powodzia pakietow SYN /syn-flood/
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
# Skaner portow Furtive
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
# Ping of Death
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
# Polaczenia juz nawiazane
iptables -A INPUT -j ACCEPT -m state --state NEW
iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED
iptables -A INPUT -j ACCEPT -m state --state RELATED
iptables -A FORWARD -j ACCEPT -m state --state NEW
iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED
iptables -A FORWARD -j ACCEPT -m state --state RELATED
iptables -A OUTPUT -j ACCEPT -m state --state NEW
iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED
iptables -A OUTPUT -j ACCEPT -m state --state RELATED
# Falszowanie i zle adresy
#--------------------------
# Sfaloszowane pakiety dla interfejsu eth0
iptables -A INPUT -i eth0 -s IP_ZEWN_eth0 -j DROP
# Odrzucenie klasy A
iptables -A INPUT -s 10.0.0.0/8 -j DROP
iptables -A INPUT -d 10.0.0.0/8 -j DROP
iptables -A OUTPUT -s 10.0.0.0/8 -j DROP
iptables -A OUTPUT -d 10.0.0.0/8 -j DROP
# Odrzucenie klasy B
iptables -A INPUT -s 172.16.0.0/12 -j DROP
iptables -A INPUT -d 172.16.0.0/12 -j DROP
iptables -A OUTPUT -s 172.16.0.0/12 -j DROP
iptables -A OUTPUT -d 172.16.0.0/12 -j DROP
# Odrzucenie klasy C dla interfejsu zewnetrznego
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j DROP
iptables -A INPUT -i eth0 -d 192.168.1.0/24 -j DROP
iptables -A OUTPUT -o eth0 -s 192.168.1.0/24 -j DROP
iptables -A OUTPUT -o eth0 -d 192.168.1.0/24 -j DROP
# Orzucanie pakietow podajacych za zrodlo interfejs petli zwrotnej
iptables -A INPUT -i eth0 -s 127.0.0.1/8 -j DROP
iptables -A INPUT -i eth1 -s 127.0.0.1/8 -j DROP
# Odrzucanie niepoprawnych pakietow rozgloszeniowych dla eth0 i eth1
iptables -A INPUT -s 255.255.255.255 -j DROP
iptables -A INPUT -d 255.255.255.255 -j DROP
iptables -A OUTPUT -s 255.255.255.255 -j DROP
iptables -A OUTPUT -d 255.255.255.255 -j DROP
# Odrzucanie klasy D muliticast dla eth0
iptables -A INPUT -i eth0 -s 224.0.0.0/4 -j DROP
iptables -A OUTPUT -o eth0 -s 224.0.0.0/4 -j DROP
# Dostep do serwera WWW dla sieci lokalnej
# iptables -A INPUT -i eth1 -p tcp -s 192.168.1.0/24 --sport 1024:65535 -d 192.168.1.1 --dport 80 -j ACCEPT
# iptables -A OUTPUT -o eth1 -p tcp -s 192.168.1.1 --sport 80 ! --syn -d 192.168.1.0/24 --dport 1024:65535 -j ACCEPT
# Dostep do serwera SSH dla sieci lokalnej
#iptables -A INPUT -i eth1 -p tcp -s 192.168.1.0/24 --sport 1024:65535 -d 192.168.1.1 --dport 22 -j ACCEPT
#iptables -A OUTPUT -o eth1 -p tcp -s 192.168.1.1 --sport 1024:65535 -d 192.168.1.0/24 --dport 22 -j ACCEPT
#iptables -A INPUT -i eth0 -p tcp -s 0.0.0.0/0 --sport 22 -d IP_ZEWN_eth0 --dport 22 -j DROP
#iptables -A OUTPUT -o eth0 -p tcp -s IP_ZEWN_eth0 --sport 22 -d 0.0.0.0/0 --dport 22 -j DROP
# Dostep do serwera RADIUS
#iptables -A INPUT -i eth1 -p tcp -s 192.168.1.0/24 --sport 1812 -d 192.168.1.1 --dport 1812 -j ACCEPT
#iptables -A OUTPUT -o eth1 -p tcp -s 192.168.1.1 --sport 1812 -d 192.168.1.0/24 --dport 1812 -j ACCEPT
#iptables -A INPUT -i eth1 -p tcp -s 192.168.1.0/24 --sport 1813 -d 192.168.1.1 --dport 1812 -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp -s 192.168.1.1 --sport 1813 -d 192.168.1.0/24 --dport 1813 -j ACCEPT
# BLOKOWANIE RUCHU WINDOWSA
iptables -t nat -I PREROUTING -p tcp -d 0.0.0.0/0 --dport 135:139 -j DROP
iptables -t nat -I PREROUTING -p udp -d 0.0.0.0/0 --dport 135:139 -j DROP
# wywalenie http 80 na port 8080 squid
iptables -t nat -I PREROUTING -s 192.168.1.0/24 -d 0/0 -p tcp --dport 80 -j REDIRECT --to-port 8080
# podpadniete adresy ?????????
iptables -t nat -A PREROUTING -i eth0 -p tcp -d IP_ZEWN_eth0 --dport 1411 -j DROP
#ograniczenie ilosci otwartych sesji TCP do 150/host
iptables -I FORWARD -s 192.168.1.0/24 -p tcp --syn -m connlimit --connlimit-above 150 --connlimit-mask 32 -j DROP
iptables -I FORWARD -s IP_ZEWN_MISKA -p tcp --syn -m connlimit --connlimit-above 150 --connlimit-mask 32 -j DROP
#ograniczenie ICMP
iptables -A INPUT -p icmp -s 0/0 -m limit --limit 2/s --limit-burst 4 -j ACCEPT
#ograniczenie UDP
iptables -I FORWARD -p udp -s 192.168.1.0/24 -m limit --limit 30/s -j ACCEPT
iptables -I FORWARD -p udp -s IP_ZEWN_MISKA -m limit --limit 30/s -j ACCEPT
############ komputery miskow ############
# 192.168.1.25 MISIEK z IP_ZEWN i pozostawiony IP_WEWN
iptables -t nat -A POSTROUTING -s 192.168.1.25 -d 0.0.0.0/0 -j SNAT --to-source IP_ZEWN_eth0
iptables -t mangle -A PREROUTING -p all -s 192.168.1.25 -j MARK --set-mark 25
iptables -t filter -A FORWARD -i eth1 -s IP_ZEWN_MISKA -d 0/0 -j ACCEPT
iptables -t mangle -A PREROUTING -p all -s IP_ZEWN_MISKA -j MARK --set-mark 25
# 192.168.1.50 KOLO z IP_WEW tylko
iptables -t nat -A POSTROUTING -s 192.168.1.50 -d 0.0.0.0/0 -j SNAT --to-source IP_ZEWN_eth0
iptables -t mangle -A PREROUTING -p all -s 192.168.1.50 -j MARK --set-mark 50[/b]
Byloby wszystko ok, gdyby nie fakt ze ktoregos razu zaplotkowalem (####) wpisy dot. IP_ZEWN_MISKA. Squida uzywaja tylko miski z LANu. Dla ip zewn. dhcp nie przyznaje zdresow z zewnatrz - trzeba je wklepywac z palca. Sprawdzalem wpisy u klienta i wszystko ok. tzn mial:
IP: IP_ZEWN_MISKA
MASKA:255.255.255.224 - (podklasa z 32 ip)
BRAMKA: IP_ZEWN_MISKA
DNS: TPSA
i okazalo sie ze laczyl sie z Intrnetem (ping i www). Gdzie mam blad?
Sam patrze i sprawdzam juz drugi dzien i... kicha!!!!
Offline
Time (s) | Query |
---|---|
0.00010 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00131 | 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='18.117.10.207' WHERE u.id=1 |
0.00082 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.117.10.207', 1738375849) |
0.00072 | SELECT * FROM punbb_online WHERE logged<1738375549 |
0.00099 | DELETE FROM punbb_online WHERE ident='3.226.34.98' |
0.00071 | SELECT topic_id FROM punbb_posts WHERE id=29125 |
0.00059 | SELECT id FROM punbb_posts WHERE topic_id=3725 ORDER BY posted |
0.00069 | 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=3725 AND t.moved_to IS NULL |
0.00006 | SELECT search_for, replace_with FROM punbb_censoring |
0.00068 | 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=3725 ORDER BY p.id LIMIT 0,25 |
0.00099 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=3725 |
Total query time: 0.0077 s |