この度Oracle Cloud上にSoftEther VPN Serverを利用し、
L2TP/IPSecで接続出来るVPNサーバーを構築させて頂きました。
参考にさせていただいたサイトは以下の通りになります。
https://hacknote.jp/archives/56888/
運用して数ヶ月、特に問題なく使用出来ていたのですが、
特定の操作で接続が不安定になることが確認されました。
その操作がタイトルにも挙げさせて頂きました、SSH接続になります。
特に"sudo tail -f /var/log/messages"やバッチ処理等を実行した際に、暫くすると
Code: Select all
Timeout, server ***.***.***.*** not responding.
感覚的であり大変恐縮ではございますが、ログが流れない時に頻繁に発生している気がしております。
ちなみに、このメッセージが出た際にVPN接続自体は切断されておりません。
別のWindows Serverで構築したL2TP/IPSecで接続出来るVPNサーバーでは同様の問題は発生しませんので、
恐らくSoftEther VPN Server上の設定に何か問題があると判断しているのですが、今のところこれといった要因が掴めておりません。
本現象についての調査方法等ございましたら、ご教授願えませんでしょうか。
なお、私の方で確認・試した事柄は以下の通りになります。
・MTUの調整
→通信速度は上がったものの、現象は解決せず
・SSHのキープアライブ設定が抜けていないか
→~/.ssh/configに"ServerAliveInterval 60"が入っていることを確認
また、以下にテンプレートを記載致します。
1. オペレーティングシステムの名前および CPU ビット
Oracle Linux 8.3 x64
2. "ifconfig -a" (UNIX) または "ipconfig /all" (Windows) の結果
Code: Select all
$ ifconfig -a
ens3: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST> mtu 9000
inet 10.10.1.2 netmask 255.255.255.0 broadcast 10.10.1.255
inet6 fe80::17ff:fe01:d430 prefixlen 64 scopeid 0x20<link>
ether **:**:**:**:**:** txqueuelen 1000 (Ethernet)
RX packets 1105090159 bytes 743424192494 (692.3 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1136211448 bytes 760933356425 (708.6 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 69867 bytes 22510529 (21.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 69867 bytes 22510529 (21.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Code: Select all
$ uname -a
Linux ホスト名 5.4.17-2036.100.6.1.el8uek.x86_64 #2 SMP Thu Oct 29 17:06:00 PDT 2020 x86_64 x86_64 x86_64 GNU/Linux
Ver 4.34, Build 9744
5. どの SoftEther VPN のコンポーネントを使用していますか?
VPN Server
6. VPN サーバーとインターネットとの間に NAT やファイアウォールデバイスはありますか?
Oracle Cloud上に構築した為、存在します。
現在500番、4500番がそれぞれUDPで開かれております。
7. SecureNAT 機能を使用していますか?
使用しております。以下、SecureNatStatusGetで出た内容となります。
Code: Select all
VPN Server/仮想HUB名>SecureNatStatusGet
SecureNatStatusGet command - Get the Operating Status of the Virtual NAT and DHCP Server Function (SecureNat Function)
Item |Value
-------------------------+--------------
Virtual Hub Name |仮想HUB名
NAT TCP/IP Sessions |280 Session
NAT UDP/IP Sessions |77 Session
NAT ICMP Sessions |0 Session
NAT DNS Sessions |0 Session
Allocated DHCP Clients |12 Client
Kernel-mode NAT is Active|Yes
Raw IP mode NAT is Active|Yes
The command completed successfully.
添付しようとしましたが、「Invalid file extension: vpn_server.config」と表示され、添付できませんでした。
長々とし申し訳ございませんが、貼り付けさせて頂きます。
Code: Select all
# Software Configuration File
# ---------------------------
#
# You may edit this file when the VPN Server / Client / Bridge program is not running.
#
# In prior to edit this file manually by your text editor,
# shutdown the VPN Server / Client / Bridge background service.
# Otherwise, all changes will be lost.
#
declare root
{
uint ConfigRevision 151
bool IPsecMessageDisplayed false
string Region US
declare DDnsClient
{
bool Disabled false
byte Key ****************************
string LocalHostname ****************
string ProxyHostName $
uint ProxyPort 0
uint ProxyType 0
string ProxyUsername $
}
declare IPsec
{
bool EtherIP_IPsec false
string IPsec_Secret **************
string L2TP_DefaultHub **************
bool L2TP_IPsec true
bool L2TP_Raw false
declare EtherIP_IDSettingsList
{
}
}
declare ListenerList
{
declare Listener0
{
bool DisableDos false
bool Enabled true
uint Port 443
}
declare Listener1
{
bool DisableDos false
bool Enabled true
uint Port 992
}
declare Listener2
{
bool DisableDos false
bool Enabled true
uint Port 1194
}
declare Listener3
{
bool DisableDos false
bool Enabled true
uint Port 5555
}
}
declare LocalBridgeList
{
bool DoNotDisableOffloading false
}
declare ServerConfiguration
{
bool AcceptOnlyTls true
uint64 AutoDeleteCheckDiskFreeSpaceMin 104857600
uint AutoDeleteCheckIntervalSecs 300
uint AutoSaveConfigSpan 300
bool BackupConfigOnlyWhenModified true
string CipherName AES128-SHA
uint CurrentBuild 9744
bool DisableCoreDumpOnUnix false
bool DisableDeadLockCheck false
bool DisableDosProction false
bool DisableGetHostNameWhenAcceptTcp false
bool DisableIntelAesAcceleration false
bool DisableIPsecAggressiveMode false
bool DisableIPv6Listener false
bool DisableJsonRpcWebApi false
bool DisableNatTraversal false
bool DisableOpenVPNServer false
bool DisableSessionReconnect false
bool DisableSSTPServer false
bool DontBackupConfig false
bool EnableVpnAzure false
bool EnableVpnOverDns false
bool EnableVpnOverIcmp false
byte HashedPassword ****************************
string KeepConnectHost keepalive.softether.org
uint KeepConnectInterval 50
uint KeepConnectPort 80
uint KeepConnectProtocol 1
uint64 LoggerMaxLogSize 1073741823
uint MaxConcurrentDnsClientThreads 512
uint MaxConnectionsPerIP 256
uint MaxUnestablishedConnections 1000
bool NoHighPriorityProcess false
bool NoLinuxArpFilter false
bool NoSendSignature false
string OpenVPNDefaultClientOption dev-type$20tun,link-mtu$201500,tun-mtu$201500,cipher$20AES-128-CBC,auth$20SHA1,keysize$20128,key-method$202,tls-client
string OpenVPN_UdpPortList 1194
bool SaveDebugLog false
byte ServerCert ************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
byte ServerKey ********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
uint ServerLogSwitchType 4
uint ServerType 0
bool StrictSyslogDatetimeFormat false
bool Tls_Disable1_0 false
bool Tls_Disable1_1 false
bool Tls_Disable1_2 false
bool Tls_Disable1_3 false
bool UseKeepConnect true
bool UseWebTimePage false
bool UseWebUI false
declare GlobalParams
{
uint FIFO_BUDGET 10240000
uint HUB_ARP_SEND_INTERVAL 5000
uint IP_TABLE_EXPIRE_TIME 60000
uint IP_TABLE_EXPIRE_TIME_DHCP 300000
uint MAC_TABLE_EXPIRE_TIME 600000
uint MAX_BUFFERING_PACKET_SIZE 2560000
uint MAX_HUB_LINKS 1024
uint MAX_IP_TABLES 65536
uint MAX_MAC_TABLES 65536
uint MAX_SEND_SOCKET_QUEUE_NUM 128
uint MAX_SEND_SOCKET_QUEUE_SIZE 2560000
uint MAX_STORED_QUEUE_NUM 1024
uint MEM_FIFO_REALLOC_MEM_SIZE 655360
uint MIN_SEND_SOCKET_QUEUE_SIZE 320000
uint QUEUE_BUDGET 2048
uint SELECT_TIME 256
uint SELECT_TIME_FOR_NAT 30
uint STORM_CHECK_SPAN 500
uint STORM_DISCARD_VALUE_END 1024
uint STORM_DISCARD_VALUE_START 3
}
declare ServerTraffic
{
declare RecvTraffic
{
uint64 BroadcastBytes 303214333
uint64 BroadcastCount 3412462
uint64 UnicastBytes 688308288934
uint64 UnicastCount 1008661423
}
declare SendTraffic
{
uint64 BroadcastBytes 1427129916
uint64 BroadcastCount 12394054
uint64 UnicastBytes 688339418656
uint64 UnicastCount 1008883706
}
}
declare SyslogSettings
{
string HostName $
uint Port 0
uint SaveType 0
}
}
declare VirtualHUB
{
declare **************
{
uint64 CreatedTime 1605745717840
byte HashedPassword ****************************
uint64 LastCommTime 1612227214955
uint64 LastLoginTime 1612224564759
uint NumLogin 856
bool Online true
bool RadiusConvertAllMsChapv2AuthRequestToEap false
string RadiusRealm $
uint RadiusRetryInterval 0
uint RadiusServerPort 1812
string RadiusSuffixFilter $
bool RadiusUsePeapInsteadOfEap false
byte SecurePassword ****************************
uint Type 0
declare AccessList
{
}
declare AdminOption
{
uint allow_hub_admin_change_option 0
uint deny_bridge 0
uint deny_change_user_password 0
uint deny_empty_password 0
uint deny_hub_admin_change_ext_option 0
uint deny_qos 0
uint deny_routing 0
uint max_accesslists 0
uint max_bitrates_download 0
uint max_bitrates_upload 0
uint max_groups 0
uint max_multilogins_per_user 0
uint max_sessions 0
uint max_sessions_bridge 0
uint max_sessions_client 0
uint max_sessions_client_bridge_apply 0
uint max_users 0
uint no_access_list_include_file 0
uint no_cascade 0
uint no_change_access_control_list 0
uint no_change_access_list 0
uint no_change_admin_password 0
uint no_change_cert_list 0
uint no_change_crl_list 0
uint no_change_groups 0
uint no_change_log_config 0
uint no_change_log_switch_type 0
uint no_change_msg 0
uint no_change_users 0
uint no_delay_jitter_packet_loss 0
uint no_delete_iptable 0
uint no_delete_mactable 0
uint no_disconnect_session 0
uint no_enum_session 0
uint no_offline 0
uint no_online 0
uint no_query_session 0
uint no_read_log_file 0
uint no_securenat 0
uint no_securenat_enabledhcp 0
uint no_securenat_enablenat 0
}
declare CascadeList
{
}
declare LogSetting
{
uint PacketLogSwitchType 4
uint PACKET_LOG_ARP 0
uint PACKET_LOG_DHCP 1
uint PACKET_LOG_ETHERNET 0
uint PACKET_LOG_ICMP 0
uint PACKET_LOG_IP 0
uint PACKET_LOG_TCP 0
uint PACKET_LOG_TCP_CONN 1
uint PACKET_LOG_UDP 0
bool SavePacketLog true
bool SaveSecurityLog true
uint SecurityLogSwitchType 4
}
declare Message
{
}
declare Option
{
uint AccessListIncludeFileCacheLifetime 30
uint AdjustTcpMssValue 0
bool ApplyIPv4AccessListOnArpPacket false
bool AssignVLanIdByRadiusAttribute false
bool BroadcastLimiterStrictMode false
uint BroadcastStormDetectionThreshold 0
uint ClientMinimumRequiredBuild 0
bool DenyAllRadiusLoginWithNoVlanAssign false
uint DetectDormantSessionInterval 0
bool DisableAdjustTcpMss false
bool DisableCheckMacOnLocalBridge false
bool DisableCorrectIpOffloadChecksum false
bool DisableHttpParsing false
bool DisableIPParsing false
bool DisableIpRawModeSecureNAT false
bool DisableKernelModeSecureNAT false
bool DisableUdpAcceleration false
bool DisableUdpFilterForLocalBridgeNic false
bool DisableUserModeSecureNAT false
bool DoNotSaveHeavySecurityLogs false
bool DropArpInPrivacyFilterMode true
bool DropBroadcastsInPrivacyFilterMode true
bool FilterBPDU false
bool FilterIPv4 false
bool FilterIPv6 false
bool FilterNonIP false
bool FilterOSPF false
bool FilterPPPoE false
uint FloodingSendQueueBufferQuota 33554432
bool ManageOnlyLocalUnicastIPv6 true
bool ManageOnlyPrivateIP true
uint MaxLoggedPacketsPerMinute 0
uint MaxSession 0
bool NoArpPolling false
bool NoDhcpPacketLogOutsideHub true
bool NoEnum false
bool NoIpTable false
bool NoIPv4PacketLog false
bool NoIPv6AddrPolling false
bool NoIPv6DefaultRouterInRAWhenIPv6 true
bool NoIPv6PacketLog false
bool NoLookBPDUBridgeId false
bool NoMacAddressLog true
bool NoManageVlanId false
bool NoPhysicalIPOnPacketLog false
bool NoSpinLockForPacketDelay false
bool RemoveDefGwOnDhcpForLocalhost true
uint RequiredClientId 0
uint SecureNAT_MaxDnsSessionsPerIp 0
uint SecureNAT_MaxIcmpSessionsPerIp 0
uint SecureNAT_MaxTcpSessionsPerIp 0
uint SecureNAT_MaxTcpSynSentPerIp 0
uint SecureNAT_MaxUdpSessionsPerIp 0
bool SecureNAT_RandomizeAssignIp false
bool SuppressClientUpdateNotification false
bool UseHubNameAsDhcpUserClassOption false
bool UseHubNameAsRadiusNasId false
string VlanTypeId 0x8100
bool YieldAfterStorePacket false
}
declare SecureNAT
{
bool Disabled false
bool SaveLog true
declare VirtualDhcpServer
{
string DhcpDnsServerAddress 192.168.30.1
string DhcpDnsServerAddress2 0.0.0.0
string DhcpDomainName $
bool DhcpEnabled true
uint DhcpExpireTimeSpan 7200
string DhcpGatewayAddress 192.168.30.1
string DhcpLeaseIPEnd 192.168.30.254
string DhcpLeaseIPStart 192.168.30.2
string DhcpPushRoutes 10.10.0.0/255.255.0.0/192.168.30.1
string DhcpSubnetMask 255.255.255.0
}
declare VirtualHost
{
string VirtualHostIp 192.168.30.1
string VirtualHostIpSubnetMask 255.255.255.0
string VirtualHostMacAddress **-**-**-**-**-**
}
declare VirtualRouter
{
bool NatEnabled true
uint NatMtu 1500
uint NatTcpTimeout 1800
uint NatUdpTimeout 60
}
}
declare SecurityAccountDatabase
{
declare CertList
{
}
declare CrlList
{
}
declare GroupList
{
}
declare IPAccessControlList
{
}
declare UserList
{
declare ota
{
byte AuthNtLmSecureHash ************************
byte AuthPassword ****************************
uint AuthType 1
uint64 CreatedTime 1605746526904
uint64 ExpireTime 0
uint64 LastLoginTime 1612211087868
string Note $
uint NumLogin 44
string RealName $
uint64 UpdatedTime 1607475966098
declare Traffic
{
declare RecvTraffic
{
uint64 BroadcastBytes 25466539
uint64 BroadcastCount 241310
uint64 UnicastBytes 12220592609
uint64 UnicastCount 12025168
}
declare SendTraffic
{
uint64 BroadcastBytes 5228730
uint64 BroadcastCount 38395
uint64 UnicastBytes 2388769901
uint64 UnicastCount 10640100
}
}
}
}
}
declare Traffic
{
declare RecvTraffic
{
uint64 BroadcastBytes 303214333
uint64 BroadcastCount 3412462
uint64 UnicastBytes 688308288934
uint64 UnicastCount 1008661423
}
declare SendTraffic
{
uint64 BroadcastBytes 1427129916
uint64 BroadcastCount 12394054
uint64 UnicastBytes 688339418656
uint64 UnicastCount 1008883706
}
}
}
}
declare VirtualLayer3SwitchList
{
}
}