Организация безопасного удалённого доступа к корпоративным ресурсам

Информационно-коммуникационные технологии



















Курсовая работа

	

	на тему

Организация безопасного удалённого доступа к корпоративным ресурсам



по дисциплине

Управление сетями ЭВМ























Москва 2008 г.


Аннотация



В курсовой работе выполняется организация офисной сети, настройка шлюза для обеспечения выхода пользователей в «Интернет». Организация DNS+DHCP, файлового сервера FTP/SMB для хранения конфиденциальных и общедоступных данных пользователей, а также обеспечивается защищённый доступ из внешней сети к конфиденциальным данным пользователей по средствам VPN и открытый доступ к общедоступным данным пользователей.


Содержание



	1. Техническое задание

	2. Анализ технического задания

	3. Топология сети

	4. Организация FTP сервера

	4.1 Организация каталогов на сервере

	4.2 Установка Pure-FTPD

	4.3 Конфигурирование Pure-FTPD

	4.4 Создание скрипта запуска сервиса

	5. Организация Samba

	5.1 Установка Samba

	5.2 Настройка Samba

	6. Организация Шлюза

	6.1 Настройка NAT

	6.2 Настройка цепочки INPUT

	6.3 Настройка цепочки PREROUTING

	6.4 Включение дополнительных модулей

	7. Организация DNS+DHCP

	7.1 Установка dnsmasq

	8. Организация VPN сервера

	8.1 Установка ppp

	8.2 Настройка ppp для pptp туннелизации

	8.3 Установка pptpd

	8.4 Настройка pptpd

	8.5 Настройка chap-secrets

	9. Настройка VPN клиента

	9.1 Настройка на примере Ubuntu GNU/Linux

	9.2 Настройка на примере Windows XP

	10. Проверка VPN соединения

	10.1 Проверка в Ubuntu GNU/Linux

	10.2 Проверка в Windows XP

	11. Заключение

	12. Литература




1. Техническое задание



Офис с проложенной сетью. 40 пользовательских компьютеров, выделенный FTP/SMB сервер. Требуется осуществить подключение пользователей к «Интернет» с одного внешнего IP-адреса. Организовать доступ к внутренним ресурсам (SMB/FTP сервер) извне. Сделать возможной удалённую работу с конфиденциальными данными, хранящимися на файловом сервере (SMB/FTP) средствами VPN. Канал должен быть шифрованный. Настроить фильтрацию трафика, чтобы обезопасить внутреннюю сеть. Шлюз должен работать под управлением OC из семейства UNIX.


2. Анализ технического задания



При анализе технического задания было выбрано три 16-ти портовых коммутатора DES-1016D 10/100Mbps и один 8-ми портовый коммутатор DES-1008 10/100Mbps фирмы «D-Link» для объединения пользователей в локальную сеть. Данное сетевое оборудование было выбрано с учётом цены и качества и вследствие того, что они удовлетворяет техническое задание. Для организации шлюза и файлового сервера были выбраны компьютеры архитектуры PC, так как они также удовлетворяют техническое задание, и их цена по сравнению с серверными архитектурами вполне приемлема. По техническому заданию шлюз должен работать под управлением ОС из семейства Unix. При выборе такой ОС были рассмотрены те, которые используют ядро «Linux»: Fedora Core, Gentoo и Debian GNU/Linux. Все эти дистрибутивы полностью подходят к решению, которое поставлено в техническом задание, поэтому в качестве такой ОС выбираем последнюю стабильную версию Debian GNU/Linux.


3. Топология сети



Ниже проиллюстрирована топология (Звезда) офисной сети






4. Организация FTP сервера



В качестве FTP сервера использовался Pure-FTPD с поддержкой RFC2640. Поддержка данного документа позволяет решить проблему с русскими буквами, включая буквы «эюя». 



4.1 Организация каталогов на сервере

	

/home/firmstuff – общий каталог пользователей (0755)

/home/firmstuff/stuffname1 – каталог пользователя (0750)

/home/firmstuff/stuffname1/private – приватный каталог пользователя (0700)

/home/firmstuff/stuffname2 – каталог пользователя (0750)

/home/firmstuff/stuffname2/private – приватный каталог пользователя (0700)

/home/firmstuff/stuffname40 – каталог пользователя (0750)

/home/firmstuff/stuffname40/private – приватный каталог пользователя (0700)



4.2 Установка Pure-FTPD



1. Возьмем исходный коды

~$ sudo apt-get source pure-ftpd

2. Перейдем в каталог с иходными кодами и сконфигурируем сервер

~$ cd pure-ftpd-1.0.21/

~$ sudo ./configure --prefix=/opt/pure-ftpd --with-rfc-2640 --with-ftpwho

3. Если конфигурация прошла удачно, то приступаем к сборке и установке

~$ sudo make && sudo make install

4. Если установка сервера прошла успешно, то можно перейти к его конфигурированию.



4.3 Конфигурирование Pure-FTPD



Правим файл /opt/pure-ftpd/etc/pure-ftpd.conf

ChrootEveryone              yes

TrustedGID                    1000

# Turn on compatibility hacks for broken clients

BrokenClientsCompatibility  no

# Maximum number of simultaneous users

MaxClientsNumber            50

# Fork in background

Daemonize                   yes

# Maximum number of sim clients with the same IP address

MaxClientsPerIP             5

VerboseLog                  no

# List dot-files even when the client doesn't send "-a".

DisplayDotFiles             yes

# Don't allow authenticated users - have a public anonymous FTP only.

AnonymousOnly               no

# Disallow anonymous connections. Only allow authenticated users.

NoAnonymous                 no

# Syslog facility (auth, authpriv, daemon, ftp, security, user, local*)

# The default facility is "ftp". "none" disables logging.

SyslogFacility              ftp

# Don't resolve host names in log files. Logs are less verbose, but 

# it uses less bandwidth. Set this to "yes" on very busy servers or

# if you don't have a working DNS.

DontResolve                 yes

# Maximum idle time in minutes (default = 15 minutes)

MaxIdleTime                 15

# If you want simple Unix (/etc/passwd) authentication, uncomment this

UnixAuthentication            yes

# 'ls' recursion limits. The first argument is the maximum number of

# files to be displayed. The second one is the max subdirectories depth

LimitRecursion              2000 8

# Are anonymous users allowed to create new directories ?

AnonymousCanCreateDirs      no

# File creation mask. <umask for files>:<umask for dirs> .

# 177:077 if you feel paranoid.

Umask                       133:022

# Minimum UID for an authenticated user to log in.

MinUID                      1000

# Allow FXP transfers for authenticated users.

AllowUserFXP                no

# Allow anonymous FXP for anonymous and non-anonymous users.

AllowAnonymousFXP           no

# Users can't delete/write files beginning with a dot ('.')

# even if they own them. If TrustedGID is enabled, this group

# will have access to dot-files, though.

ProhibitDotFilesWrite       no

# Prohibit *reading* of files beginning with a dot (.history, .ssh...)

ProhibitDotFilesRead        no

# Never overwrite files. When a file whoose name already exist is uploaded,

# it get automatically renamed to file.1, file.2, file.3, ...

AutoRename                  no

# Disallow anonymous users to upload new files (no = upload is allowed)

AnonymousCantUpload         yes

# Be 'customer proof' : workaround against common customer mistakes like

# 'chmod 0 public_html', that are valid, but that could cause ignorant

# customers to lock their files, and then keep your technical support busy

# with silly issues. If you're sure all your users have some basic Unix

# knowledge, this feature is useless. If you're a hosting service, enable it.

CustomerProof              yes

# UTF-8 support for file names (RFC 2640)

# Define charset of the server filesystem and optionnally the default charset

# for remote clients if they don't use UTF-8.

# Works only if pure-ftpd has been compiled with --with-rfc2640

FileSystemCharset	UTF-8

ClientCharset	CP1251



4.4 Создание скрипта запуска сервиса



Для запуска сервиса можно воспользоваться следующим скриптом.

#!/bin/bash



start() {

/opt/pure-ftpd/sbin/pure-config.pl /opt/pure-ftpd/etc/pure-ftpd.conf

echo "Pure-FTPd start...done."

}



stop() {

kill `cat /var/run/pure-ftpd.pid` > /dev/null 2>&1

echo "Pure-FTPd stop...done."

}



status() {

/opt/pure-ftpd/sbin/pure-ftpwho -v

}

case $1 in

'start')

start

;;

'stop')

stop

;;

'restart')

stop

start

;;

'status')

status

;;

*)

echo "usage: $0 {start|stop|restart|status}"

esac




5. Организация Samba



Samba – предназначена для использования протокола SMB(NetBIOS).



5.1 Установка Samba



1. Скачаем исходные коды

wget http://us4.samba.org/samba/ftp/stable/samba-3.0.25a.tar.gz

2. Распакуем их

tar zxvf samba-3.0.25a.tar.gz

3. Перейдем в каталог исходных кодов

cd samba-3.0.25a

4. Сконфигурируем

./configure --prefix=/opt/samba --with-syslog

4. Соберем и установим

make && sudo make install



5.2 Настройка Samba



Отредактировать файл /opt/samba/smb.conf



[global]

        log file = /var/log/samba/%m.log

        dns proxy = no

        netbios name = Fileserver

        cups options = raw

        server string = Fileserver

        workgroup = firmstuff

        null passwords = yes

        hosts allow = 192.168.0.0/24

        security = user

        unix charset = UTF-8

        remote charset = CP1251

        max log size = 50

        guest account = guest



[firmstuff]

comment = Firmstuff share

path = /home/firmstuff

writable = yes


6. Организация Шлюза



Для организации шлюза воспользуемся межсетевым экраном Iptables



6.1 Настройка NAT



Для удобства создадим переменную в которой будет лежат путь к iptables

$IPT=/sbin/iptables

1. Включим пересылку IP

В /etc/sysctl.conf исправить net.ipv4.ip_forward = 1 и дать команду sysctl -p

2. Сбросим правила и удалим цепочки

$IPT –F

$IPT -t nat -F 

3. Установим политику по умолчанию

$IPT -P INPUT DROP

$IPT -P OUTPUT ACCEPT

$IPT -P FORWARD ACCEPT

4. Включим маскарадинг для LAN

$IPT -t nat -A POSTROUTING -o eth0 -j MASQUERADE



6.2 Настройка цепочки INPUT



1. Для того чтобы пользователи могли соединяться с VPN сервер необходимо разрешить входящие соединения по протоколу TCP на порт 1723

$IPT -A INPUT -p tcp -m tcp -i eth0 --dport 1723 -j ACCEPT

2. Разрешить входящие FTP (Используется для проброса FTP соединения)

$IPT -A INPUT -p tcp -m tcp -i eth0 --dport 21 -j ACCEPT

$IPT -A INPUT -p tcp -m tcp -i eth0 --dport 20 -j ACCEPT

3. Разрешить входящие SMB (Используется для создания соединения VPN клиентов с Samba)

$IPT -A INPUT -p tcp -m tcp -i eth0 --dport 137 -j ACCEPT

$IPT -A INPUT -p udp -m udp -i eth0 --dport 137 -j ACCEPT

$IPT -A INPUT -p tcp -m tcp -i eth0 --dport 138 -j ACCEPT

$IPT -A INPUT -p udp -m udp -i eth0 --dport 138 -j ACCEPT

$IPT -A INPUT -p tcp -m tcp -i eth0 --dport 139 -j ACCEPT

$IPT -A INPUT -p udp -m udp -i eth0 --dport 139 -j ACCEPT

4. Разрешить входящий эхо-ответ от нашего эхо-запроса

$IPT -A INPUT -p icmp -m icmp -i eth0 --icmp-type echo-reply -j ACCEPT

$IPT -A INPUT -p icmp -m icmp -i eth1 --icmp-type echo-reply -j ACCEPT

5. Открыть порты для DNS ответов

$IPT -A INPUT -p udp -m udp -i eth0 --dport 1024:65353 --sport 53 -j ACCEPT

$IPT -A INPUT -p tcp -m tcp -i eth0 --dport 1024:65353 --sport 53 -j ACCEPT



6.3 Настройка цепочки PREROUTING



Здесь необходимо  пробросить только FTP запрос

$IPT -t nat -A PREROUTING -d 212.45.24.187 -i eth0 -p tcp -m tcp --dport 21 -j DNAT --to-destination 192.168.0.2

$IPT -t nat -A PREROUTING -d 212.45.24.187 -i eth0 -p tcp -m tcp --dport 20 -j DNAT --to-destination 192.168.0.2



6.4 Включение дополнительных модулей



Включить модули ip_nat_ftp и ip_conntrack_ftp для работы клиентов в активном режиме с FTP сервером.


7. Организация DNS+DHCP



Для организации сервисов dns и dhcp воспользуемся облегченным пакетов dnsmasq. Данная утилита использует два системных файла: /etc/hosts и /etc/resolv.conf. За счет resolv.conf dnsmasq узнает информацию о внешних DNS-серверах, благодаря чему она автоматически узнает об изменение адресов DNS-серверов провайдера, что позволяет избежать реконфигурации сервера.



7.1 Установка dnsmasq

1. ~$ sudo aptitude install dnsmasq

2. Правка конфига /etc/dnsmasq.conf

~$ cat /etc/dnsmasq.conf

# listen interfaces

interface=eth1



# range

dhcp-range=192.168.0.10,192.168.0.99,24h



# fixed address

dhcp-host=00:08:A1:6A:16:72,192.168.0.2,24h

dhcp-host=00:04:76:21:4D:08,192.168.0.3,24h

dhcp-host=00:19:D2:CF:AE:9F,00:1B:24:58:57:C8,192.168.0.4,24h

dhcp-host=00:19:E0:73:3B:25,192.168.0.5,24h

dhcp-host=00:18:6E:A5:DF:00,192.168.0.100,24h



В данной конфигурации сервера и некоторые клиенты имеют фиксированные адреса.




8. Организация VPN сервера



8.1 Установка ppp



1. Скачать ppp

wget ftp://ftp.samba.org/pub/ppp/ppp-2.4.3.tar.gz

2. Распаковать

tar zxvf ppp-2.3.4.tar.gz

3. Сконфигурировать

cd ppp-2.4.3; ./configure

4. Собрать и установить

make && make install



8.2 Настройка ppp для pptp туннелизации



Исправить /etc/ppp/options.pptpd

lock

debug

name pptpd

auth

+chap

+mschap-v2

+mschap

-pap

proxyarp

mppe required, stateless



8.3 Установка pptpd



1. Скачать pptpd

wget http://downloads.sourceforge.net/poptop/pptpd-1.3.0.tar.gz?modtime=1123056084&big_mirror=1

2. Распаковать

Tar zxvf pptpd-1.3.0.tar.gz

3. Сконфигурировать

cd pptpd-1.3.0; . ./configure --prefix=/opt/pptpd --with-libwrap --with-bcrelay

4. Собрать и установить

make && sudo make install



8.4 Настройка pptpd



Исправить файл /etc/pptpd.conf

option /etc/ppp/options.pptpd

localip 192.168.0.1

remoteip 192.168.0.101-150



8.5 Настройка chap-secrets



Прописать пользователей в  /etc/ppp/chap-secrets



client		   server	secret		ip address

firmstuff1	   pptpd	vpnpass1	192.168.0.101

firmstuff2	   pptpd	vpnpass2	192.168.0.102

			 	*

				*

				*

firmstuff150   pptpd	vpnpass150	192.168.0.150




9. Настройка VPN клиента



9.1 Настройка на примере Ubuntu GNU/Linux



1. Установить PPTP клиент

sudo apt-get install pptp-linux

2. Создать туннель

sudo nano /etc/ppp/peers/office

persist

maxfail 0

lcp-echo-interval 60

lcp-echo-failure 4

pty "pptp 212.45.24.187 --nolaunchpppd“

name vpn

password vpnpass

remotename PPTP-Ubuntu

require-mppe-128

ipparam office



9.2 Настройка на примере Windows XP



1. Свойство «Сетевое окружение»

2. Создание нового подключения

3. Подключиться через VPN

4. Имя организации

5. Адрес сервера




10. Проверка VPN соединения



10.1 Проверка в Ubuntu GNU/Linux



Ниже, на картинке отображена работ VPN соединения







10.2 Проверка в Windows XP



Ниже, на картинке отображена работ VPN соединения







Заключение



В результаты выполнения работы была организована офисная сеть с внутренними файловыми ресурсами, настроен доступ в «Интернет», а также организован защищенный канал для передачи конфиденциальных данных через внешнюю сеть.


Литература



Д.Н. Колисниченко «Linux—сервер своими руками» 3-е издание, НиТ, Санкт-Петербург 2005 г.

24