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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
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:
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
#!/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
#!/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 ?
#!/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
(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)
#!/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ę :)
#!/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: )
24 20 * * * /bin/run-parts /etc/cron.custom
i wywala mi błąd
/var/log/syslog
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
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)
[...] # Uncomment the next line to enable packet forwarding for IPv4 #net.ipv4.ip_forward=1 [...]
Wystarczy odkomentować, potem wykonać z roota
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
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:
#!/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ć. (?)
cat /var/log/melduje.txt zrobione
Dzięki za wędki :)
Offline
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
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)
Offline
Time (s) | Query |
---|---|
0.00014 | SET CHARSET latin2 |
0.00006 | SET NAMES latin2 |
0.00135 | 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='18.225.72.161' WHERE u.id=1 |
0.00072 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.225.72.161', 1732790974) |
0.00060 | SELECT * FROM punbb_online WHERE logged<1732790674 |
0.00057 | DELETE FROM punbb_online WHERE ident='18.117.71.239' |
0.00052 | SELECT topic_id FROM punbb_posts WHERE id=284520 |
0.00061 | SELECT id FROM punbb_posts WHERE topic_id=27155 ORDER BY posted |
0.00055 | 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.00080 | 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.00076 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=27155 |
Total query time: 0.00673 s |