답변:
나는 "우분투"에 대해 모른다. 그러나 리눅스에서 일반적으로 "iptables"는 서비스가 아니다-넷 필터 커널 방화벽을 조작하는 명령이다. 모든 표준 체인의 기본 정책을 "ACCEPT"로 설정하고 규칙을 삭제하여 방화벽을 "비활성화"(또는 중지) 할 수 있습니다.
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F
(사용한 경우 "nat"과 같은 다른 테이블도 플러시해야합니다.)
Ubuntu 웹 사이트의 다음 기사에서는 NetworkManager와 함께 사용할 iptables 설정에 대해 설명합니다. https://help.ubuntu.com/community/IptablesHowTo
iptables -F
내가 빠진 것은 :-)
iptables-save > /tmp/rules
내 하루를 구했습니다. 감사합니다
당신은 모두 잘못되었습니다 :-)
찾고있는 명령은 다음과 같습니다.
$ sudo ufw disable
먼저 설치되어 있는지 확인합니다 (아마도) :
dpkg -l | grep iptables
우분투에서 iptables는 서비스가 아닙니다. 중지하려면 다음을 수행해야합니다.
sudo iptables-save > /root/firewall.rules
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
이전 규칙을 복원하려면 다음을 수행하십시오.
iptables-restore < /root/firewall.rules
이것은 http://www.cyberciti.biz/faq/turn-on-turn-off-firewall-in-linux/ 에서 가져 왔으며 많은 우분투 8.X 및 9.10 설치에서 테스트되었습니다.
iptables는 서비스가 아닌 명령이므로 일반적으로 다음과 같은 명령을 사용할 수 없습니다
service iptables start
또는
service iptables stop
방화벽을 시작하고 중지하기 위해 centos와 같은 일부 배포판에서는 방화벽을 시작 및 중지하기 위해 iptables라는 서비스와 방화벽을 구성하기위한 구성 파일을 설치했습니다. 어쨌든이 범위에 대한 스크립트를 편집하거나 설치하여 ipotables를 관리하는 서비스를 만들 수 있습니다. 리눅스의 모든 서비스, 우분투는 예외가 아니며 표준 인터페이스를 구현하는 /etc/init.d 폴더 내의 실행 가능한 스크립트입니다 (시작, 중지, 다시 시작) 가능한 스크립트는 다음과 같습니다.
#!/bin/sh -e
### BEGIN INIT INFO
# Provides: iptables
# Required-Start: mountvirtfs ifupdown $local_fs
# Default-Start: S
# Default-Stop: 0 6
### END INIT INFO
# July 9, 2007
# James B. Crocker <ubuntu@james.crocker.name>
# Creative Commons Attribution - Share Alike 3.0 License (BY,SA)
# Script to load/unload/save iptables firewall settings.
PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"
IPTABLES=/sbin/iptables
IPTABLES_SAVE=/sbin/iptables-save
IPTABLES_RESTORE=/sbin/iptables-restore
IPTABLES_CONFIG=/etc/iptables.conf
[ -x $IPTABLES ] || exit 0
. /lib/lsb/init-functions
case "$1" in
start)
log_action_begin_msg "Starting firewall"
type usplash_write >/dev/null 2>/dev/null && usplash_write "TIMEOUT 120" || true
if $IPTABLES_RESTORE < $IPTABLES_CONFIG ; then
log_action_end_msg $?
else
log_action_end_msg $?
fi
type usplash_write >/dev/null 2>/dev/null && usplash_write "TIMEOUT 15" || true
;;
stop)
log_action_begin_msg "Saving current firewall configuration"
if $IPTABLES_SAVE > $IPTABLES_CONFIG ; then
log_action_end_msg $?
else
log_action_end_msg $?
fi
log_action_begin_msg "Flushing ALL firewall rules from chains!"
if $IPTABLES -F ; then
log_action_end_msg $?
else
log_action_end_msg $?
fi
log_action_begin_msg "Deleting ALL firewall chains [Warning: ACCEPTING ALL PORT SERVICES!]"
if $IPTABLES -X ; then
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
log_action_end_msg $?
else
log_action_end_msg $?
fi
;;
save)
log_action_begin_msg "Saving current firewall configuration"
if $IPTABLES_SAVE > $IPTABLES_CONFIG ; then
log_action_end_msg $?
else
log_action_end_msg $?
fi
;;
force-reload|restart)
log_action_begin_msg "Reloading firewall configuration [Warning: POTENTIAL NETWORK INSECURITY DURING RELOAD]"
$IPTABLES -F
$IPTABLES -X
if $IPTABLES_RESTORE < $IPTABLES_CONFIG ; then
log_action_end_msg $?
else
log_action_end_msg $?
fi
;;
*)
echo "Usage: /etc/init.d/iptables {start|stop|save|restart|force-reload}"
exit 1
;;
esac
exit 0
이 스크립트는이 튜토리얼의 일부이며 , 방화벽을 구성하기위한 모든 명령은 위 스크립트에 따라 /etc/iptables.conf 파일에 삽입해야합니다. 이 스크립트는 /etc/init.d의 iptables 파일에 삽입되어 다음을 사용하여 실행 가능해야합니다.
chmod+x *iptables*
다음을 사용하여 서비스를 런레벨에 추가하십시오.
update-rc.d iptables defaults
쉘에서 새 규칙을 추가 할 수 있습니다.이 규칙은 즉시 활성화되며 서비스가 중지되면 /etc/iptables.conf에 추가됩니다 (시스템 종료시 확실히 저장됨을 의미합니다).
이것이 모두에게 도움이되기를 바랍니다.
iptables와 ufw는 Linux 에서 넷 필터 방화벽 을 관리하는 방법 이며, 둘 다 기본적으로 Ubuntu에서 사용 가능하므로 방화벽 규칙을 시작 및 중지 (및 관리) 할 수 있습니다.
iptables는 더 유연하지만 ufw는 간단하고 일반적인 기능을위한 매우 간단한 인터페이스 언어를 제공하므로 다음을 사용할 수 있습니다.
sudo ufw disable
# 방화벽을 비활성화하려면
sudo ufw enable
# 방화벽을 활성화하려면
현재 방화벽 설정을 보려면 sudo ufw status verbose
또는을 사용하십시오 iptables -L
.
우분투에서 방화벽을 관리하는 몇 가지 방법이 있으므로 https://help.ubuntu.com/community/IptablesHowTo#Configuration%20on%20startup 을 읽어보십시오.
모든 현재 규칙을 삭제하려면 다음 명령을 사용할 수 있습니다 (일부 스크립트에 추가).
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P INPUT ACCEPT
iptables -t mangle -P FORWARD ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT
iptables -t mangle -F
iptables -t mangle -X
iptables -t filter -P INPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -F
iptables -t filter -X
일반적인 경우 기본 방화벽 규칙은 일부 파일 (예 : /etc/iptables.rules)에 저장됩니다. 부팅하는 동안 iptables-restore </etc/iptables.rules
방화벽 규칙을로드하기 위해 시스템 명령이 실행되었습니다. 따라서 위의 명령을 사용하여 모든 규칙을 삭제 한 후 동일한 명령을 실행하면 요청한 "방화벽 다시로드"가 발생합니다.
우분투 안내서에서 iptables를 설정하는 제안 된 방법을 올바르게 기억한다면 네트워킹 스크립트의 일부로 iptables를 설정하는 것입니다. 이것은 BSD 스타일 OS와 같이 /etc/init.d/iptables 스크립트가 없음을 의미합니다.
/etc/init.d/에 파일을 만듭니다
touch fw.rc
파일을 chmod + x로 실행 가능하게하십시오
/etc/rc2.d/에서 해당 파일로 심볼릭 링크를 만드십시오.
ln -s /etc/init.d/fw.rc S80firewall
S80firewall을 편집하고 다음을 추가하십시오
iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -F
이 파일에 모든 커스텀 iptables 규칙을 추가 할 수 있습니다
이제 /etc/rc2.d/S80firewall을 실행하여 방화벽 (iptables)을 다시 시작할 수 있습니다 (루트 여야 함)
나는 같은 문제가 있었다. 실제로, iptables-persistent는 없었습니다./etc/init.d
그래서 iptables-persistent 파일을 /etc/init.d
nano /etc/init.d/iptables-persistent
안에 다음과 같이 썼습니다.
#!/bin/sh
# Written by Simon Richter <sjr@debian.org>
# modified by Jonathan Wiltshire <jmw@debian.org>
# with help from Christoph Anton Mitterer
#
### BEGIN INIT INFO
# Provides: iptables-persistent
# Required-Start: mountkernfs $local_fs
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Start-Before: $network
# X-Stop-After: $network
# Short-Description: Set up iptables rules
# Description: Loads/saves current iptables rules from/to /etc/iptables
# to provide a persistent rule set during boot time
### END INIT INFO
. /lib/lsb/init-functions
rc=0
load_rules()
{
log_action_begin_msg "Loading iptables rules"
#load IPv4 rules
if [ ! -f /etc/iptables/rules.v4 ]; then
log_action_cont_msg " skipping IPv4 (no rules to load)"
else
log_action_cont_msg " IPv4"
iptables-restore < /etc/iptables/rules.v4 2> /dev/null
if [ $? -ne 0 ]; then
rc=1
fi
fi
#load IPv6 rules
if [ ! -f /etc/iptables/rules.v6 ]; then
log_action_cont_msg " skipping IPv6 (no rules to load)"
else
log_action_cont_msg " IPv6"
ip6tables-restore < /etc/iptables/rules.v6 2> /dev/null
if [ $? -ne 0 ]; then
rc=1
fi
fi
log_action_end_msg $rc
}
save_rules()
{
log_action_begin_msg "Saving rules"
#save IPv4 rules
#need at least iptable_filter loaded:
/sbin/modprobe -q iptable_filter
if [ ! -f /proc/net/ip_tables_names ]; then
log_action_cont_msg " skipping IPv4 (no modules loaded)"
elif [ -x /sbin/iptables-save ]; then
log_action_cont_msg " IPv4"
iptables-save > /etc/iptables/rules.v4
if [ $? -ne 0 ]; then
rc=1
fi
fi
#save IPv6 rules
#need at least ip6table_filter loaded:
/sbin/modprobe -q ip6table_filter
if [ ! -f /proc/net/ip6_tables_names ]; then
log_action_cont_msg " skipping IPv6 (no modules loaded)"
elif [ -x /sbin/ip6tables-save ]; then
log_action_cont_msg " IPv6"
ip6tables-save > /etc/iptables/rules.v6
if [ $? -ne 0 ]; then
rc=1
fi
fi
log_action_end_msg $rc
}
flush_rules()
{
log_action_begin_msg "Flushing rules"
if [ ! -f /proc/net/ip_tables_names ]; then
log_action_cont_msg " skipping IPv4 (no module loaded)"
elif [ -x /sbin/iptables ]; then
log_action_cont_msg " IPv4"
for param in F Z X; do /sbin/iptables -$param; done
for table in $(cat /proc/net/ip_tables_names)
do
/sbin/iptables -t $table -F
/sbin/iptables -t $table -Z
/sbin/iptables -t $table -X
done
for chain in INPUT FORWARD OUTPUT
do
/sbin/iptables -P $chain ACCEPT
done
fi
if [ ! -f /proc/net/ip6_tables_names ]; then
log_action_cont_msg " skipping IPv6 (no module loaded)"
elif [ -x /sbin/ip6tables ]; then
log_action_cont_msg " IPv6"
for param in F Z X; do /sbin/ip6tables -$param; done
for table in $(cat /proc/net/ip6_tables_names)
do
/sbin/ip6tables -t $table -F
/sbin/ip6tables -t $table -Z
/sbin/ip6tables -t $table -X
done
for chain in INPUT FORWARD OUTPUT
do
/sbin/ip6tables -P $chain ACCEPT
done
fi
log_action_end_msg 0
}
case "$1" in
start|restart|reload|force-reload)
load_rules
;;
save)
save_rules
;;
stop)
# Why? because if stop is used, the firewall gets flushed for a variable
# amount of time during package upgrades, leaving the machine vulnerable
# It's also not always desirable to flush during purge
echo "Automatic flushing disabled, use \"flush\" instead of \"stop\""
;;
flush)
flush_rules
;;
*)
echo "Usage: $0 {start|restart|reload|force-reload|save|flush}" >&2
exit 1
;;
esac
exit $rc
그런 다음 chmod 755 권한을 부여했습니다.
chmod 755 /etc/init.d/iptables-persistent
이제 완벽하게 작동합니다! 그것이 누군가를 도울 수 있기를 바랍니다.
VM 게스트 (예 : VirtualBox)로 Ubuntu 서버를 실행중인 경우 libvirt 가 활성화 될 수 있습니다. 그렇다면 libvirt에는 iptables를 사용하는 내장 네트워크 필터가 포함되어 있습니다. 이러한 필터는 nwfilters 의 방화벽 섹션에 설명 된대로 구성 할 수 있습니다 .
iptables 규칙을 비활성화하려면 libvirt에서 모든 위반 규칙을 제거하거나 사용하지 않는 경우 libvirt를 비활성화해야합니다 (예 : 수동 무시 구성 설치 (다시 부팅)).
sudo bash -c 'echo "manual" > /etc/init/libvirt-bin.override'
Ubuntu 또는 Debian이 아닌 RedHat 및 CentOS에 적합한 명령을 사용하고 있습니다.
http://www.cyberciti.biz/faq/ubuntu-server-disable-firewall/
기본적으로는 없지만 최근 데비안 파생물 (우분투 포함)에서는 iptables 관리 서비스를 설치할 수 있습니다 .
sudo apt install iptables-persistent
그런 다음 이전에 저장된 규칙을로드 할 수 있습니다.
systemctl start netfilter-persistent
무슨 일이 있었는지 검토 :
systemctl status netfilter-persistent
netfilter-persistent.service - netfilter persistent configuration
Loaded: loaded (/lib/systemd/system/netfilter-persistent.service; enabled; vendor preset: enabled)
Active: active (exited) since Sun 2019-03-24 10:49:50 IST; 16min ago
Main PID: 1674 (code=exited, status=0/SUCCESS)
Tasks: 0
Memory: 0B
CPU: 0
CGroup: /system.slice/netfilter-persistent.service
Mar 24 10:49:50 ubuntu systemd[1]: Starting netfilter persistent configuration...
Mar 24 10:49:50 ubuntu netfilter-persistent[1674]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables start
Mar 24 10:49:50 ubuntu netfilter-persistent[1674]: Warning: skipping IPv4 (no rules to load)
Mar 24 10:49:50 ubuntu netfilter-persistent[1674]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables start
Mar 24 10:49:50 ubuntu netfilter-persistent[1674]: Warning: skipping IPv6 (no rules to load)
Mar 24 10:49:50 ubuntu systemd[1]: Started netfilter persistent configuration.
Mar 24 11:02:49 ubuntu systemd[1]: Started netfilter persistent configuration.
또는 서비스를 중지하십시오.
systemctl stop netfilter-persistent
서비스를 중지하면 기본적으로 iptables가 플러시 되지 않습니다 (즉, 방화벽을 비활성화하지 않습니다 (참조 man netfilter-persistent
)).
/etc/init.d/
합니다. 인터넷 검색시 'iptables 우분투 끄기'에 도움이되는 링크는 도움이되지 않습니다.