Wednesday, July 29, 2009

Добавление сетевого принтера

Почти все пользователи Debian (как и другой Linux системы) сталкиваются с проблемой настройки принтера. В данной статье хочу рассмотреть добавление сетевого принтера средствами CUPS (Common UNIX Printing System)

Для начала установим CUPS
aptitude install cups
После успешной установки заходив в ваш любимый браузер и набираем слудующие
http://127.0.0.1:631
Перед вами веб интерфейс CUPS. Жмем Add Printer, указываем его имя, размещение (IT например) и описание (если надо) идем дальше Continue. В списке Device выбираем или сразу ваш сетевой принтер (если он есть в списке) если нет, тогда выбираем Windows Printer via SAMBA. В следущей закладке Device URI пишем следующие socket://(ип_адресс_принтера). Потом выбираем модель принтера из списка Make (например HP) и потом его модель из списка Model (например HP LaserJet Series PCL 6 CUPS (en))

Все, Вы успешно добавили сетевой принтер. Теперь зайдя в закладку Printers вы увидете ваш принтер, и можете дополнительно настроить его.

Thursday, July 23, 2009

LightSquid настройка анализатора логов Squid

Короткий мануал по установке и настройке LightSquid

Для начала у нас на системе должны быть установленны:
  1. Perl
  2. Веб сервер (Я использовал Apache)
  3. Squid (Ну собственно без него зачем нам анализатор? :) )
  4. Cron (В большинстве случаев уже установлен)
#aptitude install perl
#aptitude install apache
#aptitude install cron

1 Установка LightSquid

Создаем папку в котору юбудем устанавливать LightSquid:
#mkdir /var/www/lightsquid /возможно у вас будет "/var/www/htdocs/lightsquid"
#cd lightsquid
#wget http://downloads.sourceforge.net/project/lightsquid/lightsquid/1.8/lightsquid-1.8.tgz /посмотреть ссылку для скачивания можно тут - http://sourceforge.net/project/showfiles.php?group_id=135328
#tar -xzf lightsquid.tgz /распаковываем архив
Устанавливаем права на запуск скриптов:
#chmod +x *.cgi
#chmod +x *.pl
Меням владельца файлов:

#chown -R apache:apache * /тут apache пользователь и сервер под которым запускается веб сервер, если запускается под root то ничего менять ненадо
2 Настройка Apache

.cgi файлы должны обрабатываться как CGI скрипты

#nano /etc/apache/apache.conf
Нужно дописать в конф файл следущие строчки

/ваш путь
AddHandler cgi-script .cgi
AllowOverride All


#/etc/init.d/apache restart /перезагружаем apache
3 Редактируем lightsquid.cfg

Нужно ввести свои значения в этих полях, если все делали как выше написано, то изменить тогда надо только путь к логам squid
#path to additional `cfg` files
$cfgpath ="/var/www/lightsquid";
#path to `tpl` folder
$tplpath ="/var/www/lightsquid/tpl";
#path to `lang` folder
$langpath ="/var/www/lightsquid/lang";
#path to `report` folder
$reportpath ="/var/www/lightsquid/report";
#path to access.log
$logpath ="/var/log/squid";
#path to `ip2name` folder
$ip2namepath ="/var/www/lightsquid/ip2name";
4 Графические отчеты.

Для работы графический отчетов в LightSquid вам нужно установить GD библиотеку.
#aptitude install libgd-gd2-perl
5 Проверка check-setup.pl

Чтоб проверить правильно ли все настроено запускаем check-setup.pl
#./check-setup.pl
Если все нормально, идем дальше, если нет - читаем в чем ошыбка и исправляем.

6 Пробный запуск lightparser.pl
#./lightparser.pl
Так же возможно пропарсить старые log файлы
#./lightparser.pl access.log.1.{gz|bz2}
#./lightparser.pl access.log.2.{gz|bz2}
#./lightparser.pl access.log.3.{gz|bz2}
...
7 Пробуем зайти на lightsquid
http://<ваш хост>/lightsquid/
8 Установко задания в cron

Если вы не хотите каждый раз перед тем как посмотреть статистику, заходить на сервер, и запускать вручную скрипт, то переложим эту обязанность на cron.

#crontab -e
В открывшемся списке нужно дописать строчку
*/30 * * * * /var/www/lightsquid/lightparser.pl today
Будьте внимательны с адресом если он у вас отличается.
*/30 означает что скрипт будет запущен каждых полчаса.
9 Поздравляю, LightSquid настроен.


Сайт LightSquid - http://lightsquid.sourceforge.net

Wednesday, July 22, 2009

Быстрая настройка squid

Быстрая настройка Squid. Показан пример ограничений (delay_pools)

Редактируем файл настройки #nano /etc/squid/squid.conf

acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl lgtd src 192.168.1.0/24 #Диапазон вашей сети. lgtd - название списка.
acl purge method PURGE
acl CONNECT method CONNECT

acl SSL_ports port 443 563 # https, snews
acl SSL_ports port 873 # rsync
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT


http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow lgtd # Разрешаем доступ компьютерам локальной сети.
http_access deny all # Запрещаем доступ всем остальным

icp_access allow lgtd
icp_access deny all

http_port 192.168.1.254:8080 # адрес и порт компьютера где запущен squid. (можна указовать только порт)

hierarchy_stoplist cgi-bin ?

access_log /var/log/squid/access.log squid # Где будут зранитсья логи

refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern (Release|Package(.gz)*)$ 0 20% 2880
refresh_pattern . 0 20% 4320

acl shoutcast rep_header X-HTTP09-First-Line ^ICY\s[0-9]

upgrade_http0.9 deny shoutcast

acl apache rep_header Server ^Apache

broken_vary_encoding allow apache

extension_methods REPORT MERGE MKACTIVITY CHECKOUT

acl media urlpath_regex -i \.mp3$ \.asf$ \.wma$ \.flv$ \.avi$ # задаем лист медиа файлов

# Правила ограничений

delay_pools 2 # Всего используем 2 правила

delay_class 1 1
delay_parameters 1 10000/10000 #Ограничили скорость закачки медиа файлов до 10кб
delay_access 1 allowmedia
delay_access 1 deny all

delay_class 2 2
delay_parameters 2 -1/-1 32000/32000 # На всю сеть максимальная скорость, на клиента 32кб
delay_access 2 allow lgtd
delay_access 2 deny all

hosts_file /etc/hosts

coredump_dir /var/spool/squid
Загружаем новый настройки в squid #/etc/init.d/squid reload
Перезапускаем squid #/etc/init.d/squid restart

Поздравляю ваш прокси Squid настроен.

Настройка iptables

Стоит задача:
Организовать доступ из интернета к локальным компьютерам у которых нет внешнего ip адреса.
Организовать доступ к удаленному рабочему столу (mstsc)

Реализовуем ету задачу с помощью программы iptables.

Дано:

eth0 - Интерфейс который смотрит в локальную сеть.
eth2 - Интерфейс который смотрит в глобальную сеть (интернет).
lan_ip - локальный IP адрес компьютера (шлюз) на котором настраиваем доступ.
inet_ip - внешний IP адрес компьютера (шлюз) на котором настраиваем доступ.
comp1_ip, comp2_ip, comp3_ip - адреса компьютеров к которым нужно организовать доступ.

В файле /etc/default/iptables пропишем необходимые нам правила:

# nano /etc/default/iptables
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

-A PREROUTING -d inet_ip
/32 -p tcp -m tcp --dport 3389 -j DNAT --to-destination comp1_ip:3389
-A PREROUTING -d
inet_ip/32 -p tcp -m tcp --dport 6658 -j DNAT --to-destination comp2_ip:6658
-A PREROUTING -d
inet_ip/32 -p tcp -m tcp --dport 6634 -j DNAT --to-destination comp3_ip:6634

-A POSTROUTING -d comp1_ip/32 -p tcp -m tcp --dport 3389 -j SNAT --to-source lan_ip
-A POSTROUTING -d comp2_ip/32 -p tcp -m tcp --dport 6658 -j SNAT --to-source lan_ip
-A POSTROUTING -d comp3_ip/32 -p tcp -m tcp --dport 6634 -j SNAT --to-source lan_ip
COMMIT

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]

-A INPUT -d
comp1_ip -p tcp -m tcp --dport 3389 -j ACCEPT
-A INPUT -d
comp2_ip -p tcp -m tcp --dport 6658 -j ACCEPT
-A INPUT -d
comp3_ip -p tcp -m tcp --dport 6634 -j ACCEPT

-A FORWARD -i eth2 -s
comp1_ip/32 -o eth0 -p tcp -m tcp --sport 3389 -j ACCEPT
-A FORWARD -i eth0 -d
comp1_ip/32 -o eth2 -p tcp -m tcp --dport 3389 -j ACCEPT
-A FORWARD -i eth2 -s
comp2_ip/32 -o eth0 -p tcp -m tcp --sport 6658 -j ACCEPT
-A FORWARD -i eth0 -d
comp2_ip/32 -o eth2 -p tcp -m tcp --dport 6658 -j ACCEPT
-A FORWARD -i eth2 -s
comp3_ip/32 -o eth0 -p tcp -m tcp --sport 6634 -j ACCEPT
-A FORWARD -i eth0 -d
comp3_ip/32 -o eth2 -p tcp -m tcp --dport 6634 -j ACCEPT

-A OUTPUT -s
comp1_ip -p tcp -m tcp --dport 3389 -j ACCEPT
-A OUTPUT -s
comp2_ip -p tcp -m tcp --dport 6658 -j ACCEPT
-A OUTPUT -s
comp3_ip -p tcp -m tcp --dport 6634 -j ACCEPT
COMMIT
После этого перезагружаем iptables

/etc/init.d/iptables restart

Теперь мы реализовали доступ по mstsc с интернета на ip inet_ip порт 3389, а нас перенапрявляет на локальный терминальный сервер comp1_ip:3389

А также доступ к двом другим компютерам.

Блог HowTo по Debian

В результате проф деятельности появилась нужда в записи некоторых рецептов(шпаргалок) роботы и настройки с Debian. Записовать на бумагу, а потом набирать это в концоли не очень практично, значит они должны быть в електронном формате, также нужно всегда иметь доступ к ним, в связи с чем и было принято решение создать блог для этих нужд.