Kod: Zaznacz cały
#! /bin/bash
#
# by dmn
#
# !!! należy odblokować repozytorium universe !!!
# utworzenie tymczasowego folderu
mkdir fireholtemp
cd fireholtemp
##alien:##
sudo apt-get install --yes alien
##gawk:##
sudo apt-get install gawk
##firehol:##
# pobranie paczki z sourceforge w najnowszej wersji
paczka=`w3m -dump_source http://sourceforge.net/project/showfiles.php?group_id=58425 | grep -i noarch\.rpm | grep -i href | head -1`
paczka=`echo $paczka | awk '{k=$0; k=substr(k,index(k,"href=")+6); k=substr(k,1,index(k,"rpm")+2); print(k); }'`
echo $paczka
wget $paczka
# konwersja na *.deb
sudo alien -d firehol*.rpm
# instalacja i usunięcie pozostałości
sudo dpkg --install firehol*.deb
rm firehol*.rpm
rm -f firehol*.deb
# dodanie do automatycznego startu
# usunięcie automatycznego startu: sudo update-rc.d -f firehol remove
sudo update-rc.d firehol start 41 S . start 36 0 6 .
##firehol - konfiguracja podstawowa:##
sudo sh -c 'cat > /etc/firehol/firehol.conf << "EOF"
version 5
# Accept all client traffic on any interface
#interface any world
# client all accept
# Moblock chain
iptables --new MOBLOCK_IN
iptables --new MOBLOCK_OUT
iptables --new MOBLOCK_FW
iptables -A MOBLOCK_IN -j NFQUEUE
iptables -A MOBLOCK_OUT -j NFQUEUE
iptables -A MOBLOCK_FW -j NFQUEUE
# Bittorrent. tcp ports 6881 to 6999
server_torrent_ports="tcp/6881:6999"
client_torrent_ports="default"
# "any" means any interface, you can substitute it
# for eth0 or whatever.
interface any world
protection strong
policy drop
# Let torrent and exampleport through, and
# filter them in moblock.
server "torrent" MOBLOCK_IN
# This will send http traffic directly
# to accept instead of moblock
# thus whitelisting it...
client http accept
client pop3 accept
client pop3s accept
# Filter all outgoing connections, and their replies.
client all MOBLOCK_OUT
EOF'
##moblock:##
# pobranie paczki z sourceforge w najnowszej wersji
paczka=`w3m -dump_source http://moblock-deb.sourceforge.net/debian/dists/unstable/main/binary-i386/net/ | grep moblock-nfq | awk '{k=$0; k=substr(k,index(k,"HREF=")+6); k=substr(k,1,index(k,"\">")-1); print(k); }'`
paczka="http://moblock-deb.sourceforge.net/debian/dists/unstable/main/binary-i386/net/${paczka}"
echo $paczka
wget $paczka
# instalacja zależności i pobranej paczki
sudo apt-get install libnetfilter-queue1 libnfnetlink1
sudo dpkg --install moblock-nfq*.deb
# usunięcie pozostałości
rm moblock-nfq*.deb
# zatrzymanie moblock, będziemy edytować konfigurację
sudo /etc/init.d/moblock-nfq stop
# edycja pliku /etc/moblock/MoBlock-nfq.sh, zmiana "ACTIVATE_CHAINS=1" na "ACTIVATE_CHAINS=0"
pushd /etc/moblock/
# numer linijki, w której jest "ACTIVATE_CHAINS="
n=`cat MoBlock-nfq.sh | grep "ACTIVATE_CHAINS=" --line-number --only-matching | awk '{ k=$0; print(substr(k,1,length(k)-17)); }'`
# skopiowanie nagłówka pliku
sudo sh -c "head -$(( $n - 1 )) MoBlock-nfq.sh > tmp-2"
# dodanie linijki
sudo sh -c "echo 'ACTIVATE_CHAINS=0' >> tmp-2"
n2=`cat MoBlock-nfq.sh | wc -l`
n2=$(( $n2 - $n))
# dodanie wszystkiego poniżej zamienianej linijki z oryginalnego pliku
sudo sh -c "tail -$n2 MoBlock-nfq.sh >> tmp-2"
#zastąpienie pliku
sudo mv -f tmp-2 MoBlock-nfq.sh
sudo chmod 744 MoBlock-nfq.sh
popd
# uruchomienie usług
sudo /etc/init.d/firehol start
sudo /etc/init.d/moblock-nfq start
# usunięcie tymczasowego folderu
cd ..
rm -rv fireholtemp
Strony z których korzystałem:
Strona projektu FireHOL
Strona projektu MoBlock
Wątek na ubuntuforums.org
Opis instalacji MoBlock i FireHOL (uwaga - tylko dla starszych wersji)