Ola srs, tenho a seguinte situação tenho o ubuntu instalado no meu servidor não é ubuntu core sim grafico mas blz... configurei o dhcp blz só que nessa rede roda um sistema de camera na porta 2000 no ip 192.168.1.20 só não sei como fazer para quando o externo quizer acessar a camera pelo "meudns.ddns.net:2000" como configurar o ubuntu para executar essa operação pois por router é mais simples mas que eu quero é que o ubuntu gerencie toda a rede da empresa....
Obrigado desde ja
Vc tem algum firewall ativo no seu servidor Ubuntu?
não, não tenho firewall instalado, qual você recomenda??
Não, é pra saber como vai encaixar a regra que precisa colocar. Vc tem que adicionar o comando abaixo à inicialização do sistema:
iptables -t nat -A PREROUTING -p tcp --dport 2000 -j DNAT --to 192.168.1.20:2000
Mas fique atento que isso só vai funcionar se seu servidor Ubuntu estiver compartilhando a conexão. O que me faz pensar... como vc está compartilhando a conexão, se não tem um script de firewall???
Então estou compartilhando a conexão pelo ubuntu sim, estou utilizando configuração que mostra no guia do hardware isc-dhcp
O script que se refere onde eu coloco?
Primeiro mostre essa configuração que fez pro compartilhamento... vai ser mais um comando lá, que vai fazer o que vc quer.
Então so jogar essa linha de comando lá para ele jogar a busca pela porta exemplo 2000 no ip correspondente 193.168.1.20 exemplo?
Essa linha faz isso, mas tem um monte de coisas que precisa estar configurado pra que isso funcione direito. Eu posso te mostrar onde colocá-la, mas vc tem que me mostrar o que já fez.
OK minha
# /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
echo 1 > /proc/sys/net/conf/default/rp_filter
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP
iptables -A INPUT -p -tcp --dport 3128 -j ACCEPT
#liberar portas
# iptables -A INPUT -p -tcp --dport XX -j ACCEPT
exit 0
#/etc/default/isc-dhcp-server
# Defaults for isc-dhcp-server initscript
# sourced by /etc/init.d/isc-dhcp-server
# installed at /etc/default/isc-dhcp-server by the maintainer scripts
#
# This is a POSIX shell fragment
#
# Path to dhcpd's config file (default: /etc/dhcp/dhcpd.conf).
#DHCPD_CONF=/etc/dhcp/dhcpd.conf
# Path to dhcpd's PID file (default: /var/run/dhcpd.pid).
#DHCPD_PID=/var/run/dhcpd.pid
# Additional options to start dhcpd with.
# Don't use options -cf or -pf here; use DHCPD_CONF/ DHCPD_PID instead
#OPTIONS=""
# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth0"
#/etc/dhcp/dhcpd.conf
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.11 192.168.1.245;
option routers 192.168.1.1;
option domain-name-servers 192.168.1.2 , 208.67.222.222 , 208.67.220.220;
option netbios-name-servers 192.168.1.254;
option broadcast-address 192.168.1.255;
}
Bom esses são meus codigos do DHCP e da rede sou novo nesse mundo de servidores linux, queria saber onde coloca a porta a ser aberta e redirecionar ao IP correto, como expliquei a cima!
Eu fiz essa configuração no #etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
echo 1 > /proc/sys/net/conf/default/rp_filter
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP
#liberar portas
iptables -A INPUT -p -tcp --dport 3333 -j ACCEPT
iptables -A INPUT -p -tcp --dport 1234 -j ACCEPT
iptables -A INPUT -p -tcp --dport 2000 -j ACCEPT
iptables -A INPUT -p -udp --dport 3333 -j ACCEPT
iptables -A INPUT -p -udp --dport 1234 -j ACCEPT
iptables -A INPUT -p -udp --dport 2000 -j ACCEPT
#Redirecionamento de portas
iptables -t nat -A PREROUTING -p tcp --dport 2000 -j DNAT --to 192.168.1.11:2000
iptables -t nat -A PREROUTING -p udp --dport 2000 -j DNAT --to 192.168.1.11:2000
iptables -t nat -A PREROUTING -p tcp --dport 1234 -j DNAT --to 192.168.1.2:1234
iptables -t nat -A PREROUTING -p udp --dport 1234 -j DNAT --to 192.168.1.2:1234
iptables -t nat -A PREROUTING -p tcp --dport 3333 -j DNAT --to 192.168.1.2:3333
iptables -t nat -A PREROUTING -p udp --dport 3333 -j DNAT --to 192.168.1.2:3333
é assim?
Sim, seria parecido com isso.
Entao so colocar o codigo que vc me falou no etc/rc.local?
Sim, do jeito que vc mostrou na última mensagem deve funcionar. Chegou a testar?
zekkerj você que é o cara do ubuntu, será que sabe me responder, seguinte estou utilizando um Router Dlink para conectar a internet Vivo Speedy (pois precisa usar um provedor para conectar a internet) e depois jogar na placa de internet do servidor, eu tenho que configurar a portar 2000 jogando no ip 192.168.0.20 (da placa da internet) do servidor para depois jogar dentro da rede através do ip 192.168.1.11:2000?
Nesse caso vc primeiro deve redirecionar a porta nesse roteador.
Ah, claro, antes que eu esqueça: o Ubuntu pode conectar no Speedy pra você --- inclusive com o provedor.
Mas nesse linux tenho duas placa de rede, configuradas uma para rede e outra para internet, vou ter que reconfigurar alguma coisa ou só conectar que ele já espalha a internet Speedy?
Tem que configurar... o script de compartilhamento muda, o firewall muda. Vale a pesquisa, pra ver se compensa.
Outra coisa estou tento um pequeno problema que está se tornando um "saco" talvez e minha ignorancia, seguinte as maquinas da rede pega o IP tudo certinho mas para navegar tem hora que da erro demora para pegar a internet eu utilizo na rede windows 7 pro, meus dns são
Citar192.168.1.2, 208.67.222.222 , 208.67.220.220;
O caminho da internet é: Modem Speedy >> Router dlink DIR 635 >> Placa eth1 >> Servidor Ubuntu (192.168.1.1) >> eth 0 rede interna >> Router Wifi e Swith >> PCs e Celulares e Laptops
O caminho dos PCS,: PCS>> Servidor Windows 2012 (Dominio) IP 192.168.1.2 >> Internet e Rede...
e tenho duvida para que serve isso:
Citaroption netbios-name-servers 192.168.1.254;
option broadcast-address 192.168.1.255;
não sei se é conflito na rede pois outros pcs pegam a internet numa boa outros tem dificuldade!
Tenta inverter a ordem dos DNS nas estações.
Mas o primeiro DNS é do Dominio interno da rede windows!
Faça o teste... inverta o DNS, veja se resolve o problema da navegação. Se resolver, vc tem um problema no servidor Windows, o que está além do objetivo deste fórum.
Citação de: zekkerj online 17 de Dezembro de 2014, 14:40
Faça o teste... inverta o DNS, veja se resolve o problema da navegação. Se resolver, vc tem um problema no servidor Windows, o que está além do objetivo deste fórum.
Meu querido amigo, Zekkerj, para que serve esse caminho no rc.local?
Citar/proc/sys/net/ipv4/conf/default/rp_filter
Outra duvida, se você tem um exemplo que você me falou do firewall.sh e criar um atalho no rc.local???
Não lembro o uso do "rp_filter". Se vc não sabe o que é também, desativar a linha provavelmente não vai te fazer grandes danos.
Sobre usar o script em separado, não tem muito além de pegar os comandos do firewall que vc colocou no rc.local, e transportar pra um arquivo "firewall.sh", na pasta que vc quiser. Depois é só colocar, no lugar desses comandos, a chamada ao arquivo que vc criou.
Vc sabe chamar um script dentro de outro?
Não sei nao! E parecido com c++ ou php tipo # require "/etc/firewall.sh"?
Não, basta colocar o nome do script dentro do outro. Assim:
/etc/firewall.sh