[완료]쉘 스크립트 도움좀 부탁 드립니다.

wire101의 이미지

변수 설정

--------------------------
dropip=123.123.456.567
accip=345.456.567.567
--------------------------

iptables -A INPUT -s $dropip/24 -j DROP

iptables -A INPUT -s $accip/24 -p tcp --dport 22 -j ACCEPT

점선 안쪽 부분을 txt 파일로 분리 하고 싶습니다.

my situation ㅠㅠ

ip_range.txt
dropip=123.123.456.567
accip=345.456.567.567

firewall.sh

$include = /mydir/ip_range.txt

iptables -A INPUT -s $dropip/24 -j DROP
iptables -A INPUT -s $accip/24 -p tcp --dport 22 -j ACCEPT

도움 부탁 드립니다.

panda005의 이미지

source ip_range.txt

alee의 이미지

약간 부연설명을 달자면, 위에 예로 드신 firewall.sh 파일에서

$include = /mydir/ip_range.txt

대신

source /mydir/ip_range.txt

또는

. /mydir/ip_range.txt

집어넣으면 된다는 뜻입니다.
답변을 달아 주실 때에는 초보자들도 알아볼 수 있게 부연설명을 좀 달아주세요. :)

Munsen의 이미지

#!/usr/bin/perl
 
use strict;
 
my $text = "/home/munsen/ip_range.txt";
my ($dropip, $accip);
open(FILE, "<$text");
 
my @include = <FILE>;
 
foreach (@include) {
    $dropip = $1 if /dropip=(.*)/;
    $accip = $1 if /accip=(.*)/;
}
 
# 공백 제거
$dropip =~ s/\s//g;
$accip =~ s/\s//g;
 
# ','으로 ip주소를 나눈다.
my @dropip = split/,/,$dropip;
my @accip = split/,/,$accip;
 
foreach (@dropip) {
    print `iptables -A INPUT -s ${_}/24 -j DROP`;
}
foreach (@accip) {
    print `iptables -A INPUT -s ${_}/24 -p tcp --dport 22 -j ACCEPT`;
}

스샷

펄은 멋진 언어입니다. ㅜㅜ

iptables 룰을 저장하고 불러와서 다시 쓰는 거라면 이미 있습니다.

iptables-save > FILENAME
iptables-restore FILENAME
댓글 첨부 파일: 
첨부파일 크기
Image icon iptables.png30.57 KB
wire101의 이미지

머리가 나쁘면 손발이 고생한다

머리가 나쁘면 손발이 고생한다