Доброе время суток всем!
сначала вопрос - как разрешить выходить из локалки юзерам с реальными ipтеперь описание:
есть у меня локалка 192.168.х.х, ходят все через линуксовый рутер, где поднят iptables с nat - все ок. Но некоторым, особо выдающимся, надо ходить в нет с собственным реальным айпишником, а вот с этим трабл.
С тачки, где стоит этот ip пингуются оба интерфейса сервера и внутренний 192.168.х.х и внешний реальный, а дальше пинг не идет. Догадываюсь, что трабл в настройках iptables, но я его в доль и поперек изучил и ничего не увидел. Хелп, плз.eth0 смотрит в нет х.х.х.1
eth1 на локалку 192.168.0.1
х.х.х.x/24 - те самые ipА вот, собственно, iptables-save
# Generated by iptables-save v1.2.8 on Fri Sep 12 18:59:33 2003
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 192.168.0.0/255.255.255.0 -o eth0 -j SNAT --to-source x.x.x.53
COMMIT
# Completed on Fri Sep 12 18:59:33 2003
# Generated by iptables-save v1.2.8 on Fri Sep 12 18:59:33 2003
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
:allowed - [0:0]
:bad_tcp_packets - [0:0]
:icmp_packets - [0:0]
:tcp_packets - [0:0]
:udp_packets - [0:0]
-A INPUT -p tcp -j bad_tcp_packets
-A INPUT -s 192.168.0.0/255.255.255.0 -i eth1 -j ACCEPT
-A INPUT -s x.x.x.x/255.255.255.0 -i eth1 -j ACCEPT - это и есть те реальные ip
-A INPUT -s 127.0.0.1 -i lo -j ACCEPT
-A INPUT -s 192.168.0.1 -i lo -j ACCEPT
-A INPUT -s x.x.x.1 -i lo -j ACCEPT
-A INPUT -i eth1 -p udp -m udp --sport 68 --dport 67 -j ACCEPT
-A INPUT -d x.x.x.1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -j tcp_packets
-A INPUT -i eth0 -p udp -j udp_packets
-A INPUT -i eth0 -p icmp -j icmp_packets
-A INPUT -d 224.0.0.0/255.0.0.0 -i eth0 -j DROP
-A FORWARD -p tcp -j bad_tcp_packets
-A FORWARD -i eth1 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -j bad_tcp_packets
-A OUTPUT -s 127.0.0.1 -j ACCEPT
-A OUTPUT -s 192.168.0.1 -j ACCEPT
-A OUTPUT -s x.x.x.1 -j ACCEPT
-A OUTPUT -s x.x.x.x/255.255.255.0 -j ACCEPT
-A allowed -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j ACCEPT
-A allowed -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A allowed -p tcp -j DROP
-A bad_tcp_packets -p tcp -m tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset
-A bad_tcp_packets -p tcp -m tcp ! --tcp-flags SYN,RST,ACK SYN -m state --state NEW -j LOG --log-prefix "New not syn:"
-A bad_tcp_packets -p tcp -m tcp ! --tcp-flags SYN,RST,ACK SYN -m state --state NEW -j DROP
-A icmp_packets -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A udp_packets -p udp -m udp --dport 123 -j ACCEPT
-A udp_packets -p udp -m udp --dport 4000 -j ACCEPT
-A udp_packets -d x.x.x.255 -i eth0 -p udp -m udp --dport 135:139 -j DROP
-A udp_packets -d 255.255.255.255 -i eth0 -p udp -m udp --dport 67:68 -j DROP
COMMIT
# Completed on Fri Sep 12 18:59:33 2003
Во первых нормально прикрыть роутер:iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPTiptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth1 -p icmp -j ACCEPT
iptables -A INPUT -i eth1 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth1 -p udp --dport 22 -j ACCEPT/sbin/iptables -A INPUT -i eth0 -m state --state ! ESTABLISHED,RELATED -j LOG
/sbin/iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p icmp -j ACCEPTЗатем для каждого пользователя кторый не использует прямые адреса прописать:
iptables -A FORWARD -s 192.168.x.x -j ACCEPT
iptables -A FORWARD -d 192.168.x.x -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.x.x -j MASQUERADEА для тех кто использует прямые ip прописать:
iptables -t nat -A POSTROUTING -s 192.168.x.x -j SNAT --to-source x.x.x.x
iptables -A FORWARD -p tcp -d 192.168.x.x --syn -j ACCEPT
iptables -A FORWARD -s 192.168.x.x -j ACCEPT
iptables -A FORWARD -d 192.168.x.x -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -d x.x.x.x -j DNAT --to-destination 192.168.x.x
iptables -t nat -A PREROUTING -p udp -d x.x.x.x -j DNAT --to-destination 192.168.x.xСоответственно ра роутере должны быть прописанны все x.x.x.x адреса.
Если будешь пинговать из инета, то будет пинговаться роутер, а все остальные порты перенаправляться на клиентские компы. еще одно но, из локальной сети на адреса x.x.x.x ломиться бесполезно, они все равно потеряются.