LINUX.ORG.RU
решено ФорумAdmin

Подскажите iptables,proxy и lannet

 ,


1

2

Не могу врубиться как настроить iptables для такой ситуации:

lannet eth0: 192.168.1.0/24

IP внешний eth1: 83.83.83.83

прокси на стороне провайдера 83.83.83.127:3128

Настроить доступ из lannet во внешнюю сеть



Последнее исправление: tooncheg (всего исправлений: 5)

Прокси у провайдера прозрачный? В смысле требует авторизацию или нет? Если не требует - перекинь на него запросы из локалки(предварительно заSNAT-ив). Тупанул, так не выйдет. Если авторизация требуется Подымаешь на сервере squid в прозрачном режиме, настраиваешь в качестве parent proxy проксю провайдера с авторизацией, указываешь этот сервер как шлюз по умолчанию для клиентов в lannet, ну и заворачиваешь их на свой прозрачный прокси.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

прошу опять помощи.

Вопрос такой из тестовой локальной сети я выхожу в интернет без проблем, но файл access.log который был бы очень мне полезен не ведет логи, т.е. он остается пустой (уже методом перебора из сети по всем возможным похожим конфигам прошелся)

acl localnet src 192.168.0.0/16 # RFC1918 possible internal
network
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
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localhost
http_access deny all
http_port 3128
http_port 3128 transparent
cache_peer proxy.provide.ru parent 3128 0 default
cache_dir ufs /var/spool/squid3 100 16 256
access_log daemon:/var/log/squid3/access.log squid
coredump_dir /var/spool/squid3
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

iptables

# eth0 = 192.168.15.1 LAN
# eth1 = 83.83.83.83 INET

# Set default policy to DROP
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP

# Allow incoming ssh from internet
/sbin/iptables -t filter -A INPUT -s 83.83.83.82 -p tcp -m tcp --dport 2222 -j ACCEPT
/sbin/iptables -t filter -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -t filter -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# Allow icmp
/sbin/iptables -t filter -A INPUT -p icmp --icmp-type 0 -j ACCEPT
/sbin/iptables -t filter -A INPUT -p icmp --icmp-type 8 -j ACCEPT
/sbin/iptables -t filter -A OUTPUT -p icmp -j ACCEPT

# Allow access to Internet (Настраивал по док. squid`а )
/sbin/iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
/sbin/iptables -t filter -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp -m multiport --dports 80,8080,443 -j DNAT --to 192.168.15.1:3128
/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp -m multiport --dports 80,8080,443 -j REDIRECT --to-port 3128

/sbin/iptables -A FORWARD -p udp -m multiport --ports 53 -s 192.168.15.0/24 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp -m multiport --ports 53,3128 -s 192.168.15.0/24 -j ACCEPT

В веб браузерах прописан прокси провайдера: proxy.provide.ru:3128

tooncheg
() автор топика
Ответ на: прошу опять помощи. от tooncheg

Правишек не хватает?

ls -la /var/log/squid3
ps aux | grep squid

И да, судя по конфигу squid пускает только всех с localhost(localnet в http_access не фигурирует вообще)

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от tooncheg
lsof /var/log/squid3/access.log

И да, я просил выхлоп тех команд не просто так. Какие права у директории, где лежит лог? А у родительской? Из под какого пользователя запускается squid и с какими опциями?

Можно долго еще тебя пытать, но лучше самому посмотреть на выхлоп

Pinkbyte ★★★★★
()
Ответ на: комментарий от tooncheg

вылезла такая штука
comm_udp_sendto: FD 8, (family=2) 83.83.83.64:53: (1) Operation not permitted
2016/12/13 17:45:04 kid1| idnsSendQuery: FD 8: sendto: (1) Operation not permitted
2016/12/13 17:45:24 kid1| Configuring Parent provide.miet.ru/3128/0
2016/12/13 17:45:24 kid1| WARNING: DNS lookup for 'provide.miet.ru' failed!

tooncheg
() автор топика
Ответ на: комментарий от Pinkbyte

lsof:
log_file_ 14933 proxy 3w REG 8,1 0 139698 /var/log/squid3/access.log

ls:
-rwxrwxrwx 1 proxy proxy 0 дек 13 06:25 access.log
-rw-r----- 1 proxy proxy 0 дек 12 06:25 access.log.1
-rw-r----- 1 proxy proxy 20 дек 11 06:25 access.log.2.gz
-rw-r----- 1 root root 0 дек 13 17:29 access.log_save
-rw-r----- 1 proxy proxy 61519 дек 13 17:45 cache.log
-rw-r----- 1 proxy proxy 5804 дек 13 06:25 cache.log.1
-rw-r----- 1 proxy proxy 693 дек 12 06:25 cache.log.2.gz
-rw-r----- 1 proxy proxy 300 дек 8 17:09 netdb.state
-rw-r----- 1 proxy proxy 1569 дек 13 11:47 store.log
-rw-r----- 1 proxy proxy 4896 дек 13 05:33 store.log.1
-rw-r----- 1 proxy proxy 987 дек 12 05:33 store.log.2.gz

ps:
root 14930 0.0 0.5 15204 5632 ? Ss 17:44 0:00 /usr/sbin/squid3 -YC -f /etc/squid3/squid.conf
proxy 14932 0.0 2.0 46084 19196 ? S 17:44 0:00 (squid-1) -YC -f /etc/squid3/squid.conf
proxy 14933 0.0 0.1 4412 1252 ? S 17:44 0:00 (logfile-daemon) /var/log/squid3/access.log

tooncheg
() автор топика
Ответ на: комментарий от Pinkbyte

c dns на прокси разобрался. Я так понимаю если проксировал, то и access.log работал.

tooncheg
() автор топика
Ответ на: комментарий от tooncheg

Абсолютно без понятия. Попробуй задать краткий формат опции:

access_log /var/log/squid3/access.log

Попробуй запустить squid с debug-ключами в foreground. Запусти из под strace и проверь, что даёт вызов open и хватает ли действительно прав.

Если речь о CentOS - проверь политики SELinux.

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Вопрос такой. Вылезла ошибка ERROR: No forward-proxy ports configured.
Не могу понять смысл, на сайте squid решение такое

Configure multiple port lines with at least one being capable of receiving forward-proxy traffic.

tooncheg
() автор топика
Ответ на: комментарий от tooncheg
http_port 3128
http_port 3128 transparent

Так нельзя, на 1 порту нельзя делать прозрачный и непрозрачный прокси одновременно.

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Я дико извиняюсь. Но нужна опять помощь. Подскажите.
Еще раз повторю:
сквид удалось запустить access.log пашет, но:
Т.к. на стороне провайдера свой прокси proxy.provide.ru:3128, то в
браузере прописан именно он. Выходит что при завертывании трафика на мой прокси
/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp -m multiport --dport 3128 -j REDIRECT --to-ports 8080(изменил порт своего прокси) происходит такая штука, что http трафик прогружается, а https не
обрабатывается (TCP_MISS/503 0 CONNECT mc.yandex.ru:443 -
HIER_NONE/- -) пустить трафик в этом случае https мимо моего
прокси я не знаю как. Подскажите.

tooncheg
() автор топика
Ответ на: комментарий от tooncheg

У всех клиентов в сети прописан прокси провайдера, ходить отключать прокси не хотел бы. squid перенастроен
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
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
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all
http_port 8080
cache_peer proxy.provide.ru parent 3128 0 default
coredump_dir /var/spool/squid3
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

tooncheg
() автор топика
Ответ на: комментарий от tooncheg

Слишком много неизвестных, т.к. логи и конфиг на стороне провайдера посмотреть не представляется возможным я бы рекомендовал не заниматься фигней и перенастроить клиентов на свой прокси.

Однако если хочешься поразбираться, то, т.к. сам прокси у провайдера - обычный HTTP(не путать с трафиком который может по нему ходить) - то его можно прослушать. Так что tcpdump в зубы и вперед сличать чем отличаются непосредственные запросы к прокси провайдера от пропущенных через твой.

Однако, как я уже сказал, проще и правильнее будет отвязать своих клиентов от настроек спускаемых провайдером.

Pinkbyte ★★★★★
()

В общем решил так возможно кому-нибудь поможет
Скачал последнюю стабильную версию squid c сайта и установил.
Сами настройки сквида
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.15.0/24 # 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 all src all
never_direct allow all
access_log daemon:/var/log/squid/access.log squid
cache_dir ufs /var/spool/squid3 100 16 256
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all
http_port 192.168.15.1:3128
cache_peer proxy.provide.ru parent 3128 0 no-query default
coredump_dir /var/cache/squid
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
Настройки iptables
/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp -m multiport --dport 3128 -j REDIRECT --to-ports 3128
/sbin/iptables -t filter -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Сквид с моей стороны не транспорентный, у клиентов прописан proxy.provide.ru 3128 прокси провайдера т.е. то что мне надо чтобы не перенастраивать моих пользователей. При этом трафик http посещений складывается в access.log.


tooncheg
() автор топика
Ответ на: комментарий от tooncheg

/sbin/iptables -t nat -A POSTROUTING -j MASQUERADE
/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp -m multiport --dport 3128 -j REDIRECT --to-ports 3128
/sbin/iptables -t filter -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

tooncheg
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.