redir: propozycja
Daniel Mróz
beorn w send.gromada.pl
Czw, 7 Lut 2002, 12:37:53 CET
Czesc
Pobawilem sie troche redirem i dla latwiejszej konfiguracji
zrobilem uruchamianie podobne do PLDowskiego (z jednym wyjatkiem).
Moze Wam sie przyda.
W katalogu /etc/sysconfig utworzylem podkatalog `redirection' z
plikami w takim oto formacie (przyklad pliku `www'):
------------------------
# Adres interfejsu, na którym chcemy nasłuchiwać
REDIR_LADDR=jakis.sobie.adres.IP
# Numer portu, na którym chcemy nasłuchiwać
REDIR_LPORT=80
# Adres docelowy przekierowania
REDIR_CADDR=jakis.inny.adres.IP
# Port docelowy przekierowania
REDIR_CPORT=80
# Czy mamy logować przez syslog(1)? [yes/no]
REDIR_SYSLOG=yes
# Czy logi mają być bardziej szczegółowe? [yes/no]
REDIR_DEBUG=no
# Czas nieaktywności, po którym ma nastąpić rozłączenie
REDIR_TIMEOUT=0
# Czy przekierowujemy połaczenie FTP, a jeśli tak, to jakie? [no/port/pasv/both]# no - nie przekierowujemy połączenia FTP
# port - obsługujemy tylko PORT
# pasv - obsługujemy tylko PASV
# both - obsługujemy PORT i PASV
REDIR_FTP=no
# Czy ma być włączone wsparcie dla transparent proxy? [yes/no]
REDIR_TPROXY=no
# Czy przekierowujemy połączenie poprzez proxy z obsługą CONNECT? [yes/no]
REDIR_CONNECT=no
# This must be last line !
# vi:syntax=sh:tw=78:ts=8:sw=4
----------------------------------
Takich plikow moze byc kilka(-nascie, -dziesiat, ...) z roznymi
ustawieniami.
Dodatkowo w skryptach startowych mam pliczek:
----------------------------------
#!/bin/sh
CONF_DIR=/etc/sysconfig/redirection
for REDIR_CONF in ${CONF_DIR}/*
do
echo "Ustawiam przekierowanie dla `basename ${REDIR_CONF}`..."
. ${REDIR_CONF}
REDIR_OPTS=''
[ "${REDIR_SYSLOG}" == 'yes' ] && REDIR_OPTS="${REDIR_OPTS} --syslog"
[ "${REDIR_DEBUG}" == 'yes' ] && REDIR_OPTS="${REDIR_OPTS} --debug"
[ ${REDIR_TIMEOUT} -ne 0 ] && \
REDIR_OPTS="${REDIR_OPTS} --timeout=${REDIR_TIMEOUT}"
if [ "${REDIR_FTP}" != 'no' ]
then
case "${REDIR_FTP}" in
'pasv'|'PASV')
REDIR_OPTS="${REDIR_OPTS} --ftp=pasv"
;;
'port'|'PORT')
REDIR_OPTS="${REDIR_OPTS} --ftp=port"
;;
'both'|'BOTH')
REDIR_OPTS="${REDIR_OPTS} --ftp=both"
;;
*)
# Blah
;;
esac
fi
[ "${REDIR_TPROXY}" == 'yes' ] && \
REDIR_OPTS="${REDIR_OPTS} --transproxy"
[ "${REDIR_CONNECT}" == 'yes' ] && "${REDIR_OPTS} --connect"
[ -z "${REDIR_LADDR}" ] && REDIR_LADDR=0.0.0.0
if [ -z "${REDIR_LPORT}" -o -z "${REDIR_CADDR}" -o -z "${REDIR_CPORT}" ]
then
echo "Błąd konfiguracji"
exit 1
fi
redir \
--laddr="${REDIR_LADDR}" \
--lport="${REDIR_LPORT}" \
--caddr="${REDIR_CADDR}" \
--cport="${REDIR_CPORT}" \
${REDIR_OPTS} &
done
--------------------------------------
Jeszcze tylko dodanie
--------------------------------------
destination redir { file("/var/log/redir"); };
filter f_redir { program(redir); };
log { source(src); filter(f_redir); destination(redir); };
--------------------------------------
do syslog-ng.conf i... dziala :)
Oczywiscie trzeba by to wszystko popoprawiac, przerobic na rc-scripts
itp., itd.
To tylko propozycja. Nie bijcie ;)
Pozdrawiam
Beorn
--
----------------------------------------------------------------------
Daniel `Beorn' Mróz <beorn w alpha.pl> http://127.0.0.1/beorn
GCS/E d-(pu) s-:- a--@ C++++ UL++++$ P+++ L+++ E--- X W+>++ N+++ o? K-
w--- O M- V- PS PE- !Y PGP+ t- 5- R tv-- b+ DI++ D+++ G++ e h+ r--- y?
----------------------------------------------------------------------
Więcej informacji o liście dyskusyjnej pld-devel-pl