Newsgroup: it.comp.os.linux.iniziare
Titolo: Come editare il file rc.local ?

Salve al newsgroups
dovrei inserire dei comandi per abilitare i terminali della lan ad accedere
ad internet, con i seguenti comandi ( se li do in manuale tutto funziona) ma
dopo ogni riaccensione devo ridarli.
I parametri sono questi:
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -A POSTROUTING -d ! 
192.168.0.0/24
 -j MASQUERADE
iptables -A FORWARD -s 
192.168.0.0/24
 -j ACCEPT
iptables -A FORWARD -d 192.168.0.0724 -j ACCEPT
iptables -A FORWARD -j DROP
echo "1" > /proc/sys/net/ipv4/ip_forward
(anzi con l'occasione mi dite se vanno bene, A me funzionano)
Ho letto su una rivista che potrei inserirli in un file script "rc.local",
ma non so come fare, ho individuato il file, si trova in
/ect ma mi guidate a farlo? Risolvo se inserisco questi dati?
Grazie, da Roberto.

 /ect ma mi guidate a farlo? Risolvo se inserisco questi dati?
Le righe possono andare bene, per inserirli in rc.local non devi fare
altro che aprire il file e metterceli dentro :) Ti consiglio di usare
percorsi assoluti tipo /sbin/iptables 
-- 
Federico:       
http://www.sideralis.net
Espace:  
http://www.sideralis.net/espace
IRC:          
irc.sideralis.fastland.org
Linux:             
http://www.gentoo.org

 /ect ma mi guidate a farlo? Risolvo se inserisco questi dati?
Perchč non li inserisci in un file chiamato ad es. rc.firewall nella
cartella /etc/rc.d e non gli dici tramote chkconfig di eseguirlo nei
runlevel 3,4,5 con chkconfig --level=345 rc.firewall on
?
Mi sembra molto piů pulita come soluzione.
--------------------------------
Inviato via 
http://usenet.libero.it

 Mi sembra molto piů pulita come soluzione.
L'idea di fare un file apposito mi piace, solo che non ho l'idea di come
realizzarlo, non capisco niente di linux, solo da poco sono riuscito ad
installare mandrake 8.1 su un pc di recupero.
Dovrei usare il comando Vi per editarlo ??
Ammesso che ci riesca a farlo questo file, mi dai qualche dettaglio su quale
comando devo dare per configurarlo con il comando "chkconfig", grazie.
Roberto.

 ?
Allora, ho editato il file rc.firewall, ho messo dentro tutte le righe.
ma quando do il comando da terminale:
chkconfig --level=345 rc.firewall on
mi risponde con un msg di errore.
esattamente:
error reading information on service rc.firewall: No such file or directory
Dov'è che sbaglio?

 /ect ma mi guidate a farlo? Risolvo se inserisco questi dati?
Comincia a scriverli in un file qualsiasi che iniziera' con
#!/bin/bash
o col percorso assoluto della tua shell cosi' il sistema capisce che e'
uno script di bash.
Chiama il tuo script come_vuoi e inseriscilo dove_vuoi.
Poi rendilo eseguibile (man chmod), e poi metti solo un riferimento al tuo
firewall in rc.local (se la connessione e' su all' avvio) oppure in
/etc/ppp/ip-up se sei un'utente dial-up).
-- 
The fish doesn't think ,
cause the fish knows everything
	>>>:/OuZ\:<<<
per rispondermi in mail rimuovere TOGLIQUESTO

 grazie. Roberto.
Ho omesso di dire alcune cose:
Nella cartella /etc/rc.d/init.d crea un file, chiamalo ad es. firewall-2.4 
e schiaffaci dentro questo:
<----- INIZIO ----->
#!/bin/sh
. /etc/rc.d/init.d/functions
[ "XXXX${NETWORKING}" = "XXXXno" ] && exit 0
[ -x /sbin/ifconfig ] || exit 0
IPTABLES=/sbin/iptables
case "$1" in
  start)
    /etc/rc.d/rc.firewall-2.4
    ;;
 
  stop)
    echo -e "\nScarico il firewall ed imposto le policy di default a DROP\n"
    $IPTABLES -P INPUT DROP
    $IPTABLES -F INPUT
    $IPTABLES -P OUTPUT DROP
    $IPTABLES -F OUTPUT
    $IPTABLES -P FORWARD DROP
    $IPTABLES -F FORWARD
    $IPTABLES -F -t nat
    $IPTABLES -X
 
    $IPTABLES -Z
    ;;
  restart)
        $0 stop
        $0 start
        ;;
  status)
        $IPTABLES -L
        ;;
  mlist)
    cat /proc/net/ip_conntrack
    ;;
  *)
        echo "Utilizzo: firewall-2.4 {start|stop|status|mlist}"
        exit 1
esac
exit 0
<----- FINE ----->
e rendilo eseguibile con chmod +x firewall-2.4
Questo è lo script che fa partire iptables caricando le regole, che lo 
spegne, lo riavvia ecc...
poi crea il file nella cartella /etc/rc.d e chiamalo rc.firewall-2.4
Qui dentro ci dovrai mettere le regole, ma anche caricare i vari moduli di 
iptables ecc...
Ti metto quello che c'è nell'IP_MASQUERADE_HOWTO come esempio:
<----- INIZIO ----->
#!/bin/sh
#
# rc.firewall-2.4
FWVER=0.73
#
#               Initial SIMPLE IP Masquerade test for 2.4.x kernels
#               using IPTABLES. 
#
#               Once IP Masquerading has been tested, with this simple
#               ruleset, it is highly recommended to use a stronger
#               IPTABLES ruleset either given later in this HOWTO or
#               from another reputable resource.
#
#
#
# Log:
#       0.73 - REJECT is not a legal policy yet; back to DROP
#       0.72 - Changed the default block behavior to REJECT not DROP
#       0.71 - Added clarification that PPPoE users need to use
#              "ppp0" instead of "eth0" for their external interface
#       0.70 - Added commented option for IRC nat module
#            - Added additional use of environment variables
#            - Added additional formatting
#       0.63 - Added support for the IRC IPTABLES module
#       0.62 - Fixed a typo on the MASQ enable line that used eth0
#              instead of $EXTIF
#       0.61 - Changed the firewall to use variables for the internal
#              and external interfaces.
#       0.60 - 0.50 had a mistake where the ruleset had a rule to DROP
#              all forwarded packets but it didn't have a rule to ACCEPT
#              any packets to be forwarded either
#            - Load the ip_nat_ftp and ip_conntrack_ftp modules by default
#       0.50 - Initial draft
#
echo -e "\n\nLoading simple rc.firewall version $FWVER..\n"
# The location of the iptables and kernel module programs
#
#   If your Linux distribution came with a copy of iptables,
#   most likely all the programs will be located in /sbin.  If
#   you manually compiled iptables, the default location will
#   be in /usr/local/sbin
#
# ** Please use the "whereis iptables" command to figure out
# ** where your copy is and change the path below to reflect
# ** your setup
#
#IPTABLES=/sbin/iptables
IPTABLES=/usr/local/sbin/iptables
DEPMOD=/sbin/depmod
INSMOD=/sbin/insmod
#Setting the EXTERNAL and INTERNAL interfaces for the network
#
#  Each IP Masquerade network needs to have at least one
#  external and one internal network.  The external network
#  is where the natting will occur and the internal network
#  should preferably be addressed with a RFC1918 private address
#  scheme.
#
#  For this example, "eth0" is external and "eth1" is internal"
#
#
#  NOTE:  If this doesnt EXACTLY fit your configuration, you must
#         change the EXTIF or INTIF variables above. For example:
#
#            If you are a PPPoE or analog modem user:
#
#               EXTIF="ppp0"
#
#
EXTIF="eth0"
INTIF="eth1"
echo "   External Interface:  $EXTIF"
echo "   Internal Interface:  $INTIF"
#======================================================================
#== No editing beyond this line is required for initial MASQ testing ==
echo -en "   loading modules: "
# Need to verify that all modules have all required dependencies
#
echo "  - Verifying that all kernel modules are ok"
$DEPMOD -a
# With the new IPTABLES code, the core MASQ functionality is now either
# modular or compiled into the kernel.  This HOWTO shows ALL IPTABLES
# options as MODULES.  If your kernel is compiled correctly, there is
# NO need to load the kernel modules manually. 
#
#  NOTE: The following items are listed ONLY for informational reasons.
#        There is no reason to manual load these modules unless your
#        kernel is either mis-configured or you intentionally disabled
#        the kernel module autoloader.
#
# Upon the commands of starting up IP Masq on the server, the
# following kernel modules will be automatically loaded:
#
# NOTE:  Only load the IP MASQ modules you need.  All current IP MASQ
#        modules are shown below but are commented out from loading.
# ===============================================================
echo 
"----------------------------------------------------------------------"
#Load the main body of the IPTABLES module - "iptable"
#  - Loaded automatically when the "iptables" command is invoked
#
#  - Loaded manually to clean up kernel auto-loading timing issues
#
echo -en "ip_tables, "
$INSMOD ip_tables
#Load the IPTABLES filtering module - "iptable_filter"
#  - Loaded automatically when filter policies are activated
#Load the stateful connection tracking framework - "ip_conntrack"
#
# The conntrack  module in itself does nothing without other specific
# conntrack modules being loaded afterwards such as the "ip_conntrack_ftp"
# module
#
#  - This module is loaded automatically when MASQ functionality is
#    enabled
#
#  - Loaded manually to clean up kernel auto-loading timing issues
#
echo -en "ip_conntrack, "
$INSMOD ip_conntrack
#Load the FTP tracking mechanism for full FTP tracking
#
# Enabled by default -- insert a "#" on the next line to deactivate
#
echo -en "ip_conntrack_ftp, "
$INSMOD ip_conntrack_ftp
#Load the IRC tracking mechanism for full IRC tracking
#
# Enabled by default -- insert a "#" on the next line to deactivate
#
echo -en "ip_conntrack_irc, "
$INSMOD ip_conntrack_irc
#Load the general IPTABLES NAT code - "iptable_nat"
#  - Loaded automatically when MASQ functionality is turned on
#
#  - Loaded manually to clean up kernel auto-loading timing issues
#
echo -en "iptable_nat, "
$INSMOD iptable_nat
#Loads the FTP NAT functionality into the core IPTABLES code
# Required to support non-PASV FTP.
#
# Enabled by default -- insert a "#" on the next line to deactivate
#
echo -en "ip_nat_ftp, "
$INSMOD ip_nat_ftp
#Loads the IRC NAT functionality into the core IPTABLES code
# Require to support NAT of IRC DCC requests
#
# Disabled by default -- remove the "#" on the next line to activate
#
#echo -e "ip_nat_irc"
#$INSMOD ip_nat_irc
echo 
"----------------------------------------------------------------------"
# Just to be complete, here is a list of the remaining kernel modules
# and their function.  Please note that several modules should be only
# loaded by the correct master kernel module for proper operation.
# --------------------------------------------------------------------
#
#    ipt_mark       - this target marks a given packet for future action.
#                     This automatically loads the ipt_MARK module
#
#    ipt_tcpmss     - this target allows to manipulate the TCP MSS
#                     option for braindead remote firewalls.
#                     This automatically loads the ipt_TCPMSS module
#
#    ipt_limit      - this target allows for packets to be limited to
#                     to many hits per sec/min/hr
#
#    ipt_multiport  - this match allows for targets within a range
#                     of port numbers vs. listing each port individually
#
#    ipt_state      - this match allows to catch packets with various
#                     IP and TCP flags set/unset
#
#    ipt_unclean    - this match allows to catch packets that have invalid
#                     IP/TCP flags set
#
#    iptable_filter - this module allows for packets to be DROPped,
#                     REJECTed, or LOGged.  This module automatically
#                     loads the following modules:
#
#                     ipt_LOG - this target allows for packets to be
#                               logged
#
#                     ipt_REJECT - this target DROPs the packet and returns
#                                  a configurable ICMP packet back to the
#                                  sender.
#
#    iptable_mangle - this target allows for packets to be manipulated
#                     for things like the TCPMSS option, etc.
echo -e "   Done loading modules.\n"
#CRITICAL:  Enable IP forwarding since it is disabled by default since
#
#           Redhat Users:  you may try changing the options in
#                          /etc/sysconfig/network from:
#
#                       FORWARD_IPV4=false
#                             to
#                       FORWARD_IPV4=true
#
echo "   Enabling forwarding.."
echo "1" > /proc/sys/net/ipv4/ip_forward
# Dynamic IP users:
#
#   If you get your IP address dynamically from SLIP, PPP, or DHCP,
#   enable this following option.  This enables dynamic-address hacking
#   which makes the life with Diald and similar programs much easier.
#
echo "   Enabling DynamicAddr.."
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
# Enable simple IP forwarding and Masquerading
#
#  NOTE:  In IPTABLES speak, IP Masquerading is a form of SourceNAT or SNAT.
#
#  NOTE #2:  The following is an example for an internal LAN address in the
#            192.168.0.x network with a 255.255.255.0 or a "24" bit subnet 
mask
#            connecting to the Internet on external interface "eth0".  This
#            example will MASQ internal traffic out to the Internet but not
#            allow non-initiated traffic into your internal network.
#
#           
#         ** Please change the above network numbers, subnet mask, and your
#         *** Internet connection interface name to match your setup
#        
#Clearing any previous configuration
#
#  Unless specified, the defaults for INPUT and OUTPUT is ACCEPT
#    The default for FORWARD is DROP (REJECT is not a valid policy)
#
echo "   Clearing any existing rules and setting default policy.."
$IPTABLES -P INPUT ACCEPT
$IPTABLES -F INPUT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -F OUTPUT
$IPTABLES -P FORWARD DROP
$IPTABLES -F FORWARD
$IPTABLES -t nat -F
echo "   FWD: Allow all connections OUT and only existing and related ones 
IN"
$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state 
ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
$IPTABLES -A FORWARD -j LOG
echo "   Enabling SNAT (MASQUERADE) functionality on $EXTIF"
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
echo -e "\nrc.firewall-2.4 v$FWVER done.\n"
<----- FINE ----->
Ovviamente te lo devi personalizzare, l'iterfaccia di uscita, gli indirizzi 
e le opzioni ma per quello c'è man iptables.
Rendi eseguibile anche questo.
poi prova ad eseguire il firewall-2.4 e l' rc.firewall-2.4 da console, e 
vedi se fanno il loro lavoro.
Quando fanno il loro lavoro, lancia il chkconfig
chkconfig --level=345 firewall-2.4 on
dalla cartella /etc/rc.d/init.d così lo trova.
Per maggiori dettagli:
http://www.tldp.org/HOWTO/IP-Masquerade-HOWTO/firewall-examples.html#RC.FIREWALL-2.4.X
Ciao

 Per adesso ho sistemato in questo modo:
ho inserito le righe nel file rc.local, esattamente queste:
iptables -t nat -A POSTROUTING -d ! 
192.168.0.0/24
 -j
MASQUERADE
iptables -A FORWARD -s 
192.168.0.0/24
 -j ACCEPT
iptables -A FORWARD -d 192.168.0.0724 -j ACCEPT
iptables -A FORWARD -j DROP
echo "1" > /proc/sys/net/ipv4/ip_forward
successivamente vedro di sistemare meglio.
Volevo ringraziare tutti coloro che mi hanno risposto, prenderò in
considerazioni i vostri consigli, un cordilale grazie.
Roberto.

 successivamente vedro di sistemare meglio.
si, ma togli l' ACCEPT di default in INPUT sul Firewall. o per lo meno
stracontrolla di non avere porte aperte... (con il forward e' meno grave)


 stracontrolla di non avere porte aperte... (con il forward e' meno grave)
Il fatto è che non capisco niente di comandi.
Provero a togliere l'accept, ma poi come faccio a vedere se rimangono porte
aperte?
Mi dai una mano.....grazie.
Roberto.

 aperte?
Beh, intanti gia' a logica con un DROP al posto di un ACCEPT il numero di
porte aperte sicuramente non puo' aumentare, anzi...
Per sapere le porte aperte comuncia con un bel:
netstat -tunapee (da root)
per l'output e per le opzioni che ti ho dato leggi il man di netstat e
vedrai che avrai un po le cose piu' chiare.
