Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #72, НОЯБРЬ 2006 г.

шлюзование с секретом

ANDREY MATVEEV

Спецвыпуск: Хакер, номер #072, стр. 072-020-2


Но вернемся к настройке. Для начала подключим механизм якорей. Для этого добавим записи в pf.conf(5) - смотри листинг 2. И перезагрузим набор «рулесетов» файрвола:

ЛИСТИНГ

# pfctl -f /etc/pf.conf

Далее в конец файла login.conf(5) заносим сведения о новом классе authpf, пользователи которого в качестве стандартного шелла будут получать authpf:

ЛИСТИНГ

authpf:\

:shell=/usr/sbin/authpf:\

:tc=default:

С помощью штатной утилиты cap_mkdb(8) обновляем хешированную базу данных /etc/login.conf.db:

ЛИСТИНГ

# cap_mkdb /etc/login.conf

Не будем переопределять значения директив anchor и table по умолчанию, поэтому файл authpf.conf оставляем пустым:

ЛИСТИНГ

# echo -n > /etc/authpf/authpf.conf

Подготавливаем приветственное сообщение authpf.message (аналог /etc/motd):

ЛИСТИНГ

This service is for authorised clients only. Please play nice.

Создаем нового пользователя, который принадлежит классу authpf, входит в группу authpf и в качестве оболочки получает /usr/sbin/authpf:

ЛИСТИНГ

# useradd -m -c 'authpf nat user' -g authpf -L authpf \

-s /usr/sbin/authpf andrushock

# passwd andrushock

Создаем набор правил файрвола для пользователя andrushock (смотри листинг 3):

ЛИСТИНГ

# mkdir -p /etc/authpf/users/andrushock

На стороне клиента открываешь любой ssh-клиент (например, Putty или SecureCRT), создаешь новую сессию, указываешь IP-адрес шлюза, имя пользователя и при необходимости расположение публичного ключа. Если все правильно настроено, после успешной авторизации правила файрвола на шлюзе для этого пользователя изменятся, и он получит доступ в интернет.

ЛИСТИНГ

c:\putty> plink.exe -pw mypassword andrushock@192.168.1.1

Hello andrushock. You are authenticated from host "192.168.1.2"

This service is for authorised clients only. Please play nice.

Чтобы постоянно не вводить пароль, можно настроить аутентификацию на базе публичного ключа. Для пользователя andrushock генерируем пару ключей (секретный и публичный):

ЛИСТИНГ

# sudo -u andrushock ssh-keygen -t rsa

Добавляем публичный ключ в список авторизованных ключей:

ЛИСТИНГ

# cp /home/andrushock/.ssh/id_rsa.pub /home/andrushock/.ssh/authorized_keys

И для файла authorized_keys устанавливаем корректные права доступа:

ЛИСТИНГ

# chown andrushock:authpf /home/andrushock/.ssh/authorized_keys

[разборки с сервером терминалов.]

Давай рассмотрим пример. Допустим, нужно из дома получить доступ к институтскому серверу терминалов, расположенному за шлюзом (который также находится в институте).

Создаем нового пользователя rdp:

ЛИСТИНГ

# useradd -m -c 'authpf rdp user' -g authpf -L authpf \

-s /usr/sbin/authpf rdp

# passwd rdp

# mkdir -p /etc/authpf/users/rdp

И определяем для него специальный набор правил файрвола (смотри листинг 4).

Для получения доступа к серверу терминалов «извне» вводишь:

ЛИСТИНГ

c:\putty> plink.exe -pw mypassword rdp@81.211.11.11

Hello rdp. You are authenticated from host "81.211.22.22"

This service is for authorised clients only. Please play nice.

Теперь для клиента 81.211.22.22 на шлюзе 81.211.11.11 порт 3389/tcp будет открыт до тех пор, пока пользователь rdp в окне ssh-клиента не нажмет комбинацию клавиш <Ctrl+C> (сигнал SIGINT). Все, доступ получен, запускай TS Client:

Назад на стр. 072-020-1  Содержание  Вперед на стр. 072-020-3