Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2015-03-11 14:54:59

  monika - Nowy użytkownik

monika
Nowy użytkownik
Zarejestrowany: 2015-03-11

skrypt dodajacy regule do firewalla

Witam :)
Potrzebuje prostego skryptu.
skrypt chce dopisać do /etc/rc.local oraz do /etc/cron.daily
skrypt ma wykonywać takie coś: skrypt wpisuje za mnie takie coś / żebym nie musiała tego wklepywać w konsoli po każdym restarcie serwera.
A wiec skrypt pisze za mnie:

Kod:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables-save > /etc/iptables.init

potrzebowała bym ten skrypt w 2 wersjach
wersja nr1 skrypt zapisuje sobie do pliku i umieszczam w /etc/cron/daily
wersja nr. dopisuje co trzeba do rc.local (chodzi o to żeby po restarcie napisał za mnie te trzy linijki, bym ja nie musiała logować się i pisać tego.
obecnie mój etc/rc.local wygląda tak

Kod:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

cp /etc/podmiana.user /etc/podmieniony.conf
exit 0

Jak to zrobić ?

edit: czy tak będzie dobrze ?
nr1 skrypt do /etc/cron/dayly

Kod:

#!/bin/sh
#skrypt dodajacy regule do iptables
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables-save > /etc/iptables.init

powinnam dopisać exit 0 na końcu ?


a rc.local powinnam wyedytowac tak ?

Kod:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

cp /etc/podmiana.user /etc/podmieniony.conf
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables-save > /etc/iptables.init
exit 0

Ostatnio edytowany przez monika (2015-03-11 15:12:52)

Offline

 

#2  2015-03-11 17:58:39

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: skrypt dodajacy regule do firewalla

http://manpages.ubuntu.com/manpages/utopic/en/man8/iptables-restore.8.html
http://manpages.ubuntu.com/manpages/utopic/en/man5/sysctl.conf.5.html

Offline

 

#3  2015-03-11 20:39:12

  monika - Nowy użytkownik

monika
Nowy użytkownik
Zarejestrowany: 2015-03-11

Re: skrypt dodajacy regule do firewalla

(muszę tak kombinować bo nie zakumalam iptables - używam ufw i on trochę rozwala mi iptables)

Z rc.local sobie poradziłam (wygląda ze działa)

Kod:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

sleep 5
cp /etc/podmiana.user /etc/podmieniony.conf
sleep 1
echo 1 > /proc/sys/net/ipv4/ip_forward
sleep 1
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
sleep 1
iptables-save > /etc/iptables.init
exit 0

tylko coś nie chce działać skrypt dodany do /etc/cron.custom
nie śmiać się :)

Kod:

#!/bin/sh
#skrypt dodajacy regule do iptables
sleep 3
echo 1 > /proc/sys/net/ipv4/ip_forward
sleep 1
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
sleep 1
iptables-save > /etc/iptables.init
exit 0

crontab -e (dodałam: )

Kod:

24 20 * * *      /bin/run-parts /etc/cron.custom

i wywala mi błąd
/var/log/syslog

Kod:

Mar 11 20:24:01 testowy /USR/SBIN/CRON[2822]: (root) CMD (/bin/run-parts /etc/cron.custom)
Mar 11 20:24:06 testowy /USR/SBIN/CRON[2821]: (CRON) info (No MTA installed, discarding output)

jak fiksnac to: No MTA installed, discarding output

Ostatnio edytowany przez monika (2015-03-11 20:47:33)

Offline

 

#4  2015-03-11 21:31:54

  enether - wiecznie niewyspany

enether
wiecznie niewyspany
Zarejestrowany: 2012-05-01

Re: skrypt dodajacy regule do firewalla

Potrzebujesz ogólnie ustawić w kernelu zezwolenie na IP forwarding, od tego jest /etc/sysctl.conf (co słusznie zauważył kolega morfik wyżej)

Kod:

[...]
# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1
[...]

Wystarczy odkomentować, potem wykonać z roota

Kod:

sysctl -p

i system wczyta z pliku co potrzebuje, a przy następnym uruchomieniu ustawi sam.

Odnośnie reguły maskarady w łańcuchu nat, skrypt w cronie jest nieco bez sensu, gdyż będzie ci co wykonanie dopisywał kolejne regułki o tym samym znaczeniu które i tak nigdy niczego nie zrobią. Raz wystarczy.

Skoro używasz UFW, to może Ci pomóc.
https://gist.github.com/kimus/9315140

Wrzuci regułkę zanim zacznie się cała magia UFW i dopilnuje by nie wypadła.


Ale ogólnie polecam się mimo wszystko zaprzyjaźnić z gołym iptables, ponieważ jest bardzo przejrzyste gdy już się załapie filozofię jego działania ;)
I zamiast pisania do niego własnych skryptów polecam się zapoznać z poleceniami iptables-save, iptables-restore (znów podrzucone przez kolegę morfika) oraz zainstalować z repo skrypt iptables-persistent który zajmie się wczytywaniem plików regułek i ich ew. przeładowywaniem.


A co do problemów z MTA, ćwiczenie: Czym jest MTA i o co chodzi w tym komunikacie błędu :>

Ostatnio edytowany przez enether (2015-03-11 22:01:36)

Offline

 

#5  2015-03-11 22:37:11

  monika - Nowy użytkownik

monika
Nowy użytkownik
Zarejestrowany: 2015-03-11

Re: skrypt dodajacy regule do firewalla

Wiem ze muszę załapać iptables - ufw to zuo :)
póki co muszę podpierać się protezami
Dziękuję za uwagi - postaram się w najbliższym czasie zrozumieć te porady (zakumac)
(próbowałam już kilku rozwiązań/poradników jak obejść ten problem z ufw i żadne tutoriale u mnie nie zadziałały. Doszło do tego ze kiedyś odcięłam się od serwera ;P .

Przerobilam troszke skrypt , ten z /etc/cron.custom - teraz wyglada tak:

Kod:

#!/bin/sh
#skrypt dodajacy regule do iptables
sleep 3
echo 1 > /proc/sys/net/ipv4/ip_forward
sleep 1
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
sleep 1
iptables-save > /etc/iptables.init
sleep 1
echo "zrobione" >> /var/log/melduje.txt
slep 1
exit 0

/var/log/syslog nadal pokazuje (No MTA installed, discarding output)
ale sprawdzałam pliki i wszystkie, które powinny być - zostały nadpisane. Czyli chyba skrypt działa i można komunikat z sysloga lekceważyć. (?)

Kod:

cat /var/log/melduje.txt
zrobione

Dzięki za wędki :)

Offline

 

#6  2015-03-11 23:08:57

  enether - wiecznie niewyspany

enether
wiecznie niewyspany
Zarejestrowany: 2012-05-01

Re: skrypt dodajacy regule do firewalla

Trochę nie za bardzo rozumiem dlaczego koleżanka uparła się tak przy idei umieszczania poleceń iptables/sysctl w  skrypcie, czyżby uczelniane zadanie i jedyne słuszne rozwiązanie akceptowane przez prowadzącego? :>

W zasugerowanym przeze mnie rozwiązaniu nie istnieje potrzeba tworzenia żadnych własnych skryptów, zwyczajnie jednokrotne ustawienie co trzeba, by potem do końca świata robiło się samo.

I czym są te magiczne pliki podmiana.user / podmieniony.conf jeżeli to nie tajemnica?

Offline

 

#7  2015-03-11 23:24:01

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: skrypt dodajacy regule do firewalla

Iptables i nowy Nftables (jego "synek") mają dosyć prostą składnię, jak się zrozumie logikę działania firewalla Netfilter.

Klikajła w typie starego Firestartera i obecnego GUFV mogę określić tylko jako utrudniacze sieciowe.

Tu jest podręcznik Netfiltera:
http://pl.wikibooks.org/wiki/Sieci_w_Linuksie/Netfilter

A tu schemat przepływu pakietów przez Netfiltera (Iptables),
(w NFtables jest troszkę inny).
http://docs.huihoo.com/shorewall/2.0/images/Netfilter.png

Ten obrazek nie uwzględnia tablicy RAW Netfiltera, ale to nie problem, RAW występuje zawsze przed tablicą PREROUTING karty sieciowej i przed talbicą OUTPUT dla lokalnego procesu w systemie.
W tablicy RAW pakiet przebywa zawsze przed rozpoczęciem śledzenia tego pakietu przez mechanizm Conntrack.
Tablicę połączeń Conntrack można oglądać na żywo programikiem [url=https://packages.debian.org/jessie/iptstate][b]iptstate[/b][/url]
w terminalu.

Pozdro
;-)

Ostatnio edytowany przez Jacekalex (2015-03-11 23:32:08)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)

[ Generated in 0.007 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00011 SET CHARSET latin2
0.00004 SET NAMES latin2
0.00097 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.135.219.153' WHERE u.id=1
0.00061 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.135.219.153', 1732798689)
0.00044 SELECT * FROM punbb_online WHERE logged<1732798389
0.00052 SELECT topic_id FROM punbb_posts WHERE id=284518
0.00005 SELECT id FROM punbb_posts WHERE topic_id=27155 ORDER BY posted
0.00074 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=27155 AND t.moved_to IS NULL
0.00005 SELECT search_for, replace_with FROM punbb_censoring
0.00094 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=27155 ORDER BY p.id LIMIT 0,25
0.00088 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=27155
Total query time: 0.00535 s