From: "Шенцев Алексей Владимирович" <ashen@nsrz.ru> To: ALT Linux Community <community@lists.altlinux.org> Subject: Re: [Comm] ÍÁÒÛÒÕÔÉÚÁÃÉÑ ÐÒÉ ÄÉÁÌÁÐÅ + ÌÏËÁÌØÎÁÑ ÓÅÔØ Date: Fri, 26 May 2006 17:42:59 +0400 Message-ID: <200605261742.59266.ashen@nsrz.ru> (raw) In-Reply-To: <20060526132217.26943.qmail@athena.sema.ru> В сообщении от 26 мая 2006 17:22 Kuligin Mikhail написал(a): > Доброго времени суток! Доброго. > Система Altlinux Compact 3.0.4 > вопросы: > 1. Как настроить маршрутизацию при диалапе? В ситуации с eth0 (ЛВС) и с eth1 (Инет) я cделал через iptables. В твоём случае всего лишь заменить eth1 на ppp0. Только будь внимателен. Так же посмотри, что тебе выдаёт initconf из etcnet . Вот: 1) Так как etcnet сам управляет сетевыми картами (об этом сказано в документации по etcnet), то: $ chkconfig --list ifplugd ifplugd 0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл Так же должно быть установлено следующее: # chkconfig --list ethtool ethtool 0:выкл 1:выкл 2:выкл 3:вкл 4:вкл 5:вкл 6:выкл # chkconfig --list network network 0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл 2) Если карточки постоянно присутствуют, т.е. они не pcimca или не usb устройства, то использование сети в hotplug нужно отключить , т.е. в /etc/sysconfig/hotplug должно быть прописано так, дабы hotplug не передёргивал сеть: $ cat /etc/sysconfig/hotplug | grep NET NETPLUG=no 3) Ну а далее настройки сетевух через сам etcnet: $ cat /etc/net/iftab # Generated by /etc/net initconf script eth0 mac 00:c0:df:06:09:7b # Generated by /etc/net initconf script eth0 driver 8139too # Generated by /etc/net initconf script eth1 mac 00:04:79:66:31:a5 # Generated by /etc/net initconf script eth1 driver 3c59x $ cat /etc/net/sysctl.conf # This file was formerly part of /etc/sysctl.conf net.ipv4.ip_forward = 1 net.ipv4.conf.default.rp_filter = 1 net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_timestamps = 0 Для устройства eth0 $ ls /etc/net/ifaces/eth0 ipv4address ipv4route options $ cat /etc/net/ifaces/eth0/options TYPE=eth MODULE=8139too BOOTPROTO=static $ cat /etc/net/ifaces/eth0/ipv4address #eth0 смотрит в ЛВС 192.168.2.2/24 $cat /etc/net/ifaces/eth0/ipv4route default via <ip-адрес внешнего интерфейса> Для устройства eth1 $ ls /etc/net/ifaces/eth1 ipv4address ipv4route options $ cat /etc/net/ifaces/eth1/options TYPE=eth MODULE=3c59x BOOTPROTO=static $ cat /etc/net/ifaces/eth1/ipv4address <ip-адрес смотрящий в инет> $ cat /etc/net/ifaces/eth1/ipv4route default via <ip-адрес шлюза провайдера> Ну и небольшой скрипт для настройки iptables #!/bin/sh # для удобства, особенно если интерфейсов несколько INET_ETH="" #Карточка смотрящая в инет LAN_ETH="" #Карточка смотрящая в локалку INET_IP="" #IP адрес смотрящий в инет LAN_IP="" #IP адрес смотрящий в локалку LAN="" #<сеть/маска> INETNET="" #<сеть/маска> PROXY_PORT="" #<адрес:порт> ProxyPort="" #Порт прокси сервера BANK_IP="" #IP адрес банковского сервера для работы программ типа банк-клиент BANK_CLIENT_USER_IP1="" #IP адрес пользователя, клиента банка FREE_USER_IP1="" #IP адрес пользователя, свободно ходящего в инет, минуя прокси #для удобства IPTABLES="/sbin/iptables" # включаем пересылку пакетов #echo 1 > /proc/sys/net/ipv4/ip_forward # стандартные действия $IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT DROP $IPTABLES -P FORWARD DROP # удаляем все имеющиеся правила $IPTABLES -F $IPTABLES -X # создаем свои цепочки # отбрасываем tcp с неправильными флагами $IPTABLES -N bad_tcp_packets # tcp, прошедшие основную проверку $IPTABLES -N allowed # все пакеты соотв. протоколов $IPTABLES -N tcp_packets $IPTABLES -N udp_packets $IPTABLES -N icmp_packets # безусловно разрешаем соединения по локальному интерфейсу (loopback, 127.0.0.1) $IPTABLES -A INPUT -i lo -j ACCEPT $IPTABLES -A OUTPUT -o lo -j ACCEPT # безусловно разрешаем соединения по ЛВС интерфейсу $IPTABLES -A INPUT -i $LAN_ETH -j ACCEPT $IPTABLES -A OUTPUT -o $LAN_ETH -j ACCEPT # сюда пойдут все tcp-пакеты, и будут отброшены имеющие статус NEW, но не имеющие флагов SYN,ACK # предохраняет от определенных типов атак, подробности в приложении B4 к Iptables Tutorial $IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK -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 -j DROP # Разрешаем свободный инет определённому юзеру # Админ может всё! ... ;) $IPTABLES -t nat -A POSTROUTING -s $FREE_USER_IP1 -d ! POSTROUTING -s $LAN -o $INET_ETH -j SNAT --to-source $INET_IP $IPTABLES -A FORWARD -s $FREE_USER_IP1 -d ! $LAN -o $INET_ETH -j ACCEPT # Включаем форвардинг для конкретного юзера, на конкретный интернет-сервер для чёртового банк-клиента. $IPTABLES -t nat -A POSTROUTING -s $BANK_CLIENT_USER_IP1 -d $BANK_IP -o $IPTABLES -A FORWARD -s $BANK_CLIENT_USER_IP1 -d $BANK_IP -o $INET_ETH -j ACCEPT # здесь нужно открыть некоторые порты, т.к. по умолчанию мы закрыли всё # нам необходимо следующие вещи: smtp, pop, imap - почта, DNS, http, https, ssh и т.д. # принимаем входящие udp с 53-го порта (Domain Name Server) $IPTABLES -A udp_packets -p UDP -s 0/0 --sport 53 -j ACCEPT #открываем почту $IPTABLES -A INPUT -i eth1 -p tcp --dport 25 -j ACCEPT #smtp $IPTABLES -A INPUT -i eth1 -p udp --dport 25 -j ACCEPT #smtp $IPTABLES -A OUTPUT -o eth1 -p tcp --dport 25 -j ACCEPT #smtp $IPTABLES -A OUTPUT -o eth1 -p udp --dport 25 -j ACCEPT #smtp $IPTABLES -A INPUT -i eth1 -p tcp --dport 110 -j ACCEPT #pop3 $IPTABLES -A INPUT -i eth1 -p udp --dport 110 -j ACCEPT #pop3 $IPTABLES -A INPUT -i eth1 -p tcp --dport 995 -j ACCEPT #pop3s $IPTABLES -A INPUT -i eth1 -p udp --dport 995 -j ACCEPT #pop3s $IPTABLES -A OUTPUT -o eth1 -p tcp --dport 995 -j ACCEPT #pop3s $IPTABLES -A OUTPUT -o eth1 -p udp --dport 995 -j ACCEPT #pop3s $IPTABLES -A INPUT -i eth1 -p tcp --dport 143 -j ACCEPT #imap $IPTABLES -A INPUT -i eth1 -p udp --dport 143 -j ACCEPT #imap $IPTABLES -A INPUT -i eth1 -p tcp --dport 993 -j ACCEPT #imaps $IPTABLES -A INPUT -i eth1 -p udp --dport 993 -j ACCEPT #imaps $IPTABLES -A OUTPUT -o eth1 -p tcp --dport 993 -j ACCEPT #imaps $IPTABLES -A OUTPUT -o eth1 -p udp --dport 993 -j ACCEPT #imaps #открываем http $IPTABLES -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT $IPTABLES -A INPUT -i eth1 -p tcp --dport 443 -j ACCEPT $IPTABLES -A OUTPUT -o eth1 -p tcp --dport 80 -j ACCEPT $IPTABLES -A OUTPUT -o eth1 -p tcp --dport 443 -j ACCEP #открывает ftp #20-ый порт - порт данных для ftp $IPTABLES -A INPUT -i eth1 -p tcp --dport 20 -j ACCEPT #data $IPTABLES -A INPUT -i eth1 -p udp --dport 20 -j ACCEPT #data $IPTABLES -A OUTPUT -o eth1 -p tcp --dport 20 -j ACCEPT #data $IPTABLES -A OUTPUT -o eth1 -p udp --dport 20 -j ACCEPT #data #21-ый порт - порт управления для ftp $IPTABLES -A INPUT -i eth1 -p tcp --dport 21 -j ACCEPT #control $IPTABLES -A INPUT -i eth1 -p udp --dport 21 -j ACCEPT #control $IPTABLES -A OUTPUT -o eth1 -p tcp --dport 21 -j ACCEPT #control $IPTABLES -A OUTPUT -o eth1 -p udp --dport 21 -j ACCEPT #control #Преренаправляем все запросы из локалки на веб с 80-го порта на порт 8080 (прокси-сервер), # настал черед ICMP # разрешаем необходимые типы $IPTABLES -A icmp_packets -p icmp -s 0/0 --icmp-type 3 -j ACCEPT # Dest unreachable $IPTABLES -A icmp_packets -p icmp -s 0/0 --icmp-type 11 -j ACCEPT # Time exceeded $IPTABLES -A icmp_packets -p icmp -s 0/0 --icmp-type 12 -j ACCEPT # Parameter problem $IPTABLES -A OUTPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT $IPTABLES -A OUTPUT -p icmp -m icmp --icmp-type 3/3 -j ACCEPT $IPTABLES -A OUTPUT -p icmp -m icmp --icmp-type 3/4 -j ACCEPT $IPTABLES -A OUTPUT -p icmp -m icmp --icmp-type 3/9 -j ACCEPT $IPTABLES -A OUTPUT -p icmp -m icmp --icmp-type 3/10 -j ACCEPT $IPTABLES -A OUTPUT -p icmp -m icmp --icmp-type 3/13 -j ACCEPT $IPTABLES -A OUTPUT -p icmp -m icmp --icmp-type 3 -j DROP #Разрешаем форвардинг уже установленным соединениям $IPTABLES -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT $IPTABLES -A FORWARD -i $LAN_ETH -m state --state NEW -j ACCEPT #Разрешаем прохождение пакетов ping $IPTABLES -A FORWARD -p icmp -m icmp --icmp-type 3 -j ACCEPT $IPTABLES -A FORWARD -p icmp -m icmp --icmp-type 11 -j ACCEPT $IPTABLES -A FORWARD -p icmp -m icmp --icmp-type 12 -j ACCEPT # разводим пакеты по соотв. цепочкам # tcp уходит на доп. проверку $IPTABLES -A INPUT -p tcp -j bad_tcp_packets # все пакеты, относящиеся к уже установленным соединениям (для tcp # из-за отдельной цепочки пришлось это правило еще раз указать выше) $IPTABLES -A INPUT -p ALL -i $INET_ETH -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A INPUT -p TCP -i $INET_ETH -j tcp_packets $IPTABLES -A INPUT -p UDP -i $INET_ETH -j udp_packets $IPTABLES -A INPUT -p ICMP -i $INET_ETH -j icmp_packets -- С уважением Шенцев Алексей Владимирович. E-mail: ashen@nsrz.ru ICQ: 271053845
prev parent reply other threads:[~2006-05-26 13:42 UTC|newest] Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top 2006-05-26 13:22 Kuligin Mikhail 2006-05-26 13:31 ` [Comm] " Шенцев Алексей Владимирович 2006-05-26 13:37 ` [Comm] маршрутизация при диалапе + локальная сеть Мажурин Игорь 2006-05-26 13:42 ` Шенцев Алексей Владимирович [this message]
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=200605261742.59266.ashen@nsrz.ru \ --to=ashen@nsrz.ru \ --cc=community@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Community general discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 community community/ http://lore.altlinux.org/community \ mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com public-inbox-index community Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.community AGPL code for this site: git clone https://public-inbox.org/public-inbox.git