From: Забудкин Лев Мирославович <zabudkin@yandex.ru>
Newsgroups: email
Date: Mon, 19 Dec 2003 14:31:37 +0000 (UTC)
Subject: Настройка PPPOE-SERVER, NAT и Firewall под Linux.
Настройка PPPOE-SERVER, NAT и Firewall под Linux.
Редакция 1.0.
19.12.2003
Забудкин Лев Мирославович,
г. Нижневартовск
Примечание:
Если у Вас еще не установлен pppoe-server, то взять его можно здесь:
http://www.roaringpenguin.com/products/rp-pppoe/index.php
В качестве Firewall'а будем использовать iptables.
1. Создаем главный скрипт ( Firewall и запуск pppoe сервера)
------------------------------------------------------------
Создайте на Вашей Linux машине файл с именем myinet и дайте право ему
запускаться. Поместите в него следующие строчки и измените те, где об
этом явно указано:
#!/bin/sh
function get_addr()
{
IFCONFIG='/sbin/ifconfig';
HEAD='head -2';
TAIL='tail -1';
CUT='cut -d: -f2';
IP=`$IFCONFIG $1 | $HEAD | $TAIL | awk '{print $2}' | $CUT`;
echo $IP;
}
### Укажите ниже интерфейс, через который Вы связываетесь с провайдером
EXTDEV="ppp0"
### Укажите ниже интерфейс, через который Linux-машина подключена к локальной сети.
PPPOEDEV="eth0"
### Укажите ниже сеть для PPPOE клиентов.
INETWORKIP="192.168.100.0/255.255.255.0"
### Если Вы не желаете использовать PPPOE сервер, то укажите выше Вашу сеть,
### вместо 192.168.100.0/255.255.255.0 и перейдите к пункту N 4, а также укажите
### ниже интерфейс, через который Linux-машина подключена к локальной сети и
### расскоментируйте строчку.
#INTDEV="eth0"
### ДАЛЬШЕ, В ПРИНЦИПЕ, НИЧЕГО МЕНЯТЬ НЕ ТРЕБУЕТСЯ
EXTERNALIP=`get_addr $EXTDEV`
ENETWORKIP=$EXTERNALIP+"/255.255.255.255"
INTERNALIP=`get_addr $INTDEV`
LOOPBACK="127.0.0.1"
ANYWHERE="0.0.0.0/0"
PORTS="1024:65535"
INTDEV="ppp+"
/sbin/depmod -a
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_MASQUERADE
/sbin/modprobe ipt_owner
/sbin/modprobe ipt_REJECT
/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
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
for file in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $file
done
for file in /proc/sys/net/ipv4/conf/*/accept_redirects; do
echo 0 > $file
done
for file in /proc/sys/net/ipv4/conf/*/accept_source_route; do
echo 0 > $file
done
/sbin/iptables -F
/sbin/iptables -F -t nat
/sbin/iptables - N ALLOW_ICMP
/sbin/iptables - N ALLOW_PORTS
/sbin/iptables - N CHECK_FLAGS
/sbin/iptables - N DENY_PORTS
/sbin/iptables - N DST_EGRESS
/sbin/iptables - N KEEP_STATE
/sbin/iptables - N SRC_EGRESS
# По умолчанию все входящие пакеты сбрасываем
/sbin/iptables -P INPUT DROP
/sbin/iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
/sbin/iptables -A INPUT -j ACCEPT -s $EXTERNALIP -d $ANYWHERE
/sbin/iptables -A INPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -I $INTDEV
/sbin/iptables -A INPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -i lo
/sbin/iptables -A INPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -i $EXTDEV -m state --state RELATED,ESTABLISHED
/sbin/iptables -A INPUT -j ACCEPT -p icmp -s $ANYWHERE -d $ANYWHERE
/sbin/iptables -A INPUT -j ACCEPT -p udp -s $INETWORKIP --sport 53 -d $ANYWHERE
# По умолчанию все исходящие пакеты сбрасываем
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -o $INTDEV
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $EXTERNALIP
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -o lo
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -o $EXTDEV -m state --state RELATED,ESTABLISHED
/sbin/iptables -A OUTPUT -j ACCEPT -p udp -s $EXTERNALIP -d $ANYWHERE --dport 53
/sbin/iptables -A OUTPUT -j ACCEPT -p icmp -s $ANYWHERE -d $ANYWHERE
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -o $EXTDEV -m state --state RELATED,ESTABLISHED
Откройте на редактирование файл /etc/ppp/pppoe-server, очистите его и
вставьте следующие строки:
# PPP options for the PPPoE server
# LIC: GPL
lock
local
require-chap
default-mru
default-asyncmap
proxyarp
ktune
login
lcp-echo-interval 20
lcp-echo-failure 2
### НИЖЕ ВМЕСТО xxx.xxx.xxx.xxx
### УКАЖИТЕ DNS СЕРВЕР ВАШЕГО ПРОВАЙДЕРА.
### Если Вы хоть раз соединялись со своим провайдером,
### то его DNS сервер можно узнать из файла /etc/resolv.conf
ms-dns xxx.xxx.xxx.xxx
nobsdcomp
noccp
noendpoint
noipdefault
noipx
novj
receive-all
3. Заводим пользователей, указываем их пароли и IP адреса.
----------------------------------------------------------
Все эти данные содержатся в файле /etc/ppp/chap-secrets.
Формат файла такой:
lev * password 192.168.100.9
Добавьте эту строку в указанный Выше файл.
Первое, это логин ( lev), далее звездочка (*), затем пароль ( password)
и IP адрес, который будет выдан клиенту в случае успе шной авторизации
через pppoe сервер, данный IP адрес (192.168.100.9) должен быть в сети,
которая указанна в файле myinet в строчке INETWORKIP=...
4. Тестируем
------------
Еще раз убедимся, что мы вошли в интернет на linux-машине и на ней можно
свободно гулять по просторам глобальной сети.
Что ж, теперь запускаем файл myinet, идем на клиентскую машину, на ней
ставим программное обеспечение pppoe клиента.
Входим под логином ( lev) и паролем ( password).
..и Бороздим просторы сети Интернет :)
19.12.2003
Забудкин Лев Мирославович,
г. Нижневартовск
862 Прочтений • [Настройка PPPOE-SERVER, NAT и Firewall под Linux. (nat firewall linux pppoe iptables)] [08.05.2012] [Комментариев: 0]