Travel around the world

Adobe Creek Homeowners Association, water leak report 02/25/2024

Adobe Creek Homeowners Association - Community Management Services
278 Monroe Dr. Mountain View CA 94040

The story

On February 25, 2024, at 4 p.m., we observed water on the first floor of our property. The water came from our adjacent Unit #18. With the help of another neighbour from Unit #17, we shut off the main water valve for Unit #18 to stop the water flow. The Unit #18 was under remodeling at that time, and the valves were closed because of work on the water pipes inside the unit. Someone from HOA garden workers opened public valve for Unit #18 causing the flooding in the unit that spreaded to the adjacent units.
We received permission from the owner of the the Unit#18 to gain access inside. I shut off the electrical breakers.

Read more ...

How to Create and enforce Github branch protection rules for Organization. Best Practice

git branches

We are going to enforce the Git Best Practice branch's protection rules and recommendaions for GitHub Organization repositories.

Also we will automate a proces of adding and updating teams and branch protection rules to GitHub Organization repository.

There is the same way to apply branch protection and recommendaions to private (non-organization GitHub repositories but you need to modify the automation scipts). Also some options are not available for non-organization GitHub repositories.

 

 

 

 

Read more ...

Joshua Tree National park.

Национальный парк Joshua TreeAnd once again, we make our journrey with friends, to Joshua Tree National Park

We make our way down here every year, on the last weekend of May, so that we can experience the desert heat, rock climb on real rocks, take some time away from work, and spend our time with good people. On this trip, our whole family came, along with Boris, Natasha, Yulia, Victor Zybin, Kirk + Caren, Gina + Steven, Mónica + Nuno, Brian, Maya + Steve (this is so I don't forget). 
What is Joshua Tree National Park? This is a part of the top of the Mojave Desert - a plateau resting at 1200 meters above sea level, with the temperature lower by 5-10 C, than in the lower part of Mojave Desert. 

What is the Mojave Desert. It is a small desert in North America, where many Hollywood movies were filmed. So, if you see a Hollywood movie with a desert, moon, The Martian - then it was in the Mojave Desert, since Los Angeles and Hollywood are only a one hour drive away. Top Gun was also filmed here. 

Read more ...
Proxy server (Обратный прокси сервер)Имеется следующая вводная: локальная сеть в кторорой находятся насколько хостов с web серверами отвечающими на 443 порту по запросу https://server1.mydomain.com и https://server2.mydomain.com. Оба сервера испоьзуют приобретенные SSL сертификаты для домена mydomain.com. Есть маршрутизатор который отделяет отделяет локальную сеть от публичного интернета и который может пробросить (port-maping) 443 порт на коннкретный IP в локальной сети. Есть DNS сервер который может направлять субдомены mydomen.com на внешний ip маршрутизатора. Количество хостов с web серверами отвечающими на 443 порту в локальной сети может увеличиватся...

Задача: Внешние клиенты должны получать доступ к https://server1.mydomain.com, https://server2.mydomain.com, https://server3.mydomain.com, https://......

Решение: Для проксирования был выбран сервер Apache2 установленный на отдельном Linux хосте локальной сети. OS была выбрана Ubuntu 12.4.1 TLS server 64-bit установленная в Sphera, хотя это и не важно. Задачу может выполнить любой 1Hz Celeron с 512Mb на борту и статическим локальным IP адресом.

Далее статья написана выдержками из различных источников надерганых мною в процессе выполнения задачи и чтения логов с ошибками. Опущен процесс установки Ubuntu как тривиальный. Шаги описаны с момента чистой, обновленной из стандартных сорцов OS Ubuntu. То, что нужно делать copy/paste в командную строку Ubuntu выделено курсивом и жирным стилем. Поехали...

Все последующие команды выполняем с правами root

sudo su

вводим пароль пользователя указанного при установки Ubuntu

1. Ставим OpenSSH


Если Вы не установили OpenSSH сервер во время установки системы, Вы можете сделать это сейчас:

apt-get install ssh openssh-server

С этого момента Вы можете использовать SSH клиента, такого как PuTTY и связаться с вашим сервером на Ubuntu server 12.04 LTS и выполните остальные шаги из этой статьи.

2. Настраиваем сеть


Если при установки Ubuntu вы настроили систему на получение настроек сети через DHCP, то сейчас мы должны изменить это, что бы сервер имел статический IP-адрес. Отредактируем /etc/network/interfaces и настроим его под свои нужды (в данном примере установки я буду использовать IP-адрес 192.168.0.100) и DNS сервера 8.8.8.8 и 8.8.4.4 - начиная с Ubuntu 12.04, больше Вы не можете редактировать /etc/resolv.conf, но нужно указать ваши сервера имен в вашей сети - (см.для более подробной информации man resolvconf ). 
Мы же водим:

nano /etc/network/interfaces

И редактируем файл:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address 192.168.0.100
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
        dns-nameservers 8.8.8.8 8.8.4.4
   
Затем перезагрузим сеть:

/etc/init.d/networking restart

Затем отредактируйте /etc/hosts.

nano /etc/hosts

Сделаем что бы файл выглядел следующим образом:

127.0.0.1       localhost.localdomain   localhost
192.168.0.100   proxy.mydomain.com     proxy
# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Теперь запустите:

echo proxy.mydomen.com > /etc/hostname

/etc/init.d/hostname restart


или

/etc/init.d/hostname.sh

И запустите:

hostname
hostname -f

Теперь они должны показать proxy.mydomain.com.

3. Синхронизация системного времени


Это хорошая идея, чтобы синхронизировать системные часы с NTP Network TIME рrotocol) сервером через Интернет. Просто запустите:

apt-get install ntp ntpdate

... и системное время всегда будут синхронизировано.

4. Обновляем систему


Запустите:

apt-get update

... и для обновления базы данных APT пакетов:

apt-get upgrade

Для установки последних обновлений (если имеются таковые). Если Вы видите, что новое ядро получило обновлений как часть установленого, Вы должны перезагрузить систему:

reboot

5. Установка и настройка сервера Apache как прокси сервера SSL


Вводим команду:

apt-get install apache2

Если Вы выполняли установку Apache2 на локальной машине, то зайдя в броузере по адресу http://localhost вы увидите надпись: It works!
Так же сервер должен быть доступен в сети по адресу http://192.168.0.100 с тем же результатом.

Мы планируем использовать несколько хостов по 443 порту, поэтому есть такой нюанс: в файл /etc/apache2/apache2.conf надо добавить такую строку (например, в самый конец):

nano /etc/apache2/apache2.conf

.............
NameVirtualHost *:443

Иначе можете встретить такую примерно ругань от Apache: [warn] _default_ VirtualHost overlap on port 443, the first has precedence

На этом установка завершена. Поговорим о настройках.

По умолчанию в Ubuntu 12 файлы apache2 находятся в /etc/apache2. Из всех файлов нам интересны файлы содержащие настройки виртуальных хостов. Они лежат в /etc/apache2/sites-available/. По умолчанию мы видим здесь два файла — default и default-ssl. Первый для доступа к сайту через стандартный порт 80 и второй для доступа к сайту по SSL протоколу через порт 443. Нас интересует второй конфигурационный файл. Копируем его в файл с именем нашего первого хоста для проксирования:

cd /etc/apache2/sites-available/
cp default-ssl server1.mydomain.com


Далее мы будем работать с файлом server1.mydomain.com

В Ubuntu манипулирование апачем происходит с помощью глобальных команд: включение/выключение виртуал хостов - a2ensite / a2dissite с одним аргументом - пути к конфигу, в котором прописан виртуал хост. Включение/выключение модов или расширений происводится командами a2enmod / a2dismod.

Далее алгоритм работы такой:

1) Нужно включить необходимые модули апача. Устанавливаем:

sudo apt-get install libapache2-mod-proxy-html libapache2-mod-gnutls

2) Кладем имеющиеся сертификаты для дальнейшего использования и выставляем права. Также переназначаем корневой каталог для сайна на 80 порту для удобства:

mkdir /var/www/ssl

Кладем в папку /var/www/ssl наш сертификат и ключ.

Меняем права:

chmod 700 /var/www/ssl
сhmod 600 /var/www/ssl/server1.crt
chmod 600 /var/www/ssl/server1.key


Изменяем директорию для http дефолтого сайта (не обязательно, но желательно):

mkdir /var/www/www
cp /var/www/www/index.html /var/www/www/index.html
cd /etc/apache2/sites-available/
nano default


Меняем строку на
.....
DocumentRoot /var/www/www

Перечитываем конфиг:

a2ensite default

3) Переписываем конфиг виртуал хоста (по 1му файлу на 1 хост!)  в /etc/apache2/sites-available/

Проверяем где мы:

cd /etc/apache2/sites-available/
nano server1.mydomain.com


Видим много всего. Если пониманте что делать - можете редактировать файл, если нет
- удаляйте все командами nano и вставляйте текст из примера:

---------------------------------------------------------------------------------------------------
DocumentRoot /var/www/www
ServerName proxy.mydomain.com
ServerAlias server1.mydomain.com

ServerAdmin This email address is being protected from spambots. You need JavaScript enabled to view it.
ErrorLog ${APACHE_LOG_DIR}/server1-ssl-error.log
LogLevel warn
TransferLog ${APACHE_LOG_DIR}/server1-ssl-transfer.log
CustomLog ${APACHE_LOG_DIR}/server1-ssl-access.log combined

SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /var/www/ssl/mydomain.com.crt
SSLCertificateKeyFile /var/www/ssl/mydomain.com.key

SSLProxyEngine on
ProxyPreserveHost On
ProxyRequests Off
ProxyPass / https://server1.mydomain.com

-----------------------------------------------------------------------------------------

Затем командой

a2ensite server1.mydomain.com

активируем наш виртуал хост. После этого нужно перечитать Apache конфиги:

/etc/init.d/apache2 reload

Разрешаем:

a2enmod proxy && a2enmod ssl && a2enmod cache && a2enmod proxy_connect && a2enmod proxy_html && a2enmod rewrite && a2enmod cache && a2enmod disk_cache

Перезапускаем Apache:

sudo /etc/init.d/apache2 restart


Усё, будет проксировать на server1.mydomain.com

Для проксирования на другие хосты server2.mydomain.com, server3.mydomain.com и т.д. создаем для них новые файлы в /etc/apache2/sites-available/ с именами server2.mydomain.com, server3.mydomain.com и редактируем их в части названия доменов. Сертификат можно использовать один для всех доменов зоны mydomain.com.

Если будут замечания - пишите комментарии, я поправлю.

Add comment


Security code
Refresh