Процессу можно назначить другую сетевую конфигурацию, используя сетевые пространства имен linux . Теоретически должна быть возможность настроить PAM*для установки каждого пользователя в его собственном отдельном сетевом пространстве имен, но вместо этого, вероятно, проще запустить рассматриваемое приложение в своем собственном пространстве имен.
Общая установка может описывать создание мостового интерфейса Linux для подключения пространств имен к сети. Немного более простую настройку можно заархивировать с помощью ipvlan (, включенного в версии ядра 3.19 и выше )или macvlan устройства (для беспроводной связи, которую вы не можете использовать Маквлан). В документации по ядру Linux есть подробный пример настройки ipvlan в сетевом пространстве имен.
По примеру из документации:
Создать сетевое пространство имен ns0
ip netns add ns0
Создать ведомое устройство ipvlan на главном устройстве eth0 ()
ip link add link eth0 ipvl0 type ipvlan mode l2
Назначить ведомые устройства сетевому пространству имен ns0
ip link set dev ipvl0 netns ns0
Настройка ведомого устройства в сетевом пространстве имен ns0
ip netns exec ns0 ip link set dev ipvl0 up
ip netns exec ns0 ip link set dev lo up
ip netns exec ns0 ip -4 addr add 127.0.0.1 dev lo
ip netns exec ns0 ip -4 addr add $IPADDR dev ipvl0
ip netns exec ns0 ip -4 route add default via $ROUTER dev ipvl0
Укажите адреса хоста и маршрутизатора в $IPADDR
и $ROUTER
.
Запустите приложение в сетевом пространстве имен, используяip exec
ip netns exec ns0
Чтобы запустить команду от имени другого пользователя, используйте обычный su
.
*ИЗМЕНИТЬ:От теории к практике :Я написал простой модуль PAM, чтобы продемонстрировать, как изменить сетевое пространство имен для каждого пользователя. Вам необходимо настроить сетевое пространство имен с помощью ip netns
, как указано выше, и сопоставить определенных пользователей с определенным пространством имен. После этого все пользовательские процессы будут находиться в своем сконфигурированном пространстве имен, а не в пространстве имен по умолчанию. Код размещенна github . Используйте на свой страх и риск.
Предупреждение. :Убедитесь, что новый порт SSH не конфликтует с какими-либо известными или заблокированными портами.
Изменение порта SSH для вашего сервера Linux
Подключитесь к вашему серверу по SSH.
Переключитесь на пользователя root.
Выполните следующую команду:
vim /etc/ssh/sshd_config
Найдите следующую строку:
# Port 22
Удалите #и измените 22 на желаемый номер порта.
Перезапустите службу sshd, выполнив следующую команду:
service ssh restart
ссылка (изменение для работы на Ubuntu 1404 ):https://hk.godaddy.com/en/help/changing-the-ssh-port-for-your-linux-server-7306