WNAM установка на Ubuntu 22.04

How can we help?

Навигация

Инструкция взята отсюда

Ставим mongodb

sudo apt update && sudo apt install gnupg -y

Импортируем ключи:

wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -

Добавляем репозитории:

echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.4 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list && echo "deb http://security.ubuntu.com/ubuntu focal-security main" | sudo tee /etc/apt/sources.list.d/focal-security.list

Ставим mongodb:

sudo apt update && sudo apt install libssl1.1 mongodb-org -y

Удаляем ненужные теперь репозитории:

sudo rm /etc/apt/sources.list.d/focal-security.list /etc/apt/sources.list.d/mongodb-org-4.4.list

Включаем mongodb:

sudo systemctl enable mongod && sudo systemctl start mongod && sudo systemctl status mongod

Должно получится примерно так:

wnam@wnam:~$ sudo systemctl enable mongod && sudo systemctl start mongod && sudo systemctl status mongod
Created symlink /etc/systemd/system/multi-user.target.wants/mongod.service → /lib/systemd/system/mongod.service.
● mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2022-12-01 16:28:19 UTC; 49ms ago
       Docs: https://docs.mongodb.org/manual
   Main PID: 4975 (mongod)
     Memory: 10.1M
        CPU: 18ms
     CGroup: /system.slice/mongod.service
             └─4975 /usr/bin/mongod --config /etc/mongod.conf

Ставим Java

sudo apt-get install openjdk-11-jdk -y && java -version

Должно получится как то так:

openjdk version "11.0.17" 2022-10-18
OpenJDK Runtime Environment (build 11.0.17+8-post-Ubuntu-1ubuntu222.04)
OpenJDK 64-Bit Server VM (build 11.0.17+8-post-Ubuntu-1ubuntu222.04, mixed mode, sharing)

Ставим nginx

sudo apt install nginx -y

Удаляем дефолтный конфиг и создаем свой:

sudo rm /etc/nginx/sites-enabled/default && sudo vi /etc/nginx/sites-available/wnam
server {
listen 80 default_server;

root /var/www/html;

server_name _;

         location / {
            proxy_pass http://127.0.0.1:8080/;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_read_timeout 120;
            proxy_connect_timeout 120;
        }

location ~ ^/cgi {

    root /home/wnam/cgi;
    rewrite ^/cgi/(.*) /$1 break;

    include /etc/nginx/fastcgi_params;
    fastcgi_pass unix:/var/run/fcgiwrap.socket;
    fastcgi_param SCRIPT_FILENAME /home/wnam/cgi$fastcgi_script_name;
}

} 

Создаем ссылку в /etc/nginx/sites-enabled:

sudo ln -s /etc/nginx/sites-available/wnam /etc/nginx/sites-enabled/

Проверяем правильность конфигурации:

sudo nginx -t

Если ошибок нет перезапускаем nginx:

sudo systemctl restart nginx

Проверяем язык системы (locale по умолчанию) соответствует «ru_RU.UTF-8»

locale

Исправляется командой:

sudo dpkg-reconfigure locales

Ставим samba

sudo apt install samba winbind fcgiwrap  -y && sudo systemctl restart nginx

Ставим wnam

Для этого компуем файл wnam.war в папку /home/wnam и меняем права доступа к нему:

sudo chmod 755 /home/wnam/wnam.war && sudo chown wnam:wnam /home/wnam/wnam.war

Создаем папку для логов:

mkdir /home/wnam/logs && chown wnam:wnam /home/wnam/logs

Запускаем через systemd:

sudo vi /etc/systemd/system/wnam.service
[Unit]
Description=WNAM Server

[Service]
WorkingDirectory=/home/wnam
ExecStart=/home/wnam/wnam.war
SuccessExitStatus=143
Restart=on-failure
RestartSec=10
User=wnam
Group=wnam

StandardOutput=append:/home/wnam/logs/console.log
StandardError=append:/home/wnam/logs/console.log

AmbientCapabilities=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target
sudo systemctl enable wnam

Далее конфигурируем файлы:

vi /home/wnam/wnam.conf
export JAVA_OPTS="-Xms512m -Xmx4g -Djava.net.preferIPv4Stack=true"
export LOG_FOLDER="/home/wnam/logs"
export LOG_FILENAME="console.log"

И:

vi /home/wnam/application.properties
spring.application.name=WNAM
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
server.forward-headers-strategy=native 
server.tomcat.remoteip.protocol-header="X-Forwarded-Proto"
server.tomcat.remoteip.remote-ip-header="X-Forwarded-For"
server.tomcat.basedir=.
server.tomcat.accesslog.enabled=true
server.port=8080 
server.address=0.0.0.0
spring.data.mongodb.uri=mongodb://127.0.0.1:27017/wnam_db
# for cluster configuration, use:
# spring.data.mongodb.uri=mongodb://app1,app2,db1,db2/wnam_db
sudo service wnam restart && sudo service wnam status

Должно получится както так:

● wnam.service - WNAM Server
     Loaded: loaded (/etc/systemd/system/wnam.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-12-02 05:27:25 UTC; 10s ago
   Main PID: 283962 (wnam.war)
      Tasks: 17 (limit: 2241)
     Memory: 298.9M
        CPU: 9.882s
     CGroup: /system.slice/wnam.service
             ├─283962 /bin/bash /home/wnam/wnam.war
             └─283977 /usr/bin/java -Dsun.misc.URLClassPath.disableJarChecking=true -Xms512m -Xmx4g -Djava.net.pr>

Dec 02 05:27:25 wnam systemd[1]: Started WNAM Server.

http://<ip address>/wnam/home

Включение 802.1х

Редактируем конфиг Самбы:

sudo vi /etc/samba/smb.conf
[global]
workgroup = <имя_вашего_домена>
server string = %h server (Samba, Ubuntu)
dns proxy = no
security = ads
password server = <полное_имя_вашего_контроллера_домена>
realm = <полное_имя_вашего_домена>
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
server role = standalone server
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
usershare allow guests = yes

Проверяем:

testparm

Запускаем:

sudo systemctl unmask smbd && sudo systemctl enable smbd && sudo systemctl restart smbd &&  sudo systemctl status smbd

Заносим wnam в домен:

sudo net ads join -U domen-username

Проверяем авторизацию:

ntlm_auth --request-nt-key --domain=<имя_домена> --username=wifitest --password=wifitest