Есть некоторые возможности предоставить доступ к маршрутизатору (или любому ПК/Серверу):
При запросе имени пользователя/пароля злоумышленник должен угадать комбинацию. Если вы используете незашифрованное соединение, он может подслушать вас и получить их.
При использовании зашифрованного соединения любой подслушиватель сначала должен расшифровать пакеты. Это всегда возможно. Сколько времени требуется для расшифровки содержимого, зависит от используемого алгоритма и длины ключа.
Кроме того, пока злоумышленник имеет сетевой доступ к консоли, он всегда может запустить грубую атаку, чтобы узнать имя пользователя и пароль. Он не должен делать это сам: он может позволить его компьютер(ы) делать гадания. Чтобы сделать эту опцию невероятной или даже невозможной, вы можете:
Если у вас есть внешний диск, вы можете шифрования.
Пример, который добавляет пользователя с именем Николай:
opkg update opkg install shadow-useradd useradd nicolaus
Или добавить пользователя вручную (заботиться, что uid/gid (e.g.=1000) еще не используются!)
/etc/passwd: USER:x:1000:1000:GROUP:/mnt/usb:/bin/false /etc/group: GROUP:x:1000: /etc/shadow: USER:RANDOMSTUFWillBeUpdatedWithPasswd:16666:0:99999:7::: passwd USER
Однако этот пользователь пока не может использовать ssh. Чтобы включить доступ к ssh, необходимо ввести пароль для этого пользователя, создать его домашнюю папку и, что самое главное, * * указать оболочку* * этого пользователя:
passwd nicolaus mkdir /home mkdir /home/nicolaus chown nicolaus /home/nicolaus vi /etc/passwd nicolaus:x:1000:1000:nicolaus:/home/nicolaus:/bin/ash
Во-первых, необходимо установить sudo:
opkg install sudo
Кроме того, необходимо разрешить желаемому пользователю манипулировать “'в/etc/пользователям использовать sudo?”' с помощью инструмента “visudo”. Теперь вы можете следовать * * один* * из методов ниже, чтобы выбрать, как пользователь должен быть в состоянии выполнять команды как “корень”:
В этом методе любой пользователь может временно выполнять команды от имени root только в том случае, если ему известен пароль root. Таким образом, когда пользователь выполняет команду “sudo”, он должен ввести пароль root вместо своего пароля.
Для включения этого метода вы должны открыть файл '/etc/sudoers'введя команду
visudo
Затем распакуйте 2 строки ниже в этом файле, а затем сохраните
## Uncomment to allow any user to run sudo if they know the password ## of the user they are running the command as (root by default). Defaults targetpw # Ask for the password of the target user ALL ALL=(ALL) ALL # WARNING: only use this together with 'Defaults targetpw'
Этот метод более безопасен, потому что вам не нужно защищать как корневых, так и привилегированных (sudoer) пользователей, чтобы сохранить всю систему в безопасности.
Один usecase может быть позволяет удаленным SSH с паролем от глобальной сети: для большей безопасности (все-таки меньше, чем RSA ключом) вы можете только позволить пользователям другой пользователь, кроме root по SSH с паролем (опционально на заказ) порт из WAN. И для еще большей безопасности вы можете запросить пароль администратора после команды “sudo”. В этом случае хакер должен найти 3 различных строки имя пользователя, пароль пользователя и пароль корня, чтобы получить полный доступ к системе. Даже если учетная запись пользователя скомпрометирована, злоумышленник все еще не может повредить вашу систему, потому что у него еще нет пароля root.
В этом методе, после входа в пользователя, когда вы входите “sudo”, вы должны снова ввести пароль пользователя. Конечный результат аналогичен тому, как вы используете “sudo” в Ubuntu или других популярных дистрибутивах Linux, но этот метод не использует группу “sudo” для этой цели.
Для включения этого метода необходимо также ввести команду
visudo
А затем добавьте строку, позволяющую пользователю, под комментарием “ ## Спецификация привилегий пользователя”:
## ## User privilege specification ## root ALL=(ALL) ALL nicolaus ALL=(ALL) ALL
Этот метод очень похож на метод 2, за исключением того, что она позволяет любому члену группы 'sudo' использовать “sudo” со своим паролем. Этот метод точно такой же, который используется в Ubuntu и других популярных дистрибутивах Linux, чтобы разрешить доступ пользователя к “sudo”.
Для активации этот способ сначала вы должны позволить группе 'судо' использовать команду “sudo”, введя
visudo
А затем раскомментируйте строку ниже:
## Uncomment to allow members of group sudo to execute any command %sudo ALL=(ALL) ALL
Во-вторых, вы должны создать группу 'sudo'. Вы можете сделать это путем редактирования вручную /etc/group - но это скорее стандарт для того чтобы установить и использовать инструменты для достижения этой цели:
opkg install shadow-groupadd groupadd --system sudo
Этот метод является более удобным, потому что вы можете просто позволить “sudo” доступ для любого пользователя вы хотите, просто usermod -a -G sudo <USER> но занимает больше места (для установки новых пакетов), чем метод 2, который может быть более подходящим для систем с очень ограниченным пространством.
Если вы используете PPP в конфигурации по умолчанию имя пользователя и пароль в /etc/config/network,потом непривилегированный пользователь может читать его из командной строки pppd не (с например,ps w).Чтобы предотвратить это, можно добавить “пользователя ”<имя_пользователя>“” в “в/etc/ррр/Options” и /etc/ppp/{chap|pap}-secretsа затем удалить логин / пароль, параметры от UCI конфигурации.
Конечно в/etc/ppp/{chap|pap}-secretsне следует читать:
chmod go-rw /etc/ppp/chap-secrets
Для secure web access, позже можно получить доступ через https (TLS) вместо незашифрованный протокол http. Если HTTP недостаточно безопасен для вас, вы можете отключить существующий (незашифрованный) веб-доступ и либо
opkg install luci-ssl
uci delete uhttpd.main.listen_http ; uci commit
ИЛИ только переадресация на локальную сеть и перенаправление всех HTTP-запросов на https:
uci set uhttpd.main.listen_http=192.168.1.1:80 uci set uhttpd.main.listen_https='192.168.1.1:443' uci set uhttpd.main.redirect_https='1' uci commit
/etc/init.d/uhttpd restart
opkg remove px5g
Может ли обязательная проверка сертификата клиента быть настроена с помощью uhttpd? → not possible with uhttpd
Если требуется удаленный доступ к SSH, следуйте инструкциям по упрочнению на SSH, упомянутых выше.