Вы имеете: A
- Ваше поле FreeBSD, B
- Ваш маршрутизатор и C
- некоторая машина с доступом в Интернет. Это - то, как это похоже:
.-----. .-----. .-----.
| A | == | B | - - ( Internet ) - - | C |
'-----' '-----' '-----'
\_________ ________/
v
`- this is your LAN
Заметьте, как Ваш маршрутизатор обычно работает: это позволяет соединения от машин на Вашей LAN к Интернету (просто говорящий). Таким образом, если A
(или любая другая машина на LAN), хочет получить доступ к Интернету, это будет позволено (снова, просто говоря об основном понимании и конфигурации):
.-----. .-----. .-----.
| A | == | B | - - ( Internet ) - - | C |
'-----' '-----' '-----'
`-->----' `--->--->---^
И следующее не позволяется по умолчанию:
.-----. .-----. .-----.
| A | == | B | - - ( Internet ) - - | C |
'-----' '-----' '-----'
`--<----' `---<--- - - - - --<---<-----'
(Таким образом, маршрутизатор защищает машины на Вашей LAN от того, чтобы быть полученным доступ из Интернета.) Замечают, что маршрутизатор является единственной частью Вашей LAN, которая замечена от Internet1).
Перенаправление портов - то, что позволяет третьей схеме происходить. Это состоит в сообщении маршрутизатора что соединение от C
2) должен перейти в который машина на LAN. Это сделано на основе номеров портов - именно поэтому это называют перенаправлением портов. Вы настраиваете это путем инструктирования маршрутизатору, что все соединения, происходящие в данный порт из Интернета, должны перейти к определенной машине на LAN. Вот является пример для порта 22 переданными к машине A
:
.------. .-------. .-----.
| A | == | B | - - ( Internet ) - - | C |
| | | | '-----'
'-|22|-' ',--|22|' |
`--<-22---' `---<---- - - - - - --<-22---'
Такие соединения через Интернет происходят на основе IP-адресов. Таким образом, немного более точное представление вышеупомянутого примера было бы:
.------. .-------. .-----.
| A | == | B | - - - - - ( Internet ) - - - - | C |
| | | | '-----'
'-|22|-' ',--|22|' |
`--<-A:22--' `--<-YourIP:22 - - - - --<-YourIP:22--'
Если бы у Вас нет Интернет-соединения со статическим IP, то необходимо было бы так или иначе изучить, какой IP в настоящее время присваивается маршрутизатору ISP. Иначе, C
не будет знать, какой IP это должно подключить с тем, для получения до маршрутизатора (и далее, до A
). Для решения этого в простом способе можно использовать сервис, названный динамическим DNS. Это заставило бы Ваш маршрутизатор периодически отправить информацию на специальный сервер DNS, который будет отслеживать Ваш IP и предоставлять Вам доменное имя. Существует довольно много свободных динамических поставщиков DNS. Много маршрутизаторов идут с параметрами конфигурации легко связаться с теми.
1) Это, снова, упрощение - существующее устройство, которое замечено к Интернету, является модемом - который может часто интегрироваться с маршрутизатором, но мог бы также быть отдельным полем.
2) или любая другая машина с Интернет-соединением.
Просто разрешение ssh доступ к Вашей машине из Интернета является плохой идеей. Существуют тысячи ботов, настроенных взломщиками, которые ищут Интернет машины с открытым портом SSH. Они обычно "стучат" в порт SSH по умолчанию столько дюйм/с, сколько они могут и после того как они находят демона SSH, работающего где-нибудь, попытка получить доступ "в лоб" к машине. Это не только риск потенциального взлома, но также и сетевого замедления, в то время как машина является bruteforced.
При реальной необходимости в таком доступе Вы должны, по крайней мере,
гарантируйте, что у Вас есть сильные пароли для всех учетных записей пользователей,
запретите корневой доступ по SSH (можно всегда входить в систему как обычный пользователь и su
или sudo
затем),
измените порт по умолчанию, на котором Ваш сервер SSH работал бы,
представьте механизм запрещения многочисленных попыток входа в систему SSH (с icreasing time-wait для последующих попыток - я не помню, как точно это называют - мне включили его некоторое время назад на FreeBSD, и я вспоминаю, что это было довольно легко - пытаются искать некоторые форумы FreeBSD и т.д. об обеспечении SSH, Вы найдут его.)
Если возможно, попытайтесь выполнить ssh демона только, когда Вы будете знать о доступе к машине в ближайшем будущем поворот это прочь впоследствии
Привыкните к прохождению через Ваших системных журналов. Если Вы начинаете замечать что-либо подозрительное, представляете дополнительные механизмы защиты как таблицы IP или стук порта.
NIS является способом получить данные (данные аутентификации, путь к корневому каталогу, …) о пользователях (и другой материал). Выполнение вещей (например, создание каталога) не являются своим заданием. Таким образом, я думаю, что Вы смотрите в неправильном месте.
Большинство нельдов использует PAM для управления логинами (не только аутентификация, но также и учетное управление, ведение счетов и наиболее соответствующим образом управление сеансами). Реализация Linux (и другие) включает названный модуль pam_mkhomedir
который делает точно, что Вы хотите. Вставьте эту строку /etc/pam.d/*
для каждого сервиса, который позволяет локальным пользователям входить в систему (или в /etc/pam.d/common-session
если у Вас есть это):
session required pam_mkhomedir.so skel=/etc/skel/
Я имел ту же проблему и заметил, что настоящая проблема состоит в том, что учет/сессия перестал работать, потому что у пользователя RADIUS нет записи в /etc/passwd
. Я решил проблему при помощи pam_script
выполниться adduser
прежде, чем ввести gdm сессию.