ATENÇÃO A PARTIR DO KERNEL 2.4....... NÃO SE USA MAIS O IPCHAIM. FOI SUSBSTITUIDO PELO IPTABLES VEJA NESTE DIRETÓRIO iptables.txt *********************************************************************** *********************************************************************** *********************************************************************** *********************************************************************** > Seguinte galera, de repente eu me senti nu ! > Tipo cancelar todos os acessos à internet por default, e toda vez que eu for > acessar a internet eu dar a permissão na hora do acesso....sei lá, algo meio > simples, até eu aprender a configurar o IPChais.. Bem, pra cancelar todos os servicos vc pode comentar todas as linhas do /etc/ined.conf e reiniciar o processo com 'killall -HUP inetd' e quando quiser abilitar algum destes servicos basta descomentar a linha dele no /etc/inetd.conf novamente nao esquecendo de reiniciar o processo tambem. Agora se vc quer uma coisa mais simples ainda, pode adicionar a linha: All:All: twist /bin/echo -e "%a tentou acessar %d" >> /var/log/security.log no /etc/hosts.deny que alem de bloquear os servicos vai pegar o endereco IP de quem tentou acessar assim como o servico solicitado gravando essas informacoes no arquivo security.log, se esse arquivo nao existir nao se esqueca de crialo. ********************************************************************************** Tente assim : icphains -d output -s (ip da sua rede interna) -d (ip do seu servidor de DNS) -p tcp -l -j DENY ex: ipchains -d output -s 192.168.0.0/24 -d 200.200.200.1 -p tcp -l -j DENY Com isso vc ira trancar todo o acesso para o seu servidor de DNS e ira ficar liberado para o servidor de proxy, que acredito deve ser outro servidor e nao o mesmo. Se for o mesmo no caso vc ira trancar tudo tambem. Ai no caso vc tera que disser qual as portas vc quer que os micros tenham acesso. Subject: (linux-br) Config ipchains > Tenho uma subrede de 100 máquinas e quero negar o acesso à internet para > todas menos para o servidor dns e o servidor proxy (são 2 máquinas > distintas). > Preciso de um exemplo da sintaxe correta do ipchains.... ********************************************************************************** Cara este é o melhor manual de ipchains que eu já vi: simples e objetivo...... Diorgenes B. de Mello ICQ: 45102991 dbmello@mailbr.com.br -----Mensagem original----- ipchains -A input -j DENY -s 0/0 21 -p tcp -l Verifique depois com: ipchains -L Segue um pequeno tutorial: Chaves input - de entrada output - de saída forward - encaminhamento de pacotes OPÇÕES DESTINO -s - origem ACCEPT - aceita -p - protocolo DENY - nega -d - destino MASQ - mascara -i - interface REDIRECT - redireciona -j - jump [salta p/ proxima regras] IPCHAINS COMANDOS -P - Police -A - Adiciona uma regra -F - Resetando regras -D - Deletando Regras -L - Listando Regras -H - Ativa o Help Listando as regras ipchains -L Ressetando todas as regras ipchains -F output ipchains -F forward ipchains -F input Negando TUDO ipchains -P output DENY ipchains -P input DENY ipchains -P forward DENY Negando o protocolo ipchains -A input -p icmp -s 0/0 -d 0/0 -j DENY -l -A adiciona a regra no input -p no protocolo icmp -s origem "0/0" qualquer origem -d destino "0/0" qualquer destino -j jump pula para poder executar o DENY na mesma linha de comando -l loga o comando no /var/log/message Negando Hosts ipchains -A input -j DENY -s -l Negando o FINGER ipchains -A input -j DENY -s 0/0 79 -p tcp -l 0/0 qualquer origem 79 para destino específico porta do finger Negando um intervalo de portas ipchains -A input -j DENY -s 0/0 6667:7000 -p tcp -l fecha a porta de 6667 até a porta 7000 Redirecionar pacote de rede ipchains -A forward -j MASQ -s 10.4.2.0/8 -d0/0 -i eth0 -l redireciona o ip da requisição Comando para salvar as regras de ipchains ipchains-save ipchains-save > /tmp/regras.firewall salva as regras num arquivo "backup" para ser restaurado com o comando: ipchains-restore < /tmp/regras.firewall ********************************************************************************** > usando o ipchains, define-se para log um enderêço qualquer com o > flag -l. Até aí, nada demais. Mas *onde* raios fica o log disso?? /var/log/messages (por padrão) ou onde você configurar no /etc/syslog.conf. ********************************************************************************** >Tenho um servidor linux Conectiva 6 rodando como servidor >de e-mail/internet funcionando com squid e ipchains. >Será que alguem me dá umas dicas ??? >Seguem abaixo as minhas regras de ipchains. >Regras do IPchains >/sbin/modprobe ip_masq_ftp >/sbin/modprobe ip_masq_irc >/sbin/modprobe ip_masq_quake >/sbin/modprobe ip_masq_cuseeme Bem, eu não sei se faz diferença, mas aqui em casa as máquinas clientes não enxergam IPs externos a não ser que eu use mais esses dois modulos: /sbin/modprobe ip_masq_autofw /sbin/modprobe ip_masq_portfw Tenta acrescentar esses aí no seu script e me diz se funcionou! :) ********************************************************************************** redirecionar porta eu faco um redirecionamento da porta 80 para 3128 com a seguinte regra... ipchains -A input -i eth1 -p tcp -d 0.0.0.0/0.0.0.0 80 -j REDIRECT 3128 no caso a eth1 eh a placa da intranet, dessa maneira o bicho fica transparente eh soh habilitar accel nao sei o q no squid :) mas eh soh entrar eh http://www.squid-cache.org (ou .com) existe uma parte soh sobre isso... ********************************************************************************** IPCHAIM COM SQUID >Tipo, como eu devo configurar no servidor e o que eu devo configurar no >Windows. Crie um script que rode: /sbin/modprobe ip_masq_autofw /sbin/modprobe ip_masq_portfw /sbin/modprobe ip_masq_ftp /sbin/modprobe ip_masq_irc echo "1" > /proc/sys/net/ipv4/ip_forward echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter echo "1" > /proc/sys/net/ipv4/ip_dynaddr E depois vá adicionando as regras do Ipchains/Iptables.. E voilá! :) Compartilhamento de acesso a internet pronto.. É só configurar as máquinas windows para usar o servidor Linux como Gateway.. Nem precisa usar proxy nem nada.. :) ********************************************************************************** ********************************************************************************** ********************************************************************************** ********************************************************************************** > o que siginifica a /24. Ola, este /24 significa que voce esta usando sua classe C inteira /24 = 255.255.255.0 seria a mesma coisa que 192.168.1.0/24 = 192.168.1.0/255.255.255.0, para fazer oque voce quer que acho que eh uma classe B, voce devera configurar a seguinte mascara /16 = 255.255.0.0 e /8 que eh igual 255.0.0.0 que eh uma classe A caso voce queira usar outra classe. Na verdade essa especificacao de numeros significa o seguinte, 255 em binario eh representado por 11111111 (8 numeros 1), quando dizemos entao /24 estamos dizendo que temos 3 grupos de numeros 1111111, que seria 11111111.1111111.11111111.0 que eh igual a 255.255.255.0, 255 eh igual a 11111111, assim podemos simplificar apenas dando um /24 por exemplo:) Sacou? Espero que eu tenha lhe ajudado. > Estou pegando dicas e howtos para configurar o ipchais na minha rede, um > server RH 6.2 e estacoes win98, minha duvida: > vejo nas dicas para colocar 192.16.8.0.0/24, gostaria de saber como faco > para colocar a rede 172.16.0.0 sub mascara 255.255.0.0, pois naum entendi > o que siginifica a /24. > ********************************************************************************** IPCHAIM COMO ROTEADOR > Tenho duas redes (192.168.0.X e 192.168.30.X) e um linux (com duas > placas de rede) roteando no meio delas. > Enquanto o Ipchains está desativado consigo trabalhar como > uma rede só, conectando, acessando, etc... > O proposito de separar minha rede em duas foi, > no entanto, o de restringir o acesso de um lado para outro. > Alguem conhece as regras de ipchais que devo "ligar" para > conseguir que uma estação (W95) (somente uma entre varias) > de uma rede faça login no servidor (NT) da outra ?? > > [SOLUÇÃO] Descobri que todas as 3 politicas do ipchais tem que estar em "ACCEPT" para os pacotes poderem transitar - então pensei: libero duas politicas e controlo os pacotes em apenas uma. Minha intenção foi dividir minha rede em duas e permitir que apenas algumas maquinas de uma rede acessem a outra e vice-versa. A solução encontrada foi a seguinte: echo 1 >> /proc/sys/net/ipv4/ip_forward ipchains -P output ACCEPT ipchains -P forward ACCEPT ipchains -P input DENY ipchains -A input -s 192.168.30.100 -d 192.168.0.1 -j ACCEPT ipchains -A input -s 192.168.0.1 -j ACCEPT ipchains -A input -s 192.168.0.8 -j ACCEPT Ou seja: a maquina 192.168.30.100 poderá ver apenas a 192.168.0.1. As outras (192.168.0.1 e 0.8) poderao ver a 192.168.30.100 Obrigado a todos pelas dicas!! ********************************************************************************** Pelo que sei o comando descrito habilita o ip forward, manipulando diretamente o kernel. O correto seria você editar o arquivo /etc/sysconfig/network (no RedHat)e inserir a opção "yes" na linha: FORWARD_IPV4="yes" se estiver igual a "no" o ip forward estará desabilitado. Este comnado é uma maneira de forçar o ip forward, para garantir que esteja realmente funcionando. O correto seria habilitar editando o arquivo citado acima, pois se o valor estiver marcado "no" e você inserir o citado comando ele com certeza irá fazer com que o computador faça o ip forward. Mas poderá confundir outra pessoa, pois o comando não irá modificar o arquivo /etc/sysconfig/network. por exemplo se você rodar um utilitário tipo netconf no RedHat, ele te informará que o ip forward está desabilitado, pois ele vai coletar a informação do mencionado arquivo. ********************************************************************************** >Tambem nao acho correto enviar e-mails tao basicos para a lista com perguntas >que sao faceis e obvias de achar, em qualquer sitezinho de linux ou manual se >acha a resposta, mas e-mails mais avancados, e depois de tanto procurar, enviar >pedindo ajuda para a lista nao problema em alguem responder, voce por exemplo >em vez de mandar esse e-mail gigantesco poderia ter respondido uma porrada de >perguntas e ter ajudados muitas pessoas com uma resposta que outras pessoas >poderiam estar esperando tambem. Lembre-se que alista é sobre "Linux" e não "Suporte para o Linux" o pessoal vai responder se quiser, eles não são obrigados a ajudar ninguém, se o fazem é por boa vontade. >E minhas perguntas que ninguem responde e nao tem no historico ou eu nao estou >sabendo procurar pois escrever procmail naquele historico e achar como eu faco >para usar o rcfile dele com permissao de escrita para outros usuarios alem do >owner é um pouco meio MUITO dificil. O problema da maioria dos usuários é a preguiça, eles tem preguiça de ler ir atrás. É muito comum por aqui o pessoal pedir, pelo amor de Deus isso aquilo... Uma que Deus não tem nada haver com a incapacidade do pessoal de realizar as coisas. Deus lhe deu inteligência basta que nós as usemos. Se vc esta com problemas de permissões tente: man chown man chmod info chown info chmod >E firewall entao que eu estou perguntando a dias sobre isso, ja ate recebi >respostas, e todo santo dia tem gente falando do assunto e nao existe nada >concreto, estou brigando aqui sozinho e nao ta adiantando nada mandar e-mails >para a lista, e nem procurar no brilahnte historico de 200 anos, pois escrever >firewall la e achar justamente o que procuro, é impossivel. Meu amigo, segurança/firewall não é uma coisa que se aprende vendo histórico ou lendo emails de uma lista. Segurança se aprende fazendo e praticando, o que vc quer é uma coisa "mastigada" para que vc por no seu Linux, eu não sou contra, mas ficar sempre dependendo dos outros para fazer qualquer coisa eu sou contra. Se é isso que vc quer tem vários documentos na internet tente o http://www.ecst.csuchico.edu/~dranch/LINUX/TrinityOS.wri mais mastigado que aquilo não tem ... >Inclusive quem souber e tiver afim de ajudar alguem que esta aprendendo linux, >quero bloquear ALL no meu input e liberar uma navergacao na web por exemplo , >ja recebi respostas quanto a isso, nao quero usar proxy quero fazer isso so com >firewall, ipchains, e nao quero liberar um milhao de portas, quero fazer a home >page voltar para a origem, para a porta de quem pediu, nem sei se e possivel, >mas abrir um determinado numero de portas so para ver uma home page e melhor >nao por firewall. Tá certo, ninguém te respondeu? OK! vc só quer o www. Vamos supor que a sua rede esteja asssim: Internet -- eth1{200.200.200.200} [Linux] eth0{192.168.0.3} -- HUB -- Clientes Windows Vc precisa ter o kernel configurado para bridge, firewall{ipchains} outras infos veja IP-masquerade HOWTO #!/bin/sh PATH=/sbin # Limpa regras ipchains -F # Fecha TUDO!!!! ipchains -P input REJECT ipchains -P output REJECT ipchains -P forward REJECT # Proteção IP spoof echo 2 >/proc/sys/net/ipv4/conf/*/rp_filter # ipforwarding echo 1 > /proc/sys/net/ipv4/ip_forward ipchains -A forward -s 192.168.0.0/24 -j MASQ # Vc só quer o www então... ipchains -A input -p tcp -s 192.168.0.0/24 -d 0/0 80 -j ACCEPT ipchains -A output -p tcp -s 0/0 80 -d 192.168.0.0/24 -j ACCEPT # Precisamos liberar os pedidos de DNS tb. ipchains -A input -p udp -s 192.168.0.0/24 -d 0/0 53 -j ACCEPT ipchains -A output -p udp -s 0/0 53 -d 192.168.0.0/24 -j ACCEPT Vamos analizar mais de perto isso, como eu criei as regras??? Nas linhas de entrada e saída de pedidos www ( porta 80 ) ipchains -A = Cria novo chain ( regra ) input = Entrada de pacotes. -p tcp = Protocolo tcp -s = Vem de {IP dos clientes} -d = Vai para { Destino } -j ACCEPT = Aceita regras Por quê 0/0??? 0/0 significa qualquer IP, dependendo do lugar onde o informamos poderia liberar a entrada para todos ou saída para os mesmos. Mas como estamos trabalhando com ip MASQ e forward a interface eth1 { 200.200.200.200 } vai cuidar de pegar os pedidos dos clientes e repassar, então também poderiamos em vez de 0/0 o ip da interface eth1, pois vai ser através dela que iremos alcançar a internet e que no caso, tanto um como outro funcionaria da mesma maneira. Pergunta respondida??? >Bem ja cansei de escrever entao vou terminar por aqui, tambem ja sao quase >18:00 e tenho que ir pois estou no servico, mas fica aqui minha indignacao de >pessoas que mandam as outras procurarem no historico, e principalmente se for >alguma pergunta que com certeza a pessoa nao encontrara, se alguem encontrar o >que eu quero no historico me de a url que com certeza me sera util, se nao >podemos perguntar nada aqui, nao deveria vir e-mail para nossas cixas postais >deveriamos postar as mensagens e ir ve-las no historico, se ninguem responde >mesmo e so podemos ir la ver. Não é bem ninguém responde, dependendo da pergunta da para saber se o cara pelo menos deu uma olhada nos documentos, se não deu ninguém vai responder a mesma pergunta mais de 1.500 vezes. Muitas vezes a pergunta é tão óbvia, que basta uma olhada nos HOWTOS ou man para resolver o problema, mas como eu disse a maioria dos usuários são preguiçosos. [corta] > mas a tempos estou incomodado com usuarios >que nao teem suas perguntas respondidas e quando tem e alguem mandando ler >documentacao ou historico da lista, e tambem com usuarios sem bom senso que >ficam fazendo perguntas ignorantes em vez de procurar pelo assunto tao basico. É como eu disse os usuários tem preguiça de ir atrás, chega uma hora que os próprios usuários mais antigos da lista { aqueles que costumavam sempre a ajudar o pessoal menos experiente } ficam cansados de responder a mesma pergunta várias vezes. O pessoal se ofende muito se falarmos para eles "usarem a cabeça" "leia doc tal", mas como é que vc acha que os mais experientes chegaram aonde estão??? Eu garanto que não foi pedindo "Pelo amor de Deus" em uma lista de discussão. Para chegar a tal nível são necessárias horas e mais horas indo buscar documentos na net e estudando, muitas vezes é preciso sacrificar aquele fim de semana na praia com os amigos para ficar estudando, não é fácil! E é uma coisa que poucos estão dispostos a fazer. De qualquer maneira, tente utilizar o script, eu não testei mas pela lógica deve fuuncionar. E não se ofenda com este email, da mesma maneira que vc mostou seu ponto de vista, eu mostrei o meu.