Установка и запуск FCEUX 2.0 NES эмулятора

Неожиданно вспомнилось детство и я решил попытаться поиграть в старые добрые игры с приставки, известной у нас под названием Dendy. 😉 Немного погуглив, нашёл подходящий эмулятор, скачал несколько вспомнившихся игр и начал играть.

В моём топе игр, которые я тогда предпочитал, были преимущественно аркады и гонки — развивал реакцию. А полноценных симуляторов, стратегий или рпг тогда ещё толком не было, приходилось играть в то, что было.

Для тех кто тоже хочет ненадолго вернуться в детство, я предлагаю два варианта решения этой задачи:

Простой:

sudo apt-get install fceux

Более сложный:

1) Заходим на сайт эмулятора — http://fceux.com/web/download.html и скачиваем исходники.
2) Поставим необходимые для сборки эмулятора пакеты:

alexey@hp:~$ sudo apt-get install scons libsdl1.2-dev libsdl1.2debian-alsa liblua5.1-dev zlib1g-dev zenity

3) Распаковываем архив с исходниками и заходим в созданную папку:

alexey@hp:~$ tar xjf fceux-2.1.2.src.tar.bz2
alexey@hp:~$ cd fceu

4) Запускаем компиляцию и установку эмулятора:

alexey@hp:~/fceu$ sudo scons install

5) Запускаем игру, играем, радуемся:

alexey@hp:~/fceu$ fceu —special 3 battle_city.nes

Fail2ban — защита от брутфорса SSH и прочих сервисов

Наверняка в лог-файле auth.log вы наблюдали попытки перебора логинов-паролей по SSH для доступа на ваш сервер. Пресечь подобные попытки можно блокированием доступа к серверу с недоверенных IP адресов. Но что делать, если у вас динамический IP или вы выходите в сеть из разных мест, например из кафе где есть WiFi или прочих публичных мест доступа в интернет? В этом случае есть утилита, которая может решить эту проблему — fail2ban.

Если вас пугают подобные проблемы, можно не мучиться и выбрать хостинг, например от ISPserver.com. Цены у них довольно низкие и при этом качество на очень хорошем уровне. Shared хостинга в большинстве случаев хватает за глаза.

Но если эти трудности вас не волнуют — идём дальше. Поставим пакет:

gateway:~# apt-get install fail2ban

Согласно документации, править конфигурационный файл /etc/fail2ban/jail.conf нежелательно и изменения опций лучше вынести в файл /etc/fail2ban/jail.local. Приведу пример моего файла:

gateway:~# cat /etc/fail2ban/jail.local
# The DEFAULT allows a global definition of the options. They can be override
# in each jail afterwards.

[DEFAULT]

# «ignoreip» can be an IP address, a CIDR mask or a DNS host
ignoreip = 127.0.0.1, 192.168.0.0/24
bantime = 600
maxretry = 3

#
# Destination email address used solely for the interpolations in
# jail.{conf,local} configuration files.
destemail = alexey@www.local

К слову сказать, fail2ban защищает от брутфорса не только SSH, но и многие другие сетевые сервисы, например, Apache, Courier, Exim, Named (bind), Postfix, FTP и другие. Полный список фильтров можно посмотреть в каталоге /etc/fail2ban/filter.d/ 🙂

rkhunter — охотник за руткитами

Как известно, злоумышленики в сети не дремлют и ваша система может стать следующей целью их атаки. Один из популярных инструментов для проверки системы на наличие в ней руткитов и прочей подозрительной живности — Rootkit Hunter.

Если ваш мобильный оператор поддерживает услугу email2sms, можно воспользоваться массовой рассылкой смс для уведомления всех системных администраторов о возможном проникновении на сервер. Подробнее об этом дальше в статье.

Пользоваться им довольно просто. Ставим:

gateway:~# apt-get install rkhunter

обновляем базы до актуального состояния:

gateway:~# rkhunter —update

запускаем проверку систему:

gateway:~# rkhunter —check

Результат проверки можно будет потом найти в файле /var/log/rkhunter.log. Также есть возможность отправки подозрительных результатов на почту. Для этого в конфигурационном файле /etc/rkhunter.conf нужно раскомментировать опцию MAIL-ON-WARNING и добавить в неё свой e-mail.

Обновления баз данных rkhunter’а можно запускать по cron’у.

Rootkit Hunter выполняет сигнатурный поиск, поэтому вероятность необнаружения какого-нибудь оригинального руткита очень даже существует. Впрочем, это не значит, что не нужно защищаться вообще. 😉

К сожалению, и, к счастью, не могу продемонстрировать лог захваченной машины, но в недрах интернета такие логи вполне могут существовать, так что если есть желание, можете посмотреть их сами.

Icecast — ещё одно онлайн-радио: установка и настройка

У Icecast по сравнению с Shoutcast есть одно неплохое преимущество: он умеет работать с OGG-потоками.

Скачаем и распакуем архив с исходниками:

warehouse:~# wget http://downloads.xiph.org/releases/icecast/icecast-2.3.2.tar.gz
warehouse:~# tar zxf icecast-2.3.2.tar.gz
warehouse:~# cd icecast-2.3.2

Для сборки потребуются дополнительные исходники библиотек:

warehouse:~/icecast-2.3.2# apt-get install libogg-dev libvorbis-dev libtheora-dev libspeex-dev libcurl4-openssl-dev libxslt-dev

Теперь можно приступить к конфигурации:

warehouse:~/icecast-2.3.2# ./configure —prefix=/usr/local/icecast —with-ogg —with-theora —with-curl —with-vorbis —with-openssl

А затем к сборке и установке:

warehouse:~/icecast-2.3.2# make && make install

После установки редактируем конфигурационный файл:

warehouse:~# mcedit /usr/local/icecast/etc/icecast.xml

В целях безопасности рекомендуется найти ветку:

<security>
<chroot>0</chroot>
<!—
<changeowner>
<user>nobody</user>
<group>nogroup</group>
</changeowner>
—>
</security>

и активировать chroot:

<security>
<chroot>1</chroot>
<changeowner>
<user>nobody</user>
<group>nogroup</group>
</changeowner>
</security>

Приведу здесь свой рабочий конфиг. У меня настроена ретрансляция двух сетевых радиостанций:

<icecast>
<limits>
<clients>100</clients>
<sources>2</sources>
<threadpool>5</threadpool>
<queue-size>524288</queue-size>
<client-timeout>30</client-timeout>
<header-timeout>15</header-timeout>
<source-timeout>10</source-timeout>
<burst-on-connect>1</burst-on-connect>
<burst-size>65535</burst-size>
</limits>

<authentication>
<source-password>pass1</source-password>
<relay-password>pass2</relay-password>
<admin-user>admin</admin-user>
<admin-password>admin_pass</admin-password>
</authentication>

<shoutcast-mount>/live.nsv</shoutcast-mount>
<hostname>radio</hostname>
<listen-socket>
<port>8000</port>
</listen-socket>
<relay>
<server>xx.xx.xx.xx</server>
<port>xxxx</port>
<mount>/</mount>
<local-mount>/radio1.ogg</local-mount>
<on-demand>0</on-demand>
<relay-shoutcast-metadata>1</relay-shoutcast-metadata>
</relay>

<relay>
<server>xx.xx.xx.xx</server>
<port>xxxxx</port>
<mount>/</mount>
<local-mount>/radio2.ogg</local-mount>
<on-demand>0</on-demand>
<relay-shoutcast-metadata>1</relay-shoutcast-metadata>
</relay>

<fileserve>1</fileserve>

<paths>
<basedir>/usr/local/icecast/</basedir>
<logdir>/var/log/icecast/</logdir>
<webroot>/share/icecast/web</webroot>
<adminroot>/share/icecast/admin</adminroot>
<pidfile>/usr/local/icecast/icecast.pid</pidfile>
<alias source=»/» dest=»/status.xsl»/>
</paths>

<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<loglevel>3</loglevel> <!— 4 Debug, 3 Info, 2 Warn, 1 Error —>
<logsize>10000</logsize> <!— Max size of a logfile —>
</logging>

<security>
<chroot>1</chroot>
<changeowner>
<user>nobody</user>
<group>nogroup</group>
</changeowner>
</security>
</icecast>

Далее остаётся только запустить приложение в фоне:

warehouse:~# /usr/local/icecast/bin/icecast -c /usr/local/icecast/etc/icecast.xml &

открыть URL в любом проигрывателе http://radio.local:8000/radio1.ogg и наслаждаться хорошей музыкой. 😉