Asterisk и iptables
помогите разобраться
Откуда: Almaty, Kazakhstan
Сообщений: 64
|
Asterisk и iptables
Добрый день уважаемые форумчане, т.к. мне здесь помогли уже в двух моих самых сложных для меня вопросах, решил обратиться к знатокам т.е. к Вам.
в общем есть АстерискNOW) создал файл
fw
основываясь на многочисленных ошибках и решениях, в нем написал следующее
#!/bin/sh
INET="0.0.0.0/0"
INT="192.168.10.99"
EXT="XXX.XXX.XXX.XXX"
LOCAL="192.168.10.0/24"
ADMIN="192.168.10.136"
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
#denied traffic for all
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#allowed trafic for port 22
iptables -A INPUT -p TCP --source-port 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p TCP --source-port 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p TCP --destination-port 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p TCP --destination-port 22 -m state --state NEW,ESTABLISHED -j ACCEPT
#allowed traffic for SIP phones which located behind NAT
iptables -A INPUT -p UDP -m udp --dport 8766:35000 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p UDP -m udp --dport 8766:35000 -m state --state NEW,ESTABLISHED -j ACCEPT
#SIP for local users
iptables -A INPUT -p UDP -m udp --dport 5060:5070 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p UDP -m udp --dport 5060:5070 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p UDP -m udp --sport 5060:5070 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p UDP -m udp --sport 5060:5070 -m state --state NEW,ESTABLISHED -j ACCEPT
#manager account acces
iptables -A INPUT -p TCP -s $ADMIN --sport 5038 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p TCP -d $ADMIN --sport 5038 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p TCP -s $ADMIN --dport 5038 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p TCP -d $ADMIN --dport 5038 -m state --state NEW,ESTABLISHED -j ACCEPT
#Port 80 for administrator
iptables -A INPUT -p TCP -s $ADMIN --sport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p TCP -d $ADMIN --sport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p TCP -s $ADMIN --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p TCP -d $ADMIN --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A INPUT -d $ADMIN -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -s $ADMIN -m state --state NEW,ESTABLISHED -j ACCEPT
#Security Rules
#iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
#iptables -A INPUT -p tcp --syn -j DROP
SIP телефоны регистрируются, звонят, но я слышу абонента, а он меня нет.
какое или какие правила нужно добавиться чтобы остаться защищенным на внешнем ip адресе, при том чтобы абонент слышал меня.
Спасибо огромное.!
|
Сообщений: 13
|
Re: Asterisk и iptables
http://www.voip-info.org/wiki/view/Asterisk+firewall+rules
Посмотри там где RTP
|
Откуда: Almaty, Kazakhstan
Сообщений: 64
|
Re: Asterisk и iptables
zmc:
http://www.voip-info.org/wiki/view/Asterisk+firewall+rules
Посмотри там где RTP
вот здесь?
# RTP - the media stream
iptables -A INPUT -p udp -m udp --dport 10000:20000 -j ACCEPT
так у меня этот диапазон вот здесь попадает в разрешенные
#allowed traffic for SIP phones which located behind NAT
iptables -A INPUT -p UDP -m udp --dport 8766:35000 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p UDP -m udp --dport 8766:35000 -m state --state NEW,ESTABLISHED -j ACCEPT
есть идеи?
|
Сообщений: 866
|
Re: Asterisk и iptables
ну для начала iptables -L INPUT
а то кто же знает загрузили ли вы эти правила и принялись ли они.
далее, у вас canreinvite ао что стоит? может у вас телефоны напрямую пытаются общаться. поставьте в no чтобы медиа через астериск шел.
потом tcpdump в руки и смотрите что происходит.
|
Сообщений: 13
|
Re: Asterisk и iptables
Я так полагаю, что у вас в /etc/asterisk/rtp.conf rtpstart и rtpend, соответственно 8766,35000, посмотрите может чего.
А вообще dimas правельно написал, к тому же если выше приведенные правила не все, то хотелось бы посмотреть весь список для определения общего контекста.
А так вообще поставте перед:
iptables -A INPUT -p UDP -m udp --dport 8766:35000 -m state --state NEW,ESTABLISHED -j ACCEPT
что то вида:
iptables -A INPUT -p UDP -m udp --dport 8766:35000 -m state --state NEW,ESTABLISHED -j LOG --log-prefix "RTP-TRAF: "
Звоните, если правила rtp отрабатывают, то в /var/log/syslog должны быть записи, ну вообщем стандартно tail -f /var/log/syslog | grep "RTP-TRAF"
Если же нет то ...
А так на вскитку, не знаю может у UDP определения сессии нет это же не TCP все же, попробуйте состояние сесси убрать.
|
Сообщений: 13
|
Re: Asterisk и iptables
Забыл совсем, а * на том же компе где и фаерволл, так на всякий случай :-)
|
Откуда: Almaty, Kazakhstan
Сообщений: 64
|
Re: Asterisk и iptables
все заработали разговоры.. только при таком раскладе
iptables -A INPUT -p UDP -m udp --dport 8766:90000 -m state --state NEW,ESTABLISHED -j LOG --log-prefix "RTP-TRAF: "
iptables -A INPUT -p UDP -m udp --dport 8766:90000 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p UDP -m udp --dport 8766:90000 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p UDP -m udp --sport 8766:90000 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p UDP -m udp --sport 8766:90000 -m state --state NEW,ESTABLISHED -j ACCEPT
почему такой широкий диапазон?....
дело в том что я посмотрел на это
sip show peers
212/212 91.204.237.93 D N A 63318 OK (141 ms)
211/211 (Unspecified) 5060 UNKNOWN
210/210 (Unspecified) D 0 UNKNOWN
209/209 (Unspecified) D 0 UNKNOWN
208/208 (Unspecified) D 0 UNKNOWN
207/207 (Unspecified) D 0 UNKNOWN
206/206 (Unspecified) D 0 UNKNOWN
205/205 (Unspecified) D 0 UNKNOWN
204/204 (Unspecified) D N A 0 UNKNOWN
203/203 (Unspecified) D N A 0 UNKNOWN
202/202 (Unspecified) D 0 UNKNOWN
201/201 192.168.10.98 D 5060 OK (11 ms)
200/200 192.168.10.136 D 9528 OK (9 ms)
oktell-out/829 192.168.10.50 5060 Unmonitored
222/222 (Unspecified) D N A 0 UNKNOWN
demo/74010 217.15.180.50 N 5060 OK (23 ms)
829/829 192.168.10.50 D 5060 OK (20 ms)
телефон который работает через NAT получил такой 63318 порт.... это значит что это больше чем 35000 а тем более больше ччем 20000 а в /etc/asterisk/rtp.conf rtpstart и rtpend стоит у меня от 10000 до 20000 незнаю почему но что то мимо проходит трафик....
если есть идеи...будет супер!!!!
и еще вопрос.... в общем при таких настройках
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 5038 -j ACCEPT
iptables -A INPUT -p udp --dport 4569 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
iptables -A OUTPUT -p all -j ACCEPT
почему то GUI не работает... открывается первая страница где я должен ввести пароль и все затыкается потом показывает ошибку. даже не знаю что с этим делать....может есть варианты?.... может какие то еще порты должны быть открыты для GUI(http://xx.xx.xx.xx)???
мое предположение...
первая страница открывается по принципу 80-ого порта, а дальше уже авторизация и работа проходит по каким то портам... незнаю даже по каким точно... вот и мучаюсь....
а когда все разрешаю... все порты все делаю в общем ACCEPT то все работает...
Идеи?
|
Откуда: Almaty, Kazakhstan
Сообщений: 64
|
Re: Asterisk и iptables
вот кстати мои lsof -i
[root@localhost ~]# lsof -i
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
portmap 2227 rpc 3u IPv4 5961 UDP *:sunrpc
portmap 2227 rpc 4u IPv4 5962 TCP *:sunrpc (LISTEN)
rpc.statd 2256 root 3u IPv4 6066 UDP *:739
rpc.statd 2256 root 6u IPv4 6057 UDP *:736
rpc.statd 2256 root 7u IPv4 6074 TCP *:netrcs (LISTEN)
sshd 2568 root 3u IPv6 6731 TCP *:ssh (LISTEN)
cupsd 2606 root 4u IPv4 6794 TCP localhost.localdomain:ipp (LISTEN)
cupsd 2606 root 6u IPv4 6797 UDP *:ipp
mysqld 2717 mysql 10u IPv4 6950 TCP *:mysql (LISTEN)
sendmail 2755 root 4u IPv4 7038 TCP localhost.localdomain:smtp (LISTEN)
httpd 2795 root 3u IPv6 7134 TCP *:http (LISTEN)
httpd 2856 apache 3u IPv6 7134 TCP *:http (LISTEN)
httpd 2857 apache 3u IPv6 7134 TCP *:http (LISTEN)
httpd 2858 apache 3u IPv6 7134 TCP *:http (LISTEN)
httpd 2859 apache 3u IPv6 7134 TCP *:http (LISTEN)
httpd 2860 apache 3u IPv6 7134 TCP *:http (LISTEN)
httpd 2861 apache 3u IPv6 7134 TCP *:http (LISTEN)
httpd 2862 apache 3u IPv6 7134 TCP *:http (LISTEN)
httpd 2863 apache 3u IPv6 7134 TCP *:http (LISTEN)
avahi-dae 2877 avahi 13u IPv4 7337 UDP *:mdns
avahi-dae 2877 avahi 14u IPv6 7338 UDP *:mdns
avahi-dae 2877 avahi 15u IPv4 7339 UDP *:50235
avahi-dae 2877 avahi 16u IPv6 7340 UDP *:35388
asterisk 2985 asterisk 8u IPv4 8761 UDP *:sip
asterisk 2985 asterisk 10u IPv4 8770 UDP *:iax
asterisk 2985 asterisk 11u IPv4 8772 TCP *:5038 (LISTEN)
op_server 3033 asterisk 4u IPv4 8882 TCP *:upnotifyp (LISTEN)
op_server 3033 asterisk 6u IPv4 36299 TCP localhost.localdomain:50662->localhost.localdomain:5038 (ESTABLISHED)
sshd 5412 root 3u IPv6 23629 TCP 192.168.10.99:ssh->192.168.10.136:49694 (ESTABLISHED)
httpd 17972 apache 3u IPv6 7134 TCP *:http (LISTEN)
httpd 26563 apache 3u IPv6 7134 TCP *:http (LISTEN)
|
Сообщений: 76
|
Re: Asterisk и iptables
Тут некоторые строчки явно неверны.
#!/bin/sh
INET="0.0.0.0/0"
INT="192.168.10.99"
EXT="XXX.XXX.XXX.XXX"
LOCAL="192.168.10.0/24"
ADMIN="192.168.10.136"
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
#denied traffic for all
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#allowed trafic for port 22
Например тут, с чего это вы решили что клиент подключаясь к вашему ssh будет все данные отправлять с 22 порта? в 99% при подключении к серверу программисты при написании программы не задают константный порт и ос выбирает его сама случайно. Строчку удалить
#iptables -A INPUT -p TCP --source-port 22 -m state --state NEW,ESTABLISHED -j ACCEPT
Эти 2 строчки верны
iptables -A OUTPUT -p TCP --source-port 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p TCP --destination-port 22 -m state --state NEW,ESTABLISHED -j ACCEPT
Аналогично вышеописанному
#iptables -A OUTPUT -p TCP --destination-port 22 -m state --state NEW,ESTABLISHED -j ACCEPT
#allowed traffic for SIP phones which located behind NAT
iptables -A INPUT -p UDP -m udp --dport 8766:35000 -m state --state NEW,ESTABLISHED -j ACCEPT
Опять же вы можете задать с какого по какой порт будет использовать астериск но тут вы указываете что у телефона будут использоваться порты 8766:35000. Большинство телефонов конечно позволяет как и астериск позволяет задать такие рамки, но если вы этого не сделали или вам этого не нужно делайте привязку только к исходящим портам
#iptables -A OUTPUT -p UDP -m udp --dport 8766:35000 -m state --state NEW,ESTABLISHED -j ACCEPT
Правильней будет вот так
iptables -A OUTPUT -p UDP -m udp --sport 8766:35000 -m state --state NEW,ESTABLISHED -j ACCEPT
#Port 80 for administrator
Сдесь ниже аналогичные ошибки
Невидел браузера в котором можно задать что бы он подключался ко всем сайтам с 80-го порта, однако следующая строка разрешит доступ если подключение пойдёт с ip админ и с 80 порта.
iptables -A INPUT -p TCP -s $ADMIN --sport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
Дальше примеры приводить не буду тут одна и таже ошибка
|
Сообщений: 76
|
Re: Asterisk и iptables
Эти 2 строчки верны
iptables -A OUTPUT -p TCP --source-port 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p TCP --destination-port 22 -m state --state NEW,ESTABLISHED -j ACCEPT
Нет тоже не совсем верны, у вас подключения идут к ssh значит ssh отвечает на запросы а не создаёт новое подключение NEW следует убрать
iptables -A OUTPUT -p TCP --source-port 22 -m state --state ESTABLISHED -j ACCEPT
|
|