Posts tagged: настройка

Окт 25 2008

SSH, безпарольный доступ

Иногда бывает так, что надо что бы при входе на сервер, не требовалось набирать пароль, но надо, что бы при этом не уменьшалась безопасность ssh. В пакете ssh обязательно присутствует утилита ssh-keygen, которая генерирует пару ключей: один публичный, который вы можете разместить на том сервере на который необходимо заходить по ssh без пароля(id_rsa.pub) и приватный(id_rsa).

ssh-keygen достаточно запустить без всяких ключей что бы сгенерировались ключи для протокола ssh2, на данный момент времени самый безопасный протокол.

Предшествует генерации ключей небольшой диалог:

1. Enter file in which to save the key (/home/user/.ssh/id_rsa): – предлагается изменить имя по умолчанию файла ключа, как правило не надо менять

2. Enter passphrase (empty for no passphrase): – предлагается ввести ключевую фразу, дополнительную защиту авторизации по ключу. В том случае если злоумышленник похитит ключ, без ключевой фразы он не сможет им воспользоваться. Если мы оставим эту строку пустой – защита ключа будет отключена.

3. Enter same passphrase again: – просят повторить ключевую фразу

На этом вопросы окончены, ssh-keygen выводит фингерпринт ключа и в домашнем каталоге, в подкаталоге .ssh размещаются файлы с ключами.

Теперь id_rsa.pub необходимо скопировать на тот хост на который вы будете заходить без пароля и сохранить его в домашнем каталоге в подкаталог .ssh в файл authorized_keys, в этом файле может находится несколько публичных ключей, по тому количеству приватных ключей – которое у вас есть.

Побочным эффектом, на который стоит обратить внимание всем системным администраторам, является то что даже если вы заменили кому нибудь пароль(поставили звезду в master.passwd) авторизация по ключу все равно будет работать.

Я часто использую ключи для выхода из сомнительных мест, там где кей логгером могут снять мой пароль, а ключик достаточно удалить по окончании работы и на его месте создать пустой файл.

Окт 21 2008

Exim, список разрешенных отправителей.

Появидась такая задача: разрешить отправку за пределы локального домена, только некоторым, emailы которых занесены в особый, утвержденный руководством список. Взял я exim и начал крутить, в итоге вот что получилось, приведенный код втавлять в начало acl_check_rcpt:

#По умолчанию никому не разрешено 
#отправлять за пределы нашего домена
warn   set acl_c4   = ${eval:0}
#Разрешаем отправку к локальным пользователям
warn  domains      = +local_domains  
  set acl_c4   = ${eval: 1}
#Разрешаем отправку пользователям описанным
#в файле /usr/local/etc/exim/sendertable.dbm
warn  message       = sender $sender_address
  domains   = !+local_domains
  condition = ${if eq {${lookup{$sender_address}dbm{/usr/local/etc/exim/sendertable.dbm}}{yes}}
  set acl_c4   = ${eval:1}  
#Разрешаем отправку от пустого пользователя(всякие почтовые отлупы)
warn    message       = empty sender
   domains       = !+local_domains
   condition     = ${if eq {$sender_address}{}}
   set acl_c4   = ${eval:1}
#А тут у нас непосредственная блокировка отправок тех кому не разрешено
#В предыдущих строках осуществлялась проверка и установка флагов
deny   message        = Not allowed sender
   domains       = !+local_domains
   condition     = ${if eq {$acl_c4}{0}}

/usr/local/etc/exim/sendertable.dbm получается так, создаем файл
/usr/local/etc/exim/sendertable такого формата:

hilik@hilik.kiev.ua yes

Потом делаем:

exim_dbmbuild /usr/local/etc/exim/sendertable /usr/local/etc/exim/sendertable.dbm

остается перезапустить exim.

Окт 20 2008

Строим тунель

Понадобилось как то поднять туннель между двумя сетями, выбрал я vtun, он есть в портах.
Ставим из /usr/ports/net/vtun , после чего приступаем к конфигурированию.
На первом сервере устанавливаем vtun в режиме сервера, пример vtund.conf:

options {
  # Listen on this port.
  port 5000;
 
  # Syslog facility
  syslog        daemon;
 
  # Path to various programs
  ppp           /usr/sbin/pppd;
  ifconfig      /sbin/ifconfig;
  route         /sbin/route;
}
 
# Default session options
default {
  compress no;          # Compression is off by default
  speed 0;              # By default maximum speed, NO shaping
}
 
#Пример настройки
hilik {
        #Пароль на сессию
        passwd  hilik;  # Password
        #Используем интерфейс tun
        type  tun;              # IP tunnel
        #Устанавливаем максимальное сжатие lzo
        compress  lzo:9;        # LZO compression level 9
        #Включаем шифрацию данных
        encrypt  yes;           # Encryption
        keepalive yes;  # Keep connection alive
 
         up {
                # Соединение установлено:
                # Ктнфигурируем интерфейс
                # 10.3.0.1 - локальный адрем, 10.3.0.2 - удаленная сторона
                ifconfig "%% 10.3.0.1 10.3.0.2 netmask 255.255.255.255 mtu 1450";
                #Устанавливаем маршрут к сети 192.168.1.0/24 через тунель
                route "add -net 192.168.1.0/24 10.3.0.2";
        };
 
        down {
 
               #Тут можно вставить действия которые будут
               #выполняться при разрушении туннеля
        };
}

После того как создали конфигурационный файл, вносим в /etc/rc.conf строку:
vtund_enable=»YES»
и делаем:
/usr/local/etc/rc.d/vtund start

Конфигурирование сервера окончено, приступаем к конфигурирования клиента.
Клиент устанавливается из того же порта /usr/ports/net/vtun, только создаем такой конфигурационный файл:

#Настройки по умолчанию
default {
  compress no;
  speed 0;
}
 
options {
  port 5000;
  timeout 60;
   ppp           /usr/sbin/pppd;
  ifconfig      /sbin/ifconfig;
  route         /sbin/route;
}
 
hilik {
  passwd  hilik;        # Password
#Указываем использовать интерфейс tun1
  device tun1;          # Device tun1
#Повторять попытки соединения при разрыве связи
  persist yes;          # Persist mode
  up {
        #Действия при соединении
        #Поднимаем интерфейс
        ifconfig "%% 10.3.0.2 10.3.0.1 netmask 255.255.255.255 mtu 1450";
        #Устанавливаем маршрут к удаленной сети
        route "add -net 192.168.2.0/24 10.3.0.1";
  };
 
}

После того как конфигурирование клиента окончено, необходимо добавить в /etc/rc.conf:
vtunclient_enable=»YES»
vtunclient_flags=»hilik 89.252.34.107″

Можно запускать.