user@opensuse:~> sudo zypper install squid
user@opensuse:~> sudo chkconfig squid on
user@opensuse:~> service squid start
2) Настраиваем squid. В файле /etc/squid/squid.conf находим строку http_port 3128, меняем ее на:
http_port 192.168.1.1:3128 transparent
Внимание! Вместое 192.168.1.1 вам необходимо вписать адрес сервера в вашей локальной сети.. Это мы делаем для того, чтобы если вы даже где-то и ошиблись с конфигурацией файрволла, то никто извне не смог пользоваться вашим прокси сервером.
3) Перезапускаем squid:
user@opensuse:~> service squid restart
4) Настраиваем SuSEfirewall2. Находим параметр FW_REDIRECT="" в файле /etc/sysconfig/SuSEfirewall2 и меняем на:
FW_REDIRECT="192.168.1.0/24,0/0,tcp,80,3128"
Внимание! Вместо 192.168.1.0/24 вам необходимо вписать адрес и маску вашей локальной сети.Этот параметр так же требует, чтобы FW_ROUTE="yes" , если у вас уже настроен роутинг то значит все окей, если нет, ищите параметр в этом же файле и выставляйте правильно.
5) Перезапускаем SuSEfirewall2:
service SuSEfirewall2_setup restart
Все, уже после этого, у вас весь траффик будет идти через squid.
К выше сказанному хочется добавить несколько советов по оптимизации КЭШа. Добавьте в конец /etc/squid/squid.conf следующие опции:
# Максимальный размер файла который может быть сохранен в кэше.
maximum_object_size 64 MB
# Параметры определяет какие файлы в кэше будут заменены, когда необходимо место в кэше.
cache_replacement_policy heap LFUDA
memory_replacement_policy heap GDSF
# Описание
reload_into_ims on
# Оптимизация кэширования, путем игнорирования некоторых заголовков.
refresh_pattern -i (cam|kam|live|stream).*\.(gif|jpeg|jpg)(\?.*|)$ 10 20% 28800 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private ignore-auth
refresh_pattern -i \.(gif|jpeg|jpg|swf|png|bmp|pic)$ 2880 20% 28800 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private ignore-auth
refresh_pattern -i \.(html|php|asp|dll|htm|aspx|mspx|shtml|cgi|php3|jse|phtml|po|pl|fcgi|jsp|py|php4)$ 10 20% 28800 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private
refresh_pattern -i \.(js|css|class|jar|xml|txt|cfm|doc|xls|pdf)$ 2880 20% 28800 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private ignore-auth
refresh_pattern -i \.(exe|gz|tar|tgz|zip|arj|ace|bin|cab|msi)(\?.*|)$ 10 20% 2880 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private ignore-auth
refresh_pattern -i \.(mid|mp[234]|wav|ram|rm|au)(\?.*|)$ 2880 20% 28800 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private ignore-auth
refresh_pattern -i \.(mpg|mpeg|avi|asf|wmv|wma)(\?.*|)$ 2880 20% 28800 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private ignore-auth
refresh_pattern . 0 20% 2880 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private
Информация об опциях squid очень подробно расписана, разумеется, здесь
Подводные камни: если у вас в локальной сети есть свой вебсервер, вы столкнетесь с тем, что все внутренние клиенты будут иметь адрес шлюза. Вы можете использовать mod_rpaf(для apache) или немного модифицировать правила SuSEfirewall2
Тех, кто дочитал до конца, поздравляю с прошедшим старым новым годом!
]]>Шаг 1: Установка pptp
user@opensuse:~> sudo zypper install pptpd
Шаг 2: Настройка pptp (Не забываем удалить все содержимое файла)
user@opensuse:~> sudo mcedit /etc/pptpd.conf
Вписываем следующие опции:
option /etc/ppp/options.pptp # Файл с опциями для демоа pppd
localip 192.168.5.1 # Локальный IP VPN сервера
remoteip 192.168.5.2-102 # диапазон IP адресов, которые будут назначаться клиентам
pidfile /var/run/pptpd.pid
Шаг 3: Прописываем опции для pppd (Не забываем удалить все содержимое файла)
user@opensuse:~> sudo mcedit options.pptp
Вписываем следущее:
lock # Включаем блокировку интерфейса, чтобы избежать попыток использовать этот интерфейс другими соединениями
auth # Включение аутентификации
nodeflate # Отключаем сжатие
name pptpd # Имя , используется для аутентификации
refuse-chap # запрещение авторизации по протоколу CHAP
require-mppe-128 # поддержка шифрования MPPE128
require-mschap-v2 # поддержка метода аутентификации MSCHAP v2
nobsdcomp # отключаем сжатие потока данных по алгоритму BSD
mtu 1400 # Для тех, кто не знает - учим Вики
mru 1400 # Maximum Receive Unit, можно почитать тут и тут
lcp-echo-failure 5 # PPPD разорвет соединение с клиентом, если он не ответит на 5 echo запросов
lcp-echo-interval 30 # PPPD будет посылать echo-запросы каждые 30 секунд
proxyarp # Проксирование ARP запросов (позволяет видеть клиентам других клиентов подключенным по VPN)
Шаг 4: Открываем порт в файрволле:
user@opensuse:~> sudo mcedit /etc/sysconfig/SuSEfirewall2
Находим параметр FW_SERVICES_EXT_TCP и добавляем туда порт 1723
Шаг 5: Перезапускаем файрволл, чтобы применить новые правила:
user@opensuse:~> sudo /etc/init.d/SuSEfirewall2_setup restart
Шаг 6: Добавляем сервис в автозагрузку и стартуем
user@opensuse:~> sudo chkconfig pptpd on
user@opensuse:~> sudo /etc/init.d/pptpd start
Послесловие
Так же вы можете настроить NAT и пользоваться VPN повсеместно(Настройку NAT я описывал ранее). Однако, не забываем о проблемах, которые существуют у протокола GRE (он необходим для работы PPTP). Нужно подгружать необходимые модули на Gateway'e, чтобы все компьютеры за NAT'ом могли пользоваться VPN, либо ставить pptp proxy. Я пользуюсь первым способом, для этого вам потребуются модули "ip_nat_pptp" и "ip_conntrack_pptp". Но все равно, остаются проблемы использования PPTP в WI-FI кафе или в других местах, где нет никакий гарантий для GRE траффика.
P.S. Счастливого нового года друзья
]]>Установить и запустить его в openSUSE не просто просто, а очень просто
domU-12-31-38-01-D2-A3:~ # zypper install dnsmasq
domU-12-31-38-01-D2-A3:~ # /etc/init.d/dnsmasq start
Конфигурационный файл /etc/dnsmasq.conf очень хорошо прокомментирован и не составляет особого труда в нем разобраться. Официальный сайт разработчиков - http://www.thekelleys.org.uk/ , я выражаю огромную благодарность разработчикам за их прекрасный инструмент.
]]>Начнем по порядку:
Устанавливаем:
user@opensuse:~> sudo zypper install bind
Теперь просто правим конфигурационный файл. Здесь я хочу сказать, что я изменил всего несколько строк в стандартном файле, привожу их здесь:
user@opensuse:~>sudo mcedit /etc/named.conf
# Слушаем на порту 53 на интерфейсах 127.0.0.1 и 192.168.1.1
listen-on port 53 { 127.0.0.1; 192.168.1.1; };
# Не слушаем на ipv6
listen-on-v6 { none; };
# Уменьшаем уровень логирования ошибок:
logging {
channel syslog_errors {
syslog user;
severity error;
};
category default { syslog_errors; };
};
Готово! Теперь ставим named в автозапуск:
user@opensuse:~>sudo chkconfig named on
Ставим права на рабочую директорию named
user@opensuse:~>sudo chown -R named:named /var/lib/named/
Запускаем DNS сервер
user@opensuse:~>sudo /etc/init.d/named start
Можно прописать его в resolv.conf для использования по умолчанию, но, мне кажется, лучше оставить DNS провайдера на сервере.
Устанавливаем его в систему
user@opensuse:~> sudo zypper install dhcp-server
Убираем текущий /etc/dhcpd.conf и создаем его заново
user@opensuse:~> sudo mv /etc/dhcpd.conf /etc/dhcpd.conf.old && sudo touch /etc/dhcpd.conf
В него вписываем следующие строки:
user@opensuse:~> sudo mcedit /etc/dhcpd.conf
# IP сервера указано тут потому что мы подняли собственный DNS. Вы можете использовать тут DNS провайдера.
option domain-name-servers 192.168.1.1;
# Отключаем динамические обновления DNS
ddns-update-style none;
ddns-updates off;
log-facility local7;
# Наша подсеть
subnet 192.168.1.0 netmask 255.255.255.0 {
# Диапазон выдаваемых IP адресов.
range 192.168.1.2 192.168.1.254;
# Дефолтный gateway
option routers 192.168.1.1;
# Время обновления адресов(12 часов).
default-lease-time 43200;
max-lease-time 86400;
}
*UPDATE*
Необходимо указать интерфейс, на котором будет слушать DHCPD - в /etc/sysconfig/dhcpd:
DHCPD_INTERFACE=»ethX»
Все, теперь запускаем сервис
user@opensuse:~>sudo /etc/init.d/dhcpd start
И добавляем его в автозагрузку.
user@opensuse:~>sudo chkconfig dhcpd on
Все необходимые настройки заключены в одном файле /etc/sysconfig/SuSEfirewall2. Открываем его с помощью любимого текстового редактора и начинаем править ( в моем случае - mcedit ):
user@opensuse:~> sudo mcedit /etc/sysconfig/SuSEfirewall2
В секции 2 вам нужно указать ваши интерфейсы, какие из них будут внешними, какие внутренними:
# Внешние ( в принципе можно не указывать, по умолчанию все интерфейсы являются внешними):
FW_DEV_EXT="any eth1"
# Внутренние:
FW_DEV_INT="eth0"
В секции 5 находятся еще два нужных нам параметра:
# Включаем роутинг в ядре
FW_ROUTE="yes"
# Разрешаем маскардинг
FW_MASQUERADE="yes"
В секции 6 указываем вашу подсеть, в моем случае - это 192.168.1.0/24:
FW_MASQ_NETS="192.168.1.0/24"
Готово! Теперь осталось применить правила и насладиться результатом:
user@opensuse:~> sudo /etc/init.d/SuSEfirewall2_setup restart
После выполнения данных действий все ваши компьютеры в сети смогут получать автоматический IP адрес, будут использовать ваш собственный DNS сервер и иметь доступ в интернет. В принципе, я потратил на это все минут 20, канал в интернет не очень широкий В следующий раз расскажу о подсчете траффика для клиентов, я еще сам разобраюсь с данной темой. Если вдруг вы увидите какую-то ошибку в статье или выполняя все инструкции вы не получили желаемого результата, пишите, я постараюсь помочь.
]]>А теперь о позитивном, недавно вернулся с конференции HighLoad ++. Узнал очень много нового и интересного, а самое главное полезного! Очень понравились выступления Joe Dalmato, James’a Golick’a, Юры Вострикова, Антона Грицая, Олега Илларионова и остальных докладчиков. Их рассказы сэкономили огромное количество времени, которое могло быть потрачено на исследование мануалов и поиск решений. Особо я думаю следует выделить Павла Дурова, который, все-таки, дал информацию о работе крупнейшего сайта в рунете. Организаторы обещали выложить видео с конференции, но когда это будет сделано – не понятно, в свете предыдущих конференций. Но я записал на видео несколько презентаций, и если в течении 2х недель их не выложат в открытый доступ, я выложу хотя бы свои, как говорится, чтобы было
С блогом произошло еще одно маленькое изменение, я получил в начале месяца письмо от Антона Резника из проекта openSUSE о правильном написании названия любимого дистрибутива. Огромное ему спасибо за предоставленную информацию, дорогие читатели, вы можете прочитать об этом более подробно здесь . Со своей стороны я сделал глобальные исправления слов openSUSE для всех статей в блоге, а так же названия.
А еще я активно занимаюсь сейчас lifehacking’ом и накопил уже некоторый опыт в этом. Ведь свободного времени очень мало и хочется его хоть как то оптимизировать. Да и еще при столь загруженной работе не загнуться за компом! Это очень важно и, конечно, хотелось бы с ним поделиться этим с вами, читатель.
]]>user@linux-m71t:~> zypper install samba
user@linux-m71t:~> cat /etc/samba/smb.conf
········# Рабочая группа
workgroup = WORKGROUP
#Механизм хранения данных пользователей и групп. Более подробно Тут
passdb backend = tdbsam
#Интерпретация информации о принтере. Очень подробно расписано на этой страничке - Тут
printing = cups
# Для использования принтера через CUPS параметр должен иметь значение CUPS
printcap name = cups
# Время, через которое samba проводит опрос всех подключенных принтеров
printcap cache time = 750
# Параметр для библиотеки CUPS
cups options = raw
······· # Параметр работает только при security=share и отвечает за то, что делать samba, когда пользователь не прошел аутентификацию.
map to guest = Bad User
# Подключаем файл dhcp.conf
include = /etc/samba/dhcp.conf
# Директория, где хранятся профили пользователей
logon path = \\%L\profiles\.msprofile
# Путь до домашней директории пользователя
logon home = \\%L\%U\.9xprofile
# Диск, к которому домашняя директория будет подключена
logon drive = P:
# Разрешать ли гостям доступ к общим папкам пользователей (аналог guest ok = yes)
usershare allow guests = Yes
# Интерфейсы на которых будет слушать Samba
interfaces = eth0
# Слушать только указанные интерфейсы
bind interfaces only=yes
# Название сервера, %h - означает автоматическую подстановку имени хоста
server string = %h server
# Имя netbios. Ознаечает, что ваш компьютер будет доступен через \\DATA
netbios name = DATA
# Одна из самых важных опций в файле. Она отвечает за то, как Samba будет отвечать клиентам. Совую обязательно почитать man smb.conf по этой опции
security = SHARE
# Включаем встроенный WINS сервер
wins support = yes
[storage]
# Название общей папки, под которым она будет доступна в сети
comment = Storage
# Путь до папки
path = /home/common_storage
# Определяет, доступна ли эта папка на запись
read only = No
# Синоним (create mode). Определяет права доступа при создании файлов
create mask = 0700
# Отображается ли расшаренная папка в сети
browseable = Yes
# Разрешает доступ к общей папке без пароля (т.е. гостям)
guest ok = Yes
[storage]
.....
# Ключевое слово ALL обозначает 0/0 , а EXCEPT - исключения.
hosts deny = ALL, EXCEPT 192.168.0.2, 192.168.0.3, 192.168.0.4
Обязательно почитайте man smb.conf, там очень подробно и понятно все расписано. И, кстати, security=user все-таки предпочтительней. Жду вопросов в комментариях, до новых встреч!
]]>с которым работа ведется только по SSH. Это очень удобно, если где-то у вас имеется мощный сервер, а хочется экспериментов, ставим VirtualBox, поднимаем RDP/VNC в системе, в зависимости от предпочтений
и пользуемся Указанная последовательность настройки VirtualBox будет работать в любом линукс дистрибутиве. Изначально, в репозиториях есть Open Source версия эмулятора. Она нам не подходит, потому что в ней нет поддержки удаленного рабочего стола. Поэтому необходимо скачать VirtualBox со странички VirtualBox downloads. Там есть версии для openSUSE начиная с 11.0.
1) Скачиваем и устанавливаем(Можно просто указать ссылку с сайта virtualbox’):
linux-z5dl:/path # zypper install VirtualBox-3.2-3.2.8_64453_openSUSE111-1.i586.rpm
2) Начинаем настройку(Внимание! Настраивать virtualbox необходимо под непривелигированным пользователем):
- создаем новую виртуальную машину с именем WinXP.
user@myhost:~> VBoxManage createvm --name WinXP --register
- создаем для нее жесткий диск WinXP.vdi (на этом шаге рекомендую записать UID созданного диска, у меня он получился таким: b294b483-8654-47f6-8dc0-c7c4c6f0a66e):
user@myhost:~> VBoxManage createvdi -filename "WinXP.vdi" -size 20000
- Назначаем общие параметры для виртуальной машины:
user@myhost:~> VBoxManage modifyvm WinXP --ostype WindowsXP --memory 512 --pae on --audio alsa --vram 128
Здесь прокомментирую поподробней все параметры:
ostype – тип гостевой операционной системы, все поддерживаемые типы можно посмотреть командой
user@myhost:~> VBoxManage list ostypes
memory – количество оперативной памяти
audio – устройство для вывода звука
vram – количество виртуальной видео памяти
Список всех остальных параметров можно узнать, если выполнить команду:
user@myhost:~> VBoxManage modifyvm
- Создаем новый IDE контроллер для виртуальной машины:
user@myhost:~> VBoxManage storagectl WinXP --name IDE0 --add ide
- Добавляем жесткий диск к контроллеру:
user@myhost:~> VBoxManage storageattach WinXP --storagectl IDE0 --port 0 --device 0 --type hdd --medium b294b483-8654-47f6-8dc0-c7c4c6f0a66e
- Теперь добавим образ ISO, с которого будем ставить систему
user@myhost:~> VBoxManage storageattach WinXP --storagectl "IDE0" --port 1 --device 0 --type dvddrive --medium "/path/to/iso/winxp-pro-sp3.iso"
- Подключяем машину бриджем, чтобы была доступна как обычный хост
user@myhost:~> VBoxManage modifyvm WinXP --nic1 bridged --bridgeadapter1 eth0 --cableconnected1 on
В принципе, если не нужен доступ к машине напрямую из вне, то можете подключать ее под NAT'ом. Но я все-таки рекомендую подключить ее именно так, для удобства управления.
- Сообщаем ей, что грузится надо с ДВД привода:
user@myhost:~> VBoxManage modifyvm WinXP --boot1 dvd
- Включаем RDP, чтобы можно было удаленно управлять процессом установки:
user@myhost:~> VBoxManage modifyvm WinXP --vrdp on --vrdpport 4000
- Запускаем в screen’e:
user@myhost:~> screen –RD VBOX
user@myhost:~> VBoxHeadless -startvm WinXP
Все! Установка и настройка завершена, теперь откройте порт 4000 в файрволле, подключайтесь к машине и начинайте установку ОС, в данном случае Windows. Хочется добавить, что интерфейс RDP немного кривоват и глючила мышка, наверное, от слишком большого разрешения на моем мониторе, но после установки системы, я разрешил удаленное управление в Windows и теперь напрямик попадаю в систему по RDP, не используя реализацию от VirtualBox. В конечном счете получился просто удаленный компьютер с Windows XP на борту, ничем не отличающийся от обычной машины. Не забудьте добавить пользователя в группу vboxusers.
Да кстати, отключить машину(жестко) можно командой:
user@myhost:~> VBoxManage controlvm WinXP poweroff
или эмулировать нажатие power button:
user@myhost:~> VBoxManage controlvm WinXP acpipowerbutton
VBoxManage --help и чтение документации поможет разобраться вам с остальными тонкостями настройки виртуальной машины, например, такими как подключение 3D рендеринга и аппаратной виртуализации.
Поздравляю всех с первым днем осени!
]]>Если вы еще не опытный пользователь или просто опасаетесь за свою систему, то можете опробовать KDE 4.5 с помощью Live CD. Остальным же, кто не боится, предлагается сделать следующее.
1. Удалите все старые репозитории KDE:KDE4:*и KDE:Qt*. (YaST -> «Software Repositories»)
2. Добавьте репозитории, содержащие 4.5.0: KDE:Distro:Factory:
sudo zypper addrepo -f http://download.opensuse.org/repositories/KDE:/Distro:/Factory/openSUSE_11.3 KDE45
3. Добавьте дополнительный репозиторий(рекомендуется)
sudo zypper addrepo -f http://download.opensuse.org/repositories/KDE:/Extra/openSUSE_11.3_KDE_Distro_Factory KDE-Extra
4. Обновите все пакеты из KDE:Distro:Factory and KDE:Extra:
sudo zypper dist-upgrade --from KDE45 --from KDE-Extra
5. Если вы используете knetworkmanager, то вам стоит заменить его на Network Management plasmoid, потому что в версии KNM 4.5.0 обнаружен баг, скрывающий все соединения. Лучше всего, если вы сделаете это до обновления, иначе есть риск остаться без соединения с Интернет. Разрешите zipper удалить NetworkManager-kde4:
sudo zypper install plasmoid-networkmanagement
6. Выйдите из KDE, потом снова залогиньтесь.
После обновления вам необходимо сделать доступным бэк-энд WebKit для Konqueror, чтобы иметь возможность воспользоваться тем небывалым ускорением, которое он дает для рабочего стола.
]]>
Возможно, из-за слишком больших задержек в процессе выпуска, вы уже не захотите видеть дебют нового KDE в openSUSE 11.4, выход которой намечен на март следующего года. Но чем же все-таки он привлекателен?
Одним из небольших, но важных изменений стало включение WebKit в платформу KDE. Те, кто разбирается в истории KDE, должны помнить, что WebKit был разработан на основе KHTML, инновационного и ультра-быстрого движка, также использованного для создания Konqueror. История отсылает нас к тому дню, когда компания Apple прекратила многолетнюю грызню между членами опенсорс-сообщества по поводу KHTML, запустив проект WebKit. С тех пор проект получил чрезвычайно сильное развитие, став одним из наиболее распространенных в мире движков для веб-интерфейсов и дав путевку в жизнь таким браузерам, как Safari для Mac OS и Google Chrome. Все улучшения, которым подвергался WebKit за последние восемь лет, доступны сейчас для юзеров KDE, использующих Konqueror.
Несмотря на огромное значение добавления WebKit, это не единственное существенное изменение нынешнего релиза. Для краткости я не буду углубляться в повествование о других преимуществах, поскольку о них вы можете легко найти информацию сами.
Поговорим о внешнем виде. Он обязательно должен вам понравиться! Рабочая область может быть очищена несколькими способами, а область уведомлений стала выглядеть еще более изысканно с новыми монохромными иконками.
В KDE 4.5 вы можете значительно легче управлять окнами, чем в предыдущих релизах, более эффективно располагая окна на экране с помощью способов, заимствованных из других менеджеров окон. Начиная с этого релиза, вы можете использовать функцию drap-and-drop для qt-приложений(KOffice, KMail и т.д.), просто захватывая пустое место в окне, которое теперь автоматически превращается в ручку для перетаскивания окна.
Этот релиз выглядит действительно замечательным, и я не стану ждать релиза KDE 4.6, который должен выйти вместе с openSUSE 11.4 в марте следующего года. Если вы не хотите ждать следующего релиза openSUSE с включенным в нее KDE 4.5 и openSUSE стоит у вас в виртуальной машине, то можете поставить новые «кеды» из репозиториев. Я бы не рекомендовал ставить KDE 4.5 на компьютере, который вы используете в повседневной работе, чтобы не создавать угрозу его стабильности.
]]>Наслаждаемся ]]>