Witam.
Opisów jak blokować wybrane strony jest cała masa, a mnie interesuje sytuacja odwrotna. Muszę zablokować dostęp do wszystkich stron, poza 2,3 wybranymi. Jak to zrobić w najprostszy sposób?
Witam.
Opisów jak blokować wybrane strony jest cała masa, a mnie interesuje sytuacja odwrotna. Muszę zablokować dostęp do wszystkich stron, poza 2,3 wybranymi. Jak to zrobić w najprostszy sposób?
Dzięki, ale coś mi nie działa.
Do squid.conf dopisałem
acl whitelist dstdomain "/etc/squid/whitelist"
http_access deny !whitelist
stworzyłem plik /etc/squid/whitelist, dodałem adresy wg wzoru i nic. Bez zmian. Coś przegapiłem?
sqid to proxy, trzeba je ustawić (/etc/sysconfig/proxy)
HTTP_PROXY="localhost"
HTTPS_PROXY="localhost"
dodać do autostartu
chkconfig –level 3 squid
. Może się trochę zapędziłem z tą poradą (to bardziej by pasowało pod serwer), niestety nie mam tego na czym przetestować. Spróbuj ustawić iptables (zamiast tego proxy), oc jeśli nie masz serwera
#Flush existing rules
iptables -F
# Set up default DROP rule for eth0
iptables -P INPUT DROP
# Allow existing connections to continue
iptables -A INPUT -i eth0 -m state EXISTING,RELATED -j ACCEPT
# Accept everything from the 192.168.1.x network
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT
# Allow connections from this host to 192.168.2.10
iptables -A OUTPUT -o eth0 -d 192.168.2.10 -j ACCEPT
Gdzie powtarzasz ip stron mających mieć dostęp ostatnią linią (zmieniając ip)
Mógłby się udzielić, ktoś kto na linuxie siedzi na co dzień
Mógłby
Sam myślałem właśnie nad zaciągnięciem do tego zapory, z tym, że musiałbyś znać adresy IP tych stron, najlepiej znać cały zakres, pingując np. domenę należącą do FB, widać, że IP się zmienia co jakiś czas.
Nie wiem jak masz skonfigurowaną zaporę, najwyżej dopasujesz to pod swoje potrzeby.
iptables -F
# Polityka bezpieczeństwa (blokuje cały ruch sieciowy)
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# Reguły podstawowe
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i lo -j ACCEPT
iptables -A OUTPUT -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Reguły dla adresów, które nie będą blokowane
iptables -A OUTPUT -p tcp -d adres_ip_domeny --dport 80 -j ACCEPT
Pozdrawiam!
Dzięki panowie.
Jak znajdę chwilkę, to przetestuję na wirtualu i sprawdzę jak to działa.
Zapomniałem jeszcze wyjaśnić, ta reguła
iptables -A OUTPUT -p tcp -d adres_ip_domeny --dport 80 -j ACCEPT
zezwala na nawiązanie połączenia tylko dla protokołu tcp i tylko na port docelowy 80, jeśli chciałbyś zezwalać na wszystko dla tego adresu, wystarczy skrócić regułkę
iptables -A OUTPUT -d adres_ip_domeny -j ACCEPT
Pozdrawiam!
Dzięki, działa.
Niestety, do reguł musiałem dodać jeszcze te wszystkie google-analytics, gemiusy i inne śmieci, ale działa.
Edit:
Dział, ale tylko do restartu systemu. Niby wykonałem iptables-save, ale po restarcie reguł brak.
Niestety taki jest urok blokowania wszystkiego poza
To coś w stylu cis i jego domyślnego blokowania (czasami boli).
Zapisałeś, ale musisz też przywracać przy starcie. Możesz to zrobić autouruchamiając restore przy starcie systemu:
echo "#!/bin/sh" > /etc/network/if-up.d/iptables
echo "iptables-restore < /etc/firewall.conf" >> /etc/network/if-up.d/iptables
chmod +x /etc/network/if-up.d/iptables
Albo wrzucając przywracanie do uruchamiania interfejsu (/etc/network/interface):
pre-up iptables-restore < /etc/iptables.conf
Lub instalując iptables-persistent
apt-get install iptables-persistent
Iptables-save zapisuje reguły do pliku, możesz to zrobić, np. tak:
iptables-save > rules
iptables-restore rules
lub stworzyć skrypt Basha z regułami i wrzucić go do skryptów startowych, lub tak, jak opisał drobok.
Pozdrawiam!
Zrobiłem to w ten sposób i w końcu wszystko działa jak należy.
Jeszcze raz dzięki Panowie za pomoc.
Tak z ciekawosci panowie, moze sie myle ale czy przypadkiem wyedytowanie “hostow” nie bylo by prostsze?
Rzeczywiście szybciej by było ALL: ALL w /etc/hosts.deny postawić, a dodać wszystko do /etc/hosts.allow (nie używałem tego nigdy, nie wpadłem na to)
Ha, najprostsze rozwiązania czasami umykają. Ale nic straconego. Wszystko działa jak miało działać, a ja przynajmniej czegoś o iptables się nauczyłem.
Owszem można edytować hosty i jest to z pewnością łatwiejsze rozwiązanie, ale zapora odrzuca od razu zbędne pakiety.
Pozdrawiam!