воскресенье, 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
Видим вывод гугла после ввода поискового запроса, кстати в яндексе поиск не заработал.




четверг, 29 августа 2013 г.

web-интерфейс Deluge через https

1. Остановим Deluge:
/etc/init.d/deluge-daemon stop

2. Перейдем в конфиг-папку Deluge.
cd /home/user/.config/deluge

3.Создадим папку для SSL сертификатов и ключей:
mkdir ssl

4. Перейдем в нее:
cd ssl

5. Сгенерим сертификаты и ключи:
openssl req -new -x509 -nodes -out deluge.cert.pem -keyout deluge.key.pem
отвечаем на предлагаемые вопросы по усмотрению.

6. В настройках web-интерфейса укажем пути к ключу и сертификату:

7. Запустим Deluge:
/etc/init.d/deluge-daemon start

8. Перейдем в web-интерфейс Deluge используя https
https://your_address:8112



вторник, 30 июля 2013 г.

Удаление LAMP server из Ubuntu 12.04

Actually, I'm only going to show how to remove AMP, since I assume you want to keep the GNU/Linux part of your installation. It would be nice if the removal could be done with a single command like:
sudo apt-get remove lamp-server

DO NOT DO THAT!!
That command appears to remove most, if not all, of your Ubuntu Desktop system. So instead, let's work backwards to remove the AMP part.
Remove phpMyAdmin

The phpMyAdmin installation was the last part of my LAMP installation tutorial, so we'll remove that first. From the command line:
sudo apt-get purge libapache2-mod-auth-mysql phpmyadmin

You'll be presented with a screen asking if you want to deconfigure the database for phpMyAdmin.


Removing phpMyAdmin

Go ahead and select Yes and hit <Enter>.
You'll be asked next if you want to purge the database for phpMyAdmin.


Purge phpMyAdmin Database

Again, select Yes and hit <Enter>.

The next screen is a little confusing. It prompts for the database administrator password, but it gives the impression that it's installing a new database.


Enter phpMyAdmin Password

Enter the correct password, (you created the password when you installed phpMyAdmin), select Ok and hit <Enter>. The phpMyAdmin removal should now complete.
Remove MySQL

Now let's see if we can remove MySQL. First we'll see what packages are installed relative to MySQL. Go to your terminal and enter:
dpkg -l | grep ^ii | grep mysql-server | awk -F' ' '{ print $2 }'

My system gives this list of packages.
mysql-server
mysql-server-5.1
mysql-server-core-5.1
php5-mysql

So let's get rid of those.
sudo apt-get purge mysql-server mysql-server-5.1 mysql-server-core-5.1

You have successfully removed MySQL Server from your system.
Remove Apache

First, we'll use a similar command like in the previous step to check what Apache packages are installed.
dpkg -l | grep ^ii | grep apache2 | awk -F' ' '{ print $2 }'

My results look like this:
apache2
apache2-mpm-prefork
apache2-utils
apache2.2-bin
apache2.2-common
libapache2-mod-php5

So let's remove those.
sudo apt-get purge apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common libapache2-mod-php5

Apache should be gone from your system.
Cleaning up

There may be a few stray packages left on your system that you no longer need. Get rid of them with:
sudo apt-get autoremove

Взято отсюда: http://www.24may.kharkov.ua/page174.html

Установка Joomla в Ubuntu

Установить Joomla 2.5.x в Ubuntu 11.10/12.04


 В этой статье я помогу вам установить Joomla 2.5.1 в Ubuntu 11.10/12.04. Для этого прежде всего требуется: веб-сервер Apache, MySQL, PHP (LAMP), который должен быть установлен в Ubuntu до установки Joomla.

Установка Joomla 2.5.1

1. После установки LAMP, необходимо добавить поддержку Joomla в Apache следующими командами:

cd /etc/apache2/

sudo cp sites-available/default sites-available/joomla

sudo a2ensite joomla

sudo /etc/init.d/apache2 restart

2. Далее, мы создадим базу данных MySQL и MySQL пользователя, чтобы позже использовать их во время установки Joomla. Я буду отмечать их красным, вы можете переименовать их как хотите.

-Через терминал даем знак для сервера MySQL с помощью следующей команды (выполняйте все команды в одном окне терминала):

mysql -u root -p

- Создаём базу данных MySQL с помощью следующей команды:

create database joomla;

- Мы также должны создать пользователя MySQL с тем же названием базы данных MySQL с помощью следующей команды (только вместо "1234" вставьте ваш пароль):

CREATE USER 'joomla'@'localhost' IDENTIFIED BY '1234';
- Предоставим пользователю все привилегии доступа, к уже созданной базе данных:

GRANT ALL PRIVILEGES ON joomla.* TO 'joomla' IDENTIFIED BY '1234';
Выйдем с сервера MySQL с помощью следующей команды:

exit

3. Теперь нам нужно создать директорию, скачать и установить Joomla. Папка с файлами Joomla будет установлена в / VAR / WWW / Joomla. Для этого выполните следующие команды:

cd /tmp && wget -O Joomla_2.5.1-Stable.zip http://goo.gl/Cf1Sm

sudo mkdir /var/www/joomla

sudo unzip Joomla_2.5.1-Stable.zip -d /var/www/joomla

sudo chown -R www-data.www-data /var/www/joomla/

- Теперь можно начать установку Joomla 2.5.1, кликнув на одну из этих двух ссылок:


http://127.0.0.1/joomla

или

http://localhost/joomla


Далее следуйте инструкции по установке:



Выбираем язык и клик на кнопке Далее, что вверху справа.



Если вы не видите ни в одной строке слова Нет, значит всё нормально и нажимаем Далее.



Следующее окно-Лицензия. Здесь ничего не надо принимать и просто нажимаем Далее.


Заполните всё где указано стрелками и Далее.

Следующий шаг - Конфигурация FTP, можно пропустить, нажав Далее.




В окне Конфигурация сайта заполните поля указанные стрелками. Я назвал сайт для примера - Мой первый сайт, вы можете назвать как хотите. Укажите адрес своей эл. почты. В окне Логин администратора оставьте как есть - admin. Введите дважды свой пароль, который вы вводили при установке и Далее.



И последний шаг в установке Joomla, это в окне Завершение установки нужно нажать на кнопке, указанной стрелками - Удалить директорию 'installation', после чего должна смениться надпись - Директория 'installation' успешно удалена. И нажать на одну из двух кнопок вверху: Сайт или Панель управления.





Где вам нужно указать в поле User name - admin, в поле Password - свой пароль.

В дальнейшем, чтобы получить доступ к админке, нужно открыть одну из этих ссылок:


http://127.0.0.1/joomla/administrator/

или

http://localhost/joomla/administrator/

Взято отсюда: http://compizomania.blogspot.com/2012/02/joomla-25x-ubuntu-11101204.html

Установить LAMP сервер в Ubuntu 12.04

Установить LAMP сервер одной командой в Ubuntu 12.04/LinuxMint13


LAMP (Linux, Apache, MySQL, PHP), это платформа вебразработки, которая использует Linux в качестве операционной системы, Apache в качестве веб-сервера, MySQL, как система управления базами данных и PHP, как объектно-ориентированный язык сценариев.
Эта установка была протестирована в Ubuntu 12.04/LinuxMint13 и работает отлично.

Прежде чем перейти к непосредственной установке LAMP-сервера, необходимо чтобы был установлен мета-пакет tasksel.
Откройте терминал (Ctrl+Alt+T), скопируйте и выполните следующую команду:

sudo apt-get install tasksel

Теперь, чтобы установить LAMP, ввыполните команду taskel в терминале:

sudo tasksel

Выберите LAMP server (клавиши вверх/вниз), нажмите клавишу пробел для маркировки звёздочкой и Enter.


Во время установки вам будет предложено ввести пароль пользователя root для MySQL.


Повторите ввод пароля.


И дождитесь окончания установки.


Теперь откройте файл info.php:

sudo gedit /var/www/info.php

Скопируйте и ставьте в него следующие строки:

<?php
phpinfo();
?>




Сохраните и закройте редактор.

Затем перезагрузите apache2 следующей командой:

sudo /etc/init.d/apache2 restart

Теперь в браузере в панель навигации скопируйте:

http://127.0.01/info.php и нажмите Enter или нажмите: http://localhost/info.php


PHP установлен.

Для управления базой данных LAMP server'a, установите PhpMyAdmin:

sudo apt-get install phpmyadmin

Чтобы войти в PhpMyAdmin, в панель навигации скопируйте:

http://127.0.0.1/phpmyadmin или нажмите http://localhost/phpmyadmin




В поле Пользователь введите root, а ниже свой пароль, который вы вводили при установке LAMP и нажмите Enter.

Взято отсюда: http://compizomania.blogspot.com/2012/05/lamp-ubuntu-1204linuxmint13.html


среда, 10 июля 2013 г.

psexec

Для удаленного управления рабочими станциями через командную строку Windows, в доменной сети очень удобно использовать консольную утилиту от Марка Руссиновича psexec.
Качаем пакет PsTools http://download.sysinternals.com/files/PSTools.zip распаковываем, и кладем psexec.exe в C:\Windows\System32
Затем открываем cmd и набираем (примеры):

psexec \\ws-name ipconfig  (смотрим ipconfig на компьютере ws-name)
psexec \\ws-name ipconfig /flushdns (очищаем кэш dns на машине ws-name)

если все ок, вы увидите такой вывод:



это лишь малый пример того, что можно делать с помощью этой утилиты, скажу лишь, что с
помощью нее, можно можно удаленно устанавливать программы, запускать процессы, применять исправления в реестре, никак не мешая работе пользователя. Все что необходимо для полноценной работы с psexec учетная запись с привелегиями администратора в win-домене.

подробнее о утилите psexec можно прочитать здесь: http://technet.microsoft.com/ru-ru/sysinternals/bb897553




четверг, 4 июля 2013 г.

mplayer. интернет-радиоприемник.

Решил сделать свой микросервер интернет-радиоприемником.

Ставим mplayer:

apt-get install mplayer

вводим адрес потокового радио:

mplayer http://stream02.media.rambler.ru/echo32.mp3

но звука нет.

доставляем необходимые пакеты:

apt-get install alsa-utils

после этого по идее звук должен появиться. также проверим уровни громкости:

alsamixer

Громкость в запущеной программе регулируем клавишами 9 и 0.


среда, 19 июня 2013 г.

jnettop мониторинг загрузки сети

Иногда канал забивается непонятно кем или чем, чтобы выявить в чем причина ставим
jnettop:

apt-get install jnettop

вызываем просто:

jnettop

по умолчанию мониторится интерфейс eth0.

Чтобы мониторить интерфейс:

jnettop -i br0

чтобы мониторить входящий трафик на адрес:

jnettop -i br0 -x "dst host 192.168.11.5"

исходящий:

jnettop -i br0 -x "src host 192.168.11.5"

видим:


samba

Используется Samba version 3.6.3
пока настроена только одна шаренная папка - torrents

вот конфиг:

[global]
workgroup = WORKGROUP
server string = %h server (Samba, Ubuntu)
netbios name = UBUNTU
interfaces = 127.0.0.0/8 eth1, br0
security = SHARE
max protocol = SMB2
guest account = nobody
usershare allow guests = ok
auth methods = guest
smb ports = 139
local master = yes
os level = 20
wins support = no
dns proxy = no
dos charset = cp1251
unix charset = UTF-8
display charset = UTF-8
store dos attributes = no
nt acl support = no
#inherit acls = no
map acl inherit = no
socket options = SO_KEEPALIVE, SO_RCVBUF=6500, and SO_SNDBUF=6500
min receivefile size = 0
aio read size = 0
aio write size = 0
client signing = auto
write cache size = 0
getwd cache = yes
large readwrite = yes

[torrents]
path = /home/share/torrents
guest ok = Yes
guest only = Yes
writeable = Yes

вторник, 18 июня 2013 г.

Microserver

         Использую в домашних условиях микросервер на Ubuntu-Server 12.04 LTS.
Собственно роли у сервера пока следующие:

1. Интернет-шлюз
2. DHCP - сервер
3. wi-fi точка доступа стандарта IEEE 802.11n
4. торрент-качалка - Deluge 1.3.6
5. samba для просмотра фильмов и хранения файлов
6. motion - видеонаблюдение (с резервным копированием отстнятого материала на сторонний сервер)
7. mplayer - интернет-радио
8. FTP - сервер.
9. MRTG+lighthttpd - различные графики
10. TOR - сервер

Сервер построен на следующем железе:
1. Intel D2500CC - материнская плата с интегрированным процессором Atom, и двумя сетевыми интерфейсами.
2. SO-DIMM DDR3, 4ГБ, PC3-12800, 1600МГц, Kingston, KVR16S11/4
3. Жесткий диск 2.5: Hitachi Travelstar 7K1000.
4. mini pci-e wifi адаптер intel Centrino Wireless-N 1030
5. корпус mini-box M350 Mini-ITX

       

           Чтобы сохранить, то что давалось долгими часами, решил создать этот блог, и сохранять здесь копии своих конфигов. Все записи связанные с данной машинкой будут иметь тэг microserver.

понедельник, 17 июня 2013 г.

iptables

мои правила iptables:

*mangle
:PREROUTING ACCEPT [68274:21267945]
:INPUT ACCEPT [2652:246271]
:FORWARD ACCEPT [65541:20981760]
:OUTPUT ACCEPT [2210:295928]
:POSTROUTING ACCEPT [67791:21286214]
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:65495 -j TCPMSS --clamp-mss-to-pmtu
COMMIT

*nat
:PREROUTING ACCEPT [2475:145306]
:INPUT ACCEPT [438:36303]
:OUTPUT ACCEPT [125:11164]
:POSTROUTING ACCEPT [72:7854]
-A PREROUTING -m state --state RELATED,ESTABLISHED -j ACCEPT
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.11.5:3389
-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT

*filter
:INPUT DROP [2610:241618]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [2254:299949]
-A INPUT -p icmp -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i br0 -j ACCEPT
-A FORWARD -p icmp -j ACCEPT
-A INPUT -p tcp -m multiport --dports 8112,6990 -j ACCEPT
-A INPUT -p udp -m udp --dport 6990 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i ppp0 -p tcp -m tcp --dport 3389 -j ACCEPT
-A FORWARD -i br0 -o ppp0 -j ACCEPT
-A FORWARD -j LOG --log-prefix "IPT-FORWARD "
COMMIT

например, хотим разрешить просмотр web-камеры установленной на сервере, из Интеренет,
для этого добавляем строку nano /etc/iptables.rules
-A INPUT -p tcp -m multiport --dports 8112,6990 -j ACCEPT

еще один порт - 8081.
-A INPUT -p tcp -m multiport --dports 8081,8112,6990 -j ACCEPT

добавляем измененные правила в /etc/iptables.rules
iptables-restore /etc/iptables.rules

проверяем, что все правильно:
iptables-save

затем устанавливаем правила в автозагрузку (под рутом):
echo "#! /sbin/iptables-restore" > /etc/network/if-up.d/iptables-rules
iptables-save >> /etc/network/if-up.d/iptables-rules
chmod +x /etc/network/if-up.d/iptables-rules

ddclient + no-ip.org

Так как мое подключение к интернет не имеет постоянного IP-адреса, пользуюсь сервисом
no-ip.com. Для того чтобы начать пользоваться данным сервисом, надо зарегистрировать доменное имя здесь: noip.com
Для работы сопоставления имени адресу использую ddclient, вот конфиг:

/etc/ddclient.conf

# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf

max-interval=25d
protocol=noip
use=web
web=http://ip1.dynupdate.no-ip.com/
#server=members.no-ip.org
login=your_login
password='your_password'
yourname.no-ip.org

hostapd

Собственно конфиг hostapd:

/etc/hostapd.conf

interface=wlan0
bridge=br0
driver=nl80211
ssid=red
auth_algs=1
country_code=RU
hw_mode=g
ieee80211n=1
channel=8
ignore_broadcast_ssid=1
macaddr_acl=0
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
wpa_passphrase=Password
rsn_pairwise=CCMP

делаю ТД "невидимой" - запрещаю броадкаст
ignore_broadcast_ssid=1

в скрипте /etc/init.d/hostapd
где DAEMON_CONF=
указываем местоположение, в моем случае так:  DAEMON_CONF= /etc/hostapd.conf

скрипт /etc/init.d/hostapd делаем исполняемым и добавляем в автозагрузку:

chmod +x /etc/init.d/hostapd
update-rc.d hostapd defaults

также надо не забыть в конфигурации dhcp сервера указать правильный интерфейс, на котором работает сам dhcp сервер. в моем случае роль dhcp выполняет dnsmasq поэтому значение  interface=  в конфе dnsmasq
приводим к виду
interface=br0

в описанном случае wi-fi зона и локальная сеть работают в одной подсети.


interfases

так как используется мост между  eth1 wlan0 то сначало надо сделать:

apt-get install bridge-utils

/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

auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf
provider dsl-provider

auto eth0
iface eth0 inet manual

auto wlan0
iface wlan0 inet manual

auto eth1
iface eth1 inet manual

auto br0
iface br0 inet static
address 192.168.11.1
network 192.168.11.0
netmask 255.255.255.192
broadcast 192.168.11.63
bridge-ports eth1 wlan0

P.S. Не забудем разрешить хождение пакетов между интерфейсами, для этого в файл
/etc/sysctl.conf внесем следующую строчку:
echo 'net.ipv4.ip_forward = 1