Posts Tagged ‘ ssh ’

ssh: авторизация по ключу

Вас достало вводить пароль при входе на ваш сервер ? Или может быть вас достают брутфорсом, а sshguard и pam_geoip вам влом поставить ?
Сделайте аутентификацию по ключу и отключите аутентификацию по паролю.
Как сделать аутентификацию по ключу — просто:
1) На локальной машине(т.е. той С которой вы собираетесь ходить на сервер) делаете:
ssh-keygen -t rsa // можете и dsa указать, смотря что больше нравится.
во время генерации ключа будет задан вопрос про имя файла, если вы собираетесь делать ключи на несколько серваков и хотите их сделать разными(а их НАДО сделать разными), то укажите имя /home/username/.ssh/example_rsa
2) ssh-copy-id -i ~/.ssh/example_rsa example.com
эта команда скопирует ключ на сервер по ssh протоколу и запишет его в нужный файл .ssh/authorized_keys
3) На клиенте редактируете файл /etc/ssh/ssh_config
IdentityFile ~/.ssh/identity
IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_dsa
IdentityFile ~/.ssh/example_rsa // ключевая строка

4) На сервере в /etc/ssh/sshd_config смотрите чтобы было включено(а по умолчанию должно быть)
RSAAuthentication yes
PubkeyAuthentication yes

5) Не забудьте на сервер сделать
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

6) Ну и поехали ssh user@example.com — должно пройти без пароля, если же пароль был затребован, значит на одном из предыдущих этапов был косяк, в этом случае ssh user@example.com -vvv и смотрите где запарка.

Реклама

PAM: pam_geoip

Итак разграничиваем доступ к сервисам по географическому расположению.
1) cd ~/ && wget http://ankh-morp.org/code/pam_geoip/pam_geoip-0.9.tar.gz
2) распаковываем и заходим в каталог pam_geoip-0.9
3) make update
4) cat README в самом конце читаем список необходимых библиотек
5) aptitude install список необходимых библиотек
6) make
7) cp pam_geoip.so /lib/security
8) cp geoip.conf /etc/security
9) cd /etc/pam.d && wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
10) gunzip GeoLiteCity.dat.gz
11) nano /etc/pam.d/sshd и добавляем строку:
account required pam_geoip.so geoip_db=/etc/pam.d/GeoLiteCity.dat system_file=/etc/security/geoip.conf action=allow
12) nano /etc/security/geoip.conf:
* sshd deny CN
* * ignore UNKNOWN

Вот так мы и закрыли наш ssh от китайских братьев ;)

FreeBSD: sshguard. Защищаем ssh от подбора пароля.

1) Устанавливаем sshguard.
cd /usr/ports/security/sshguard-ipfw/
make install clean
2) nano /etc/syslog.conf
auth.info;authpriv.info|exec /usr/local/sbin/sshguard -a 10 -w 172.24.0.192/26 -w 10.0.0.90
-a количество вводов паса, после которого бан.
-w белый список, перед каждым ip или диапазоном по маске надо ставить данный ключ.
-b 10:/var/db/sshguard/blacklist.db — создает черный список по которому после 10 банов будет бан навеки вечные.
3) /etc/rc.d/syslogd reload

System: SSH тормоза.

Избавляемся от тормозов при работе по ssh.

nano /etc/ssh/sshd_config:
UseDNS no
GSSAPIAuthentication no
GSSAPIKeyExchange no
Compression no

nano /etc/hosts:
127.0.0.1 localhost local.kss45.ru local
127.0.1.1 local.kss45.ru local // добавляем свой хост без Loopback-адреса.
ip your_computer_name // добавляем ip — name того компьютера с которого ломимся по ssh.

nano /etc/resolv.conf:
domain domain.ru // тут domain — ето ключевое слово, например domain ya.ru, а не ya ya.ru =)
search domain.ru // адрес по которому осуществлять поиск локальных доменов 3его уровня.
nameserver ns1 // dns — сервера, либо ввести ip либо в /etc/hosts прописать ip — name.
nameserver ns2
nameserver 195.161.15.19

nano /etc/nsswitch.conf:
ищем строку:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
приводим её к виду:
hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4