Перенаправление накрылось, работает все на порту 3128, попрежнему не режется скорость и доступ у всех из внутренней сети, т.е. все идет в обход правил...Gen1us2k писал(а):в кальмара:
http_port $LAN_IP:3128 transparent
в iptables
iptables -t nat -A PREROUTING -s $NET -d! $LAN_IP -p tcp -m tcp --dport 80 -j REDIRECT --to-port 3128
либо
iptables -t nat -A PREROUTING -s $NET -d! $LAN_IP -p tcp -m multiport --dport 80,8080 -j REDIRECT --to-port 3128
Где LAN_IP - серый ип сервака
$NET - серая сетка.
Снова выкладываю конфиги:
[spoileriptables]
Код: Выделить всё
#!/bin/sh
#
#######################################################################
#
# Отчистка таблиц маршрутизации.
#
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -t nat -F PREROUTING
iptables -t nat -F POSTROUTING
iptables -t mangle -F
#
# Конфигурация интерфейса в смотрящего в иннтернет.
#
INET_IP="62.76.117.182"
INET_IFACE="eth1"
INET_BROADCAST="62.76.117.177"
#
# Конфигурация интерфейса в смотрящего в локальную сеть.
#
LAN_IP="172.17.2.49"
PORT_PROXY="3128"
LAN_IP_RANGE="172.17.0.0/16"
LAN_IFACE="eth2"
#
# Конфигурация интерфейса локального сервера.
#
LO_IFACE="lo"
LO_IP="127.0.0.1"
###########################################################################
#
# Используемые модули.
#
/sbin/depmod -a # Необходим для первоначальной загрузки модулей
#
# Обязательные модули
#
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
#
# Необязательные модули
#
#/sbin/modprobe ipt_owner
/sbin/modprobe ipt_REJECT
/sbin/modprobe ipt_MASQUERADE
/sbin/modprobe ip_conntrack_ftp
#/sbin/modprobe ip_conntrack_irc
/sbin/modprobe ip_nat_ftp
#/sbin/modprobe ip_nat_irc
###########################################################################
#
# Перенаправление пакетов через ядро.
#
echo "1" > /proc/sys/net/ipv4/ip_forward
###########################################################################
#
# Блокируем ВСЕ!!!
#
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#
# Создание цепочки для некорректных TCP протоколов
#
iptables -N bad_tcp_packets
#
# Создание цепочки для ICMP, TCP и UDP протоколов
#
iptables -N allowed
iptables -N tcp_packets
iptables -N udp_packets
iptables -N icmp_packets
###########################################################################
#
# Распределение трафика по цепочкам
#
#
# Некоректные TCP протоколы
#
iptables -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK \
-m state --state NEW -j REJECT --reject-with tcp-reset
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 allowed -p TCP --syn -j ACCEPT
iptables -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A allowed -p TCP -j DROP
#
# TCP протокол
#
iptables -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed
iptables -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed
iptables -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed
iptables -A tcp_packets -p TCP -s 0/0 --dport 113 -j allowed
iptables -A tcp_packets -p TCP -s 0/0 --dport 3128 -j allowed
iptables -A tcp_packets -p TCP -s 0/0 --dport 8080 -j allowed
iptables -A tcp_packets -p TCP -s 0/0 --dport 110 -j allowed # почта
iptables -A tcp_packets -p TCP -s 0/0 --dport 25 -j allowed # почта
#
# UDP протокол
#
iptables -A udp_packets -p UDP -s 0/0 --destination-port 20 -j ACCEPT
iptables -A udp_packets -p UDP -s 0/0 --destination-port 21 -j ACCEPT
iptables -A udp_packets -p UDP -s 0/0 --destination-port 53 -j ACCEPT
iptables -A udp_packets -p UDP -s 0/0 --destination-port 123 -j ACCEPT
iptables -A udp_packets -p UDP -s 0/0 --destination-port 2074 -j ACCEPT
iptables -A udp_packets -p UDP -s 0/0 --destination-port 4000 -j ACCEPT
iptables -A udp_packets -p UDP -s 0/0 --destination-port 110 -j ACCEPT # почта
iptables -A udp_packets -p UDP -s 0/0 --destination-port 25 -j ACCEPT # почта
#
# Блокирование служебных излишних запросов.
#
iptables -A udp_packets -p UDP -i $INET_IFACE -d $INET_BROADCAST \
--destination-port 135:139 -j DROP
#
# Блокирование внешних DHCP.
#
iptables -A udp_packets -p UDP -i $INET_IFACE -d 255.255.255.255 \
--destination-port 67:68 -j DROP
#
# ICMP протокол
#
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 11 -j ACCEPT
###########################################################################
#
# Обработка входящих протоколов
#
#
# Перенаправление некоректных пакетов
#
iptables -A INPUT -p tcp -j bad_tcp_packets
#
# Правила для специальных сетей не является частью Интернета
#
iptables -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT
iptables -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
iptables -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT
iptables -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT
#
# Специальные правила для запросов DHCP из локальной сети.
#
iptables -A INPUT -p UDP -i $LAN_IFACE --dport 67 --sport 68 -j ACCEPT
#
# Правила блокировки для входящих пакетов из Интернета.
#
iptables -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED \
-j ACCEPT
iptables -A INPUT -p ALL -i $INET_IFACE -j DROP
iptables -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
iptables -A INPUT -p UDP -i $INET_IFACE -j udp_packets
iptables -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets
#
# Блокирование широковещательных запросов из внешней сети.
#
iptables -A INPUT -i $INET_IFACE -d 224.0.0.0/8 -j DROP
#
# Блокирование "мертвых" неизвестных пакетов
#
iptables -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-level DEBUG --log-prefix "IPT INPUT packet died: "
###########################################################################
#
# Перенаправление некоректных TCP пакетов
#
iptables -A FORWARD -p tcp -j bad_tcp_packets
#
# Перенаправление остальных пакетов из ловальной сети
#
iptables -A FORWARD -i $LAN_IFACE -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# Заворачивание портов на порт прокси-сервера
#
iptables -t nat -A PREROUTING -s $LAN_IP_RANGE ! -d $LAN_IP -p tcp -m multiport \
--dport 80,8080 -j REDIRECT --to-port $PORT_PROXY
#
# Обработка "мертвых" пакетов из стандартных
#
iptables -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-level DEBUG --log-prefix "IPT FORWARD packet died: "
###########################################################################
#
# Перенаправление некоректных TCP пакетов
#
iptables -A OUTPUT -p tcp -j bad_tcp_packets
#
# Обработка пакетов на выход
#
iptables -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
iptables -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT
iptables -A OUTPUT -p ALL -s $INET_IP -j ACCEPT
#
# Обработка "мертвых" пакетов.
#
iptables -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-level DEBUG --log-prefix "IPT OUTPUT packet died: "
###########################################################################
#
# Включить простой пересылки IP и трансляции сетевых адресов
#
iptables -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP
#
# Подмена TTL подписи в пакетах
#
iptables -t mangle -A PREROUTING -i $INET_IFACE -j TTL --ttl-set 64
[spoilersquid]
Код: Выделить всё
# created by SAMS _sams_ 2011-9-5 15:33:18
#
# Recommended minimum configuration:
#
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl localhost src ::1/128
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl to_localhost dst ::1/128
# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
#acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.17.0.0/16 # RFC1918 possible internal network
acl localadmin src 172.17.2.0/24 # RFC1918 possible internal network
#acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
#acl localnet src fc00::/7 # RFC 4193 local private network range
#acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
#
# Recommended minimum Access Permission configuration:
#
# Only allow cachemgr access from localhost
http_access allow localadmin
http_access allow localnet
http_access deny manager
# Deny requests to certain unsafe ports
http_access allow !Safe_ports
# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports
# We strongly recommend the following be uncommented to protect innocent
# web applications running on the proxy server who think the only
# one who can access services on "localhost" is a local user
#http_access deny to_localhost
#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#
# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
http_access allow localnet
http_access allow localhost
# And finally deny all other access to this proxy
http_access deny all
# Squid normally listens to port 3128
http_port 172.17.2.49:3128 transparent
# We recommend you to use at least the following line.
hierarchy_stoplist cgi-bin ?
# Uncomment and adjust the following to add a disk cache directory.
#cache_dir ufs /var/spool/squid 100 16 256
# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid
forwarded_for off
# Add any of your own refresh_pattern entries above these.
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
visible_hostname proxy
Автоматизированный регистратор ошибок выдал:
[spoiler]
Код: Выделить всё
architecture: x86_64
cmdline: /usr/bin/sams
component: sams
crash_function: ftell
executable: /usr/bin/sams
kernel: 2.6.32-71.29.1.el6.x86_64
package: sams-1.0.5-91.1
rating: 4
reason: Process /usr/bin/sams was killed by signal 11 (SIGSEGV)
release: CentOS Linux release 6.0 (Final)
sosreport.tar.xz: /var/spool/abrt/ccpp-1314176003-3931/sosreport.tar.xz
time: 1315140516
uid: 0
backtrace
-----
[New Thread 3931]
Core was generated by `/usr/bin/sams'.
Program terminated with signal 11, Segmentation fault.
#0 0x00000039f0c670aa in ftell () from /lib64/libc.so.6
Thread 1 (Thread 3931):
#0 0x00000039f0c670aa in ftell () from /lib64/libc.so.6
No symbol table info available.
#1 0x000000000040322b in ReadNewData ()
No symbol table info available.
#2 0x0000000000405070 in main ()
No symbol table info available.
From To Syms Read Shared Object Library
0x00007fb0df094f90 0x00007fb0df0c5e18 Yes (*) /usr/lib64/mysql/libmysqlclient.so.15
0x0000003a01801540 0x0000003a0181ad68 Yes (*) /lib64/libpcre.so.0
0x00000039f0c1e9a0 0x00000039f0d2bbe0 Yes (*) /lib64/libc.so.6
0x00000039ff000c00 0x00000039ff0059a8 Yes (*) /lib64/libcrypt.so.1
0x00000039ff403ff0 0x00000039ff411788 Yes (*) /lib64/libnsl.so.1
0x00000039f1803ea0 0x00000039f1843fa8 Yes (*) /lib64/libm.so.6
0x00007fb0dee36d60 0x00007fb0dee60fc8 Yes (*) /usr/lib64/libssl.so.6
0x00007fb0deb21ac0 0x00007fb0debc0138 Yes (*) /usr/lib64/libcrypto.so.6
0x00000039f2401ef0 0x00000039f240d1a8 Yes (*) /lib64/libz.so.1
0x00000039f0400af0 0x00000039f0418854 Yes (*) /lib64/ld-linux-x86-64.so.2
0x00000039fe0030c0 0x00000039fe03d838 Yes (*) /lib64/libfreebl3.so
0x00000039fdc07d80 0x00000039fdc30af8 Yes (*) /lib64/libgssapi_krb5.so.2
0x00000039fc41a1c0 0x00000039fc48cb78 Yes (*) /lib64/libkrb5.so.3
0x00000039fbc013b0 0x00000039fbc01f88 Yes (*) /lib64/libcom_err.so.2
0x00000039fcc04290 0x00000039fcc1bb28 Yes (*) /lib64/libk5crypto.so.3
0x00000039f0800de0 0x00000039f0801998 Yes (*) /lib64/libdl.so.2
0x00000039fc8027a0 0x00000039fc807898 Yes (*) /lib64/libkrb5support.so.0
0x00000039fd000bc0 0x00000039fd0011a8 Yes (*) /lib64/libkeyutils.so.1
0x00000039f2c038c0 0x00000039f2c12558 Yes (*) /lib64/libresolv.so.2
0x00000039f1005640 0x00000039f1010ec8 Yes (*) /lib64/libpthread.so.0
0x00000039f2005610 0x00000039f2015708 Yes (*) /lib64/libselinux.so.1
0x00007fb0de8b5110 0x00007fb0de8bd0b8 Yes (*) /lib64/libnss_files.so.2
0x00007fb0de69d000 0x00007fb0de6a0348 Yes (*) /lib64/libnss_dns.so.2
(*): Shared library is missing debugging information.
$1 = 0x0
No symbol table is loaded. Use the "file" command.
rax 0x0 0
rbx 0x1c90790 29951888
rcx 0xa 10
rdx 0x6574697301c90870 7310584037801265264
rsi 0x611784 6363012
rdi 0x1c90790 29951888
rbp 0x39f0f7e3e0 0x39f0f7e3e0
rsp 0x7fff03ad2fe0 0x7fff03ad2fe0
r8 0x7fb0deac07c0 140397626787776
r9 0x20000 131072
r10 0x0 0
r11 0x39f0d456f0 248853583600
r12 0x1c90790 29951888
r13 0x26e 622
r14 0x1c83ed0 29900496
r15 0x611783 6363011
rip 0x39f0c670aa 0x39f0c670aa <ftell+26>
eflags 0x10202 [ IF RF ]
cs 0x33 51
ss 0x2b 43
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0
Dump of assembler code for function ftell:
0x00000039f0c67090 <+0>: push %rbx
0x00000039f0c67091 <+1>: cmpw $0x0,(%rdi)
0x00000039f0c67095 <+5>: mov %rdi,%rbx
0x00000039f0c67098 <+8>: js 0x39f0c670e4 <ftell+84>
0x00000039f0c6709a <+10>: mov 0x88(%rdi),%rdx
0x00000039f0c670a1 <+17>: mov %fs:0x10,%r8
=> 0x00000039f0c670aa <+26>: cmp %r8,0x8(%rdx)
0x00000039f0c670ae <+30>: je 0x39f0c670e0 <ftell+80>
0x00000039f0c670b0 <+32>: mov $0x1,%esi
0x00000039f0c670b5 <+37>: xor %eax,%eax
0x00000039f0c670b7 <+39>: cmpl $0x0,0x3175aa(%rip) # 0x39f0f7e668 <__libc_multiple_threads>
0x00000039f0c670be <+46>: je 0x39f0c670cc <ftell+60>
0x00000039f0c670c0 <+48>: lock cmpxchg %esi,(%rdx)
0x00000039f0c670c4 <+52>: jne 0x39f0c671c8 <_L_lock_32>
0x00000039f0c670ca <+58>: jmp 0x39f0c670d5 <ftell+69>
0x00000039f0c670cc <+60>: cmpxchg %esi,(%rdx)
0x00000039f0c670cf <+63>: jne 0x39f0c671c8 <_L_lock_32>
0x00000039f0c670d5 <+69>: mov 0x88(%rbx),%rdx
0x00000039f0c670dc <+76>: mov %r8,0x8(%rdx)
0x00000039f0c670e0 <+80>: addl $0x1,0x4(%rdx)
0x00000039f0c670e4 <+84>: xor %ecx,%ecx
0x00000039f0c670e6 <+86>: mov $0x1,%edx
0x00000039f0c670eb <+91>: xor %esi,%esi
0x00000039f0c670ed <+93>: mov %rbx,%rdi
0x00000039f0c670f0 <+96>: callq 0x39f0c68530 <_IO_seekoff_unlocked>
0x00000039f0c670f5 <+101>: mov %rax,%rdx
0x00000039f0c670f8 <+104>: mov (%rbx),%eax
0x00000039f0c670fa <+106>: cmp $0xffffffffffffffff,%rdx
0x00000039f0c670fe <+110>: je 0x39f0c67105 <ftell+117>
0x00000039f0c67100 <+112>: test $0x1,%ah
0x00000039f0c67103 <+115>: jne 0x39f0c67130 <ftell+160>
0x00000039f0c67105 <+117>: test %ax,%ax
0x00000039f0c67108 <+120>: js 0x39f0c67120 <ftell+144>
0x00000039f0c6710a <+122>: mov 0x88(%rbx),%rbx
0x00000039f0c67111 <+129>: mov 0x4(%rbx),%eax
0x00000039f0c67114 <+132>: sub $0x1,%eax
0x00000039f0c67117 <+135>: test %eax,%eax
0x00000039f0c67119 <+137>: mov %eax,0x4(%rbx)
0x00000039f0c6711c <+140>: je 0x39f0c67150 <ftell+192>
0x00000039f0c6711e <+142>: xchg %ax,%ax
0x00000039f0c67120 <+144>: cmp $0xffffffffffffffff,%rdx
0x00000039f0c67124 <+148>: je 0x39f0c67170 <ftell+224>
0x00000039f0c67126 <+150>: mov %rdx,%rax
0x00000039f0c67129 <+153>: pop %rbx
0x00000039f0c6712a <+154>: retq
0x00000039f0c6712b <+155>: nopl 0x0(%rax,%rax,1)
0x00000039f0c67130 <+160>: mov 0xc0(%rbx),%esi
0x00000039f0c67136 <+166>: test %esi,%esi
0x00000039f0c67138 <+168>: jg 0x39f0c67105 <ftell+117>
0x00000039f0c6713a <+170>: mov 0x48(%rbx),%rcx
0x00000039f0c6713e <+174>: sub 0x58(%rbx),%rcx
0x00000039f0c67142 <+178>: add %rcx,%rdx
0x00000039f0c67145 <+181>: jmp 0x39f0c67105 <ftell+117>
0x00000039f0c67147 <+183>: nopw 0x0(%rax,%rax,1)
0x00000039f0c67150 <+192>: movq $0x0,0x8(%rbx)
0x00000039f0c67158 <+200>: cmpl $0x0,0x317509(%rip) # 0x39f0f7e668 <__libc_multiple_threads>
0x00000039f0c6715f <+207>: je 0x39f0c67168 <ftell+216>
0x00000039f0c67161 <+209>: lock decl (%rbx)
0x00000039f0c67164 <+212>: jne 0x39f0c671e3 <_L_unlock_128>
0x00000039f0c67166 <+214>: jmp 0x39f0c6716c <ftell+220>
0x00000039f0c67168 <+216>: decl (%rbx)
0x00000039f0c6716a <+218>: jne 0x39f0c671e3 <_L_unlock_128>
0x00000039f0c6716c <+220>: jmp 0x39f0c67120 <ftell+144>
0x00000039f0c6716e <+222>: xchg %ax,%ax
0x00000039f0c67170 <+224>: mov 0x311e29(%rip),%rax # 0x39f0f78fa0
0x00000039f0c67177 <+231>: mov %fs:(%rax),%ecx
0x00000039f0c6717a <+234>: test %ecx,%ecx
0x00000039f0c6717c <+236>: jne 0x39f0c67126 <ftell+150>
0x00000039f0c6717e <+238>: movl $0x5,%fs:(%rax)
0x00000039f0c67185 <+245>: jmp 0x39f0c67126 <ftell+150>
0x00000039f0c67187 <+247>: cmpw $0x0,(%rbx)
0x00000039f0c6718b <+251>: mov %rax,%rsi
0x00000039f0c6718e <+254>: js 0x39f0c671c0 <ftell+304>
0x00000039f0c67190 <+256>: mov 0x88(%rbx),%rdx
0x00000039f0c67197 <+263>: mov 0x4(%rdx),%eax
0x00000039f0c6719a <+266>: sub $0x1,%eax
0x00000039f0c6719d <+269>: test %eax,%eax
0x00000039f0c6719f <+271>: mov %eax,0x4(%rdx)
0x00000039f0c671a2 <+274>: jne 0x39f0c671c0 <ftell+304>
0x00000039f0c671a4 <+276>: movq $0x0,0x8(%rdx)
0x00000039f0c671ac <+284>: cmpl $0x0,0x3174b5(%rip) # 0x39f0f7e668 <__libc_multiple_threads>
0x00000039f0c671b3 <+291>: je 0x39f0c671bc <ftell+300>
0x00000039f0c671b5 <+293>: lock decl (%rdx)
0x00000039f0c671b8 <+296>: jne 0x39f0c671fe <_L_unlock_171>
0x00000039f0c671ba <+298>: jmp 0x39f0c671c0 <ftell+304>
0x00000039f0c671bc <+300>: decl (%rdx)
0x00000039f0c671be <+302>: jne 0x39f0c671fe <_L_unlock_171>
0x00000039f0c671c0 <+304>: mov %rsi,%rdi
0x00000039f0c671c3 <+307>: callq 0x39f0c1efe0 <_Unwind_Resume>
End of assembler dump.
В прошлом году несколько раз поднимал не на centos, а на debian, и никаких проблем не возникало, но тут debian использовать не получается...