суббота, 21 июня 2014 г.

смс-ка при потере пинга

1. Зарегистрироваться на сайте sms.ru , "программистам", отправка 60-ти бесплатных смс в день. Вот.
С помощью этого сервиса я мониторю свои VPN-каналы.

2. Сам скрипт:

#!/bin/bash

HOSTS="1.1.1.1 2.22.22.2"

COUNT=4

for myHost in $HOSTS
do
count=$(ping -c $COUNT $myHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
if [ $count -eq 0 ]; then
# 100% failed
curl -d "text= $myHost is down (ping failed) at $(date)" http://sms.ru/sms/send\?api_id=dff7015c-xxxxxxxxxxxx-xxxxxxxxxxxx\&to=7ХХХХХХХХХХ
fi
done


3. Запихнуть в cron, настроить расписание по желанию. 

четверг, 30 января 2014 г.

transparent VLAN bridge + squid3 + ipset+динамический шейпер HTB

Собственно схема:


как из нее видно, между одним из портов маршрутизатора и другим портом L3 коммутатора настроен VLAN trunk. В этих условиях мы собираемся использовать прозрачный мост и прозрачный прокси-сервер для управления http-трафиком пользователей. Также связку iptables и ipset для блокировки неугодных хостов и сетей, а также динамический шейпер скорости на основе скрипта htb.init.
Представленная схема была реализована на: 

ubuntu-server 12.04.4 LTS (GNU/Linux 3.8.0-35-generic x86_64)

root@bridge:~# uname -a
Linux bridge 3.8.0-35-generic #50~precise1-Ubuntu SMP Wed Dec 4 17:25:51 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

0. При установке ОС закажем инсталяцию ssh-сервера.

1. Ставим:
apt-get install bridge-utils
apt-get install ebtables
apt-get install  vlan
apt-get install mc

2. Включаем опции ядра для bridge:
echo 1 > /proc/sys/net/bridge/bridge-nf-call-arptables
echo 1 > /proc/sys/net/bridge/bridge-nf-pass-vlan-input-dev
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
echo 1 > /proc/sys/net/bridge/bridge-nf-filter-vlan-tagged

3. Конфигурируем /etc/network/interfases:

# The loopback network interface
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto eth1
iface eth1 inet manual

auto eth0.5  
#тэг vlan 5 для интерфейса eth0
iface eth0.5 inet manual
vlan_raw_device eth0

auto eth1.5 #
#тэг vlan 5 для интерфейса eth1 (далее по аналогии)
iface eth1.5 inet manual
vlan_raw_device eth1

auto br0 # собственно мост у нас не один, в каждом vlan свой.
iface br0 inet static # трафик только одного VLAN
address 0.0.0.0 # 
заворачивается на прокси
bridge-ports eth0.5 eth1.5
bridge_stp off

auto eth0.12
iface eth0.12 inet manual
vlan_raw_device eth0

auto eth1.12
iface eth1.12 inet manual
vlan_raw_device eth1

auto br1
iface br1 inet static
address 192.168.1.7 # сервером удобнее всего управлять
netmask 255.255.255.0 #  из клиентской сети (VLAN12).
broadcast 192.168.1.255 #
 сообственно поэтому и назначаем 
gateway 192.168.1.1 # нашему мосту указанную адресацию,

bridge-ports eth0.12 eth1.12 # т.к. она соответствует
dns-nameservers 192.168.1.5 # 
адресации VLAN 12
dns-search domain.local
bridge_stp off


auto eth0.97
iface eth0.97 inet manual
vlan_raw_device eth0

auto eth1.97
iface eth1.97 inet manual
vlan_raw_device eth1

auto br2
iface br2 inet static
address 0.0.0.0
bridge-ports eth0.97 eth1.97
bridge_stp off


вот схема того, что у нас в результате должно получиться:




4. Теперь перезапустим сеть:
/etc/init.d/networking restart
Или весь сервер:
reboot

Поставим мост в разрыв транка.
Должны суметь залогиниться по ssh на адрес моста.

5. Установим squid:
apt-get install squid

6. Приводим /etc/squid3/squid.conf к примерно такому виду:

http_port 3128 transparent

acl LocalNet src 192.168.1.0/24

http_access allow LocalNet
http_access deny all

Командуем:
squid3 -k reconfigure # эта команда говорит сквиду перечитать и применить конфигурацию не перезагружаясь, и соответственно не разрывая текущих сессий.
Также есть такие команды:
service squid3 start
service squid3 stop
В дальнейшем можно настроить прокси по своему вкусу, статей на тему разнообразных настроек Squid достаточно.
Например,  и вот как настроить анализатор логов lightsquid и web-server lighthttpd, а также закрыть доступ к  lightsquid паролем. В конечном итоге если вдруг будет надо, я смогу предоставить свои конфиги.

7. Издаем команду:
ebtables -t broute -A BROUTING -p IPv4 --ip-destination-port 80 -j redirect --redirect-target ACCEPT

8. Еще одну:
iptables -t nat -A PREROUTING -s 192.168.1.0/24 ! -d 192.168.0.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128

заворачиваем пакты из нашей подсети (исключая адресованные в подсеть головного офиса) на порт сквида.

9. Смотрим:
 tail -f /var/log/squid3/access.log
Если видим изменяющиеся значения, значит все ОК - http трафик заворачивается на squid.

10. При настройке squid я не хотел настраивать фильтрацию https, т.к. нашел в сети множество отзывов с проблемами  реализации (подмена squid-ом ssl сертификатов - ssl bump). В связи с этим было принято решение блокировать неугодные адреса с помощью iptables используя ipset. 
Узнаем у Google ip-адреса неугодных ресурсов:

# dig @google-public-dns-a.google.com. mail.yandex.ru

; <<>> DiG 9.8.1-P1 <<>> @google-public-dns-a.google.com. mail.yandex.ru
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48890
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;mail.yandex.ru. IN A

;; ANSWER SECTION:
mail.yandex.ru. 3077 IN A 87.250.250.25
mail.yandex.ru. 3077 IN A 93.158.134.25
mail.yandex.ru. 3077 IN A 213.180.193.25
mail.yandex.ru. 3077 IN A 213.180.204.25

;; Query time: 70 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Jan 30 19:04:45 2014
;; MSG SIZE rcvd: 96


11. Ставим ipset:
apt-get install ipset

Добавляем сеты...
a.Создаем список:
ipset -N ip_set_1 iphash

b.Добавляем адреса в сет:
ipset -A ip_set_1  87.250.250.25
ipset -A ip_set_1  93.158.134.25
pset -A ip_set_1  213.180.193.25
ipset -A ip_set_1  213.180.204.25

c.Можно делать сеты для сетей:
ipset -N net_set_1 nethash

d.Добавляем сети в сет:
ipset -A net_set_1 1.1.1.1/32
ipset -A
net_set_1 2.2.2.2/24

e.Также можем создать сет для привелегированных пользователей нашей сети:
ipset -N managers iphash

f.Добавляем адреса в сет:
ipset -A managers  192.168.1.111
ipset -A managers  192.168.1.222 


Просмотреть сеты можно командой:
ipset -L

g.Запретим доступ к яндекс почте нашей сети, кроме адресов входящих в managers:
iptables -A FORWARD -m set ! --match-set managers src -p tcp -m tcp -m set --match-set ip_set_1  dst --dport 443 -j DROP

e.Запретим доступ к сетям указанных в сете  net_set_1:
iptables -A FORWARD -m set ! --match-set managers src -p tcp -m tcp -m set --match-set net_set_1   dst --dport 443 -j DROP

h.Сохраним наши сеты. 
Cоздадим файл:
touch /directory/directory2/ipset-save

i.Скомандуем:
ipset -S >  /directory/directory2/ipset-save
(При каждом изменении в сеты сохраняемся.)

j.Устраиваем автозагрузку.
Открываем /etc/rc.local и добавляем в него строку:
cat  /directory/directory2/ipset-save | /usr/sbin/ipset -R

12. Назначим наименьший приоритет задержки пакетам наиболее нуждающимся в нем:

iptables -A OUTPUT -t mangle -p udp -m multiport --dport 53,5060 -j TOS --set-tos Minimize-Delay

iptables -A FORWARD -t mangle -p tcp -m tcp -d 192.168.0.0/24 -j TOS --set-tos 0x10/0x3f

iptables -A FORWARD -t mangle -p udp -m udp -d 192.168.0.0/24 -j TOS --set-tos 0x10/0x3f


13.Смотрим вывод: 
iptables-save
и далее настраиваем автозапуск правил по своему вкусу.


14. Шейпер.
Для начала следует здраво понимать, что ограничиваться, и попадать в очередь (шейпиться), могут только исходящие с интерфейса пакеты, а не входящие т.к. они уже пришли на интерфейс. Соответственно имея устройство с двумя сетевыми интерфейсами, и соответствующим образом настроенным шейпером можно управлять пропускной способностью канала.

a.Перейдем в свою директорию (работаем от рута, как вы заметили):
cd /home/user 

b.Скачиваем скрипт htb.init:
wget http://switch.dl.sourceforge.net/project/htbinit/HTB.init/0.8.5/htb.init-v0.8.5

c.Переименуeм покороче наш скрипт:
mv  htb.init-v0.8.5  htb
и переместим куда следует:
cp htb /usr/sbin

d.сделаем скрипт исполняемым:
chmod +x /usr/sbin/htb

e.теперь создадим файлы и директории необходимые для работы скрипта:
mkdir /etc/sysconfig
mkdir /etc/sysconfig/htb
touch /var/cache/htb.init


f.начнем писать конфиги для нашего шейпера. перейдем:
cd /etc/sysconfig/htb

g.Создаем конфигурационные файлы (eth0 смотрит в 100Gb порт роутера, eth1 в гигабитный порт свитча):

Для исходящего трафика:sudo touch eth0 # Описываем интерфейс eth0
sudo nano eth0

DEFAULT=10 # метка на файл, создаваемый ниже, eth0-2:10.dfl
R2Q=100 # точность ограничений

sudo touch eth0-2.root # корневой класс
sudo nano eth0-2.root

RATE=100Mbit # гарантированная пропускная способность
CEIL=100Mbit # максимальная пропускная способность
BURST=15k # первые 15k без ограничений

sudo touch eth0-2:10.dfl # сюда попадает трафик, не попадающий ни в одно из правил ниже
sudo nano eth0-2:10.dfl

RATE=1024Kbit # гарантированная пропускная способность
CEIL=99Mbit # максимальная пропускная способность
LEAF=sfq # равномерное распределение между участниками очереди.

sudo touch eth0-2:20.rdp # гарантированный канал для rdp
sudo nano eth0-2:20.rdp

RATE=1Mbit # гарантированная пропускная способность
CEIL=2Mbit # максимальная пропускная способность
BURST=15k # первые 15k без ограничений
LEAF=sfq # равномерное распределение между участниками очереди.
RULE=*:3389 # Применять правило для трафика, у которого исходящий порт 3389
MARK=100 # Метка для исходящего трафика (входящий нарезается нормально и без меток).

Маркируем трафик RDP:
iptables -t mangle -A PREROUTING -s 192.168.1.5 -j MARK --set-mark 100 
Соответсвенно 192.168.1.5 адрес терминального сервера.

Для входящего трафика:

sudo touch eth1 # Описываем интерфейс eth1
sudo nano eth1

DEFAULT=10 # метка на файл, создаваемый ниже, eth1-2:10.dfl
R2Q=100 # точность ограничений

sudo touch eth1-2.root # корневой класс
sudo nano eth1-2.root

RATE=330Mbit # гарантированная пропускная способность
CEIL=330Mbit # максимальная пропускная способность
BURST=15k # первые 15k без ограничений

sudo touch eth1-2:10.dfl # сюда попадает трафик, не попадающий ни в одно из правил ниже
sudo nano eth1-2:10.dfl

RATE=1024Kbit # гарантированная пропускная способность
CEIL=300Mbit # максимальная пропускная способность
LEAF=sfq # равномерное распределение между участниками очереди.
PRIO=2 # PRIO задает приоритет класса трафика (1- максимальный, чем больше число — тем меньшt приоритет).

sudo touch eth1-2:20.rdp # гарантированный канал для rdp
sudo nano eth1-2:20.rdp

RATE=1024Kbit # гарантированная пропускная способность
CEIL=2048Kbit # максимальная пропускная способность
BURST=15k # первые 15k без ограничений
LEAF=sfq # равномерное распределение между участниками очереди.
RULE=*:3389 # Применять правило для трафика, у которого порт назначения - rdp-порт
PRIO=1

sudo touch eth1-2:30.100 # ограничиваем скорость для ip 192.168.1.100
sudo nano eth1-2:30.100

RATE=64Kbit # гарантированная пропускная способность
CEIL=64Kbit  # максимальная пропускная способность
BURST=15k # максимальная пропускная способность
LEAF=sfq # равномерное распределение между участниками очереди.
RULE= 192.168.1.100
PRIO=3

Осталось запустить скрипт:

htb compile # тест. можно посмотреть какие правила будут сформированы и ошибки, если есть.
htb start # запуск
htb stop # остановка
htb restart # перезапуск после внесения изменений в файлы конфигурации

При вышеописанной настройке мы добились того, что канал делится между всеми поровну исходя из заданных значений.
Максимальный приоритет у входящего и исходящего RDP-трафика (удаленные приложения Remote App также используют этот протокол).
IP-адрес 192.168.1.100 ограничен во входящей скорости до 64 kb/sec, в исходящей скорости ограничений нет.

Подробнее о работе htb.init можно почитать по следующим ссылкам:
и вообще найти что-то поиском.

15. Графики за N-период по работе сервера:


16. Отчет Lightsquid:


воскресенье, 15 декабря 2013 г.

wondershaper

Т.К. на моем микросервере перманентно раздаются/скачиваются торренты, я решил облечить себе существование в плане безтормозного промотра страничек и использования RDP, шэйпером в виде Wondershaper.
Итак:
1. Ставим wondershaper:
apt-get install wondershaper
2. Отключаем все сетевые сервисы и замеряем скорость канала с помощью любого сервиса в сети (например: http://2ip.ru/speed/). У меня download 4800 upload 550
3. Описываем для wondershaper свой канал (для нужного интерфейса, в моем случае ppp0), задаем значения чуть меньше:
wondershaper ppp0 4400 500
Все шейпер работает.
4. В конфиге описывает сервисы для наибольшего приоритета
nano /sbin/wondershaper
(у меня так):
NOPRIOPORTSRC="22 8112" #сервисы на  моем сервере
NOPRIOPORTDST="80 443 3389" #удаленные сервисы
5. Чтобы отменить шейпинг вводим команду:
wondershaper clear ppp0
6. Чтобы постоянно не запускать шейпер после рестарта делаем скрипт вида:
#!/bin/sh
wondershaper ppp0 4400 500

7. делаем его исполняемым:
chmod +x /your_folder/your_name_of_skript.sh
8. Чтобы скрипт стартовал при старте сети добавляем строчку в /etc/network/interfaces:
post-up /your_folder/your_name_of_skript.sh

Все, скрипт будет запускаться при загрузке системы.



суббота, 16 ноября 2013 г.

MRTG

0. Уже должен быть установлен web-сервер.

1. Ставим: aptitude install mrtg snmpd
2. в конфиге /etc/snmp/snmpd.conf
добавим строку:

com2sec readonly default public

3. Перезапускаем:

/etc/init.d/snmpd restart

4. Добавляем в крон:

*/05 * * * * USER if [ -x /usr/bin/mrtg ] && [ -r /etc/mrtg.cfg ]; then mkdir -p /var/log/mrtg; env LANG=C /usr/bin/mrtg /etc/mrtg.cfg 2>&1 | tee -a /var/log/mrtg/mrtg.log; fi

5. Добавляем устройства которые хотим мониторить, например:

cfgmaker public@127.0.0.1 >> /etc/mrtg.cfg

на устройствах должен работать snmp.

Через пять минут по адресу http://yourhost/mrtg сможем наблюдать график.

6. Можем наблюдать загрузку процессора, его температуру, загрузку оперативной памяти и swap, заполненность жесткого диска, температуру жесткого диска.

a1) загрузка CPU - скрипт

#!/bin/sh
sensors | grep -A 1 'Core 0' | awk '{print $3-0 }'

а2) часть в mrtg.cfg

Target[cpu]: `/usr/bin/awk '/cpu /{print $2+$3; print $2+$3+$4; print "Some_time";print "localhost"}'</proc/stat`
Title[cpu]: CPU usage
PageTop[cpu]: <H1>CPU Usage</H1>
MaxBytes[cpu]: 200 #двухядерный процессор
ShortLegend[cpu]: %
YLegend[cpu]: CPU Usage
Legend1[cpu]: Time spent in user mode
Legend2[cpu]: Time spent in user + system mode
LegendI[cpu]: user:
LegendO[cpu]: system:
Options[cpu]: growright,nopercent,transparent,pngdate,noinfo
Unscaled[cpu]: ymwd

b1) температура CPU - скрипт

#!/bin/sh
sensors | grep -A 1 'Core 0' | awk '{print $3-0 }'

b2) часть в mrtg.cfg

#cpu_temp
Target[cpu_temp]: `/home/USER/mrtg/cpu_temp.sh`
Title[cpu_temp]: CPU Temperature
PageTop[cpu_temp]: <h1>CPU Temperature</h1>
MaxBytes[cpu_temp]: 100
ShortLegend[cpu_temp]: C
YLegend[cpu_temp]: Temperature, C
LegendI[cpu_temp]: Core 1
LegendO[cpu_temp]: Core 2
Legend1[cpu_temp]: Core 1
Legend2[cpu_temp]: Core 2
Options[cpu_temp]: gauge,growright,nopercent
#kMG[cpu_temp]: k,M,G,T,P,X
Colours[cpu_temp]: RED#bb0000,BLUE#1000ff,GREEN#006600,VIOLET#ff00ff
Unscaled[cpu_temp]: ymwd

c1) загрузка оперативки и своп - скрипт

#!/bin/sh
/usr/bin/free -k | awk '\
NR==3 {ramUsed = $3 }\
NR==4 {swapUsed = $3 }\
END { print swapUsed "\n" ramUsed "\n0\n0" }'


c2)  часть в mrtg.cfg

#memory_usage
Target[localmem]: `/home/USER/mrtg/memstat.sh`
Title[localmem]: Mem and Swap Usage
PageTop[localmem]: <h1>Memory and Swap Usage</h1>
MaxBytes[localmem]: 100000000000
ShortLegend[localmem]: B
YLegend[localmem]: Memory&Swap
LegendI[localmem]: Swap
LegendO[localmem]: Memory
Legend1[localmem]: Swap
Legend2[localmem]: Memory
Options[localmem]: gauge,growright,nopercent
kMG[localmem]: k,M,G,T,P,X
Colours[localmem]: RED#bb0000,BLUE#1000ff,GREEN#006600,VIOLET#ff00ff

d1) заполненость жесткого диска

#! /bin/bash
df -h | grep "/dev/sd" | grep -Po "[0-9]+(?=%)"

d2) часть  в mrtg.cfg

#hdd
Target[hdd]: `/home/USER/mrtg/disk.sh`
Title[hdd]: HDD Usage
PageTop[hdd]: <h1>1 Tb HDD Usage</h1>
MaxBytes[hdd]: 100
ShortLegend[hdd]: %
YLegend[hdd]: Percent
Legend1[hdd]: 100%
Legend2[hdd]: Time spent in user + system mode
LegendI[hdd]: Usage:
#LegendO[hdd]: :
Options[hdd]: gauge,growright,nopercent
Colours[hdd]: RED#bb0000,BLUE#1000ff,GREEN#006600,VIOLET#ff00ff
Unscaled[hdd]: ymwd

e1) температура жесткого диска -скрипт

#!/bin/bash
sudo hddtemp -n /dev/sda #hddtemp без sudo не работает


e2)  часть  в mrtg.cfg

#hdd temp
Target[hddtemp]: `/home/USER/mrtg/hdd_temp.sh`
Title[hddtemp]: HDD Temp
PageTop[hddtemp]: <h1>HDD Temperature</h1>
MaxBytes[hddtemp]: 110
ShortLegend[hddtemp]: C
YLegend[hddtemp]: Temperature, C
Legend1[hddtemp]: Temp HDD
Legend2[hddtemp]: Temp HDD 2
#LegendI[hddtemp]:Temp HDD 3
Options[hddtemp]: gauge,growright,nopercent
#kMG[hddtemp]: k,M,G,T,P,X
Colours[hddtemp]: VIOLET#ff00ff,RED#bb0000,BLUE#1000ff,GREEN#006600
Unscaled[hddtemp]: ymwd

7. все скрипты должны быть исполняемыми, например:

chmod  +x /home/USER/mrtg/hdd_temp.sh

чтобы графики рисовались справо-налево раскомментируем в  /etc/mrtg.cfg строку

Options[_]: growright, bits

после заполнения mrtg.cfg делаем:

indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html


если вылезают ошибки - исправляем.

8. Если все ок, по адресу http://yourhost/mrtg через какое-то время сможем увидеть примерно следующее:


пятница, 27 сентября 2013 г.

FTP сервер proftpd (установка и настройка).

Возникла надобность обменяться файлами с друзьями. Решил, что лучше всего для выполнения этой задачи подойдет FTP сервер. Сказано - сделано. Поехали.
Оговорка: сервер не находится за NAT, порт смотрит прямо в инет.

1. Устанавливаем proftpd:
apt-get install proftpd
В процессе установки выбираем standalone.
2. Добавим нашего ftp юзера, одновременно запрещая ему доступ к shell:
adduser guest --shell /bin/false
3. Дадим полные права на домашний каталог (с правами будем разбираться в конфиге):
chmod 777 -R /home/guest
4. Откроем proftpd.conf и начнем настройку  proftpd:
nano /etc/proftpd/proftpd.conf

тут я опишу что у меня отличается от дефолтного  proftpd.conf

DefaultRoot /home/guest   # "запираем" пользователя guest в своем каталоге
Port          21   #стандартный FTP порт, его надо открыть или изменить на тот который нравится, в этом случае на стороне клиента придется его указать.
RequireValidShell off   # запрещаем shell
PassivePorts 49555 49556  #открываем произвольные порты, нужно для пассивного режима, если FTP клиент в активном режиме, то можно этого не делать

запрещаем юзеру удалять и записывать в домашний католог и вложенные в него (тут можно варьировать, изменяя пути к каталогам и лимиты):


<Directory /home/guest/*>
<Limit DELE WRITE>
DenyAll
</Limit>
</Directory>

Для того, чтобы в логах proftpd отображалось правильное время добавим строки:

TimesGMT off
SetEnv TZ :/etc/localtime

Сохраняем, выходим.

5. Корректно выставляем время:
ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime

6. Проверяем:
 ls -l /etc/localtime

7. Перезапускаем proftpd
/etc/init.d/proftpd restart

Если нужные порты открыты, то все должно заработать.

понедельник, 2 сентября 2013 г.

Фортунки :)

Узнал на каком-то из форумов, что можно установить пакет fortunes-ubuntu-server , который будет показывать разные полезные советы - "фортунки" по Убунту/Линукс. Собственно с помощью этого пакета можно выводить сообщения RSS лент, новости, погоду и т.д.
Меня все же больше интересуют советы по Линукс.

1. Ставим:
apt-get install fortunes-ubuntu-server fortunes fortunes-min fortune-mod fortunes-ru

Проверим:
/usr/bin/ubuntu-server-tip
фортунка должна быть на английском, но нам бы хотелось на русском...

2. Подправим файл  /usr/bin/ubuntu-server-tip
на всякий случай я закоментил строку
#FORTUNEDB="ubuntu-server-tips"
и внес другую
FORTUNEDB="ubuntu-server-tips-ru"

3. Проверим:
/usr/bin/ubuntu-server-tip
должно быть на русском.

4. Изначально я хотел не просто читать фортунки, а чтобы они выводились при залогинивании в системе. Для этого:
nano /home/your_name/.profile
в конец внесем строчку:
/usr/bin/ubuntu-server-tip

5. выйдем и залогинимся вновь, теперь нас должна встретить фортунка:


P.S. Так например, с помощью одной из фортунок я узнал о существавании консольного браузера w3m. Наличие которого, полагаю может помочь в трудную минуту.

Вводим в консоли:
w3m http://google.ru
Видим вывод гугла после ввода поискового запроса, кстати в яндексе поиск не заработал.