Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2015-01-13

SSH

Узелок на память, как я настраивал доступ к серверу (VDS/VPS) через SSH.
Основные идеи были такие:
- обеспечить админам доступ к серверу;
- защитить вход исходя из разумной степени параноидальности.

Что вылилось в конфигурацию, где TCP port SSH закрыт правилом файрволла
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -m recent --update --seconds 55 -j DROP
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -m recent --set -j ACCEPT
Это означает, что за одну минуту к телу пропускается только одна попытка коннекта. Тут есть огромный подводный грабель — вредитель с легкостью устраивает атаку DOS, просто повторяя в цикле попытки коннекта. В этом случае никто, даже легитимный админ, не сможет открыть сессию SSH. Это можно исправить, применив что-то вроде Fail2Ban. Чтобы вредителей вносили в черный список после нескольких попыток, и блокировка файрволлом по списку должна быть раньше правила минутной паузы. Но, для начала, и так сойдет.

Затем админам выдаются ключи и SSH настраивается так, чтобы доступ получали только по ключам. И, конечно, root забанен.

На сервере предварительно создается пользователь valik с домашней папкой и папкой ~/.ssh. Затем на станции генерим ключ
ssh-keygen -t rsa -b 2048 -f valik.key
ssh-copy-id -i valik.key valik@123.45.678.24

Обратно на сервере, правим конфиг
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.orig
nano /etc/ssh/sshd_config
...
Protocol 2
ListenAddress 0.0.0.0
LoginGraceTime 30
MaxStartups 3:50:10
PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes
...
# EOF
service ssh restart

Значения всех этих параметров смотри в документации.

Потом я еще добавил logwatch
и легкие приступы паранои отступили.

Источники:




original post http://vasnake.blogspot.com/2015/01/ssh.html

Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Klaipeda (15) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) Baltic (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) seaside (1) serialization (1) shore (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)