ОС: Ubuntu 14.04
Я хотел бы базироваться вход в систему от ssh локально, потому что потребности backuppc это. Я хотел бы блокировать внешний доступ с корневым входом в систему.
Спасибо
Можно сделать это использование Match
блок в /etc/ssh/sshd_config
. Во-первых, удостоверьтесь, что у Вас есть эта строка:
PermitRootLogin no
, Который блокирует корневой доступ. Можно тогда позволить его для локальной сети с этим:
## Permit local root login
Match Address 192.168.1.*,127.0.0.1
PermitRootLogin yes
Это предполагает, что Ваша LAN дает дюйм/с как 192.168.1.N
, в противном случае изменитесь соответственно. Кроме того, я предлагаю, чтобы Вы добавили это в конце /etc/ssh/sshd_config
, чтобы удостовериться, что это не конфликтует с другими директивами. Как только Вы сделали так, перезапустите ssh сервис (sudo service ssh restart
), и Вы будете в состоянии к ssh как корень от локальных машин только.
Используя это простое правило iptables, можно заблокировать хосты, не прибывающие из локальной сети, моя сеть 192.168.122.0, таким образом, мое правило будет:
iptables -A INPUT -i eth0 -p tcp --dport 22 ! -s 192.168.122.0/24 -j DROP
, если Вы хотите, блокируют только конкретного пользователя из источника
в Вашем/etc/ssh/sshd_config
AllowUsers root@192.168.122.*
После того, чтобы заниматься много этим проблемы я нашел, что с IP6 межуспешно справляются, необходимо проуспешно должны быть добавить:: 1 как localhost источник, даже Ваш "внешний" IP-адрес, если Вы в зависимости от Вашей/etc/hosts конфигурации
# Authentication:
LoginGraceTime 120
PermitRootLogin no
StrictModes yes
## Permit local root login
Match Address ::1,127.0.0.1,178.56.xx.xx
PermitRootLogin yes
Match All