Денис Колисниченко - Linux-сервер своими руками
# ipchains-save > /etc/ipchains.rules
Далее создайте скрипт, подобный тому, что приведен в листинге 17.1.
Листинг 17.1. Скрипт управления пакетной фильтрацией#!/bin/sh
# Скрипт управления пакетной фильтрацией.
# Если правил нет, то ничего не делать.
[-f /etc/ipchains. rules] || exit 0
case "$1" in
start)
echo –n "Включение пакетной фильтрации:"
/sbin/ipchains-restore </etc/ipchains.rules || exit 1
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "." ;;
stop)
echo –n "Отключение пакетной фильтрации:"
echo 0 >/proc/sys/net/ipv4/ip_forward
/sbin/ipchains –X
/sbin/ipchains –F
/sbin/ipchains –P input ACCEPT
/sbin/ipchains –P output ACCEPT
/sbin/ipchains –P forward ACCEPT
echo "." ;;
*)
echo "Использование: /etc/init.d/packetfilter {start|stop}"
exit 1 ;;
esac
exit 0
Этот скрипт добавьте в сценарии загрузки системы.
17.1.4. Настройка DNS
Напомню, что основной задачей сервера доменных имен (Domain Name System) является преобразование мнемонических имен машин в IP-адреса и обратно. Обычно сервер DNS устанавливается на шлюзе, который используется для выхода в Интернет.
Прежде чем приступить к настройке сервера, нужно определить, запущен ли он:
# ps –ax | grep named
Если он запущен, его нужно остановить (с помощью ndc), а если он вообще не установлен, то придется установить пакет bind. Для работы сервера должен быть активизирован сервис network.
Теперь приступим к непосредственной настройке сервера. Основная информация о параметрах сервера содержится в файле /etc/named.conf (см. листинг 17.2).
Листинг 17.2. Файл named.conflogging {
category cname {null; } ;
};
options {
directory "/var/named";
};
zone "." {
type hint;
file "named.ca";
};
zone "dhsilabs.com" {
type master;
file "dhsilabs.com";
notify no;
};
zone "0.0.127.in-addr.arpa" {
type master;
file "named. local";
};
zone "1.168.192.in-addr.arpa" {
type master;
file "192.168.1";
notify yes;
};
Основной каталог сервера — /var/named. В нем сервер будет искать файлы dhsilabs.com.named.local, 192.168.1, named.ca (см. листинги 17.3, 17.4, 17.5). Обслуживаемая нашим сервером зона (домен) — dhsilabs.com (см. листинг 17.3). Файл named.са — корневой кэш — содержит информацию о корневых серверах DNS. Позже займемся его обновлением.
Листинг 17.3. Файл dhsilabs.com (для преобразования имен в IP-адреса)@ IN SOA den.dhsilabs.com. hostmaster.dhsilabs.com. (
93011120 ; серийный номер
10800 ; обновление каждые 3 часа
3600 ; повтор каждый час
3600000 ; хранить информацию 1000 часов
86400 ) ; TTL записи — 24 часа
IN NS delden.dhsilabs.com.
IN А 192.168.1.1
IN MX 150 den.dhsilabs.com.
den IN A 19:192.168.1.1
IN HINFO INTEL CELERON (LINUX)
IN MX 100 den
IN MX 150 evg.dhsilabs.com.
ns IN CNAME den.dhsilabs.com.
www IN CNAME den.dhsilabs.com.
ftp IN CNAME den.dhsilabs.com.
mail IN CNAME den.dhsilabs.com.
evg IN A 19:192.168.1.2
IN MX 100 den.dhsilabs.com.
localhost IN A 12'127.0.0.1
где: NS — обозначает name server;
A — IP-адрес;
MX — почтовик <приоритет>. Чем ниже значение, тем выше приоритет;
HINFO — сведения об аппаратном обеспечении (заполнять не рекомендую);
ТХТ — прочие сведения;
CNAME — каноническое имя, т.е. если вы в окне браузера введете http://www.dhsilabs.com, то обращение будет произведено к den.dhsilabs.com. Обратите внимание на точку в конце:
@ IN SOA den.dhsilabs.com. hostmaster.dhsilabs.com.
(Если точка не указана, то к имени будет добавлено имя домена (т.е. dhsilabs.com)).
Листинг 17.4. Файл named.local@ IN SOA dhsilabs.com. root.dhsilabs.com. (
199609203 ; серийный номер
28800 ; обновление каждые 8 часов
7200 ; повтор каждые 2 часа
604800 ; хранить информацию 168 часов (7 дней)
86400) ; TTL записи — 24 часа
NS dhsilabs.com.
1 PTR localhost.
Листинг 17.5. Файл 192.168.1 или файл обратного соответствия@ IN SOA den.dhsilabs.com. hostmaster.dhsilabs.com. (
93011120 ; серийный номер
10800 ; обновление каждые 3 часа
3600 ; повтор каждый час
3600000 ; хранить информацию 1000 часов
86400 ) ; TTL записи — 24 часа
@ IN NS den.dhsilabs.com
1 IN PTR den.dhsilabs.com
2.1.168.192 IN PTR evg.dhsilabs.com
Запись PTR используется для преобразования IP-адреса в имя. Если указан не весь IP:
1 IN PTR den.dhsilabs.com
то к нему будет добавлен адрес подсети 1.168.192. Обратите внимание: IP-адреса указываются в обратном порядке!
17.1.5. Настройка Squid
Установите пакет squid. Осталось настроить и запустить его. Для этого нужно отредактировать файл конфигурации /etc/squid/squid.conf. Сначала укажите адрес прокси провайдера:
cach_peer proxy.your_isp.com
Задайте объем ОЗУ, который будет использовать прокси-сервером:
cache_mem
В том случае, если вы планируете использовать этот компьютер еще и для других целей, кроме как в качестве прокси-сервера, то не рекомендуется устанавливать здесь более трети физического объема ОЗУ.
Далее укажите, где будет располагаться кэш (первое число — это количество Мб для кэша):
cache_dir /usr/local/squid 2048 16 256
Затем укажите хосты, из которых разрешен доступ к прокси-серверу:
acl allowed_hosts src 192.168.1.0/255.255.255.0
acl localhost src 127.0.0.1/255.255.255.255
После этого пропишите пользователей, которым разрешено пользоваться squid (в приведенном примере это den, admin, developer):
ident_lookup on
acl allowed_users user den admin developer
http_access allow allowed_users
http_access deny all
Тэги maxium_object_size и maxium_object устанавливают ограничения на размер передаваемых объектов.
В заключении хочу дать один хороший совет: из соображений безопасности отредактируйте свои /etc/services и /etc/inetd.conf и отключите неиспользуемые сервисы – это уменьшит вероятность взлома вашей системы. Вот, в общем-то, и все.
17.2. Настройка Dial-In сервера
17.2.1. Установка программного обеспечения
В качестве операционной системы, естественно, будем использовать ОС Linux. Метод настройки, рассмотренный в этой главе, подойдет для любого дистрибутива. Также вам потребуются пакет ррр версии 2.3.x (желательно самая новая версия) и пакет mgetty-1.1.x. Пакет mgetty должен быть собран с опцией –DAUTO_PPP. Если это не так, то его нужно пересобрать.
Я использую ppp-2.4.0-3mdk.i586.rpm и mgetty-1.1.22-2mdk.i586.rpm, ОС Linux Mandrake 7.2. Если вы используете RedHat/Mandrake, установить ррр и mgetty можно с помощью команд:
# mount –t iso9660 /dev/hdd /mnt/cdrom
# cd /mnt/cdrom/Mandrake/RPMS
# rpm –Uvh mgetty*
# rpm –Uvh ppp*
Некоторые замечания:
1. CD-ROM является устройством /dev/hdd (или Secondary Slave).
2. Используется Linux Mandrake. При использовании Red Hat пакеты находятся в /mnt/cdrom/RedHat/RPMS.
3. He используется supermount. Если у вас supermount активен, первую команду вводить не нужно.
4. Третья и четвертая команды устанавливают все семейство mgetty и ррр. При использовании такого подхода устанавливаются все файлы — и никакой заботы! Но при этом вы можете установить и только то, что вам нужно.
17.2.2. Настройка mgetty
При корректной сборке или установке пакетов mgetty и ррр у вас должны быть следующие файлы:
Каталог /etc/mgetty+sendfax:
dialin.config
login.config
mgetty.config
Каталог /etc/ppp:
auth-up
auth-down
chap-secrets
ip-up
ip-down
options
pap-secrets
Если их нет, вам нужно самостоятельно найти, где они находятся. При самосборке смотрите, что и куда проинсталлировалось. В крайнем случае, необходимые файлы придется создать вручную.
Файл /etc/mgetty+sendfax/dialin.config обычно пустой — в нем все закомментировано. Файл /etc/mgetty+sendfax/login.config должен содержать строчку:
/AutoPPP/– a_ppp /etc/ppp/ppplogin
Убедитесь, что эта строчка не закомментирована. Если вы хотите, чтобы имена пользователей записывались в журналы (log-файлы), отредактируйте
эту строку следующим образом:
/AutoPPP/– /etc/ppp/ppplogin
Затем создайте файл /etc/ppp/ppplogin (см. листинг 17.6).
Листинг 17.6. Файл/etc/ppp/ppploginmesg n
tty –echo
/usr/sbin/pppd silent auth –chap +pap login
В некоторых версиях ррр вместо –chap нужно писать refuse-chap, а вместо +рар писать require-pap. Продолжая настройку, сделайте /etc/ppp/ppplogin исполняемым: