On Monday, 5th of June, a massive event in Russian IT industry ended. The X International IT-Olympics “IT-Planet” for students and young specialists took place in the city of Sochi, Russia, which hosted 2014 Winter Olympic Games. Finals for the contest and the accompanying conference took place over four days. The days were filled with the contest itself, lesson, and master-classes from major player in the local and worldwide IT industry, recreational activities. Among the sponsors, there were companies like Cisco, Oracle, Huawei, Intel, InterSystems, AT Consulting, 1C, GNU/Linuxcenter. Of the 17000 participants, only little more than 300 took part in the final tier of the contest. The finals were preceded with two tiers of contests, held over the previous year, that decided if the candidate was of sufficiently knowledgable to take part in such a big event.
There were 15 different tests, combined into the key disciplines present at the event: “Programming”, “Cloud computing and databases”, “Usability”, “Telecommunications”, “Mobile platforms”, “Digital art” and “Free software and robotics”.
Before Day 1 – The Preparation
I’m not a professional reporter, nor do I want to write about the whole contest in general – it was very big and it’d took a massive work of multiple people to do so. Instead I will focus on my personal experience of taking part in the contest focusing on the Linux Administrating part of the “Free software and robotics” discipline. I’m a computer science student from Siberia, without major experience in this subject. I’ve yet to study GNU/Linux at university. All I know about it was learned in a process of self education, a process that is a cornerstone of whole IT and CS industry, in my opinion. There is not much to say about the first two tiers of a contest: the first one, for participants of my discipline, looked like a simple test about generic GNU/Linux knowledge and took place from November, 2016 to March, 2017, for different disciplines there was different time frame. The second tier looked like a simple set of cases to me and took place from December, 2016 to April, 2017. Among the questions, there was git configuration, LDAP setup and configuration and some simple scripting.
When I received a notification of the results of second tier being released, I found my name in third place overall and in first place for the Siberian Federal District. From that moment, I was completely sure that, no matter what, I would take part in the finals. Regarding this, I want to thank Kuzbass State Technical University I am currently studying in, for sponsoring me in this trip. I wasn’t sure if that would happen, so was ready for the worst.
Soon after releasing results of second stage of the contest, I received a mail with approximate themes I should study as they may be present in the finals. However, I have to admit, that these themes had almost nothing to do with what we all encountered at the finals. My lengthy preparations ended at 2AM, 1st of June, when I finally departed to nearby city’s airport to board the plane that would bring me to Sochi.
I have to admit, that organizers of the contest recommended nice hotels nearby, that had discounts for contest participants. But after doing a little search, I found a hotel, with location not as convenient, but priced even cheaper than ones that we were recommended to me. I didn’t mind having to take a bus to the contest location.
After settling in a small, but comfortable room with the lucky number 404, I spent some of Day 0 doing some recon of area I settled in and having a nice rest before the morning contest.
Day 1 – The Contest
I woke up early , had cup of coffee, packed my small bag with necessary possessions and was ready to depart. The bus stop was relatively close and I departed early. So early, that when I arrived registration had not yet begun and very few of the participants were present. Young volunteers asked arrivals to wait until the registration opened. The contest took part in a building of the Russian International Olympic University. Honestly, I expected that we would be told about it a little more, but I was mistaken and therefore, know nothing about it other than what is written on official website. The Russian International Olympic University is located on Black Sea coast and is quite well equipped. It is not related to IT education, instead its main course is re-qualification and education of professional sport related specialists. Nevertheless, it was well equipped for a contest such as IT-Planet.
Registration started about an hour after I arrived. Participants were given some souvenirs, such as a silicon wristband from a general partner of the contest, AT Consulting, a small package with various advertising materials from partners and sponsors regarding future employment possibilities, and a contest badge. Registered participants proceeded to the opening. Among contest organizers and sponsors, some representatives of the local authority offered some words to greet us on their soil. There were also reporters from the federal television present, who interviewed some people, including me, about their expectations from the contest and their first impression of the city itself. Also, a local indie band took part in the opening, entertaining us with music. Right after the opening ceremony, we were divided into groups, by our disciplines and proceeded to the testing rooms. The Linux Administrating test this year was organized by GNU/Linuxcenter, a big FOSS and tech integrator in Russia and a Red Hat Premier Business Partner.
The organizers said that this year they tried to bring more fun to the competition. The very first task we faced were Lenovo laptops with CentOS installed, set up and no password on the root account. Right when we went into the room, a four hour timer started to tick. Therefore, to proceed with the contest, we had to log in somehow. There are many guides on the Internet regarding single user mode. In our case, we had to set ‘root’ parameter in GRUB loader to rw and set init=”/bin/sh” in the end of parameters string. After that, we had an opportunity to boot into root /bin/sh, change the password and turn SELinux off, so it would let us login with changed password. Note: an attempt to create an extra user interfered with the normal loading procedure and didn’t let logind start properly. With this done, I had completed the first task of logging into the OS. The next task was to find a server with the other tasks. In our case, it was located at 192.168.1.100, on port 80. It was easy to figure out by using the nmap utility.
These two first tasks, listed as 1 and 1.1 were simple, as was 1.2, which only required us to switch an I/O scheduler cfq to deadline. Task #2 was much more interesting. There was a /usr/bin/headache file without the execution bit set, that, when executed, should give the participant a task. What my first thought? chmod +x /usr/bin/headache The result said that chmod had lost it’s executable bit. So, we had to fix that. In my case, I used the simplest method. I copied chmod contents to a file that already had an execution bit and renamed that file. I backed up the initial file first, of course. After making /usr/bin/headache executable, I got the task: list the contents of a given rpm file and write it to a designated file. rpm -l ./path/to/rpm/file.rpm
The third task was present in a string encoded in base64. This task was aimed at people, who knew what to look for. The string said, after decoding, that you need to write a script in any language, that would automatically fetch a string from a web page with tasks and decode it, then save the contents to a file. The fourth task required participants to rebuild a package from a src.rpm, with a Build Host name and Packager name. Now, this was the first of the tasks I didn’t 100% complete. I used rpm –rebuild /path/to/htop.src.rpm, which gave me the Build Host name but not the Packager Name. I didn’t know how to do this then and, honestly, I still don’t know how to do it now. The fifth task was to install and configure Docker. It should be configured to use overlayfs and automatically launch an http server on port 80 after boot. This is the second task I didn’t complete fully, but only because I completely forgot about overlayfs.
The sixth task required some scripting knowledge from us. The description said that we had to make a dynamic /etc/motd, that’d be updated every 5 minutes, seen at ssh login and containing the time of script execution, name, IP adress, uptime and uname -a. That was a fairly easy task, as there are many ways to do so. I wasn’t thinking much, because at this point, because major time loss on the first task, when I had created an additional user and had issues with logind was setting in. So, for the 6th task, I wrote a simple bash script and put its path in /etc/rc.local. This isn’t the best way of setting autostart, but I didn’t really have time to deal with systemd. That I can only be sad about.
Task 7 asked us to install any FTP server and open /home/ftpuser to anonymous access. That is a task I completely failed. I didn’t have any experience with ftp before and trying to get the ftp server running led to my being unable to get the ftp server to run as any user. I wasn’t able to fix that without more time and an Internet connection to read howtos, so I proceeded to 8th task. It was fairly easy, there was a binary in the /opt/ directory and we had to do some very basic reverse engineering with it. Opening it with a hex editor showed me, where and by who was it built.
The Ninth task was the last one. When I requested it, I thought that it might be something slim, because I didn’t have very much time left. Instead, it was a DoS attack. I had to stop it and report what type of DoS it was and where it came from. Unfortunately, it cut off my internet connection and I wasn’t able to install any tools for packet inspection and I didn’t have any experience with DoS attacks at all. I returned to the previous tasks and tried to complete what I wasn’t able to before. In the end I scored 9th out of 19 participants and remaining 1st in the Siberian Federal District.
The rest of a day was spent chatting with the other participants. They were mostly master degree students and some were employed in the field for some time already. We went to a cafe and walked around Sochi taking pictures of nature. In the late evening, I went to the hotel, to rest before next day, the educational one.
Days 2-5 – Education and Recreation
It started as early in the morning as yesterday’s events. We were gathered in a conference room and presented various options. Among the lecturers, there were specialists from 1C, Cisco, Huawei, Oracle, AT Consulting. Sadly, the Linux related theme was very small and got merged into robotics. I picked three Huawei presentations about upcoming 5G technologies.
The first presentation of three introduced 5G tech to participants and talked about the technologies of Enhanced Mobile Broadband, with short range high speed communications, working at 30/70/4GHz diapason with 20Gbit/s DL and 10Gbit/s UL speeds, low energy Massive Machine Type Communications, working at currently used 700/2100MHz diapason, used for IoT and M2M technologies, that was aimed to provide very small channel to very big amount of devices per square kilometer, and also about Ultra Reliable Low Latency Communications, that was aimed to achieve very low packets loss, very low latency at direct device to device communication.
The second presentation was about development and it had pretty much technological and financial information about network topology change with 5G integration, upcoming Infrastructure As Service in wireless communications, SDN and NVF, described Slicing as it would be used in 5G systems.
The last presentation was called “New Evolution of Networks Architecture.” It was about already released 5G standards, New RAN Architecture and went deeper into the technologies that 5G would use. This included discussion of the ability to do stage-by-stage network upgrades, typical base station architecture and how 5G hardware merges into that. This was added to with discussion of the wider principles of 5G network architecture and Network Functions that will replace Network Elements.
For the fourth lecture, I decided to visit a 1C presentation about 1C:ITS technology. The talk was on a huge database and included both technological, law issues and FAQs that might help users of 1C:Enterprise systems in any of it’s variations. At the end, we were given a test and certifications for 1C:ITS users, with free access codes.
The rest of a day after presentations, and the whole next day as well, I spent my time like a tourist. I visited the amusement park, Riviera Sea Station, and was in huge malls. For the first time I tried American fast food. Most of it is better to see than to describe, but it was quite interesting for a person, who was never in such place. The warm weather and sea were a nice reward by itself.
The organizers gave us an opportunity to go on a quest in the Olympics Park on Sunday, but I am not a fan of such activities. Instead, I preferred to become just another tourist in the city. I went back to the program on the 5th of June, the last day of contest. The ending took place in the same conference hall where the opening was. We were congratulated on our achievements by the federal government and sponsors, gathered our medals, either in the presentation or afterward, depending on the level of achievement. After that we took some photos and left. My plane was leaving the next day, so I had a plenty of time to calm down and relax a little after getting a bunch of diplomas and certificates, for both me and my university. I also got a big tabletop medal for 3rd place at the tier two contest.
After Day 5
I arrived back home at roughly 6AM on the 7th of June. It was a long trip there and a long trip back, but it was 100% worth it. This was my first experience at such an event. I can only hope to take part a few more times, perfect my skills and eventually return home with first place. In the end, I want to say thanks to people from Fedora community (and others), who morally helped me to get through this. As well I want to thank people, who helped me review the contents of this report. I want to thank the contest organizers, for such the great event they built for us. Once again, I want to thank my university for all the help with the financial aspects of the participating.
I don’t know, how widely are such contests are spread worldwide, but it is a good thing that they exist here at all. They help students to communicate with possible future employers and with other specialists. They also help young specialists look for better places and provide real life experience.