Სარჩევი:

ჟოლო Pi4 Firewall: 12 ნაბიჯი
ჟოლო Pi4 Firewall: 12 ნაბიჯი

ვიდეო: ჟოლო Pi4 Firewall: 12 ნაბიჯი

ვიდეო: ჟოლო Pi4 Firewall: 12 ნაბიჯი
ვიდეო: მინი კომპიუტერი raspberry pi 4 ქეისი 2024, ივნისი
Anonim
ჟოლო Pi4 Firewall
ჟოლო Pi4 Firewall

ახალი Raspbery Pi 4 (RPi4), რომელიც ახლახანს გამოვიდა, მე გადავწყვიტე, რომ გამეკეთებინა სახლის გამოყენების ბუხარი. ინტერნეტში დაბრკოლების შემდეგ, ვიპოვე გილიომ კადუშის შესანიშნავი სტატია ამ თემაზე (https://networkfilter.blogspot.com/2012/08/building-your-piwall-gateway-firewall.html). სტატია გასაოცარია და თქვენ უნდა წაიკითხოთ იგი წინსვლამდე-ეს გაგიმარტივებთ აქ აღწერილ პროცესს. საქმე იმაშია, რომ ეს სტატია დაიწერა 2012 წელს და ემყარება ArchLinux დისტროს. არაფერია ArchLinux– ის საწინააღმდეგოდ, მაგრამ მე მინდოდა ამის გაკეთება უფრო გავრცელებული Raspbian სტრუქტურის გამოყენებით. RPi4– ს შეუძლია გაუმკლავდეს დამუშავების მოთხოვნებს. ასე რომ, მადლობა, გიომ, შთაგონებისათვის !! ეს ინსტრუქცია იქნება მითითება გიომ ("მოკლედ GK") თავდაპირველ პოსტზე, თქვენ ალბათ გინდათ რომ ორივე გვერდი იყოს გახსნილი თქვენს ბრაუზერში.

რამდენიმე ძირითადი რამ ჩემი ბუხრის შესახებ:

  • მე მაქვს ჩაშენებული Ethernet jack (eth0), რომელიც მიდის LAN- ზე
  • ISP როუტერი არის TRENDnet ადაპტერზე (eth1)
  • მე აქტიურად გავთიშე უკაბელო ადაპტერი (wlan0)
  • ეს არ არის გარანტირებული 100% –მდე მიგიყვანთ … იმედია 99% მაინც:) ასე რომ გთხოვთ მოგვაწოდოთ გამოხმაურება/კომენტარები
  • ეს არის ჩემი პირველი ინსტრუქცია. ბოდიში ყველაფრისთვის, რაც არ ემორჩილება შესაბამის ინსტრუქციულ-ნორმებს.

ახლა მოდით ვიმხიარულოთ…

მარაგები

  • ჟოლო პი 4

    • მე გამოვიყენე 4 GB ვერსია, მოგერიდებათ სცადოთ სხვა ვერსია
    • საქმე (მე მომწონს FLIRC, მაგრამ ეს შენი ზარია)
    • დენის ადაპტერი
  • MicroSD ბარათი, 32 GB ან მეტი (მე გამოვიყენე 64 GB ბარათი)
  • TRENDnet USB3.0 Gigabit Ethernet Dongle (მოდელი: TU3-ETG)
  • რამდენიმე RJ45 ქსელის კაბელი
  • USB კლავიატურა და მაუსი
  • მიკრო HDMI to HDMI კაბელი (რომელიც ჩართულია HDMI მონიტორში)

ეს კლავიატურა, ვიდეო და მაუსი შეიძლება ამოღებულ იქნას მას შემდეგ რაც შეძლებთ SSH და VNC გაშვებას.

ნაბიჯი 1: საწყისი RPi დაყენება

RPi საწყისი დაყენება
RPi საწყისი დაყენება

პირველი რაც უნდა გააკეთოთ არის თქვენი RPi4 ამოქმედდეს როგორც ახალი სისტემა. ჩამოტვირთეთ და დააინსტალირეთ Raspbian– ის სრული განაწილება (Raspbian Buster დესკტოპით და რეკომენდებული პროგრამული უზრუნველყოფით). თქვენ უნდა გადატვირთოთ რამდენჯერმე ისე, რომ ის გაფართოვდეს და ისარგებლოს სრული MicroSD ბარათით.

ჩატვირთვისას, თქვენ უნდა უპასუხოთ კითხვებს ადგილის, ქსელის, კლავიატურის და მაუსის შესახებ. დაუკავშირდით ქსელს და მიეცით საშუალება განახლების.

ასევე დავამტკიცოთ, რომ ყველაფერი სწორად განახლდა და მივიღოთ რამდენიმე კომუნალური პროგრამა, რომელიც დაგეხმარებათ შემდგომ გამართვაში:

$ sudo apt-get განახლება

$ sudo apt-get dist-upgrade $ sudo apt-get install htop $ sudo apt-get install tcpdump

მე არ ვაინსტალირებ vim- ს და არც GK– ს რომელიმე ნაბიჯს (ვიმის კონფიგურაცია). მე მხოლოდ vi რედაქტორი გამოვიყენე, რადგან მას მაინც აქვს ამ მახასიათებლების უმეტესობა. ამან ასევე დაზოგა დრო და ძალისხმევა.

მას შემდეგ რაც დასრულდება, მოდით დააყენოთ RPi4 ისე, რომ ჩვენ შევძლოთ მონიტორის ცხელი ჩართვა. ჩემი მიზანი იყო ის გამეხადა უთავო, მაგრამ თუ მონიტორის ჩართვა დამჭირდება, ის აღიარებული იქნებოდა.

$ sudo vi /boot/config.txt

იმ ფაილში:

უკომენტარო (ამოიღეთ წინა #სიმბოლო): hdmi_force_hotplug = 1

არაკომენტარი: hdmi_drive = 2

სურვილისამებრ, დაამატეთ: enable_hdmi_sound

ნაბიჯი 2: ქსელის შექმნა

ქსელის შექმნა
ქსელის შექმნა
ქსელის შექმნა
ქსელის შექმნა

თუ თქვენ თვალყურს ადევნებთ GK– ის საიტს, ეს არის ნაბიჯი 3. მაგრამ გახსოვდეთ, მე არ მიყვები მის ბევრ პირველ ნაბიჯს ზუსტი თანმიმდევრობით.

როდესაც ეს პირველად დავიწყე, მე RPi პირდაპირ დავუკავშირე ჩემს ISP როუტერს ("ჩემი არსებული ქსელის გვერდით"). ამან მომცა საშუალება მეთამაშა კონფიგურაციით ქსელზე ზემოქმედების გარეშე. შეაერთეთ RPi4 ჩაშენებული RJ45 თქვენს როუტერთან (ან უკაბელო, თუ გსურთ). Raspbian– ით, ამის უმარტივესი გზაა GUI– ს გამოყენება. დესკტოპიდან დააწკაპუნეთ ჟოლოს ხატულაზე> პარამეტრები> Raspberry Pi კონფიგურაცია. დარწმუნდით, რომ ჩართეთ SSH და VNC. ეს დააინსტალირებს Real-VNC სერვერის კლიენტს. აღმოვაჩინე, რომ თუ თქვენ ცდილობთ დაუკავშირდეთ მჭიდრო VNC კლიენტს, ის გამოდგება და საჭიროებს დამატებით კონფიგურაციას. ამრიგად, ამ ეტაპზე დააინსტალირეთ Real-VNC კლიენტი თქვენს პირვანდელ სამუშაო მაგიდაზე/ლეპტოპზე (არა თქვენს RPi4).

SSH არ იმუშავებს ყუთში (GK ნაბიჯი 7). ჩვენ გვჭირდება რამდენიმე კონფიგურაციის შეცვლა. პირველი, მოდით შევცვალოთ ssh კონფიგურაციის ფაილი. აქ არის ცვლილებები, რაც მე შევიტანე. გაითვალისწინეთ, რომ მე არ შევისწავლე თითოეული ცვლილების გავლენა აქ. მე გავაკეთე ის, რაც GK– ს საიტმა შემოგვთავაზა. ზოგიერთი ცვლილება შეიძლება არ იყოს საჭირო.

$ sudo vi/etc/ssh/sshd_config

ამ ფაილში, გაუკეთეთ კომენტარი შემდეგი სტრიქონები:

HostKey/etc/ssh/ssh_host_rsa_keyHostKey/etc/ssh/ssh_host_ecdsa_keySyslogFacility AUTHLogLevel INFOS შეზღუდვა რეჟიმები დიახPubkeyAuthentication დიახHostBasedAuthentication no

იგნორირება Rhosts დიახ

PrintMotd noPrintLastLog დიახTCPKeepAlive დიახ

და დაამატეთ შემდეგი ხაზები:

პროტოკოლი 2 გამოყენება პრივილეგია განცალკევება დიახ ძირითადი რეგენერაცია ინტერვალი 3600 სერვერი KeyBits 768 RSA ავთენტიფიკაცია დიახ რაშს RSA ავთენტიფიკაცია არა

და შეცვალეთ შემდეგი ხაზები:

პორტი 15507 შემოსვლა GraceTime 60 ნებართვა root შესვლა არა

მოდით სწრაფად ვისაუბროთ იმ პირველ მოდიფიკაციაზე … პორტი 15507. SSH ჩვეულებრივ მუშაობს 22 პორტზე. GK– მ ის 15507 – ზე გადაიტანა-არ ვიცი რატომ. თქვენ შეგიძლიათ ნებისმიერ გზაზე შეცვალოთ იგი თუ არა … თუ თქვენ გსურთ მისი შეცვლა, თქვენ უნდა დაამატოთ "-p 15507" ნებისმიერ SSH ბრძანებას, რომელთანაც თქვენ ცდილობთ დაკავშირებას. თუ გადაწყვეტთ მის გამოტოვებას, თვალი ადევნეთ სხვა ადგილებს, რომ ამ ინსტრუქციებში მითითებულია 15507 და იგნორირება გაუკეთეთ მათ, განსაკუთრებით ბუხრის კედლის წესებს!

დაბოლოს, ამ ნაბიჯისათვის, მოდით მივიღოთ RPi4– ის IP მისამართი, ასე რომ ჩვენ ვიცით რასთან დაკავშირება:

$ ipconfig -a

იპოვეთ აქტიური ქსელის კავშირი (სავარაუდოდ eth0 ან wlan0) და ჩაწერეთ ეს IP მისამართი. ახლა თქვენ გაქვთ ის, რაც გჭირდებათ დისტანციურად RPi4– თან დასაკავშირებლად. მოდით გადატვირთოთ სანამ გავაგრძელებთ:

$ sudo გადატვირთვა

ნაბიჯი 3: სხვა მომხმარებელი

სხვა მომხმარებელი
სხვა მომხმარებელი

უმჯობესია არ გამოიყენოთ ნაგულისხმევი RPi მომხმარებლის სახელი (pi) და თქვენ აუცილებლად უნდა შეცვალოთ პაროლი. იმისათვის, რომ იყოთ უსაფრთხოდ, მოდით დავამატოთ სხვა მომხმარებლის ანგარიში, რომელიც შეგიძლიათ გამოიყენოთ დისტანციურად დასაკავშირებლად და გასაგრძელებლად (GK ნაბიჯი 6). დავუბრუნდეთ RPi– ს, მოდით დავამატოთ ახალი მომხმარებელი და დავაყენოთ მომხმარებლის ნებართვები SSH– ზე და გასცეს sudo ბრძანება:

$ sudo useradd -m -g მომხმარებლები -G sudo, netdev -s /bin /bash [USERNAME]

$ sudo passwd [USERNAME]

მოგერიდებათ გასვლა ან გადატვირთვა და გამოიყენეთ ახლად შექმნილი ანგარიში შემდგომში.

ნაბიჯი 4: Syctl ფაილი

Syctl ფაილი
Syctl ფაილი

შემდეგი ნაბიჯი არის /etc/sysctl.conf ფაილის შეცვლა (GK ნაბიჯი 9). ეს ფაილი გამოიყენება ბირთვის რამდენიმე პარამეტრის შესაცვლელად. ჩვენ ვაპირებთ გავაკეთოთ ზუსტად ის, რასაც GK ამბობს. აქ მოცემულია ნაბიჯების გამარტივებული ნაკრები.

$ sudo vi /etc/sysctl.conf

ამ ფაილში, გაუკეთეთ კომენტარი შემდეგი სტრიქონები:

net.ipv4.conf.default.rp_filter = 1net.ipv4.conf.all.rp_filter = 1net.ipv4.tcp_syncookies = 1

net.ipv4.ip_forward = 1

net.ipv4.conf.all.accept_redirects = 0net.ipv4.conf.all.send_redirects = 0net.ipv4.conf.all.accept_source_route = 0net.ipv4.conf.all.log_martians = 1

და დაამატეთ შემდეგი სტრიქონები:

net.ipv4.icmp_echo_ignore_broadcasts = 1net.ipv4.icmp_ignore_bogus_error_responses = 1net.ipv4.conf.eth0.accept_redirects = 0vm.min_free_kbytes = 8192

გადატვირთეთ სერვისი ამ ახალი პარამეტრებით და გადატვირთეთ:

$ sudo sysctl -p

$ sudo გადატვირთვა

ნაბიჯი 5: DHCP & DNS (ნაწილი 1)

DHCP და DNS (ნაწილი 1)
DHCP და DNS (ნაწილი 1)

ჩემთვის, ამ პროცესის ორი მტკივნეული ნაწილი იყო … DHCP & DNS დაყენება და ბუხრის დაცვის წესების დაყენება. ასე რომ, აქ ჩვენ მივდივართ პირველ ნაწილზე. თუ თქვენ მიჰყვებით GK– ის საიტზე, ჩვენ 10 – ე ნაბიჯზე ვართ.

ამისათვის თქვენ დაგჭირდებათ რამოდენიმე ინფორმაცია თქვენი ISP როუტერიდან (ან მიმდინარე firewall):

  • როუტერის შიდა IP მისამართი
  • IP მისამართი, რომელიც შეგიძლიათ გამოიყენოთ როუტერთან RPi4 ინტერფეისისთვის
  • IP მისამართები სერვერისთვის (ან ორი)
  • ინტერფეისის სახელი LAN კავშირისთვის (მაგალითად, eth0 ან eth1)
  • ინტერფეისის სახელი ISP კავშირისთვის (მაგალითად, რასაც არ იყენებდით LAN– ისთვის)

თქვენ ასევე შეიძლება დაგჭირდეთ როუტერის პარამეტრების შეცვლა, რათა RPi4– ს მიეცეს სტატიკური IP მისამართი (ტყვია 2, ზემოთ). ყოველ შემთხვევაში, მე ასე მოვიქეცი.

პირველი, მოდით შევცვალოთ dhcpcd.conf ფაილი…

$ sudo vi /etc/dhcpcd.conf

გაუკეთე კომენტარი ამ სტრიქონებს:

დაჟინებული არჩევანი სწრაფი_კომისიტოპიცია domain_name_servers, domain_name, domain_search, host_nameoption interface_mtu

თითოეული ქსელის ინტერფეისისთვის, თქვენ უნდა დააყენოთ ქსელის დეტალები. ისინი უნდა გამოიყურებოდნენ ასე:

# სტატიკური პროვაიდერის ინტერფეისისთვის

ინტერფეისი eth1 სტატიკური ip_address = 192.168.1.static routers = 192.168.1.254 სტატიკური domain_name_servers = 8.8.8.8 8.8.4.4 metric 100 # სტატიკური ინტერფეისისთვის LAN ინტერფეისი eth0 static ip_address = 10.210.212.static routers = 10.210.212.1 სტატიკური domain_name_servers = 8.8.8.8 8.8.4.4 #ინტერფეისი wlan0 #static ip_address = 10.210.212. #static routers = 10.210.212.1 #static domain_name_servers = 8.8.8.8 #გამოაქვეყნეთ ეს განყოფილება, თუ გსურთ აიძულოთ IP მისამართი მოწყობილობაზე. სახელი "მასპინძლის" შემდეგ #უაზროა სისტემისთვის. შეიყვანეთ მოწყობილობის MAC მისამართი და სასურველი #IP მისამართი. დარწმუნდით, რომ ის არ არის dhcp დიაპაზონში. გაიმეორეთ საჭიროებისამებრ. #host [ANYTHING] { # აპარატურის ეთერნეტი xx: xx: xx: xx: xx: xx; # ფიქსირებული მისამართი 10.210.212.250; #}

დარწმუნდით, რომ გამოიყენეთ თქვენთვის შესაფერისი რიცხვები. ზემოთ მითითებული IP– ები ჩემი ქსელისთვისაა, გარდა სახელის სერვერებისა, რომლებიც არის Google. გაითვალისწინეთ, რომ მე ასევე დავადგინე ინტერნეტ პროვაიდერის მაჩვენებელი 100 -ზე, რათა ეს ყოფილიყო ნაგულისხმევი პირველი მცდელობა ქსელის ტრაფიკისთვის. მე ასევე კონკრეტულად არაფერი გამიკეთებია ჩემს უკაბელო ადაპტერზე (wlan0). მე ვაპირებ მთლიანად გავთიშო ეს ინტერფეისი, ასე რომ ჩემთვის აზრი იყო.

ასევე, თუ გსურთ აიძულოთ IP მისამართი მოწყობილობაზე (მაგალითად, NAS), გამოიყენეთ ეს ქვედა ნაწილი. მიეცით მასპინძელს თქვენთვის მნიშვნელოვანი სახელი, მაგრამ იცოდეთ, რომ ის არასოდეს არაფერში გამოიყენება. ნუ დაივიწყებთ მძიმით.

ნაბიჯი 6: DHCP & DNS (ნაწილი 2)

DHCP & DNS (ნაწილი 2)
DHCP & DNS (ნაწილი 2)

შემდეგი ნაბიჯი არის dnsmasq.conf ფაილის შეცვლა…

$ sudo vi /etc/dnsmasq.conf

ჩვენ გვჭირდება რამდენიმე სტრიქონის კომენტირება და რამდენიმე სტრიქონის რედაქტირება. ასევე დაგჭირდებათ dhcpcd.conf ფაილიდან რამდენიმე პარამეტრის კოპირება. კიდევ ორი შეკითხვა, რომელსაც თქვენ უნდა უპასუხოთ საკუთარ თავს, არის:

სჭირდება თუ არა შიდა LAN (მაგ. Eth0) DHCP და DNS? DHCP რა დიაპაზონი გსურთ თქვენი LAN– ისთვის და რამდენი ხანი უნდა იყოს თითოეული იჯარა?

დაიწყეთ რამდენიმე სტრიქონის კომენტარის გარეშე:

ყალბი- privno-dhcp-interface = wlan0bind-interfacesdhcp-name-match = კომპლექტი: wpad-ignore, wpaddhcp-ignore-names = tag: wpad-ignore

დააყენეთ თქვენი სახელის სერვერი. მოძებნეთ ხაზი, რომელიც იწყება "server =" და გახადეთ ის მსგავსი "server = 8.8.8.8".

დააყენეთ DHCP დიაპაზონი. ამის მრავალი გზა არსებობს. მე ავირჩიე ორი საბოლოო წერტილის IP, ნიღაბი და იჯარის ხანგრძლივობა. ჩემი დიაპაზონი იყო 10.210.212.20-10.210.212.240, ქსელის ნიღაბი 255.255.255.0 და იჯარის დრო 12 საათი. მე გირჩევთ, რომ დატოვოთ რამდენიმე IP თქვენი დიაპაზონის ზედა და ქვედა ნაწილში, იმ შემთხვევაში, თუ თქვენ დაგჭირდებათ რაიმე სტატიკური IP- ის მიცემა.

დააყენეთ ინტერფეისი, რომელიც მიიღებს DNS- ს და DHCP- ს (LAN) ხაზის 'ინტერფეისი =' შეცვლით, რომ იყოს 'ინტერფეისი = eth0]. გაითვალისწინეთ, რომ მე სპეციალურად ვუთხარი, რომ არ მივანიჭოთ DHCP IP მისამართი ჩემს უკაბელო ქსელს. ისევ და ისევ, მე ვაპირებ მთლიანად გავთიშო ეს ინტერფეისი, ასე რომ ჩემთვის აზრი იყო.

ნაბიჯი 7: DHCP & DNS (ნაწილი 3)

DHCP და DNS (ნაწილი 3)
DHCP და DNS (ნაწილი 3)

ამ უკანასკნელი ნაბიჯის გადადგმა GK– ის მითითებებიდან…

როდესაც მივედი ჩემი RPi– ს გადასატვირთად ამ ეტაპზე, dnsmasq პროცესი არ იყო აქტიური. ცოტათი ვიხეტიალე და აღმოვაჩინე, რომ ჩემი eth0 და eth1 ქსელის ინტერფეისები არ იყო აქტიური dnsmasq– ის დაწყებამდე, ამიტომ dnsmasq თავიდანვე ჩავარდებოდა. მე უნდა დავაკავშირო კლავიატურა და მაუსი RPi– ს და ხელით გადატვირთო dnsmasq. ეს არ არის იდეალური თავსაბურავის დაყენებით. წავიკითხე რამოდენიმე პოსტი, სადაც ნათქვამია, რომ შეიძლება შეიცვალოს ცვლილებები პარამეტრებში (მაგ., გამორთვა bind-interface) და სხვა. არცერთი არ მუშაობდა. საბოლოოდ, მე გადავწყვიტე უბრალოდ დამეწერა shell სკრიპტი, რომელიც იმუშავებდა ყოველ 2 წუთში და ვამოწმებდი dnsmasq- ის სტატუსს. თუ ის არ მუშაობდა, დაიწყეთ. მე ვფიქრობ, რომ ეს სიტუაცია არ არის მხოლოდ ჩემთვის. ასე რომ, აქ არის ის, რაც თქვენ უნდა გააკეთოთ:

გააკეთეთ შემდეგი კოდი ფაილში სახელწოდებით 'dns_masq_keepalive.sh' თქვენს RPi– ზე.

#!/bin/bash

# ფაილი: dns_masq_keepalive.sh # აგვისტო 2019 # გამოიყენეთ ეს crontab -e (*/2 * * * * /etc/dns_masq_keepalive.sh) დარწმუნდით, რომ dnsmasq მუშაობს. სერვისი თავისთავად გაჩერდება, თუ dhcpcd.conf– ში ნახსენები # ყველა ინტერფეისი არ იქნება მის დაწყებამდე. ეს აფიქსირებს პრობლემას. # ეს მომდევნო სტრიქონი დააბრუნებს ყველა აქტიურ სამუშაოს, რომელშიც არის სიტყვა 'dnsmasq'. ასე რომ, არ შეიყვანოთ 'dnsmasq' ამ # ფაილის სახელში, წინააღმდეგ შემთხვევაში ის დააბრუნებს მას ყოველ ჯერზე და თქვენ არასოდეს გექნებათ გადატვირთვა. dns_running = $ (ps -e | grep dnsmasq) echo $ dns_running if [-z "$ dns_running"] then #echo No DNSMasq sudo /etc/init.d/dnsmasq გადატვირთვა #სხვა #echo DNSMasq გაშვებული fi

გაჭერით და ჩასვით საჭიროების შემთხვევაში. რასაც არ უნდა აკეთებდეთ, არ შეიყვანოთ 'dnsmasq' სახელში. სკრიპტი ეძებს სიტყვას "dnsmasq" და თუ სკრიპტს აქვს სახელი, ის მიიჩნევს, რომ სერვისი მუშაობს. ასევე, გადაარქვით ფაილს ისე, რომ ის დასრულდეს '.sh'. Intructables არ მაძლევს საშუალებას ატვირთო '.sh' ფაილი-რაც კარგია. დანარჩენი ინსტრუქციები ვარაუდობენ, რომ ფაილი არსებობს: /etc/dns_masq_keepalive.sh.

მეორე, დააყენეთ ნებართვები ფაილზე, რათა მოხდეს მისი შესრულება:

$ sudo chmod u+x /etc/dns_masq_keepalive.sh

ახლა ჩვენ გამოვიყენებთ crontab სისტემას, რომ პროგრამა გაშვებული იყოს ყოველ 2 წუთში ყოველდღე. დაიწყეთ crontab:

$ sudo crontab -e

მან უნდა მოგაწოდოთ რედაქტირება vi ან სხვა რამის გამოყენებით. ნებისმიერი იმუშავებს. მას შემდეგ რაც შეძლებთ მისი რედაქტირებას, დაამატეთ შემდეგი ფაილის ბოლოს:

*/2 * * * * sudo /etc/dns_masq_keepalive.sh

'*/2' - ში ადგილი არ არის, მაგრამ ვარსკვლავებს შორის სივრცეები. შეინახეთ და დატოვეთ. უნდა გითხრათ, რომ სამუშაო დაგეგმილია, ან რაღაც მსგავსი.

ნაბიჯი 8: Firewall

Firewall
Firewall

შემდეგი მტკივნეული პროცესი არის ბუხარი (GK ნაბიჯი 11). Raspbian იყენებს კარგად ცნობილ iptables სისტემას. GK– ის ბლოგი გთავაზობთ სამ ფაილს, რომელიც დაგეხმარებათ იქ… firewall.simple, firewall.advanced და firewall.flows. ყველა პატივისცემა GK– ს, მაგრამ გაადვილეთ საკუთარი თავი და უბრალოდ წადით firewall– ით. მარტივი. ბევრი დრო გავატარე მცდელობა გაერკვია iptables სისტემა და წესები. მოხარული ვარ, რომ გავაკეთე, მაგრამ ეს მტკივნეული იყო. ასე რომ, მე გაძლევთ თანდართულ ორ ფაილს, რომელიც დაგეხმარებათ… firewall.simple და firewall.clear. დააკოპირეთ ორივე ფაილი თქვენს /etc საქაღალდეში და შეცვალეთ ნებართვები, რომ გახადოთ შესრულებადი:

$ sudo chmod u+x /etc/firewall.simple

$ sudo chmod u+x /etc/firewall.clear

სანამ შექმნით რაიმე სახის firewall წესს, ჩართეთ დესკტოპი/ლეპტოპი თქვენს RPi eth0 პორტში და დაადასტურეთ, რომ ის იღებს IP მისამართს და აქვს DNS გაშვებული. ამის უმარტივესი გზაა სცადოთ და დააინსტალიროთ ზოგადი საიტი და შემდეგ ცნობილი IP მისამართი. ასევე დააინსტალირეთ თქვენი RPi და ISP როუტერი. თუ თქვენ მიიღებთ შედეგებს, მაშინ ყველაფერი კარგადაა და ქსელის ნებისმიერი პრობლემა, რომელსაც ახლა შეხვდებით, სავარაუდოდ იქნება firewall– ის პრობლემების შედეგი.

მოწოდებული პირველი ფაილი თავდაპირველად დაიწყო როგორც GK firewall.simple ფაილი (მადლობა, კიდევ ერთხელ, GK!). მე შევიტანე რამოდენიმე ცვლილება, რათა ის ამ სისტემას ემუშავა. მან უნდა უზრუნველყოს მინიმუმ HTTP, HTTPS, DNS, DHCP, პინგი, შიდა SSH, შიდა VNC და პლექსი. Plex– ს შეიძლება არ ჰქონდეს ყველა ღია პორტი ყველა შესაძლო მოწყობილობისთვის, მაგრამ არსებობს რამოდენიმე პოსტი ამის გამოსასწორებლად. ფაილის თავში არის მნიშვნელობები, რომლებიც თქვენ უნდა შეცვალოთ თქვენი ქსელის კონფიგურაციაში.

მეორე ფაილი, firewall.clear, გამიზნულია გამოიყენოს თქვენი firewall წესების შესამოწმებლად. "Sudo /etc/firewall.clear" - ის გაშვებისას ყველა firewall წესი გასუფთავდება და სისტემა სრულად უნდა იყოს დაკავშირებული ინტერნეტთან. ასე რომ, თუ თქვენ ვერ ახერხებთ ქსელის სერვისის (მაგალითად, dns) მუშაობას ბუხართან. მარტივი წესები არსებობს, მაგრამ ის იწყებს მუშაობას მას შემდეგ რაც გაუშვებთ firewall. ნათელია, თქვენ იცით, რომ თქვენ გაქვთ პრობლემა. ეს ნამდვილად გადამწყვეტი იქნება მხოლოდ თქვენი წესების შემოწმებისას.

ამრიგად, ჩვენ გვაქვს firewall– ის წესები, ჩვენ უნდა შევქმნათ ისინი, როდესაც RPi იწყება. ამისათვის ჩვენ შევცვლით /etc/rc.local ფაილს:

$ sudo vi /etc/rc.local

შიგნით შესვლისას დაამატეთ შემდეგი ფაილის ბოლოს:

ექო "იტვირთება iptables წესები"/და ა.შ. firewall.simple >>/dev/null

თუ აირჩევთ ხვრინვის შეჭრის გამოვლენის სისტემის დამატებას, თქვენ დაგჭირდებათ ამ ფაილის ხელახლა რედაქტირება. ჯერ მხოლოდ შეინახეთ და გადატვირთეთ.

$ sudo გადატვირთვა

ნაბიჯი 9: Syslog

სისლოგი
სისლოგი

ორი ნაბიჯი დარჩა…

ეს არის ადვილი ერთი. თუ თქვენ ჯერ კიდევ იქ ხართ და GK– ის ბლოგთან ერთად, ეს არის ნაბიჯი 12. თქვენ უნდა გააკეთოთ ზუსტად ის, რასაც ის ამბობს syslog ფაილთან დაკავშირებით. აქ არის შემოკლებული ნაბიჯები:

შეინახეთ 2 თვის ღირებულების syslog მონაცემები…

$ sudo vi /etc/logrotate.conf

ჩვენ უნდა ვუთხრათ, რომ გამოიყენოს „ერთი კვირა“გაზომვისთვის და შემდეგ შეინარჩუნოს 12 მათგანი. თქვენ გჭირდებათ შემდეგი ორი ხაზი ამ ფაილში. მე მჯერა, რომ თქვენ დაგჭირდებათ არსებული ხაზების შეცვლა.

ყოველკვირეული 12

Შეინახე.

ნაბიჯი 10: შეჭრის გამოვლენა Snort– ით

შეჭრის გამოვლენა Snort– ით
შეჭრის გამოვლენა Snort– ით

ბოლო რასაც GK აკონფიგურირებს არის snort სისტემა. ამასაც გირჩევ. თქვენ შეგიძლიათ დაიცვათ მისი წესები და მე არ ვაპირებ ყველა მათგანის კოპირებას აქ მცირედი ცვლილებებით. მისი მითითებები არის ArchLinux დისტროსთვის. აქ არის რამოდენიმე ცვლილება Raspbian განაწილებისთვის, რომელსაც ჩვენ აქ ვიყენებთ. დანარჩენი ინსტრუქციები კარგად მუშაობს.

პირველი, არ გამოიყენოთ sudo pacman -S snort, რომ ჩამოტვირთოთ და დააინსტალიროთ snort. გააკეთეთ შემდეგი:

$ sudo apt-get install snort

მეორე, თქვენ არ შეგიძლიათ გადაამოწმოთ snort sudo snort -version. დაადასტურეთ ინსტალაცია შემდეგით:

$ sudo snort -V

დაბოლოს, რომ ის გაშვებული იყოს გაშვებისას, ნუ შეცვლით rc.conf ფაილს, შეცვალეთ rc.local ფაილი (ისევ)…

$ sudo vi /etc/rc.local

დაამატეთ შემდეგი ხაზები ფაილის ბოლოს:

ექო "ხვრინვის ჩატვირთვა"

#/usr/sbin/snort -D -u snort -g snort -c /etc/snort/snort.conf -i eth0 -l/var/log/snort

ახლა გადატვირთეთ და ეს ყველაფერი ჯადოსნურად უნდა იმუშაოს.

$ sudo გადატვირთვა

ნაბიჯი 11: ისიამოვნეთ

მიირთვით
მიირთვით

ასეც უნდა იყოს!

უპირველეს ყოვლისა, მე არ შემიძლია მადლობა გადავუხადო გიომ კადუშს! მან შთააგონა ეს.

მეორე, თუ თქვენ ჯერ არ გაქვთ გათიშული კლავიატურა, ვიდეო და მაუსი, შეგიძლიათ. საჭიროების შემთხვევაში გამოიყენეთ SSH და VNC.

დასასრულს, ეს შეიძლება არ იყოს 100% სრულყოფილი. გთხოვთ გამოაქვეყნოთ ცვლილებები/წინადადებები/რეკომენდაციები. ჩემი მიზანი იქნება ეს იყოს დისკუსიის დასაწყისი და ბევრი ადამიანი სარგებლობს!

მადლობა !!

PS… სურათი არის RPi4 FLIRC ალუმინის კორპუსში, ძველი Intel- ის გულშემატკივართა ოდნავ მოდიფიცირებული და თავზე მიმაგრებული zip. გულშემატკივართა ქვეშ არის თერმული პასტაც, მხოლოდ იმ შემთხვევაში, თუ გაინტერესებთ. მსგავსი აღმოვაჩინე ინტერნეტში (https://www.reddit.com/r/raspberry_pi/comments/9bdgrr/it_turns_out_putting_a_heatsink_on_the_flirc_case/) და გადავწყვიტე მე თვითონ მეცადა.

ნაბიჯი 12: ცვლილება

ამ ინსტრუქციაში ცვლილებების შეტანისას, მე დავამტკიცებ მათ აქ.თუ თქვენ გაქვთ პრობლემა, შეამოწმეთ აქ თუ არა ძველი ინსტრუქციები ან ფაილები.

25 სექტემბერი, 2019:

  • დაფიქსირდა DHCP წესები firewall.simple
  • დაფიქსირდა DHCP დიაპაზონი ინსტრუქციებში (ფაილები სწორი იყო)
  • DHCP ინსტრუქციებს დაემატა ფიქსირებული IP დავალებები

2019 წლის 13 ოქტომბერი

  • დაფიქსირდა მრავალი შეცდომა
  • შევქმენი მეორე პი, ასე რომ მე მქონდა საცდელი SD ბარათი, საჭიროების შემთხვევაში

გირჩევთ: