GNUWorld (X and UWorld)Modules Setup On Centos 7.x

Post Reply
User avatar
ZioN
Site Admin
Posts: 9
Joined: Sat Feb 29, 2020 9:31 pm

GNUWorld (X and UWorld)Modules Setup On Centos 7.x

Post by ZioN »

Hello,
Bellow you can find all the steps needed to be done in order to build the GNWuorld (X and UWorld) Modules using a linux server.
Please keep in mind that the IP Address of the machine used for this HOWTO is 192.168.1.133 and it should be changed with the IP address of the machine where you want to have gnuworld installed.
OK, now let`s proceed....

1. We need to make sure that the server is update - to - date:
  • yum update
  • yum install curl git make automake autoconf cpp gcc gcc-c++ bison readline readline-devel flex byacc zlib.x86_64 zlib-devel.x86_64 xmlsec1.x86_64 xmlsec1-devel.x86_64 xmlsec1-gcrypt.x86_64 xmlsec1-gcrypt-devel.x86_64 libtool-ltdl.x86_64 libtool-ltdl-devel.x86_64 libcxx.x86_64
  • updatedb
  • ldconfig

2. Install Postgresql 10.2: - Skip this step if you already have PGSQL SETUP and RUNNING.
  • wget https://coder-com.universalnet.org/packages/postgresql-10.2.tar.gz
  • tar zxvf postgresql-10.2.tar.gz
  • cd postgresql-10.2
  • ./configure
  • make
  • make install
  • mkdir /usr/local/pgsql/data
  • adduser gnuworld
  • chown gnuworld /usr/local/pgsql/data/
  • su - gnuworld
  • /usr/local/pgsql/bin/initdb -A trust -E=SQL_ASCII /usr/local/pgsql/data/
  • /usr/local/pgsql/bin/postmaster -B 64 -N 32 -i -D /usr/local/pgsql/data -o -F -h 192.168.1.133 >/dev/null 2>&1 &
  • cd /etc/ld.so.conf.d/
  • nano pgsql.conf
## add the following line:
  • /usr/local/pgsql/lib
## save and exit
  • ldconfig

3. Build as root OATH Library needed if your are using TOTP authenticating mode. Skip this step if you dont use TOTP.
  • cd /usr/local/
  • wget https://coder-com.universalnet.org/packages/oath-toolkit-2.6.2.tar.gz
  • tar zxvf oath-toolkit-2.6.2.tar.gz
  • cd oath-toolkit-2.6.2
  • ./configure --prefix=/usr/local/oath
  • make
  • make install



4 . Download and build GNUWorld (X and UWorld) modules
  • su - gnuworld
  • git clone https://github.com/UndernetIRC/gnuworld
  • cd gnuworld
  • git pull



4.1 #run the following command ONLY if you build gnuworld to use TOTP
  • ./configure --with-pgsql-home=/usr/local/pgsql --enable-modules=ccontrol,cservice --with-liboath=/usr/local/oath --with-liboath-lib=/usr/local/oath/lib --with-liboath-include=/usr/local/oath/include
  • nano mod.cservice/cservice_config.h
  • change #undef TOTP_AUTH_ENABLED to #define TOTP_AUTH_ENABLED

## save the file and exit
  • make
  • make install

#if you selected step 4.1 skip step 4.2


4.2 # Run the following command if you build gnuworld WITHOUT TOTP Support and skip step 4.1
  • ./configure --with-pgsql-home=/usr/local/pgsql --enable-modules=ccontrol,cservice
  • make
  • make install


5. Now Let`s build the databases !!!
## run the following commands under user gnuworld !!!
  • cd gnuworld/doc

5.1 ## Building cservice database !!!
  • /usr/local/pgsql/bin/createdb cservice
  • /usr/local/pgsql/bin/psql cservice < cservice.sql
  • /usr/local/pgsql/bin/psql cservice < languages.sql
  • /usr/local/pgsql/bin/psql cservice < language_table.sql
  • /usr/local/pgsql/bin/psql cservice < cservice.help.sql

##now we need to apply a fix to cservice.web.sql until Undernet Team will fix it in their repo. We need to add column 'phase' to email_change. If we don`t add this fix, email_change requests via webpage will fail !!!
  • open cservice.web.sql and search for 'pending_emailchanges'.
  • add a '.' on line "expiration INT4 NOT NULL" --> "expiration INT4 NOT NULL,"

under the line 'expiration INT4 NOT NULL,' add the following line:
  • phase INT4 NOT NULL

## save the file and exit
  • /usr/local/pgsql/bin/psql cservice < cservice.web.sql
  • /usr/local/pgsql/bin/psql cservice < cservice.config.sql
  • /usr/local/pgsql/bin/psql cservice < greeting.sql

##now we need to apply another fix to file cservice.addme.sql . Using old default pass temPass will get an error on webpage login "Too many redirects." To fix this we need to change the default password temPass to temPass2020@.
  • nano cservice.addme_sql
  • replace "Admin" with your desired username (ex. ZioN)
  • replace current encrypted md5 pass "07d976a29bdb3ff42e19c102852151b28097bbad" with "xEDi1V791f7bddc526de7e3b0602d0b2993ce21d" .

##note : xEDi1V791f7bddc526de7e3b0602d0b2993ce21d - is crypted md5 pass for temPass2020@ !!!
##save the file and exit.
  • /usr/local/pgsql/bin/psql cservice < cservice.addme.sql



5.2 ## Building ccontrol (UWorld) database !!!
  • /usr/local/pgsql/bin/createdb ccontrol
  • /usr/local/pgsql/bin/psql ccontrol < ccontrol.sql
  • /usr/local/pgsql/bin/psql ccontrol < ccontrol.help.sql
  • /usr/local/pgsql/bin/psql ccontrol < ccontrol.shells.sql
  • nano ccontrol.addme_sql
  • replace "Admin" with your desired username (ex. ZioN)
##save the file and exit.
  • /usr/local/pgsql/bin/psql ccontrol < ccontrol.addme.sql
  • /usr/local/pgsql/bin/psql ccontrol < ccontrol.commands.sql

Skip this step ONLY if you already done it when you set the webpage !!!
5.3 ## Building local_db (Website) database !!!
  • /usr/local/pgsql/bin/createdb local_db
  • /usr/local/pgsql/bin/psql local_db < local_db.sql

6. GNUWorld config files needed to be edited before running gnuworld.
  • cd gnuworld/bin
6.1 ## edit cservice.conf with your needed settings for your network.
  • cp cservice.example.conf cservice.conf
  • nano cservice.conf

6.2 ## edit ccontrol.conf with your needed settings for your network.
  • cp ccontrol.example.conf ccontrol.conf
  • nano ccontrol.conf

6.3 ## edit GNUWorld.conf with your needed settings for your network. Enable modules ccservice and ccontrol:
  • cp GNUWorld.example.conf GNUWorld.conf
  • nano GNUWorld.conf

7. Starting GNUWorld
## If GNUWorld.conf , cservice.conf and ccontrol.conf files are set please proceed with starting GNUWorld, if NOT, please go back to step 6.
## to start gnuworld type te following command:
  • ./gnuworld
Now X should be up on your Network.


8. X- AUTHENTICATION FAILED as admin (IPR)
  • su - gnuworld
  • pico ipr.sql
  • insert into ip_restrict (id, user_id, added_by, added, type, expiry, value) values (1, 1, 1, now()::abstime::int4, 1, 0, '0.0.0.0');
  • /usr/local/pgsql/bin/psql -h 192.168.1.133 cservice < ipr.sql
##replace " 192.168.1.133 " with a real ip address of the machine hosting the cservice db.
Enjoy.


This HOWTO was last updated by ZioN
15 Apr 2020
Post Reply